Dynamiczne zarzdzanie procesami

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

Download "Dynamiczne zarzdzanie procesami"

Transkrypt

1 Dynamiczne zarzdzanie procesami Michał Sajkowski

2 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

3 troch historii co nowego w MPI-2: równoległe we/wy zdalne operacje na pamici dynamiczne zarzdzanie procesami 3

4 dynamiczne zarzdzanie procesami trzecim głównym odstpstwem od modelu MPI-1 jest zdolno procesu MPI do: udziału w tworzeniu nowego procesu MPI ustanowienia komunikacji z procesem MPI, który został uruchomiony oddzielnie 4

5 dynamiczne zarzdzanie procesami główne problemy, na jakie trafiamy przy projektowaniu API dla dynamicznego zarzdzania procesami: utrzymanie prostoty i elastycznoci współdziałanie z systemem operacyjnym, zarzdc zasobów, i zarzdc procesów w złoonym rodowisku programowym unikanie warunków wycigu, które naraaj na szwank poprawno 5

6 dynamiczne zarzdzanie procesami kluczem do tej poprawnoci jest to, aby operacje dynamicznego zarzdzania procesami były kolektywne, zarówno midzy procesami tworzcymi nowe procesy, jak pomidzy nowo utworzonymi procesami otrzymane zbiory procesów s reprezentowane w interkomunikatorze 6

7 dynamiczne zarzdzanie procesami interkomunikator komunikator zawierajcy dwie grupy procesów zamiast jednej dwie rodziny operacji oparte na interkomunikatorach: tworzca nowe procesy, nazywa si rozmnaaniem (spawning) ustalajca komunikacj z ju istniejcymi programami MPI nazywa si łczeniem (connecting) 7

8 dynamiczne zarzdzanie procesami ta ostatnia pozwala aplikacjom na posiadanie struktury równoległy klient /równoległy serwer szczegóły dynamicznego zarzdzania procesami - rozdział 7 ksiki Using MPI-2 8

9 dynamiczne zarzdzanie procesami dodatkowe kwestie: rozszerzone operacje kolektywne, dla interkomunikatorów (analogiczne do operacji w MPI-1 dla intrakomunikatorów) obsługa C++ i Fortran90, Fortranu na dwóch poziomach: podstawowym i rozszerzonym mieszane programowanie w wielu jzykach zewntrzne interfejsy do bibliotek itp. wtki 9

10 dynamiczne zarzdzanie procesami MPI-1 nie pozwala na dynamiczne zarzdzanie procesami MPI-2 realizuje to za pomoc funkcji MPI_Comm_spawn, która jest kolektywn operacj na rozmnaajcych si procesach (zwanych parents, rodzicami) i równie kolektywna przy wywołaniach MPI_Init w procesach rozmnaanych (zwanych children, dziemi) 10

11 dynamiczne zarzdzanie procesami standard MPI-1 nic nie mówi o tym, jak uruchamiane s procesy start procesu wystpuje poza programem MPI, proces MPI wywołujempi_comm_size, aby si dowiedzie ile procesów uruchomiono, oraz MPI_Comm_rank, aby si dowiedzie, który to proces liczba procesów jest ustalona nie póniej ni wtedy, gdympi_init zwraca warto 11

12 dynamiczne zarzdzanie procesami uytkownicy MPI prosili MPI Forum, aby wróci do tej kwestii, z powodów: migracji uytkowników z PVM i ich przyzwyczaje przy zarzdzaniu procesami wanych klas aplikacji klient serwer i task farming jobs, wymagajcych dynamicznego zarzdzania zadaniami moliwoci pisania rodowiska oblicze równoległych w samym MPI 12

13 dynamiczne zarzdzanie procesami - agenda tworzenie nowych procesów - kontynuacja MPI_Comm_spawn komunikacja midzy grupami w interkomunikatorze, dwupunktowa (MPI-1) i kolektywna (MPI-2) łczenie dwóch programów MPI, korzystajc z przykładu programu obliczeniowego i wizualizacyjnego mieszane programowanie dyskusja procedur dynamicznego zarzdzania procesami 13

14 tworzenie nowych procesów podstawy MPI_Comm_spawn wprowadzono na poprzednim kursie przypomnijmy, e MPI_Comm_spawn tworzy interkomunikator zawierajcy jako dwie grupy procesy rozmnaajce (spawning processes) i procesy rozmnoone (spawned processes) 14

15 tworzenie nowych procesów zbadamy MPI_Comm_spawn szczegółowo, stosujc ponownie przykład mnoenia macierzy z rozdziału 3 pierwszego tomu Using MPI z 1999 roku pokazano ten program jako przykład paradygmatu master-slave zaadaptujemy go, uywajc zmiennej liczby procesów slave, o których uruchomieniu decyduje proces master 15

16 interkomunikatory dokonamy wpierw przegldu pojcia interkomunikatora interkomunikatory s mało widoczne w MPI-1, ale znaczce w MPI-2, szczególnie w zarzdzaniu procesami zwykły komunikator w MPI jest intrakomunikatorem, składa si z kontekstu i grupy procesów 16

17 interkomunikatory wyróniajc cech interkomunikatora jest to, e jest zwizany z dwoma grupami procesów, lokaln i zdaln, z punktu widzenia konkretnego procesu procesy s identyfikowane przez numer w grupie, ale komunikat nadany do procesu o danym numerze zawsze trafia do procesu w grupie zdalnej 17

18 interkomunikatory takie zachowanie si operacji dwupunktowych jest specyfikowane w MPI-1 MPI-1 nie specyfikuje zachowania operacji kolektywnych w interkomunikatorach, a MPI-2 to robi podobnie, jak w przypadku dwupunktowym, komunikacja zachodzi midzy dwoma grupami 18

19 interkomunikator na rysunku proces 0 z grupy lokalnej przesyła komunikat do procesu 1 w grupie zdalnej

20 przykład: mnoenie macierzy ten sam algorytm co w ksice Using MPI, z tym, e zamiast uruchamia wszystkie procesy poza programem, uruchamiamy jedynie proces nadrzdny master i pozwalamy mu, aby on uruchamiał procesy podległe slave za pomoc funkcji MPI_Comm_spawn 20

21 mnoenie macierzy oznacza to, e zasadnicz rónic midzy t wersj, a wersj poprzedni MPI-1, jest to, e proces master i procesy slave s oddzielnymi głównymi programami rozwamy pocztek kodu programu dla procesu master, uruchamiany poleceniem mpiexec n 1 master 21

22 mnoenie macierzy master cz.1! mnoenie macierzy z rozmnaaniem procesów slave PROGRAM main use mpi integer MAX_ROWS, MAX_COLS parameter (MAX_ROWS = 1000, MAX_COLS = 1000) double precision a(max_rows_,max_cols), b(max_cols), c(max_rows) double precision buffer(max_cols), ans integer slavecom integer ierr, status(mpi_status_size) integer i, j, numsent, sender, numslaves integer anstype, rows, cols 22

23 mnoenie macierzy master cz.1 call MPI_INIT(IERR)! master decyduje, ile procesów slave rozmnoy numslaves = 10 call MPI_COMM_SPAWN( slave, MPI_ARGV_NULL, numslaves, & MPI_INFO_NULL, 0, MPI_COMM_WORLD, &! master inicjuje i nastpnie rozsyła rows = 100 cols = 100! inicjalizuj a i b do 20 j = 1,cols b(j) = 1 do 10 i = 1,rows slavecomm, MPI_ERRCODES_IGNORE, ierr) 23

24 mnoenie macierzy master cz.1 10 continue 20 continue numsent = 0 a(i,j) = i! nadaj b do kadego procesu slave call MPI_BCAST(b, cols, MPI_DOUBLE_PRECISION, MPI_ROOT, & slavecomm, ierr) 24

25 mnoenie macierzy master cz.1 program ten mnoy macierzaprzez wektorbi pamita wynik wc równoległo wynika faktu, e iloczyn skalarny wierszy macierzy a przez wektor b odbywa si równolegle zakładamy, e jest wicej wierszy w macierzy a ni procesów, std kady proces wykonuje wiele iloczynów procesy nie pracuj z t sam szybkoci 25

26 mnoenie macierzy master cz.1 program master nadaje wiersze, jeden po drugim, do procesów slave, a kiedy proces slave zakoczy liczenie, przesyła wynik (iloczyn skalarny) do procesu master okrelamy liczb procesów slave dopiero, gdy proces master wystartuje, pokazujc działanie MPI_Comm_spawn i MPI_Bcast na interkomunikatorze nowe zmienne to interkomunikatorslavecomm, stworzony przez MPI_Comm_spawn, oraz zmienna numslaves, przechowujca liczb procesów slave 26

27 mnoenie macierzy master cz.1 program tego typu wykonuje pewien rodzaj oblicze, aby wyznaczy liczb procesów slave, które naley rozmnoy (spawn) aby to uproci, na razie zakładamy, e program decyduje aby stworzy dziesi procesów slave i ustawiamy numslaves na warto 10 procesy s tworzone funkcjmpi_comm_spawn : call MPI_COMM_SPAWN( slave, MPI_ARGV_NULL, numslaves, & MPI_INFO_NULL, 0, MPI_COMM_WORLD, & slavecomm, MPI_ERRCODES_IGNORE, ierr) 27

28 mnoenie macierzy master cz.1 call MPI_COMM_SPAWN( slave, MPI_ARGV_NULL, numslaves, & MPI_INFO_NULL, 0, MPI_COMM_WORLD, & slavecomm, MPI_ERRCODES_IGNORE, ierr) funkcja ta (w wersji Fortran) ma 9 argumentów, 6 wejciowych i 3 wyjciowe: pierwszy to plik wykonywalny, uruchamiany przez nowe procesy, drugi to tablica bdca lini polece dla pliku wykonywalnego, trzeci to liczba procesów slave, które mamy uruchomi 28

29 mnoenie macierzy master cz.1 call MPI_COMM_SPAWN( slave, MPI_ARGV_NULL, numslaves, & MPI_INFO_NULL, 0, MPI_COMM_WORLD, & slavecomm, MPI_ERRCODES_IGNORE, ierr) czwarty to informacja dodatkowa pity to process root, tutaj 0, bo jest tylko jeden proces master szósty to komunikator, na którym ta funkcja jest kolektywna, czyli MPI_COMM_WORLD 29

30 mnoenie macierzy master cz.1 call MPI_COMM_SPAWN( slave, MPI_ARGV_NULL, numslaves, & MPI_INFO_NULL, 0, MPI_COMM_WORLD, & slavecomm, MPI_ERRCODES_IGNORE, ierr) 3 argumenty wyjciowe to: siódmy to interkomunikator, tutaj slavecomm, zawierajcy proces master (w grupie lokalnej) i procesy slave (w grupie zdalnej) ósmy to wskazanie, e nie sprawdzamy pojedynczych kodów błdu dziewity to ogólny kod błdu zwracany przez funkcj, okrela czy funkcja jest sukcesem czy nie 30

31 operacje kolektywne w interkomunikatorze nastpnie proces master inicjuje macierzai wektor b i stosuje operacj kolektywn MPI_Bcast aby nadabdo procesów slave w MPI-1 było to niemoliwe, ale MPI-2 definiuje operacje kolektywne na interkomunikatorach, jak slavecomm rozgłaszanie jest realizowane przez proces root w grupie lokalnej do wszystkich procesów w grupie zdalnej, które w tym przypadku s procesami slave poniewa s dwie grupy, proces wskazuje siebie specjaln wartoci MPI_ROOT 31

32 operacje kolektywne w interkomunikatorze procesy odbierajce broadcast specyfikuj numer procesu root, tak jak by były w jednej grupie jeeli jest wicej ni jeden proces w grupie lokalnej, zawierajcej proces root, to te pozostałe procesy specyfikuj MPI_PROC_NULL jako warto root 32

33 operacje kolektywne w interkomunikatorze: rozgłaszanie 2 0 MPI_PROC_NULL 2 MPI_ROOT 2 1 MPI_PROC_NULL 2 3 MPI_PROC_NULL 2 33

34 komunikacja dwupunktowa w interkomunikatorze reszt kodu procesu master pokazano na kolejnych slajdach numery procesów s midzy0a numslaves-1, poniewa proces master je wskazuje w zdalnej grupie interkomunikatoraslavecomm, a nie jak w MPI-1 w MPI_COMM_WORLD 34

35 komunikacja dwupunktowa w interkomunikatorze proces master nadaje do wszystkich procesów slave wiersz, na którym maj działa, odbiera od nich odpowied, i przesyła do nich kolejne wiersze, a si wyczerpi nastpnie proces master nadaje komunikat z etykiet 0 do kadego procesu slave, aby wskaza, e obliczenia si skoczyły na koniec, proces master drukuje wektor c bdcy iloczynem a i b 35

36 mnoenie macierzy master cz.2! nadaj wiersz do kadego procesu slave;! etykietuj numerem wiersza do 40 i = 1,min(numslaves,rows) do 30 j = 1,cols buffer(j) = a(i,j) 30 continue call MPI_SEND(buffer, cols, MPI_DOUBLE_PRECISION, i-1, & i, slavecomm, ierr) numsent = numsent+1 40 continue 36

37 mnoenie macierzy master cz.2 do 70 i = 1,rows call MPI_RECV(ans, 1, MPI_DOUBLE_PRECISION, & sender = status(mpi_source) anstype = status(mpi_tag) c(anstype) if (numsent.lt. rows) then 50 continue do 50 j = 1,cols MPI_ANY_SOURCE, MPI_ANY_TAG, & slavecomm, status, ierr)! wiersz jest wartoci etykiety = ans! nadaj inny wiersz buffer(j) = a(numsent+1,j) call MPI_SEND(buffer, cols, MPI_DOUBLE_PRECISION, sender, & numsent+1, slavecomm, ierr) numsent = numsent+1 37

38 mnoenie macierzy master cz.2 else call MPI_SEND(buffer, 0,MPI_DOUBLE_PRECISION, sender, & 0, slavecomm, ierr) endif 70 continue! drukuj odpowied do 80 i = 1,rows print *, c( i, ) =, c(i) 80 continue call MPI_COMM_FREE(slavecomm, ierr) call MPI_FINALIZE(ierr) END PROGRAM main 38

39 proces slave kod procesu slave pokazano na kolejnych slajdach on jest bardzo podobny do czci slave w wersji dla MPI-1 now cech tutaj jest to, e po MPI_Init, procesy slave mog si porozumiewa ze sob, za pomoc ich MPI_COMM_WORLD, który zawiera wszystkie procesy rozmnoone tym samym MPI_Comm_spawn_call, ale nie z procesem master w tym przykładzie, procesy slave nie komunikuj si ze sob, komunikuj si jedynie z procesem master 39

40 proces slave aby uzyska komunikator zawierajcy proces master, procesy slave wykonuj: call MPI_COMM_GET_PARENT(parentcomm, ierr) to zwraca wparentcomm interkomunikator stworzony kolektywnym wywołaniem MPI_Comm_spawn w procesie master i MPI_Init w procesach slave lokalna grupa tego komunikatora (z punktu widzenia procesów slave), jest taka sama jak ich grupa MPI_COMM_WORLD 40

41 proces slave grupa zdalna jest zbiorem procesów, które kolektywnie wywołały MPI_Comm_spawn, która w tym przypadku zawiera jedynie proces master procesy slave wskazuj proces master jako numer 0 w parentcomm, podczas wymiany wierszy i iloczynów skalarnych kiedy procesy otrzymaj komunikat wszystko zrobione (tag=0), wtedy wywołuj MPI_Finalize i wychodz 41

42 mnoenie macierzy slave! Program slave dla mnoenia macierzy PROGRAM main use mpi integer MAX_COLS parameter (MAX_COLS = 1000) double precision b(max_cols) double precision buffer(max_cols), ans integer i, ierr, status(mpi_status_size) integer row, cols, rows, rank integer parentcom 42

43 mnoenie macierzy slave call MPI_INIT(ierr) call MPI_COMM_GET_PARENT(parentcomm, ierr)! proces master ma teraz numer 0 w zdalnej grupie! interkomunikatora rodzica.! procesy slave odbieraj b, nastpnie obliczaj! iloczyn a do odbioru komunikatu done rows = 100 cols = 100 call MPI_BCAST(b, cols, MPI_DOUBLE_PRECISION,0, & parentcomm, ierr) call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr) 43

44 mnoenie macierzy slave if (rank.ge. rows) go to 200! opu, jeeli jest wicej procesów ni prac 90 call MPI_RECV(buffer, cols, MPI_DOUBLE_PRECISION, 0, & MPI_ANY_TAG, parentcomm, status, ierr) if (status)mpi_tag).eq. 0) then go to 200 else row = status(mpi_tag) ans = 0.0 do 100 i = 1,cols ans = ans+buffer(i)*b(i) 100 continue call MPI_SEND(ans, 1, MPI_DOUBLE_PRECISION, 0, row, & parentcomm, ierr) go to 90 endif 44

45 mnoenie macierzy slave endif 200 continue call MPI_COMM_FREE(parentcomm, ierr) call MPI_FINALIZE(ierr) END PROGRAM main 45

46 znalezienie liczby dostpnych procesów MPI_UNIVERSE_SIZE daje aplikacji MPI informacje, ile procesów mona uruchomi MPI_UNIVERSE_SIZE jest atrybutem MPI_COMM_WORLD aplikacja wykorzystuje t informacj, ile dodatkowych procesów mona rozmnoy 46

47 znalezienie liczby dostpnych procesów modyfikacja czci master programu mnoenia macierzy w celu zastosowania MPI_UNIVERSE_SIZE do specyfikacji liczby dostpnych procesów wywołujemy MPI_Comm_get_attr, aby zobaczy, czy atrybut MPI_UNIVERSE_SIZE został ustawiony, jeeli tak, rozmnaamy o jeden proces slave mniej, ni jest ustawione (master te si liczy) 47

48 znalezienie liczby dostpnych procesów jeeli ten atrybut nie jest ustawiony (universe_size_flag = 0), stosujemy podejcie konserwatywne: tworzymy obiekt MPI_Info, stosujemy predefiniowany klucz soft i podajemy zakres procesów jak w argumencie soft w wywołaniu mpiexec MPI_Comm_spawn zwraca interkomunikator slavecomm, w którym zdalna grupa to rozmnoone procesy slave, rozmiar tej grupy okrela MPI_Comm_remote_size 48

49 modyfikacja programu master integer softinfo integer (kind=mpi_address_kind) universe_size logical universe_size_flag integer numslaves, i, errcodes(10) call MPI_COMM_GET_ATTR(MPI_COMM_WORLD, MPI_UNIVERSE_SIZE, & universe_size, universe_size_flag, ierr) if (universe_size_flag) then else call MPI_COMM_SPAWN( slave, MPI_ARGV_NULL, universe_size-1, & MPI_INFO_NULL, 0, MPI_COMM_WORLD, & slavecomm, errcodes, ierr) call MPI_INFO_CREATE(softinfo, ierr) call MPI_INFO_SET(softinfo, soft, 1:10, ierr) 49

50 modyfikacja programu master call MPI_COMM_SPAWN( slave, MPI_ARGV_NULL,10, & softinfo, 0, MPI_COMM_WORLD, & slavecomm, errcodes, ierr) call MPI_INFO_FREE(softinfo, ierr) endif call MPI_COMM_REMOTE_SIZE(slavecomm, numslaves, ierr) do i=1, 10 if (errcodes(i).ne. MPI_SUCCESS) then print *, slave, i, did not start endif enddo print *, number of slaves =, numslaves 50

51 kod dostpu do wartoci MPI_UNIVERSE_SIZE z C int *universe_size_ptr, universe_size_flag;... MPI_Comm_get_attr( MPI_COMM_WORLD,MPI_UNIVERSE_SIZE, &universe_size_ptr,&universe_size_flag ); if (universe_sixe_flag) { printf( Number of processes available is %d\n, *universe_size_ptr ); } 51

52 przekazywanie argumentów do procesów rozmnaanych w dotychczasowych przykładach stosowalimympi_argv_null aby wskaza, e procesy rozmnaane s wywołane bez adnych argumentów w linii polece 52

53 przekazywanie argumentów do procesów rozmnaanych czasem przekazywanie parametrów jest uyteczne na przykład w programie kopiowania równoległego zamiast MPI_Bcast do rozsyłania nazwy pliku wyjciowego do procesów slave, mona uruchomi procesy z argumentem zawierajcym nazw pliku wyjciowego 53

54 przekazywanie argumentów do procesów rozmnaanych w przypadku gdy chcemy przekaza oddzielne argumenty w linii polece, stosujemy inn funkcj: MPI_Comm_spawn_multiple na przykład dla uruchomienia procesów stosujcych róne pliki wykonywalne 54

55 przekazywanie argumentów do procesów rozmnaanych char *slave... slave_argv[0] = argv[3] slave_argv[1] = NULL; MPI_Comm_spawn( pcp_slave, slave_argv, num_hosts,hostinfo, 0, MPI_COMM_SELF, &pcpslaves, MPI_ERRCODES_IGNORE ); 55

56 łczenie procesów MPI pewne aplikacje w sposób naturalny s stworzone z wielu oddzielnych programów jednym z przykładów jest symulacja klimatu stworzona z dwóch programów: symulacji oceanu i symulacji atmosfery innym przykładem jest aplikacja, łczca program wizualizacji z programem symulacji rozpatrzymy teraz ten przykład 56

57 łczenie procesów MPI jedn z zalet tego podejcia jest to, e wybór programu wizualizacji moe by dokonany w czasie wykonywania programu jest to odmienne od rozmnaania programu wizualizacji przez program symulacji to równie działa, gdy złoonorodowiska uruchomieniowego utrudnia start programu wizualizacji poleceniem mpiexec albo wywołaniem MPI_Comm_spawn 57

58 łczenie procesów MPI wiele dyskusji dotyczcych standardu MPI na temat łczenia procesów MPI mówi o modelu klient serwer my preferujemy spojrzenie na model MPI jak na model peer-to-peer (równorzdny, kady z kadym), gdzie jeden proces akceptuje połczenia, a drugi proces da połczenia 58

59 wizualizacja oblicze w programie MPI uruchamiajc symulacj, warto wizualizowa postpy symulacji, za pomoc grafiki trójwymiarowej, do narysowania biecego stanu rozwizania na siatce stosowanej do aproksymacji problemu jako przykład połczenia dwóch programów MPI, rozszerzamy solver Poissona, o połczenie z programem wizualizacji 59

60 wizualizacja oblicze w programie MPI modyfikacja programu Poissona polega na: program tworzy port i akceptuje połczenie na tym porcie. Port jest nazw, któr inny program moe uy do połczenia si z programem, który ten port utworzył wynikiem tego jest interkomunikator łczcy te dwa programy w kadej iteracji, solver Poissona nadaje biece rozwizanie do programu wizualizacji, stosujc operacje komunikacyjne w interkomunikatorze 60

61 wizualizacja oblicze w programie MPI pierwsza wersja zakłada, e program wizualizacji jest pojedynczym procesem jest on faktycznie do prosty w kadej iteracji, program odbiera numer iteracji, za pomoc dwupunktowej operacji interkomunikatora, i sam siatk, za pomoc MPI_Gatherv w operacji kolektywnej interkomunikatora 61

62 wizualizacja oblicze w programie MPI kod do inicjacji argumentów potrzebnych przez MPI_Gatherv stosuje MPI_Gather do odbioru danych, które kady proces w serwerze nadaje do tego programu rysowanie jest realizowane przez program DrawMesh funkcja MPI_Comm_connect ustala połczenie z innymi programami 62

63 wizualizacja oblicze w programie MPI poniewa decydujemy, aby program wizualizacji był dołczony do programu obliczeniowego, to program wizualizacji staje si klientem programu obliczeniowego argumentami wejciowymi wywołania funkcji MPI_Comm_connect s: nazwa portu, warto info, numer procesu wiodcego albo procesu root, oraz intrakomunikator 63

64 wizualizacja oblicze w programie MPI program wizualizacji aktualizuje dane przy kadej iteracji i rysuje z nich wykresy rozszerzeniem tego programu mogło by by uruchomienie tego programu w oddzielnym wtku, co pozwoliło by obraca i skalowa wykresy i współdziała z danymi 64

65 program wizualizacji #include mpi.h #define MAX_PROCS 128 #define MAX_MESH 512*512 int main( int argc, char *argv[] ) { MPI_Comm server; int it, i, nprocs,rcounts[max_procs], rdispls[max_procs]; double mesh[max_mesh]; char port_name[mpi_max_port_name]; MPI_Init( 0, 0 ); 65

66 program wizualizacji gets( port_name ); /* zakładamy tylko jeden proces w MPI_COMM_WORLD */ MPI_Comm_connect( port_name, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &server ); MPI_Comm_remote_size( server, &nprocs ); /* pobierz liczb wartoci danych z kadego procesu */ MPI_Gather( MPI_BOTTOM, 0, MPI_DATATYPE_NULL, rcounts, 1, MPI_INT, MPI_ROOT, server ); /* oblicz przesunicie siatki */ rdispls[0] = 0; for (i=0; i<nprocs-1; i++) rdispls[i+1] = rdispls[i] + rcounts[i]; 66

67 program wizualizacji } while (1) { MPI_Recv( &it, 1, MPI_INT, 0, 0, server, MPI_STATUS_IGNORE ); if (it < 0) break; MPI_Gatherv( MPI_BOTTOM, 0, MPI_DATATYPE_NULL, mesh, rcounts, rdispls, MPI_DOUBLE, MPI_ROOT, server ); DrawMesh( mesh ); } MPI_Comm_disconnect( &server ); MPI_Finalize(); return 0; 67

68 akceptacja połcze z innych programów musimy zmodyfikowa program obliczajcy aproksymacje problemu Poissona, aby akceptował połczenie z programu wizualizacji i nadawał do niego dane do wizualizacji (program obliczajcy aproksymacje jest w Fortranie, program wizualizacji jest w C) oryginalny program jest niezmieniony zmiany s dodatkiem do tego programu 68

69 akceptacja połcze z innych programów zmiany obejmuj: stworzenie portu do którego łczy si program klienta, w tym celu wywołujemy MPI_OPEN_PORT, który podaje numer portu (ten port jest czytany przez instrukcjgets w programie wizualizacji) kiedy port jest otwarty, program pozwala dołczy si do niego innemu programowi MPI przez wywołanie MPI_COMM_ACCEPT 69

70 akceptacja połcze z innych programów rodkowa cz kodu nadaje dane do procesu klienta, rozpoczynajc od informacji o dekompozycji danych w procesie obliczeniowym, kontynuujc z licznikiem iteracji i biecymi wynikami w ptli iteracji te operacje komunikacji odpowiadaj wywołaniom komunikacji w programie wizualizacji (kliencie) 70

71 akceptacja połcze z innych programów ostatnia cz programu zamyka port i odłcza si od klienta wywołujc kolejno: MPI_CLOSE_PORT i MPI_COMM_DISCONNECT ostatnie wywołanie oznacza, e zakoczyła si cała komunikacja na komunikatorze po zamkniciu portu, nazwa portu zwracana przez MPI_OPEN_PORT jest niewana 71

72 modyfikacja przykładu Poisson a modyfikacja przykładu Poisson a pozwalajca akceptowa połczenia od programu wizualizacji i nadawa dane do niego 72

73 modyfikacja przykładu Poisson a character*(mpi_max_port_name) port_name integer client... if (myid. eq. 0) then call MPI_OPEN_PORT( MPI_INFO_NULL, port_name, ierr) print *, port_name endif call MPI_COMM_ACCEPT( port_name, MPI_INFO_NULL, 0, & MPI_COMM_WORLD, client, ierr );! nadaj informacj potrzebn do nadania siatki call MPI_GATHER( mesh_size, 1, MPI_INTEGER, & MPI_BOTTOM, 0, MPI_DATATYPE_NULL, & 0, client, ierr ) 73

74 ... modyfikacja przykładu Poisson a! Dla kadej iteracji, nadaj lokaln cz siatki if (myid.eq. 0) then call MPI_SEND( it, 1, MPI_INTEGER, 0, 0, client, ierr ) endif call MPI_GATHERV( mesh, mesh_size, MPI_DOUBLE_PRECISION, & MPI_BOTTOM, 0, 0, & MPI_DATATYPE_NULL< 0, client, ierr )... 74

75 modyfikacja przykładu Poisson a! Odłcz od klienta przed wyjciem if (myid.eq. 0) then call MPI_CLOSE_PORT( port_name, ierr) endif call MPI_COMM_DISCONNECT( client, ierr) call MPI_FINALIZE( ierr ) 75

76 porównanie z gniazdami procedury MPI łczenia dwóch grup procesów odpowiadaj prostemu modelowi znanemu z gniazd Unixa podobiestwa wystpuj midzy: MPI_OPEN_PORT procedury socket, bind i listen w gniazdach MPI_COMM_ACCEPT procedura accept MPI_COMM_CONNECT procedury socket i connect 76

77 porównanie z gniazdami rónice wystpuj midzy: interfejs gniazda ustala połczenie midzy dwoma procesami, a interfejs MPI łczy dwie grupy procesów Forum MPI preferuje si uywanie wtków oraz blokujcych wersji gniazd inne cechy interfejsu gniazda, obejmujce n.p. sterowanie czasami oczekiwania, mona osign w MPI za pomoc pewnych zabiegów implementacyjnych 77

78 przesyłanie danych midzy grupami procesów jeeli dane s wielkie, program wizualizacji powinien by równoległy, np. wersja MPI programu POV-RAY nadajemy wtedy struktur danych, która jest rozdzielana w jeden sposób na jednej grupie procesów, a w inny na drugiej grupie procesów rozwamy dwie odmienne dekompozycje, gdzie procesy z lewej nadaj do procesów po prawej 78

79 przesyłanie danych midzy grupami procesów transfer danych midzy programem symulacji (4 procesy) a programem wizualizacji (3 procesy) P3 P2 P1 P P2 P1 P0 siatka w sekcji obliczeniowej siatka w sekcji wizualizacyjnej 79

80 przesyłanie danych midzy grupami procesów linie cigłe wskazuj dekompozycj siatki midzy procesy, linie przerywane wskazuj podział siatki za pomoc drugiej grupy procesów, strzałki wskazuj transfery P3 P2 P1 P P2 P1 P0 siatka w sekcji obliczeniowej siatka w sekcji wizualizacyjnej 80

81 przesyłanie danych midzy grupami procesów procedura MPI_Alltoallv jest elastyczniejsz wersj procedury MPI_Alltoall kolektywna procedura w interkomunikatorze kady proces w jednej grupie nadaje róne dane do kadego innego procesu w innej grupie u nas tak nie jest, nie kady proces nadaje do kadego, tam gdzie nie ma danych do nadania ustawiamy sendcounts = 0 81

82 przesyłanie danych midzy grupami procesów kolejny program oblicza argumenty sendcounts i sdispls dla MPI_Alltoallv, gdzie proces wywołujcy ma wiersze s do e w siatce, a dekompozycja na serwerze wizualizacji jest podany przez tablicm, gdzie m(i) jest liczb wierszy w procesie i MPI_Alltoallv jest uyteczne, gdy grafika jest na stacjach graficznych, a obliczenia na zdalnym superkomputerze 82

83 r_s = 1 displ = 0 obliczenie argumentów MPI_Alltoallv do i=0, viz_numporcs-1 if (s.ge. r_s + m(i)) then sendcounts(i) = 0 sdispls(i) = 0 elseif (e.lt. r_s) then sendcounts(i) = 0 sdispls(i) = 0 83

84 enddo else endif obliczenie argumentów MPI_Alltoallv sendcounts(i) = min( e s + 1, r_s + m(i) s) * nx sdispls(i) displ r_s = r_s + m(i) = displ = displ + sencounts(i) 84

85 publikacja nazwy portu we wczeniejszym przykładzie, zastosowano instrukcjprint aby umieci nazw portu na standardowym wyjciu, a instrukcj gets aby odczyta t nazw na standardowym wejciu jest to całkowicie ogólne, ale troch niezgrabne print *, port_name publikuje nazw portu, podobnie gets( port_name) powoduje, e klient szuka numeru portu 85

86 publikacja nazwy portu alternatyw do print i gets w MPI-2 jest usługa nazw (name service) program wybiera prywatn nazw zwan nazw usługi nazwa portu jest zwizana z nazw usługi za pomoc procedury MPI_Publish-name t asocjacj usuwa si poprzez MPI_Unpublish_name 86

87 publikacja nazwy portu proces poszukujcy danego portu przekazuje nazw usługi do MPI_Lookup_name pokaemy teraz zmiany w kodzie programu wizualizacji i symulacji aby zezwoli im na tak publikacj nazw publikacja ma pewne ograniczenia: nazw usługi wybiera programista, std dwóch moe wybra t sam nazw usługi w dwóch rónych aplikacjach, rozwizaniem moe by zcentralizowana rejestracja nazw albo dodanie do nazwy usługi unikalnego identyfikatora uytkownika 87

88 publikacja nazwy portu w programie wizualizacji: MPI_Lookup_name( Poisson, MPI_INFO_NULL, port_name ); MPI_Comm_connect( port_name, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &server); 88

89 publikacja nazwy portu w programie symulacji (przykład Poissona): character*(mpi_max_port_name) port_name integer client... if (myid.eq. 0) then endif call MPI_OPEN_PORT( MPI_INFO_NULL, port_name, ierr ) call MPI_PUBLISH_NAME( Poisson, MPI_INFO_NULL, & port_name, ierr ) call MPI_COMM_ACCEPT( port_name, MPI_INFO_NULL, 0, & MPI_COMM_WORLD, client, ierr ); 89

90 publikacja nazwy portu w programie symulacji (przykład Poissona):... if (myid.eq. 0) then call MPI_UNPUBLISH_NAME( Poisson, MPI_INFO_NULL, & port_name, ierr ) call MPI_CLOSE_PORT( port_name, ierr ) 90

91 cele dynamicznego zarzdzania procesami przenono (aplikacje uruchamiane dla rónych systemów szeregowanie zada i zarzdzanie procesami, jeden proces na wzeł, zbiór procesów niezmienny, zmiana wymaga operacji kolektywnych) determinizm (zbiór procesów niezmienny) skalowalno i efektywno (operacje kolektywne) 91

92 czego MPI nie standaryzuje? pewne cechy zalene od implementacji MPI nie standaryzuje si: zarzdcy zadaniami interfejsu uruchomienia procesu 92

93 podsumowanie omówilimy tutaj podstawowe kwestie dotyczce dynamicznego zarzdzania procesami oczywicie temat stosowania MPI-2 nie został w pełni wyczerpany oddzielnego potraktowania wymaga stosowanie MPI z wtkami 93

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 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

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

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

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

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

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

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. 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 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

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Bash i algorytmy. Elwira Wachowicz. 20 lutego Bash i algorytmy Elwira Wachowicz elwira@ifd.uni.wroc.pl 20 lutego 2012 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Bash i algorytmy 20 lutego 2012 1 / 16 Inne przydatne polecenia Polecenie Dziaªanie Przykªad

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

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

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

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

... 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

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

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

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

3. Instalator rozpocznie proces instalacji

3. Instalator rozpocznie proces instalacji Uwaga! Podana instrukcja instalacji została przygotowana w oparciu o pliki instalacyjne SQL 2005 Express pobrany ze strony Microsoftu oraz oddzielny plik Service Pack 2 dedykowany pod SQL Express równie

Bardziej szczegółowo

Spis treci. Dzie 1. I Wprowadzenie (wersja 0911) II Dostp do danych biecych specyfikacja OPC Data Access (wersja 0911)

Spis treci. Dzie 1. I Wprowadzenie (wersja 0911) II Dostp do danych biecych specyfikacja OPC Data Access (wersja 0911) I Wprowadzenie (wersja 0911) Kurs OPC Integracja i Diagnostyka Spis treci Dzie 1 I-3 O czym bdziemy mówi? I-4 Typowe sytuacje I-5 Klasyczne podejcie do komunikacji z urzdzeniami automatyki I-6 Cechy podejcia

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

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

obsług dowolnego typu formularzy (np. formularzy ankietowych), pobieranie wzorców formularzy z serwera centralnego,

obsług dowolnego typu formularzy (np. formularzy ankietowych), pobieranie wzorców formularzy z serwera centralnego, Wstp GeForms to program przeznaczony na telefony komórkowe (tzw. midlet) z obsług Javy (J2ME) umoliwiajcy wprowadzanie danych według rónorodnych wzorców. Wzory formularzy s pobierane z serwera centralnego

Bardziej szczegółowo

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) III RPC Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) 1. Koncepcja Aplikacja wywołanie procedury parametry wyniki wykonanie procedury wynik komputer klienta komputer serwera Zaletą takiego

Bardziej szczegółowo

Instrukcja obsługi dodatku InsERT GT Smart Documents

Instrukcja obsługi dodatku InsERT GT Smart Documents Instrukcja obsługi dodatku InsERT GT Smart Documents InsERT, grudzie 2003 http://www.insert.com.pl/office2003 InsERT GT Smart Documents to przygotowany przez firm InsERT specjalny dodatek, umoliwiajcy

Bardziej szczegółowo

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM. WYKŁAD : Teoria NP-zupełnoci. Problem decyzyjny naley do klasy P (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM. (przynaleno ta jest zachowana równie dla

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

Tworzenie aplikacji rozproszonej w Sun RPC

Tworzenie aplikacji rozproszonej w Sun RPC Tworzenie aplikacji rozproszonej w Sun RPC Budowa aplikacji realizowana jest w następujących krokach: Tworzenie interfejsu serwera w języku opisu interfejsu RPCGEN Tworzenie: namiastki serwera namiastki

Bardziej szczegółowo

Proces tworzenia programu:

Proces tworzenia programu: Temat 1 Pojcia: algorytm, program, kompilacja i wykonanie programu. Proste typy danych i deklaracja zmiennych typu prostego. Instrukcja przypisania. Operacje wejcia/wyjcia. Przykłady prostych programów

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

Ł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

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

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1 Zdalne wywołanie procedur Krzysztof Banaś Systemy rozproszone 1 RPC Komunikacja za pomocą gniazd jest wydajna, gdyż korzystamy z funkcji systemowych niewygodna, gdyż musimy wyrażać ją za pomocą jawnego

Bardziej szczegółowo

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1 Architektury systemów rozproszonych LABORATORIUM Ćwiczenie 1 Temat: Aplikacja klient-serwer - implementacja w środowisku QT Creator. Przykładowy projekt aplikacji typu klient - serwer został udostępniony

Bardziej szczegółowo

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD) Plan wykładu Bazy danych Wykład 2: Diagramy zwizków encji (ERD) Diagramy zwizków encji elementy ERD licznoci zwizków podklasy klucze zbiory słabych encji Małgorzata Krtowska Katedra Oprogramowania e-mail:

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

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 Środowisko przesyłania komunikatów MPI Rodzaje procedur: blokujące nieblokujące Tryby przesyłania

Bardziej szczegółowo

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD) Plan wykładu Bazy danych Wykład 2: Diagramy zwizków encji (ERD) Diagramy zwizków encji elementy ERD licznoci zwizków podklasy klucze zbiory słabych encji Małgorzata Krtowska Katedra Oprogramowania e-mail:

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

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

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych

Bardziej szczegółowo

Projektowanie bezpiecze stwa sieci

Projektowanie bezpiecze stwa sieci Laboratorium 5. Projektowanie bezpieczestwa sieci Temat: Instalacja i konfiguracja serwera VPN. 1. Przed instalacj odpowiednich ról serwera, na maszynie wirtualnej serwera musimy przygotowa dwie karty

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

Klient-Serwer Komunikacja przy pomocy gniazd

Klient-Serwer Komunikacja przy pomocy gniazd II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu

Bardziej szczegółowo

Klonowanie MAC adresu oraz TTL

Klonowanie MAC adresu oraz TTL 1. Co to jest MAC adres? Klonowanie MAC adresu oraz TTL Adres MAC (Media Access Control) to unikalny adres (numer seryjny) kadego urzdzenia sieciowego (jak np. karta sieciowa). Kady MAC adres ma długo

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 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

Układy VLSI Bramki 1.0

Układy VLSI Bramki 1.0 Spis treści: 1. Wstęp... 2 2. Opis edytora schematów... 2 2.1 Dodawanie bramek do schematu:... 3 2.2 Łączenie bramek... 3 2.3 Usuwanie bramek... 3 2.4 Usuwanie pojedynczych połączeń... 4 2.5 Dodawanie

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Inżynierii Elektrycznej i Komputerowej Politechnika Krakowska programowanie usług sieciowych Dziedzina Unix laboratorium: 06 Kraków, 2014 06. Programowanie Usług Sieciowych

Bardziej szczegółowo

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1 Zdalne wywoływanie procedur Zagadnienia projektowe Zagadnienia realizacyjne main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status)... int zabij_proces (int

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

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC Zdalne wywoływanie procedur Zagadnienia projektowe Zagadnienia realizacyjne main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) }... int zabij_proces

Bardziej szczegółowo

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC Zdalne wywoływanie procedur Zagadnienia projektowe Zagadnienia realizacyjne main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status)... int zabij_proces (int

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

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

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

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

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje

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

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 TEMAT: Programowanie w języku C/C++: instrukcje iteracyjne for, while, do while Ogólna postać instrukcji for for (wyr1; wyr2; wyr3) Instrukcja for twory pętlę działającą

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

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

Wstp. Warto przepływu to

Wstp. Warto przepływu to 177 Maksymalny przepływ Załoenia: sie przepływow (np. przepływ cieczy, prdu, danych w sieci itp.) bdziemy modelowa za pomoc grafów skierowanych łuki grafu odpowiadaj kanałom wierzchołki to miejsca połcze

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

SUPLEMENT SM-BOSS WERSJA 6.15

SUPLEMENT SM-BOSS WERSJA 6.15 SUPLEMENT SM-BOSS WERSJA 6.15 Spis treci Wstp...2 Pierwsza czynno...3 Szybka zmiana stawek VAT, nazwy i PKWiU dla produktów...3 Zamiana PKWiU w tabeli PKWiU oraz w Kartotece Produktów...4 VAT na fakturach

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

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

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Zdalne wywoływanie procedur RPC 27. października Dariusz Wawrzyniak (IIPP) 1

Zdalne wywoływanie procedur RPC 27. października Dariusz Wawrzyniak (IIPP) 1 Zagadnienia projektowe Zagadnienia realizacyjne main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status)... int zabij proces (int pid){ int stat; stat = kill(pid,

Bardziej szczegółowo

Przegldanie stron wymaga odpowiedniej mikroprzegldarki w urzdzeniu mobilnym lub stosownego emulatora.

Przegldanie stron wymaga odpowiedniej mikroprzegldarki w urzdzeniu mobilnym lub stosownego emulatora. I. Temat wiczenia Podstawy tworzenia stron WAP II. Wymagania Podstawowe wiadomoci z technologii Internetowych. III. wiczenie 1. Wprowadzenie WAP (ang. Wireless Application Protocol) - to protokół umoliwiajcy

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

Zdalne wywoływanie procedur RPC 27. października 2010

Zdalne wywoływanie procedur RPC 27. października 2010 Zagadnienia projektowe Zagadnienia realizacyjne main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) }... int zabij_ proces (int pid){ int stat; stat

Bardziej szczegółowo

Instalacja programu Sprzeda

Instalacja programu Sprzeda Instalacja programu Sprzeda 1. Aby zainstalowa program Sprzeda w wersji 2.10, na serwerze lub komputerze, na którym przechowywane bd dane programu, pozamykaj wszystkie działajce programy i uruchom plik

Bardziej szczegółowo

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania 1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja nie ma parametru i zwraca wartość na zewnątrz. nie ma parametru i nie zwraca wartości na zewnątrz. ma parametr o nazwie void i zwraca

Bardziej szczegółowo

Wska¹niki, tablice dynamiczne wielowymiarowe

Wska¹niki, tablice dynamiczne wielowymiarowe Rozdziaª 11 Wska¹niki, tablice dynamiczne wielowymiarowe 11.1 Wst p Identycznie, jak w przypadku tablic statycznych, tablica dynamiczna mo»e by tablic jedno-, dwu-, trójitd. wymiarow. Tablica dynamiczna

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

Struktury. Przykład W8_1

Struktury. Przykład W8_1 Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla

Bardziej szczegółowo

System midzybankowej informacji gospodarczej Dokumenty Zastrzeone MIG DZ ver. 2.0. Aplikacja WWW ver. 2.1 Instrukcja Obsługi

System midzybankowej informacji gospodarczej Dokumenty Zastrzeone MIG DZ ver. 2.0. Aplikacja WWW ver. 2.1 Instrukcja Obsługi System midzybankowej informacji gospodarczej Dokumenty Zastrzeone MIG DZ ver. 2.0. Aplikacja WWW ver. 2.1 Instrukcja Obsługi 1.Wymagania techniczne 1.1. Wymagania sprztowe - minimalne : komputer PC Intel

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

Studium przypadku Case Study CCNA2-ROUTING

Studium przypadku Case Study CCNA2-ROUTING Na podstawie oryginału CISCO, przygotował: mgr in. Jarosław Szybiski Studium przypadku Case Study CCNA2-ROUTING Ogólne załoenia dla projektu Przegld i cele Podczas tego wiczenia uczestnicy wykonaj zadanie

Bardziej szczegółowo

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Programowanie w C++ Wykład 5 Katarzyna Grzelak 26 marca 2018 9 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Pojęcia z poprzedniego wykładu Podział programu na funkcje podział na niezależne

Bardziej szczegółowo

POZNA SUPERCOMPUTING AND NETWORKING. Rozszerzenia standardu MPI: MPI-2

POZNA SUPERCOMPUTING AND NETWORKING. Rozszerzenia standardu MPI: MPI-2 Rozszerzenia standardu MPI: MPI-2 literatura wykład opracowany na podstawie: W. Gropp, E. Lusk, R. Thakur, Using MPI-2, The MIT Press 1999 R. Thakur, Introduction to parallel I/O and MPI-IO, ANL 2 agenda

Bardziej szczegółowo

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : class nazwa_klasy prywatne dane i funkcje public: publiczne dane i funkcje lista_obiektów;

Bardziej szczegółowo

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych. Plan wykładu azy danych Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych. Dokoczenie SQL Zalenoci wielowartociowe zwarta posta normalna Dekompozycja do 4NF Przykład sprowadzanie do

Bardziej szczegółowo

Autorzy: Kraków, stycze 2007 Łukasz Dziewanowski Filip Haftek (studenci AGH III roku kierunku Automatyka i Robotyka)

Autorzy: Kraków, stycze 2007 Łukasz Dziewanowski Filip Haftek (studenci AGH III roku kierunku Automatyka i Robotyka) Autorzy: Kraków, stycze 2007 Łukasz Dziewanowski Filip Haftek (studenci AGH III roku kierunku Automatyka i Robotyka) PROGRAM DO OBSŁUGI TELEFONU KOMÓRKOWEGO I. Instalacja: MOLIWOCI POŁCZENIA TELEFONU Z

Bardziej szczegółowo

Instalacja programu Sprzeda z motorem. bazy danych Pervasive V8

Instalacja programu Sprzeda z motorem. bazy danych Pervasive V8 Instalacja programu Sprzeda z motorem bazy danych Pervasive V8 1. Z katalogu instalacyjnego programu Pervasive uruchom plik setup.exe. Program instalacyjny w spakowanej wersji jest dostpny na naszym FTP

Bardziej szczegółowo

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować

Bardziej szczegółowo

Projektowanie algorytmów rekurencyjnych

Projektowanie algorytmów rekurencyjnych C9 Projektowanie algorytmów rekurencyjnych wiczenie 1. Przeanalizowa działanie poniszego algorytmu dla parametru wejciowego n = 4 (rysunek 9.1): n i i

Bardziej szczegółowo

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal Instrukcja wyboru, pętle 2 wykład. Podstawy programowania - Paskal Tematy Instrukcja wyboru jeden z wielu wariantów: case Pętle while repeat for Instrukcje sterowania pętli break continue goto Instrukcja

Bardziej szczegółowo

Aplikacja Sieciowa wątki po stronie klienta

Aplikacja Sieciowa wątki po stronie klienta Aplikacja Sieciowa wątki po stronie klienta Na ostatnich zajęciach zajmowaliśmy się komunikacją pomiędzy klientem a serwerem. Wynikiem naszej pracy był program klienta, który za pomocą serwera mógł się

Bardziej szczegółowo

Optymalizacja komunikacji w systemach rozproszonych i równoległych

Optymalizacja komunikacji w systemach rozproszonych i równoległych Optymalizacja komunikacji w systemach rozproszonych i równoległych Szkolenie PCSS, 16.12.2001 literatura W. Gropp, E. Lusk, An Introduction to MPI, ANL P.S. Pacheco, A User s Guide to MPI, 1998 Ian Foster,

Bardziej szczegółowo

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia 1 Cel laboratoriów: Specyfikacja wymagań, zdefiniowanych w ramach laboratorium 2 (wg instrukcji 2),

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

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

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

WYKŁAD 4 PLAN WYKŁADU. Sieci neuronowe: Algorytmy uczenia & Dalsze zastosowania. Metody uczenia sieci: Zastosowania

WYKŁAD 4 PLAN WYKŁADU. Sieci neuronowe: Algorytmy uczenia & Dalsze zastosowania. Metody uczenia sieci: Zastosowania WYKŁAD 4 Sieci neuronowe: Algorytmy uczenia & Dalsze zastosowania PLAN WYKŁADU Metody uczenia sieci: Uczenie perceptronu Propagacja wsteczna Zastosowania Sterowanie (powtórzenie) Kompresja obrazu Rozpoznawanie

Bardziej szczegółowo

Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy:

Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy: wiczenie 2 Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Cel wiczenia: Zapoznanie si ze sposobami konstruowania tabel, powiza pomidzy tabelami oraz metodami manipulowania

Bardziej szczegółowo