Optymalizacja komunikacji w systemach rozproszonych i równoległych

Wielkość: px
Rozpocząć pokaz od strony:

Download "Optymalizacja komunikacji w systemach rozproszonych i równoległych"

Transkrypt

1 Optymalizacja komunikacji w systemach rozproszonych i równoległych Szkolenie PCSS,

2 literatura W. Gropp, E. Lusk, An Introduction to MPI, ANL P.S. Pacheco, A User s Guide to MPI, 1998 Ian Foster, Designing and Building Parallel Programs, Addison-Wesley 1995, 2

3 literatura J. Dongarra, I. Foster, G. Fox, W. Gropp, K. Kennedy, L. Torczon, A. White, The Sourcebook of Parallel Computing, Morgan Kaufmann 2002 J.J. Dongarra, S.W. Otto, M. Snir, D. Walker, An Introduction to the MPI Standard, ORNL

4 literatura W. Gropp, E. Lusk, T. Sterling, Beowulf Cluster Computing, Second Edition, The MIT Press,

5 literatura W. Gropp, E. Lusk, R. Thakur, Advanced Features of the Message Passing Interface, The MIT Press 1999 W. Gropp, E. Lusk, A. Skjellum, Portable Parallel Programming with the Message Passing Interface, 2nd edition, The MIT Press

6 literatura P.S. Pacheco, Parallel Programming with MPI, Morgan Kaufmann 1996 W. Gropp, E. Lusk, R. Thakur, Using MPI-2. Advanced Features of the Message-Passing Interface, The MIT Press,

7 literatura Neil MacDonald, Elspeth Minty, Mario Antonioletti, Joel Malard, Tim Harding, Simon Brown, Writing Message-Passing Parallel Programs with MPI. Course Notes. Edinburgh Parallel Computing Centre, The University of Edinburgh, Epic Version

8 literatura S. Akhter, J. Roberts, Multi-Core Programming. Increasing Performance Through Software Multi-Threading, Intel Press, 2006 O. La adan, A. Barak, Inter Process Communication Optimization in a Scalable Computing Cluster, Hebrew University, Jerusalem

9 literatura R. Chandra, R. Menon, L. Dagum, D. Kohr, D. Maydam, J. McDonald, Parallel Programming in Open MP, Morgan Kaufmann, San Francisco, B. Chapman, G. Jost, R. van der Pas, Using OpenMP: Portable Shared Memory Parallel Programming, The MIT Press,

10 optymalizacja komunikacji co to jest optymalizacja komunikacji? jest to minimalizacja liczby przesyłanych komunikatów, albo minimalizacja rozmiaru komunikatu, z jednoczesnym zachowaniem poprzedniej funkcjonalnoci 10

11 optymalizacja komunikacji jak to mona osign? zmiana przydziału zada do wzłów sieci w celu redukcji narzutu dot. komunikacji komunikacja kolektywna grupowanie danych w jeden komunikat minimalizacja synchronizacji i komunikacji midzy wtkami 11

12 zmiana przydziału zada [La adan1998] problem przydziału zada do wzłów (task clustering) w celu redukcji narzutu komunikacyjnego, przy utrzymaniu zrównowaenia systemu narzut wie si z przydziałem zada (procesów) do rónych wzłów gdyby te zadania wykonywa na jednym wle, narzut by si zmniejszył 12

13 zmiana przydziału zada [La adan1998] z drugiej strony obcia to zbytnio konkretny wzeł spowalniajc jego prac naley zachowa kompromis midzy tendencj zrównowaenia obcienia a tendencj do grupowania zada problem przydziału zada do wzłów jest NP-trudny 13

14 komunikacja kolektywna wykonywana jest przez wszystkie procesy biorce udział w obliczeniach s dwa rodzaje operacji kolektywnych: operacje przekazywania danych, do nowej aranacji danych midzy procesami, np. broadcast, scattering, gathering operacje oblicze kolektywnych (min, max, suma, OR, ) 14

15 komunikacja kolektywna załómy, e program działa na 8 procesorach wszystkie procesy rozpoczynaj wykonywanie programu prawie jednoczenie jednak po wykonaniu podstawowych zada (wywołampi_init, MPI_Comm_Size i MPI_Comm_rank), proces 0 zbiera dane wejciowe, a procesy od 1 do 7 s bezczynne, czekajc na dane od procesu 0 naley to zmieni, wprowadzajc komunikacj o strukturze drzewiastej 15

16 komunikacja kolektywna jak rozdziela dane? Jak dzieli zadania bardziej równomiernie midzy procesy? naturalnym rozwizaniem jest struktura drzewiasta procesów, z 0 jako korzeniem 16

17 struktura drzewiasta procesów

18 w 1 etapie, 0 nadaje dane do

19 w drugim etapie, 0 nadaje dane do 2, a 4 nadaje dane do

20 w 3 etapie, 0 nadaje do 1,2 nadaje do 3, 4 nadaje do 5, a 6 nadaje do

21 komunikacja o strukturze drzewiastej w ten sposób zredukowano pocztkowe rozdzielanie danych z 7 etapów do 3 etapów w ogólnoci, jeeli mamy p procesów, procedura ta pozwala rozdziela dane wejciowe w log 2 (p) etapach, zamiast w p -1 etapów dla duego p, s to due oszczdnoci 21

22 rozgłaszanie wzorzec komunikacji, angaujcy wszystkie procesy w komunikatorze, jest komunikacj kolektywn czyli komunikacja kolektywna zazwyczaj angauje wicej ni dwa procesy rozgłaszanie jest komunikacj kolektywn, w której jeden proces nadaje te same dane do kadego procesu 22

23 rozgłaszanie [Dongarra1995] 23

24 rozgłaszanie w MPI int MPI_Bcast(void* message, int count, MPI_Datatype datatype, int root, MPI_Comm comm) nadaje kopi danych w message z procesu root do kadego procesu w komunikatorze comm powinien by wywołany przez wszystkie procesy w komunikatorze z tymi samymi argumentami dla root i comm skutkiem tego, komunikat rozgłaszania nie moe by odbierany przez MPI_Recv 24

25 rozgłaszanie w MPI parametry count i datatype maj te same funkcje co w MPI_Send i MPI_Recv: okrelaj rozmiar komunikatu jednak inaczej ni w funkcjach od punktu do punktu, MPI wymaga, aby w komunikacji kolektywnej, count i datatype były takie same we wszystkich procesach w komunikatorze przyczyna jest taka, e w pewnych operacjach kolektywnych, jeden proces moe odbiera dane od wielu innych procesów, i aby program mógł okreli, ile danych odebrano, potrzebuje całej tablicy statusów zwrotnych 25

26 redukcja w fazie sumowania wyników proces 0 ma znowu mnóstwo pracy moemy t prac rozdzieli przez odwrócenie strzałek w drzewie, moemy podzieli zadanie obliczenia sumy midzy poszczególne procesy 26

27 redukcja

28 redukcja w pierwszym etapie proces 1 nadaje swój wynik oblicze do procesu 0, proces 3 nadaje swój wynik do procesu 2, proces 5 nadaje swój wynik do procesu 4, a proces 7 nadaje swój wynik do procesu 6 nastpnie proces 0 dodaje swój wynik do wyniku procesu 1, proces 2 dodaje swój wynik do wyniku procesu 3, itd. 28

29 redukcja

30 redukcja w drugim etapie proces 2 nadaje sum wyników do procesu 0, proces 6 nadaje sum wyników do procesu 4 proces 0 sumuje swój wynik z sum wyników od procesu 2 proces 4 sumuje swój wynik z sum wyników otrzyman od procesu 6 30

31 redukcja w trzecim etapie proces 4 nadaje swoj sum (wyniki od procesów 4, 5, 6 i 7) do procesu 0 proces 0 dodaje swoj sum (wyniki od procesów 0, 1, 2 i 3) do sumy otrzymanej od procesu 4 31

32 redukcja pojawia si pytanie, czy struktura drzewiasta optymalnie wykorzystuje topologi maszyny? to zaley od maszyny, najlepiej to sprawdzi, uruchamiajc MPI obliczenie sumy globalnej jest przykładem klasy komunikacji kolektywnej, zwanej operacj redukcji 32

33 operacja redukcji w tej operacji wszystkie procesy w komunikatorze wnosz dane, które s przekształcane za pomoc operacji binarnej (dodawanie, max, min, logiczne and) funkcja MPI wykonujca operacj redukcji to: 33

34 operacja redukcji int MPI_Reduce(void* operand, void* result, int count, MPI_Datatype datatype, MPI_Op op, in root, MPI_Comm comm) MPI_Reduce przekształca argumenty operacji zapamitane w *operand stosujc operacjop i zapamituje wynik w *result w procesie root zarówno operand jak i count odnosz si do lokalizacji pamici okrelanej przez count i typ datatype 34

35 operacja redukcji MPI_Reduce musi by wywołane przez wszystkie procesy w komunikatorze comm, acount, datatype, i op musz by takie same w kadym procesie 35

36 operacja redukcji na przykład: int MPI_Reduce(&integral, &total, 1, MPI_FLOAT, MPI_SUM, 0, MPI_COMM_WORLD); co odpowiada składni: int MPI_Reduce(void* operand, void* result, int count, MPI_Datatype datatype, MPI_Op op, in root, MPI_Comm comm) 36

37 inne funkcje komunikacji kolektywnej MPI_Barrier MPI_Gather MPI_Scatter MPI_Allgather MPI_Allreduce 37

38 funkcja MPI_Barrier int MPI_Barrier(MPI_Comm comm) MPI_Barrier zapewnia mechanizm synchronizacji wszystkich procesów w komunikatorze comm kady proces blokuje si (pauzuje) dopóki kady proces w komunikatorze comm nie wywoła MPI_Barrier 38

39 funkcja MPI_Gather int MPI_Gather(void* send_buf, int send_count, MPI_Datatype send_type, void* recv_buf, int recv_count, MPI_Datatype recv_type, int root, MPI_Comm comm) kady proces wcomm nadaje zawarto bufora send_buf do procesu o numerze root proces root konkatenuje odebrane dane w porzdku okrelanym przez numery procesów w buforze recv_buf, tzn. po danych od procesu 0 s dane od procesu 1, a nastpnie dane od procesu 2, itd. argumenty recv s istotne tylko w procesie root argument recv_count wskazuje liczb elementów odebranych od kadego procesu 39

40 funkcja MPI_Gather [Dongarra1995] 40

41 funkcja MPI_Scatter int MPI_Scatter(void* send_buf, int send_count, MPI_Datatype send_type, void* recv_buf, int recv_count, MPI_Datatype recv_type, int root, MPI_Comm comm) proces o numerze root rozsyła zawarto bufora send_buf midzy procesami zawarto bufora send_buf jest podzielona na p segmentów, z których kady składa si z send_count elementów pierwszy segment przekazany jest do procesu 0, drugi do procesu 1, itd. argumenty send s istotne jedynie w procesie root 41

42 funkcja MPI_Allgather int MPI_Allgather(void* send_buf, int send_count, MPI_Datatype send_type, void* recv_buf, int recv_count, MPI_Datatype recv_type, int root, MPI_Comm comm) zbiera zawarto kadego bufora send_buf w kadym procesie efekt jest taki sam, jak sekwencji p wywoła MPI_Gather, z których kade ma inny proces jako root 42

43 funkcja MPI_Allgather [Dongarra1995] 43

44 zbiór funkcji MPI_Gather [Dongarra1995] 44

45 funkcja MPI_Allreduce MPI_Allreduce(void* operand, void* result, int count, MPI_Datatype datatype, MPI_Op op, in root, MPI_Comm comm) zapamituje wynik operacji redukcjiop w buforze result kadego procesu 45

46 grupowanie danych dla komunikacji nadawanie komunikatu jest kosztown operacj, std im mniej komunikatów nadanych, tym lepsza efektywno programu w naszym przykładzie programu trapezowego, komunikaty s przesyłane oddzielnie (za pomocmpi_send i MPI_Recv, albo za pomocmpi_bcast) 46

47 grupowanie danych dla komunikacji MPI zapewnia trzy mechanizmy do grupowania pojedynczych elementów danych w jeden komunikat, s to: parametr count do rónych podprogramów wyprowadzane typy danych MPI_Pack/MPI_Unpack 47

48 parametrcount zauwa, e funkcje MPI_Send i MPI_Recv, MPI_Bcast i MPI_Reduce maj argumenty count i datatype te parametry pozwalaj uytkownikowi grupowa dane majce ten sam typ podstawowy w jeden komunikat warunkiem jest, aby dane były zapamitane w cigłych lokacjach pamici elementy tablicy s pamitane w cigłych lokacjach pamici, moemy wic przesła np. podzbiór tablicy 48

49 przykład przesłania podzbioru tablicy float vector[100] int tag, count, dest, source; MPI_Status status; int p; int my rank;... 49

50 przykład przesłania podzbioru tablicy if (my_rank == 0) {... /* Initialize vector and send */ tag = 47; count = 50; dest = 1; MPI_Send(vector + 50, count, MPI_FLOAT, dest, tag,mpi_comm_world); 50

51 przykład przesłania podzbioru tablicy }else {/*my_rank == 1 */ } tag = 47 count = 50; source = 0 MPI_Recv(vector+50, count, MPI_FLOAT, source, tag, MPI_COMM_WORLD, &status); 51

52 parametrcount to nie pomaga w programie trapezowym dane a, b, n nie s pamitane w cigłych lokacjach pamici nawet gdy deklarujemy po kolei: float a; float b: int n; i deklarujemy n jako float 52

53 wyprowadzane typy danych konstruktory wyprowadzanych typów danych: gdy róne typy danych: MPI_Type_Struct gdy równe typy danych: MPI_Type_contiguous MPI_Type_vector MPI_Type_indexed 53

54 MPI_Pack/MPI_Unpack MPI_Pack - jawne zapamitanie danych niecigłych MPI_Unpack kopiowanie danych z bufora cigłego do niecigłych lokacji pamici 54

55 minimalizacja komunikacji midzy wtkami [Akhter2006] standard OpenMP powstał w 1997 jako API dla pisania przenonych aplikacji wielowtkowych w procesorach wielordzeniowych został wykorzystany do poprawy efektywnoci programów 55

56 wtek wtek to minimalny element dajcy si wykona (i uszeregowa), zawiera wskanik do strumienia rozkazów wykonujcych wtek, informacj o stanie procesora, i wskanik do stosu czasami nazywany lekkim procesem 56

57 wtek wtek naley wpierw utworzy majc wtki, mona nimi zarzdza mona si midzy nimi komunikowa mona je synchronizowa 57

58 komunikacja midzy wtkami [Akhter2006] dwa wtki, które rezyduj w tym samym procesie i komunikuj si za pomoc komunikatów, stosuj komunikacj wewntrzprocesow dwa wtki, które rezyduj w rónych procesach i komunikuj si za pomoc komunikatów, stosuj komunikacj midzyprocesow 58

59 komunikacja midzy wtkami [Akhter2006] wykonanie wtku jest sterowane przez programist funkcjami: SuspendThread, ResumeThread, TerminateThread komunikacj midzy wtkami zapewniaj Windows Events zdarzenia te naley wpierw utworzy 59

60 synchronizacja wtków sekcja krytyczna: kod dostpny tylko dla pewnych wtków w danym czasie semafor: struktura danych ograniczajca dostp do danej sekcji krytycznej mutex: semafor gwarantujcy wyłczny dostp do sekcji krytycznej tylko jednemu wtkowi 60

61 optymalizacja efektywnoci programów OpenMP zapewnia szereg narzdzi do ułatwienia programowania równoległego opartego na wtkach OpenMP zapewnia funkcje do synchronizacji wtków, zarzdzania wtkami, prywatyzacji danych 61

62 podział pracy w regionach równoległych [Chandra2001] konstrukcja parallel w OpenMP jest prostym sposobem zrealizowania równoległego wykonania pracy zapewnia ona powtarzalne wykonanie tego samego kodu na wielu wtkach jest te uyteczne przy podziale pracy midzy wiele wtków 62

63 podział pracy midzy wiele wtków [Chandra2001] albo za pomoc osobnych wtków pracujcych na rónych czciach współdzielonej struktury danych albo za pomoc osobnych wtków wykonujcych całkowicie odmienne zadania podamy teraz kilka sposobów jak to zrobi w OpenMP 63

64 podział pracy midzy wiele wtków przedstawimy trzy róne sposoby uzyskania podziału pracy midzy wtki pierwszy przykład pokazuje jak stworzy kolejk zada równoległych obsługiwanych przez wiele wtków drugi przykład pokazuje jak mona rcznie podzieli prac midzy wtki, wykorzystujc identyfikator kadego wtku w zespole 64

65 podział pracy midzy wiele wtków oba przykłady łcznie pokazuj, w jakich sytuacjach programista rcznie dzieli prac midzy wtki w zespole na koniec przedstawiamy pewne konstrukcje OpenMP dedykowane do podziału pracy midzy wtki konstrukcje te przyjły nazw konstrukcji współdzielcych wtki 65

66 kolejka zada równoległych jest to współdzielona struktura danych zawierajca list zada do wykonania zadania mog mie róny rozmiar i rón złoono zalenie od aplikacji moe to by np. proste przetwarzanie ptli albo złoona procedura graficzna 66

67 kolejka zada równoległych niezalenie od rozmiaru i złoonoci, zadania w kolejce maj nastpujce cechy: wiele zada moe by przetwarzane współbienie przez wiele wtków, z konieczn koordynacj realizowan przez jawne konstrukcje synchronizacji co wicej, dane zadanie moe by przetwarzane przez dowolny wtek z zespołu 67

68 kolejka zada równoległych w takim modelu kolejki zada łatwo implementuje si równoległo tworzymy zespół równoległych wtków, kady z wtków pobiera i wykonuje zadania ze współdzielonej kolejki zada w przykładzie mamy funkcj zwracajca indeks kolejnego zadania i podprogram przetwarzajcy dane zadanie 68

69 kolejka zada równoległych w tym przykładzie jest prosta kolejka zada, składajca si z indeksu do identyfikacji zadania funkcja get_next_task zwraca nastpny indeks do przetwarzania, a podprogram process_task pobiera indeks i wykonuje obliczenie z nim zwizane 69

70 kolejka zada równoległych kady wtek pobiera i przetwarza zadania, tak długo a wszystkie zadania zostan przetworzone, wtedy region równoległy si koczy i główny wtek powraca do przetwarzania szeregowego 70

71 implementacja kolejki zada [Chandra2001]! Funkcja do obliczenia indeksu! Nastpnego zadania do przetworzenia integer function get_next_task() common /mycom/ index integer index 71

72 implementacja kolejki zada [Chandra2001]!$omp critical! Sprawd czy nie jeste poza zadaniami if (index.eq. MAX) then else endif!$omp end critical return get_next_task = 1 index = index + 1 get_next_task = index end 72

73 implementacja kolejki zada [Chandra2001] program TaskQueue integer myindex, get_next_task!$omp parallel private (myindex) myindex = get_next_task() do while (myindex.ne. 1) call process_task (myindex) myindex = get_next_task() enddo!$omp end parallel end 73

74 implementacja kolejki zada przykład ten wiadomie uproszczono, zawiera on jednak wszystkie niezbdne składniki kolejki zada i mona go bez problemu uogólni na bardziej złoone algorytmy 74

75 podział pracy wykorzystujcy numer wtku [Chandra2001] region równoległy jest wykonywany przez zespół wtków, którego rozmiar jest okrelany albo przez programist, albo przez implementacj opart na domylnych regułach 75

76 podział pracy wykorzystujcy numer wtku [Chandra2001] liczb wtków w biecym zespole wtków mona okreli z wntrza regionu równoległego, wywołujc program biblioteki OpenMP: integer function omp_get_num_threads() 76

77 podział pracy wykorzystujcy numer wtku wtki w zespole równoległym numerowane s od 0 do liczby wtków -1 numer ten stanowi unikalny identyfikator wtku i mona go wyznaczy wywołujc program biblioteczny: integer function omp_get_thread_num() 77

78 podział pracy wykorzystujcy numer wtku funkcja omp_get_thread_num zwraca warto całkowit, która jest identyfikatorem wywołujcego wtku funkcja ta zwraca inn warto kiedy jest wywoływana przez inny wtek wtek główny ma identyfikator 0, a wtki podrzdne maj identyfikatory z zakresu od 1 do liczba wtków -1 78

79 podział pracy wykorzystujcy numer wtku poniewa kady wtek moe wyznaczy swój numer, mamy sposób na podział pracy midzy wtki mona zatem znajc liczb wtków podzieli prac na tyle czci ile jest wtków co wicej, kady wtek moe wyznaczy swoj cz pracy 79

80 podział pracy wykorzystujcy numer wtku [Chandra2001]!$omp parallel private(iam) nthreads = omp_get_num_threads() iam = omp_get_thread_num() call work(iam, nthreads)!$omp end parallel powyszy program ilustruje ide podziału pracy wykorzystujcego numer wtku 80

81 podział pracy wykorzystujcy numer wtku Kady wtek okrela nthreads (całkowit liczb wtków w zespole) i iam (jego ID w tym zespole wtków) podprogram work stosujeiam inthreads do wyznaczenia czci pracy przydzielonej temu wtkowi iam i wykonuje t cz pracy 81

82 podział pracy wykorzystujcy numer wtku kady wtek musi mie swój unikalny identyfikator wtku, std iam jest deklarowany jako prywatny dla kadego wtku 82

83 konstrukcje współdzielce wtki sporód kilku moliwoci przedstawimy jedn konstrukcj, mianowicie dyrektywdo. Dyrektywa ta np. poprzedza ptldo, uwalniajc programist od rcznego przydziału czci pracy w ptli poszczególnym wtkom 83

84 zastosowanie dyrektywy do [Chandra2001] program omp_do integer iarray(n)!$omp parallel...!$omp do do i = 1, N iarray(i) = i * i enddo!$omp enddo!$omp end parallel end 84

85 wnioski przedstawilimy podstawowe kwestie dotyczce optymalizacji komunikacji w systemach rozproszonych i równoległych istnieje potrzeba kontynuacji analizy optymalizacji komunikacji zwłaszcza w obszarze aplikacji wielowtkowych 85

Modele programowania równoległego. Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak dla PR PP

Modele programowania równoległego. Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak dla PR PP Modele programowania równoległego Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak dla PR PP MPP - Cechy charakterystyczne 1 Prywatna, wyłączna przestrzeń adresowa.

Bardziej szczegółowo

Modele programowania równoległego. Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak

Modele programowania równoległego. Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak Modele programowania równoległego Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak MPP - Cechy charakterystyczne 1 Prywatna - wyłączna przestrzeń adresowa. Równoległość

Bardziej szczegółowo

Programowanie Równoległe Wykład 5. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej

Programowanie Równoległe Wykład 5. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej Programowanie Równoległe Wykład 5 MPI - Message Passing Interface Maciej Matyka Instytut Fizyki Teoretycznej Dorobiliśmy się strony WWW www.ift.uni.wroc.pl/~koma/pr/index.html MPI, wykład 2. Plan: - komunikacja

Bardziej szczegółowo

Operacje grupowego przesyłania komunikatów. Krzysztof Banaś Obliczenia równoległe 1

Operacje grupowego przesyłania komunikatów. Krzysztof Banaś Obliczenia równoległe 1 Operacje grupowego przesyłania komunikatów Krzysztof Banaś Obliczenia równoległe 1 Operacje grupowego przesyłania komunikatów Operacje, w ramach których ten sam komunikat lub zbiór komunikatów przesyłany

Bardziej szczegółowo

Programowanie Równoległe Wykład 4. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej

Programowanie Równoległe Wykład 4. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej Programowanie Równoległe Wykład 4 MPI - Message Passing Interface Maciej Matyka Instytut Fizyki Teoretycznej Jak używać w MPI? Donald Knuth: We should forget about small efficiencies, say about 97% of

Bardziej szczegółowo

Operacje grupowego przesyłania komunikatów

Operacje grupowego przesyłania komunikatów Operacje grupowego przesyłania komunikatów 1 Operacje grupowego przesyłania komunikatów Operacje, w ramach których ten sam komunikat lub zbiór komunikatów przesyłany jest pomiędzy więcej niż dwoma procesami

Bardziej szczegółowo

Programowanie w modelu przesyłania komunikatów specyfikacja MPI. Krzysztof Banaś Obliczenia równoległe 1

Programowanie w modelu przesyłania komunikatów specyfikacja MPI. Krzysztof Banaś Obliczenia równoległe 1 Programowanie w modelu przesyłania komunikatów specyfikacja MPI Krzysztof Banaś Obliczenia równoległe 1 Model przesyłania komunikatów Paradygmat send receive wysyłanie komunikatu: send( cel, identyfikator_komunikatu,

Bardziej szczegółowo

Tryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla

Tryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla Tryby komunikacji między procesami w standardzie Message Passing Interface Piotr Stasiak 171011 Krzysztof Materla 171065 Wstęp MPI to standard przesyłania wiadomości (komunikatów) pomiędzy procesami programów

Bardziej szczegółowo

Programowanie Równoległe Wykład 5. MPI - Message Passing Interface (część 3) Maciej Matyka Instytut Fizyki Teoretycznej

Programowanie Równoległe Wykład 5. MPI - Message Passing Interface (część 3) Maciej Matyka Instytut Fizyki Teoretycznej Programowanie Równoległe Wykład 5 MPI - Message Passing Interface (część 3) Maciej Matyka Instytut Fizyki Teoretycznej MPI, wykład 3. Plan: - wirtualne topologie - badanie skalowanie czasu rozwiązania

Bardziej szczegółowo

Programowanie współbieżne... (4) Andrzej Baran 2010/11

Programowanie współbieżne... (4) Andrzej Baran 2010/11 Programowanie współbieżne... (4) Andrzej Baran 2010/11 LINK: http://kft.umcs.lublin.pl/baran/prir/index.html Przykład Zaczniemy od znanego już przykładu: Iloczyn skalarny różne modele Programowanie współbieżne...

Bardziej szczegółowo

POZNA SUPERCOMPUTING AND NETWORKING. Wprowadzenie do MPI

POZNA SUPERCOMPUTING AND NETWORKING. Wprowadzenie do MPI Wprowadzenie do MPI literatura W. Gropp, E. Lusk, An Introduction to MPI, ANL P.S. Pacheco, A User s Guide to MPI, 1998 Ian Foster, Designing and Building Parallel Programs, Addison-Wesley 1995, http://www-unix.mcs.anl.gov/dbpp/

Bardziej szczegółowo

Operacje kolektywne MPI

Operacje kolektywne MPI Operacje kolektywne MPI 1 Operacje kolektywne Do tej pory w operacje przesyłania komunikatu miały charakter punkt-punkt (najczęściej pomiędzy nadawcą i odbiorcą). W operacjach grupowych udział biorą wszystkie

Bardziej szczegółowo

Miary Wydajności. Efektywność programu równoległego (E) jest definiowana jako stosunek przyśpieszenia do liczby procesorów

Miary Wydajności. Efektywność programu równoległego (E) jest definiowana jako stosunek przyśpieszenia do liczby procesorów Miary Wydajności Czas wykonania równoległego (Tpar) jest czasem pomiędzy momentem rozpoczęcia obliczeń do momentu gdy ostatni procesor zakończy obliczenia Przyspieszenie (S) jest definiowane jako stosunek

Bardziej szczegółowo

Jak wygląda praca na klastrze

Jak wygląda praca na klastrze Jak wygląda praca na klastrze Upraszczając nieco sprawę można powiedzieć, że klaster to dużo niezależnych komputerów (jednostek) połączonych mniej lub bardziej sprawną siecią. Często poszczególne jednostki

Bardziej szczegółowo

Programowanie Równoległe Wykład 6. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej

Programowanie Równoległe Wykład 6. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej Programowanie Równoległe Wykład 6 MPI - Message Passing Interface Maciej Matyka Instytut Fizyki Teoretycznej Dorobiliśmy się strony WWW Za tydzień 1. wykład z CUDY (Z. Koza) www.ift.uni.wroc.pl/~koma/pr/index.html

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 2 Jan Kazimirski 1 MPI 1/2 2 Dlaczego klastry komputerowe? Wzrost mocy obliczeniowej jednego jest coraz trudniejszy do uzyskania. Koszt dodatkowej mocy obliczeniowej

Bardziej szczegółowo

Programowanie Współbieżne

Programowanie Współbieżne Programowanie Współbieżne MPI ( główne źródło http://pl.wikipedia.org/wiki/mpi) 1 Historia Początkowo (lata 80) różne środowiska przesyłania komunikatów dla potrzeb programowania równoległego. Niektóre

Bardziej szczegółowo

POZNA SUPERCOMPUTING AND NETWORKING. Wtki w MPI. Michał Sajkowski

POZNA SUPERCOMPUTING AND NETWORKING. Wtki w MPI. Michał Sajkowski Wtki w MPI Michał Sajkowski literatura wykład opracowany na podstawie: W. Gropp, E. Lusk, R. Thakur, Using MPI-2, The MIT Press 1999 W. Gropp, E. Lusk, A. Skjellum, Using MPI, 2nd. Ed., The MIT Press 1999

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: PROGRAMOWANIE APLIKACJI RÓWNOLEGŁYCH I ROZPROSZONYCH Programming parallel and distributed applications Kierunek: Informatyka Rodzaj przedmiotu: obowiązkowy w ramach specjalności: Inżynieria

Bardziej szczegółowo

Weryfikacja oprogramowania, korzystajacego z MPI

Weryfikacja oprogramowania, korzystajacego z MPI Weryfikacja oprogramowania, korzystajacego z MPI Krzysztof Nozderko kn201076@students.mimuw.edu.pl 23 maja 2005 Wprowadzenie Równoległe obliczenia olbiczenia naukowców sa często bardzo kosztowne obliczeniowo

Bardziej szczegółowo

Architektura sieci połączeń między procesorami, sterowanie komunikacjami, biblioteki komunikacyjne

Architektura sieci połączeń między procesorami, sterowanie komunikacjami, biblioteki komunikacyjne Wykład 4 Architektura sieci połączeń między procesorami, sterowanie komunikacjami, biblioteki komunikacyjne Spis treści: 1. Statyczne sieci połączeń w systemach równoległych 2. Dynamiczne sieci połączeń

Bardziej szczegółowo

Message Passing Interface

Message Passing Interface Message Passing Interface Interfejs programowania definiujący powiązania z językami C, C++, Fortran Standaryzacja (de facto) i rozszerzenie wcześniejszych rozwiązań dla programowania z przesyłaniem komunikatów

Bardziej szczegółowo

Programowanie w standardzie MPI

Programowanie w standardzie MPI Programowanie w standardzie MPI 1 2 Podstawy programowania z przesyłaniem komunikatów Model systemu równoległego w postaci p procesów, każdy z nich z własną przestrzenią adresową, nie współdzieloną z innymi

Bardziej szczegółowo

Sposoby przekazywania parametrów w metodach.

Sposoby przekazywania parametrów w metodach. Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych

Bardziej szczegółowo

... Ireneusz Mrozek. Wydział Informatyki

... Ireneusz Mrozek. Wydział Informatyki Ireneusz Mrozek Wydział Informatyki Proces wykonujcy si program Proces jednostka pracy systemu zarzdzan przez system operacyjny. W skład procesu wchodz: - program; - dane - zawarto rejestrów, stosu; -

Bardziej szczegółowo

Biblioteki graficzne MPI - MPE

Biblioteki graficzne MPI - MPE Biblioteki graficzne MPI - MPE Michał Sajkowski Mirosław Kupczyk literatura [Chan1998] A. Chan, W. Gropp, E. Lusk, User s Guide formpe: Extensions to MPI Programs, ANL 1998. Web pages for MPI and MPE:

Bardziej szczegółowo

Łagodne wprowadzenie do Message Passing Interface (MPI)

Łagodne wprowadzenie do Message Passing Interface (MPI) Łagodne wprowadzenie do Message Passing Interface (MPI) Szymon Łukasik Zakład Automatyki PK szymonl@pk.edu.pl Szymon Łukasik, 8 listopada 2006 Łagodne wprowadzenie do MPI - p. 1/48 Czym jest MPI? Własności

Bardziej szczegółowo

Architektury systemów równoległych

Architektury systemów równoległych Architektury systemów równoległych 1 Architektury systemów z pamięcią wspólną Architektury procesorów Procesory wielordzeniowe Procesory graficzne Akceleratory Procesory hybrydowe Architektury systemów

Bardziej szczegółowo

Programowanie współbieżne... (6)

Programowanie współbieżne... (6) Programowanie współbieżne... (6) Andrzej Baran 2010/11 LINK: http://kft.umcs.lublin.pl/baran/prir/index.html Powtórzenie. Proste operacje MPI MPI_send, MPI_recv,...! Programowanie współbieżne... 2 Send-receive

Bardziej szczegółowo

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Programowanie wspóªbie»ne wiczenia 5 monitory cz. 1 Zadanie 1: Stolik dwuosobowy raz jeszcze W systemie dziaªa N par procesów. Procesy z pary s nierozró»nialne. Ka»dy proces cyklicznie wykonuje wªasnesprawy,

Bardziej szczegółowo

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Programowanie równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 23 października 2009 Spis treści Przedmowa...................................................

Bardziej szczegółowo

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation).

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation). Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation). 1. Programowanie zdarzeniowe Programowanie zdarzeniowe

Bardziej szczegółowo

Programowanie w modelu przesyłania komunikatów specyfikacja MPI, cd. Krzysztof Banaś Obliczenia równoległe 1

Programowanie w modelu przesyłania komunikatów specyfikacja MPI, cd. Krzysztof Banaś Obliczenia równoległe 1 Programowanie w modelu przesyłania komunikatów specyfikacja MPI, cd. Krzysztof Banaś Obliczenia równoległe 1 MPI dynamiczne zarządzanie procesami MPI 2 umożliwia dynamiczne zarządzanie procesami, choć

Bardziej szczegółowo

Programowanie współbieżne... (2)

Programowanie współbieżne... (2) Programowanie współbieżne... (2) Andrzej Baran 2010/11 LINK: http://kft.umcs.lublin.pl/baran/prir/index.html Prawo Amdahla - powtórka Wydajność E = S/n (na procesor). Stąd S = En E 1 f + 1 f n 1 fn+1 f

Bardziej szczegółowo

Wprowadzenie do MPI. Interdyscyplinarne Centrum Modelowania Matematycznego i Komputerowego Uniwersytet Warszawski http://www.icm.edu.

Wprowadzenie do MPI. Interdyscyplinarne Centrum Modelowania Matematycznego i Komputerowego Uniwersytet Warszawski http://www.icm.edu. Wprowadzenie do MPI Interdyscyplinarne Centrum Modelowania Matematycznego i Komputerowego Uniwersytet Warszawski http://www.icm.edu.pl Maciej Cytowski m.cytowski@icm.edu.pl Maciej Szpindler m.szpindler@icm.edu.pl

Bardziej szczegółowo

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2013/14 Znajdowanie maksimum w zbiorze

Bardziej szczegółowo

Programowanie w modelu przesyłania komunikatów specyfikacja MPI, cd. Krzysztof Banaś Obliczenia równoległe 1

Programowanie w modelu przesyłania komunikatów specyfikacja MPI, cd. Krzysztof Banaś Obliczenia równoległe 1 Programowanie w modelu przesyłania komunikatów specyfikacja MPI, cd. Krzysztof Banaś Obliczenia równoległe 1 Środowisko przesyłania komunikatów MPI Rodzaje procedur: blokujące nieblokujące Tryby przesyłania

Bardziej szczegółowo

Równoległość i współbieżność

Równoległość i współbieżność Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna

Bardziej szczegółowo

Równoległość i współbieżność

Równoległość i współbieżność Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna

Bardziej szczegółowo

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Metodologia programowania równoległego Przykłady podziałów zadania na podzadania: Podział ze względu na funkcje (functional

Bardziej szczegółowo

51. Metody komunikacji nieblokującej.

51. Metody komunikacji nieblokującej. 51. Metody komunikacji nieblokującej. Funkcje nieblokujace różnia sie od wersji blokujacych przedrostkiem I (immediate) w nazwie oraz jednym dodatkowym argumentem: request, który jest używany do sprawdzenia,

Bardziej szczegółowo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 12: Wstęp

Bardziej szczegółowo

stopie szaro ci piksela ( x, y)

stopie szaro ci piksela ( x, y) I. Wstp. Jednym z podstawowych zada analizy obrazu jest segmentacja. Jest to podział obrazu na obszary spełniajce pewne kryterium jednorodnoci. Jedn z najprostszych metod segmentacji obrazu jest progowanie.

Bardziej szczegółowo

Komputerowe Obliczenia Równoległe: Wstęp do OpenMP i MPI

Komputerowe Obliczenia Równoległe: Wstęp do OpenMP i MPI Komputerowe Obliczenia Równoległe: Wstęp do OpenMP i MPI Patryk Mach Uniwersytet Jagielloński, Instytut Fizyki im. Mariana Smoluchowskiego OpenMP (Open Multi Processing) zbiór dyrektyw kompilatora, funkcji

Bardziej szczegółowo

5. Model komunikujących się procesów, komunikaty

5. Model komunikujących się procesów, komunikaty Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć

Bardziej szczegółowo

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2018/19 Problem: znajdowanie

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: PROGRAMOWANIE WSPÓŁBIEŻNE I ROZPROSZONE I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE C1. Uzyskanie przez studentów wiedzy na temat architektur systemów równoległych i rozproszonych,

Bardziej szczegółowo

Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.

Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting. Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.. Oznaczenia i załoenia Oznaczenia G = - graf skierowany z funkcj wagi s wierzchołek ródłowy t wierzchołek

Bardziej szczegółowo

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010 Algorytmy równoległe Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka Znajdowanie maksimum w zbiorze n liczb węzły - maksimum liczb głębokość = 3 praca = 4++ = 7 (operacji) n - liczność

Bardziej szczegółowo

Programowanie współbieżne Wykład 12 MPI c.d. Rafał Skinderowicz

Programowanie współbieżne Wykład 12 MPI c.d. Rafał Skinderowicz Programowanie współbieżne MPI c.d. Rafał Skinderowicz Komunikacja grupowa Poprzednio rozważaliśmy komunikację między parami procesów synchroniczna (blokująca) np. MPI Recv, MPI Send asynchroniczna (nieblokująca)

Bardziej szczegółowo

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

Projektowanie i analiza zadaniowa interfejsu na przykładzie okna dialogowego.

Projektowanie i analiza zadaniowa interfejsu na przykładzie okna dialogowego. Projektowanie i analiza zadaniowa interfejsu na przykładzie okna dialogowego. Jerzy Grobelny Politechnika Wrocławska Projektowanie zadaniowe jest jednym z podstawowych podej do racjonalnego kształtowania

Bardziej szczegółowo

Metody Informatyczne w Budownictwie Metoda Elementów Skoczonych ZADANIE NR 1

Metody Informatyczne w Budownictwie Metoda Elementów Skoczonych ZADANIE NR 1 Metody Informatyczne w Budownictwie Metoda Elementów Skoczonych ZADANIE NR 1 Wyznaczy wektor sił i przemieszcze wzłowych dla układu elementów przedstawionego na rysunku poniej (rysunek nie jest w skali!).

Bardziej szczegółowo

Programowanie współbieżne... (12) Andrzej Baran 2010/11

Programowanie współbieżne... (12) Andrzej Baran 2010/11 Programowanie współbieżne... (12) Andrzej Baran 2010/11 LINK: http://kft.umcs.lublin.pl/baran/prir/index.html Dekompozycja danych. Wejście. rank 0 rank 1 rank 2 A B C A B C A B C indata indata indata wejście

Bardziej szczegółowo

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1 Literatura 1. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010, 2013 2. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 3. Designing

Bardziej szczegółowo

Obliczenia rozproszone z wykorzystaniem MPI

Obliczenia rozproszone z wykorzystaniem MPI Obliczenia rozproszone z wykorzystaniem Zarys wst u do podstaw :) Zak lad Metod Obliczeniowych Chemii UJ 8 sierpnia 2005 1 e konkretniej Jak szybko, i czemu tak wolno? 2 e szczegó lów 3 Dyspozytor Macierz

Bardziej szczegółowo

WYKŁAD 10. Wzorce projektowe czynnociowe Command Strategy

WYKŁAD 10. Wzorce projektowe czynnociowe Command Strategy WYKŁAD 10 Wzorce projektowe czynnociowe Command Strategy Behavioral Design Pattern: Command [obj] Kapsułkuje dania w postaci obiektu, co umoliwia parametryzowanie klientów rónymi daniami, kolejkowanie

Bardziej szczegółowo

Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W E, 2L PRZEWODNIK PO PRZEDMIOCIE

Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W E, 2L PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: PROGRAMOWANIE ROZPROSZONE I RÓWNOLEGŁE Distributed and parallel programming Kierunek: Forma studiów: Informatyka Stacjonarne Rodzaj przedmiotu: moduł specjalności obowiązkowy: Sieci komputerowe

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Temat: Algorytmy zachłanne

Temat: Algorytmy zachłanne Temat: Algorytmy zachłanne Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje si w danej chwili najkorzystniejsze. Wybiera zatem lokalnie optymaln moliwo w nadziei, e doprowadzi

Bardziej szczegółowo

Biblioteka PCJ do naukowych obliczeń równoległych

Biblioteka PCJ do naukowych obliczeń równoległych Biblioteka PCJ do naukowych obliczeń równoległych Zakład Obliczeń Równoległych i Rozproszonych Wydział Matematyki i Informatyki Uniwersytet Mikołaja Kopernika Chopina 12/18, 87-100 Toruń faramir@mat.umk.pl

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Zadanie 1: Bar Programowanie wspóªbie»ne wiczenia 6 monitory cz. 2 Napisz monitor Bar synchronizuj cy prac barmana obsªuguj cego klientów przy kolistym barze z N stoªkami. Ka»dy klient realizuje nast

Bardziej szczegółowo

Gramatyki regularne i automaty skoczone

Gramatyki regularne i automaty skoczone Gramatyki regularne i automaty skoczone Alfabet, jzyk, gramatyka - podstawowe pojcia Co to jest gramatyka regularna, co to jest automat skoczony? Gramatyka regularna Gramatyka bezkontekstowa Translacja

Bardziej szczegółowo

10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu

10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu Literatura 1. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 2. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010. 3. Designing

Bardziej szczegółowo

Programowanie współbieżne... (5)

Programowanie współbieżne... (5) Programowanie współbieżne... (5) Andrzej Baran 2010/11 LINK: http://kft.umcs.lublin.pl/baran/prir/index.html 6 FUNKCJI Proste programy MPI można pisać używając tylko 6 funkcji Programowanie współbieżne...

Bardziej szczegółowo

HPC na biurku. Wojciech De bski

HPC na biurku. Wojciech De bski na biurku Wojciech De bski 22.01.2015 - co to jest? High Performance Computing most generally refers to the practice of aggregating computing power in a way that delivers much higher performance than one

Bardziej szczegółowo

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury. Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury. Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje si w danej chwili

Bardziej szczegółowo

1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!!

1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!! Temat: Klasy typu sealed. Klasy abstrakcyjne. Deklaracja i implementacja interfejsu. Typ Object i operatory is oraz as. Czas ycia obiektu. Destruktory. 1. Klasa typu sealed Przykład 1 Klasa typu sealed

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Stawiajc krzyyk w odpowiedniej wartoci mona zapisa dowolnego binarnego reprezentanta liczby dziesitnej. 128 64 32 16 8 4 2 1 x x x x x

Stawiajc krzyyk w odpowiedniej wartoci mona zapisa dowolnego binarnego reprezentanta liczby dziesitnej. 128 64 32 16 8 4 2 1 x x x x x ADRESOWANIE IP, PODSIECI, MASKI ADRES IP Kady host w sieci TCP/IP jest identyfikowany przez logiczny adres IP. Unikalny adres IP jest wymagany dla kadego hosta i komponentu sieciowego, który komunikuje

Bardziej szczegółowo

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012 Projektowanie algorytmów równoległych Zbigniew Koza Wrocław 2012 Spis reści Zadniowo-kanałowy (task-channel) model algorytmów równoległych Projektowanie algorytmów równoległych metodą PACM Task-channel

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe.

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe. Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe. Oznaczenia G = V, E - graf bez wag, gdzie V - zbiór wierzchołków, E- zbiór krawdzi V = n - liczba wierzchołków grafu G E = m

Bardziej szczegółowo

Programowanie współbieżne WYKŁADY - CZ. 5EX. PRZYKŁAD. LICZBY PIERWSZE. Andrzej Baran

Programowanie współbieżne WYKŁADY - CZ. 5EX. PRZYKŁAD. LICZBY PIERWSZE. Andrzej Baran Programowanie współbieżne WYKŁADY - CZ. 5EX. PRZYKŁAD. LICZBY PIERWSZE. Andrzej Baran baran@kft.umcs.lublin.pl Liczby pierwsze I Program: pierwsze.f90 - znajdowanie liczb pierwszych w przedziale 2..n Metoda:

Bardziej szczegółowo

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika. Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika. 1. Pojcie struktury danych Nieformalnie Struktura danych (ang. data

Bardziej szczegółowo

Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne.

Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne. Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne. 1. Definicja problemu Wejcie: Graf spójny niezorientowany G =

Bardziej szczegółowo

Wprowadzenie do kompilatorów

Wprowadzenie do kompilatorów Wprowadzenie do kompilatorów Czy ja kiedykolwiek napisz jaki kompilator? Jakie zadania ma do wykonania kompilator? Czy jzyk formalny to rodzaj jzyka programowania? Co to jest UML?, Czy ja kiedykolwiek

Bardziej szczegółowo

WYKŁAD 9. Wzorce projektowe czynnociowe Observer Visitor

WYKŁAD 9. Wzorce projektowe czynnociowe Observer Visitor WYKŁAD 9 Wzorce projektowe czynnociowe Observer Visitor Behavioral Design Pattern: Observer [obj] Okrela relacj jeden-do-wielu midzy obiektami. Gdy jeden z obiektów zmienia stan, wszystkie obiekty zalene

Bardziej szczegółowo

Nowoczesne technologie przetwarzania informacji

Nowoczesne technologie przetwarzania informacji Projekt Nowe metody nauczania w matematyce Nr POKL.09.04.00-14-133/11 Nowoczesne technologie przetwarzania informacji Mgr Maciej Cytowski (ICM UW) Lekcja 2: Podstawowe mechanizmy programowania równoległego

Bardziej szczegółowo

61 Topologie wirtualne

61 Topologie wirtualne 61 Topologie wirtualne pozwalają opisać dystrybucję procesów w przestrzeni z uwzględnieniem struktury komunikowania się procesów aplikacji między sobą, umożliwiają łatwą odpowiedź na pytanie: kto jest

Bardziej szczegółowo

Systemy rozproszone. Państwowa Wyższa Szkoła Zawodowa w Chełmie. ** Instytut Fizyki Uniwersytet Marii Curie-Skłodowskiej w Lublinie

Systemy rozproszone. Państwowa Wyższa Szkoła Zawodowa w Chełmie. ** Instytut Fizyki Uniwersytet Marii Curie-Skłodowskiej w Lublinie Systemy rozproszone Rafał Ogrodowczyk *, Krzysztof Murawski **,*, Bartłomiej Bielecki * * Katedra Informatyki Państwowa Wyższa Szkoła Zawodowa w Chełmie ** Instytut Fizyki Uniwersytet Marii Curie-Skłodowskiej

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Bazy danych Podstawy teoretyczne

Bazy danych Podstawy teoretyczne Pojcia podstawowe Baza Danych jest to zbiór danych o okrelonej strukturze zapisany w nieulotnej pamici, mogcy zaspokoi potrzeby wielu u!ytkowników korzystajcych z niego w sposóbs selektywny w dogodnym

Bardziej szczegółowo

Rozszerzenia MPI-2 1

Rozszerzenia MPI-2 1 Rozszerzenia MPI-2 1 2 Dynamiczne tworzenie procesów Aplikacja MPI 1 jest statyczna z natury Liczba procesów określana jest przy starcie aplikacji i się nie zmienia. Gwarantuje to szybką komunikację procesów.

Bardziej szczegółowo

WYKŁAD 11. Wzorce projektowe czynnociowe Iterator TemplateMethod

WYKŁAD 11. Wzorce projektowe czynnociowe Iterator TemplateMethod WYKŁAD 11 Wzorce projektowe czynnociowe Iterator TemplateMethod Behavioral Design Pattern: Iterator [obj] Zapewnia sekwencyjny dostp do elementów agregatu bez ujawniania jego reprezentacji wewntrznej.

Bardziej szczegółowo

Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków.

Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków. Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków. 1. Para najmniej odległych punktów WP: Dany jest n - elementowy zbiór punktów

Bardziej szczegółowo

Wprowadzenie do MPI. Interdyscyplinarne Centrum Modelowania. Matematycznego i Komputerowego Uniwersytet Warszawski

Wprowadzenie do MPI. Interdyscyplinarne Centrum Modelowania. Matematycznego i Komputerowego Uniwersytet Warszawski Wprowadzenie do MPI Matematycznego i Komputerowego Uniwersytet Warszawski http:// Maciej Cytowski m.cytowski@icm.edu.pl Maciej Szpindler m.szpindler@icm.edu.pl 31.03.2010 Wprowadzenie do MPI 1 Podziękowania

Bardziej szczegółowo

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty. !"! " #$%& '()#$$ &%$! #$ %$ &%$& &$&! %&'" )$$! *$$&%$! +,- +-.! $ Celem wiczenia jest zapoznanie studenta ze strukturami: lista, stos, drzewo oraz ich implementacja w jzyku ANSI C. Zrozumienie działania

Bardziej szczegółowo

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie Cz ± II Podziaª pracy 1 Tablica sortuj ca Kolejka priorytetowa to struktura danych udost pniaj ca operacje wstawienia warto±ci i pobrania warto±ci minimalnej. Z kolejki liczb caªkowitych, za po±rednictwem

Bardziej szczegółowo

Multipro GbE. Testy RFC2544. Wszystko na jednej platformie

Multipro GbE. Testy RFC2544. Wszystko na jednej platformie Multipro GbE Testy RFC2544 Wszystko na jednej platformie Interlab Sp z o.o, ul.kosiarzy 37 paw.20, 02-953 Warszawa tel: (022) 840-81-70; fax: 022 651 83 71; mail: interlab@interlab.pl www.interlab.pl Wprowadzenie

Bardziej szczegółowo

Programowanie systemów z pamięcią wspólną specyfikacja OpenMP. Krzysztof Banaś Obliczenia równoległe 1

Programowanie systemów z pamięcią wspólną specyfikacja OpenMP. Krzysztof Banaś Obliczenia równoległe 1 Programowanie systemów z pamięcią wspólną specyfikacja OpenMP Krzysztof Banaś Obliczenia równoległe 1 OpenMP Przenośność oprogramowania Model SPMD Szczegółowe wersje (bindings) dla różnych języków programowania

Bardziej szczegółowo

Jak ujarzmić hydrę czyli programowanie równoległe w Javie. dr hab. Piotr Bała, prof. UW ICM Uniwersytet Warszawski

Jak ujarzmić hydrę czyli programowanie równoległe w Javie. dr hab. Piotr Bała, prof. UW ICM Uniwersytet Warszawski Jak ujarzmić hydrę czyli programowanie równoległe w Javie dr hab. Piotr Bała, prof. UW ICM Uniwersytet Warszawski Prawo Moore a Ekonomicznie optymalna liczba tranzystorów w układzie scalonym zwiększa się

Bardziej szczegółowo

zdefiniowanie kilku grup dyskusyjnych, z których chcemy odbiera informacje, dodawanie, usuwanie lub edycj wczeniej zdefiniowanych grup dyskusyjnych,

zdefiniowanie kilku grup dyskusyjnych, z których chcemy odbiera informacje, dodawanie, usuwanie lub edycj wczeniej zdefiniowanych grup dyskusyjnych, Wstp W nowoczesnym wiecie coraz istotniejsz rol odgrywa informacja i łatwy dostp do niej. Nie dziwi wic fakt, i nowoczesne telefony komórkowe to nie tylko urzdzenia do prowadzenia rozmów telefonicznych,

Bardziej szczegółowo

Programowanie współbieżne Wykład 2. Iwona Kochańska

Programowanie współbieżne Wykład 2. Iwona Kochańska Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas

Bardziej szczegółowo

Programowanie - wykład 4

Programowanie - wykład 4 Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include

Bardziej szczegółowo

Planowanie adresacji IP dla przedsibiorstwa.

Planowanie adresacji IP dla przedsibiorstwa. Planowanie adresacji IP dla przedsibiorstwa. Wstp Przy podejciu do planowania adresacji IP moemy spotka si z 2 głównymi przypadkami: planowanie za pomoc adresów sieci prywatnej przypadek, w którym jeeli

Bardziej szczegółowo