Úvod do MPI. Úvod do MPI Operace send a recieve Blokující a neblokující posílání zpráv Blokující posílání zpráv Neblokující posílání zpráv
|
|
- Oldřich Bárta
- před 6 lety
- Počet zobrazení:
Transkript
1 Úvod do MPI Úvod do MPI Operace send a recieve Blokující a neblokující posílání zpráv Blokující posílání zpráv Neblokující posílání zpráv Komunikační operace All-to-all broadcast/all-to-all reduction All-reduce a Prefix-sum Scatter/Gather All-to-all personalized communication Circular shift Programování s MPI
2 Úvod do MPI Programování architektur založených na posílání zpráv: výpočet se skládá ze skupiny procesů běžících na jednotlivých procesorech synchronizace probíhá pomocí posílání zpráv to je vhodné pouze pro nepříliš úzce synchronní výpočty
3 Standard MPI Standard pro posílání zpráv - MPI = Message Passing Interface Dostupné implementace OpenMPI - LAM-MPI - MPICH - Intel, HP,... Zdroje na internetu: Wikipedia
4 Základ kódu pro MPI 1 # include <mpi. h> 2 3 i n t main ( i n t argc, char argv [ ] ) 4 { 5 M P I _ I n i t ( argc, argv ) ; MPI_Finalize ( ) ; 10 } Funkce MPI_Init a MPI_Finalize musí být volány právě jednou a všemi procesy. Vrácená hodnota by měla být MPI_SUCCES.
5 Komunikační skupiny Komunikační skupiny určují, které procesy se budou účastnit zvolené operace. Jde o tzv. COMMUNICATORS s typem MPI_Comm. Všechny běžící procesy jsou obsaženy ve skupině MPI_COMM_WORLD.
6 Informace o procesech Počet procesů (size) v dané skupině lze zjistit pomocí: 1 i n t MPI_Comm_size ( MPI_Comm comm, i n t size ) ; Identifikační číslo procesu (rank) vůči dané skupině lze zjistit pomocí: 1 i n t MPI_Comm_rank ( MPI_Comm comm, i n t rank ) ;
7 Operace send a recieve Jde o základní operace pro odeslání a přijetí jedné zprávy. send( void *sendbuf, int nelems, int dest) sendbuf - ukazatel na pole dat, jež mají být odeslána nelems - počet prvků pole dest - ID procesu/uzlu, kterému mají být data zaslána receive( void *recvbuf, int nelems, int source) recvbuf - ukazatel na pole, do nějž mají být přijatá data uložena nelems - počet prvků, které budou přijaty source - ID procesu/uzlu, od kterého mají být data načtena
8 Operace send a recieve Příklad: P 1 P 2 a=100; send(&a,1,2); receive( &a,1,1); a=0; printf("%d",a); Jaký výsledek vypíše proces P 2?
9 Operace send a recieve Příklad: P 1 P 2 a=100; send(&a,1,2); receive( &a,1,1); a=0; printf("%d",a); Jaký výsledek vypíše proces P 2? Výsledek je 100 nebo 0.
10 Operace send a recieve sít ové rozhraní může využívat DMA a pracovat nezávisle na CPU pokud má P 2 zpoždění ve zpracování kódu, mohou být data z P 1 odeslána až po provedení příkazu a=0; na P 1 tím pádem bude procesu P 2 odesláno číslo 0
11 Blokující a neblokující posílání zpráv Existují dva způsoby posílání zpráv: blokující funkce send nevrátí řízení programu, dokud to není sémanticky bezpečné neblokující komunikační funkce vrací řízení programu dříve, než je to sémanticky bezpečné
12 Blokující posílání zpráv Blokující posílání zpráv je možné provést dvěma způsoby: bez bufferu s bufferem
13 Blokující posílání zpráv bez bufferu odesílatel pošle požadavek k příjemci odesílatel potvrdí ve chvíli, kdy ve zpracování kódu dospěje k místu pro příjetí zprávy následně dojde k přenosu dat
14 Blokující posílání zpráv bez bufferu P 1 (send) P 2 (receive) čas
15 Blokující posílání zpráv bez bufferu P 1 (send) P 2 (receive) send SEND REQUEST čas
16 Blokující posílání zpráv bez bufferu P 1 (send) P 2 (receive) send SEND REQUEST čas SEND OK receive
17 Blokující posílání zpráv bez bufferu P 1 (send) P 2 (receive) send SEND REQUEST IDLE čas SEND OK TRANSFER receive
18 Blokující posílání zpráv bez bufferu P 1 (send) P 2 (receive) čas
19 Blokující posílání zpráv bez bufferu P 1 (send) P 2 (receive) čas send SEND REQUEST
20 Blokující posílání zpráv bez bufferu P 1 (send) P 2 (receive) čas send SEND REQUEST SEND OK receive
21 Blokující posílání zpráv bez bufferu P 1 (send) P 2 (receive) čas send SEND REQUEST SEND OK TRANSFER receive
22 Blokující posílání zpráv bez bufferu P 1 (send) P 2 (receive) čas
23 Blokující posílání zpráv bez bufferu P 1 (send) P 2 (receive) receive čas
24 Blokující posílání zpráv bez bufferu P 1 (send) P 2 (receive) receive čas send SEND REQUEST
25 Blokující posílání zpráv bez bufferu P 1 (send) P 2 (receive) receive IDLE čas send SEND REQUEST SEND OK TRANSFER
26 Blokující posílání zpráv bez bufferu Možnost deadlocku: P 1 P 2 send(&a,1,2); send( &a,1,1); receive(&b,1,2); receive( &b,1,1 ); oba procesy posílají send request a oba pak čekají na potvrzení send ok
27 Blokující posílání zpráv s bufferem snažíme se odstranit nutnost čekání na SEND OK při volání funkce send se data kopírují do pomocného bufferu program pak může okamžitě pokračovat přenos dat může proběhnout bez účasti CPU na straně příjemce se data také kopírují do pomocného bufferu někdy je buffer jen na jedné straně
28 Blokující posílání zpráv s bufferem čekání odesílajícího procesu se podařilo zredukovat přibyla ale režie nutná při kopírování dat z/do bufferů pokud jsou procesy často synchronizovány, může být komunikace bez bufferů efektivnější pokud se buffery zaplní, dochází k čekání také příjem je vždy blokující nesmí se pokračovat dál, dokud nejsou data zkopírována z bufferu příjemce
29 Blokující posílání zpráv s bufferem Možnost deadlocku: P 1 P 2 receive(&b,1,2); receive( &b,1,1 ); send(&a,1,2); send( &a,1,1); oba procesy čekají na příjem zprávy
30 Neblokující posílání zpráv komunikační funkce vrací řízení programu dříve, než je to sémanticky bezpečné programátor musí sám ohlídat, zda již byla data přenesena mezi tím ale může zpracovávat jiný kód, který napracuje s posílanými daty existují funkce, které řeknou, zda již komunikace úspěšně proběhla i neblokující komunikace může používat buffery
31 Funkce send a receive v MPI 1 i n t MPI_Send ( void buf, i n t count, 2 MPI_Datatype datatype, i n t dest, 3 i n t tag, MPI_Comm comm ) ; 1 i n t MPI_Receive ( void buf, i n t count, 2 MPI_Datatype datatype, i n t source, 3 i n t tag, MPI_Comm comm, 4 MPI_Status s t a t u s ) ; buf ukazatel na pole dat typu datatype o velikosti count datatype může být: MPI_CHAR, MPI_INT, MPI_FLOAT, MPI_DOUBLE,... dest ID příjemce source ID odesílatele tag určuje typ zprávy comm udává komunikační skupinu
32 Struktura MPI_Status 1 typedef struct MPI_Status 2 { 3 i n t MPI_SOURCE; 4 i n t MPI_TAG ; 5 i n t MPI_ERROR; 6 } ; MPI_SOURCE = odesílatel MPI_SOURCE = typ zprávy MPI_ERROR = chybové hlášení
33 Funkce send a receive v MPI U odesílatele i příjemce musí být count, datatype a tag stejné. Funkce 1 i n t MPI_Get_count ( MPI_Status status, 2 MPI_Datatype datatype, 3 i n t count ) ; udává skutečný počet přijatých dat. obě funkce jsou vždy blokující send může být implementováno bufferově (nelze s tím počítat, pozor na deadlock)
34 Funkce send a receive v MPI Příklad s deadlockem: 1 i n t a [ 10 ], b [ 10 ], myrank ; 2 MPI_Status s t a t u s ; MPI_Comm_rank ( MPI_COMM_WORLD, &myrank ) ; 5 i f ( myrank == 0 ) 6 { 7 MPI_Send ( a, 10, MPI_INT, 1, 1, MPI_COMM_WORLD) ; 8 MPI_Send ( b, 10, MPI_INT, 1, 2, MPI_COMM_WORLD) ; 9 } 10 else i f ( myrank == 1 ) 11 { 12 MPI_Recv ( b, 10, MPI_INT, 0, 2, MPI_COMM_WORLD) ; 13 MPI_Recv ( a, 10, MPI_INT, 0, 1, MPI_COMM_WORLD) ; 14 }
35 Funkce send a receive v MPI Příklad bez deadlocku: 1 i n t a [ 10 ], b [ 10 ], myrank ; 2 3 MPI_Status s t a t u s ; MPI_Comm_rank ( MPI_COMM_WORLD, &myrank ) ; 6 7 i f ( myrank == 0 ) 8 { 9 MPI_Send ( a, 10, MPI_INT, 1, 1, MPI_COMM_WORLD) ; 10 MPI_Send ( b, 10, MPI_INT, 1, 2, MPI_COMM_WORLD) ; 11 } 12 else i f ( myrank == 1 ) 13 { 14 MPI_Recv ( a, 10, MPI_INT, 0, 1, MPI_COMM_WORLD) ; 15 MPI_Recv ( b, 10, MPI_INT, 0, 2, MPI_COMM_WORLD) ; 16 }
36 Simultání send a receive v MPI Za účelem zabránění deadlocku je často lepší použít funkce pro simultání send/receive. 1 i n t MPI_Sendrecv ( void sendbuf, i n t sendcoutn, 2 MPI_Datatype senddatatype, i n t dset, 3 i n t sendtag, void recvbuf, 4 i n t recvcount, MPI_Datatype recvdatatype, 5 i n t source, i n t recvtag, 6 MPI_Comm comm, MPI_Status s t a t u s ) 1 i n t MPI_Sendrecv_replace ( void buf, i n t count, 2 MPI_Datatype datatype, i n t dest, 3 i n t sendtag, i n t source, 4 i n t recvtag, MPI_Comm comm, 5 MPI_Status s t a t u s ) V případě MPI_Sendrecv_replace jsou odeslaná data přepsána přijatými.
37 Neblokující send a receive v MPI 1 i n t MPI_Isend ( void buf, i n t count, 2 MPI_Datatype datatype, i n t dest, 3 i n t source, i n t tag, 4 MPI_Comm comm, MPI_Request request ) 1 i n t MPI_Irecv ( void buf, i n t count, 2 MPI_Datatype datatype, i n t source, 3 i n t tag, MPI_Comm comm, 4 MPI_Request request ) 5 } Obě funkce vracejí řízení programu dříve, než jsou data skutečně přenesena. request - slouží k ověření, zda byla data již přenesena
38 Neblokující send a receive v MPI Funkce pro ověření stavu přenosu dat při neblokujícím send a receive. 1 i n t MPI_Test ( MPI_Request request, 2 i n t f l a g, 3 MPI_Status s t a t u s ) 1 i n t MPI_Wait ( MPI_Request request, 2 MPI_Status s t a t u s ) MPI_Test vrací v proměnné flag nenulovou hodnotu, pokud již operace skončila MPI_Wait čeká na ukončení operace
39 Komunikační operace jde o komunikační vzory, které se v paralelním programování vyskytují velice často komunikující procesy mohou běžet na jednom nebo i na více výpočetních uzlech jejich speciální implementace má následující výhody zjednodušuje práci programátora mohou využívat hardwarovou podporu dané paralelní architektury udržují aktivní sít ové spojení komunikační sítě tím vlastně několik malých zpráv "shlukuje do jedné" k většině těchto operací existují i operace duální, které "běží v opačném směru"
40 One-to-all broadcast/all-to-one reduction One-to-all broadcast jeden proces má identická data o velikosti m a rozešle je všem ostatním používá se např. při rozesílání konfigurančích parametrů
41 One-to-all broadcast/all-to-one reduction All-to-one reduction každý proces má data o velikosti m a obecně jsou různá (různé hodnoty) data jsou poslána jednomu procesu a současně sloučena dohromady pomocí nějaké asociativní operace do velikosti m Příklad: Máme 100 reálných čísel umístěných na 100 procesech (každý proces má jedno reálné číslo). Výsledkem redukce je součet všech čísel a výsledek má proces číslo 0.
42 One-to-all broadcast/all-to-one reduction M p p Před Po
43 One-to-all broadcast/all-to-one reduction M p p Před One-to-all broadcast Po
44 One-to-all broadcast/all-to-one reduction M M M M M p p Před Po
45 One-to-all broadcast/all-to-one reduction M 1 M 2 M 3 M p p p Po Před
46 One-to-all broadcast/all-to-one reduction M 1 M 2 M 3 M p p p Po All-to-one reduction Před
47 One-to-all broadcast/all-to-one reduction p i=1 M i p p Po Před
48 One-to-all broadcast/all-to-one reduction - příklad vstupní vektor P 1 P 2 P 3 P 4 P 1 P 6 P 11 P 16 P 5 P 2 P 7 P 8 P 9 P 10 P 3 P 12 P 13 P 14 P 15 P 4 P 1 P 2 P 3 P 4 výstupní vektor
49 One-to-all broadcast/all-to-one reduction - příklad vstupní vektor P 1 P 2 P 3 P 4 One-to-all broadcast P 1 P 6 P 11 P 16 P 5 P 2 P 7 P 8 P 9 P 10 P 3 P 12 P 13 P 14 P 15 P 4 P 1 P 2 P 3 P 4 výstupní vektor
50 One-to-all broadcast/all-to-one reduction - příklad vstupní vektor P 1 P 2 P 3 P 4 Výpočet P 1 P 6 P 11 P 16 P 5 P 2 P 7 P 8 P 9 P 10 P 3 P 12 P 13 P 14 P 15 P 4 P 1 P 2 P 3 P 4 výstupní vektor
51 One-to-all broadcast/all-to-one reduction - příklad vstupní vektor P 1 P 2 P 3 P 4 P 1 P 6 P 11 P 16 P 5 P 2 P 7 P 8 P 9 P 10 P 3 P 12 P 13 P 14 P 15 P 4 All-to-one reduction P 1 P 2 P 3 P 4 výstupní vektor
52 One-to-all broadcast/all-to-one reduction Realizace v případě sítě typu kruh One-to-all broadcast
53 One-to-all broadcast/all-to-one reduction Realizace v případě sítě typu kruh One-to-all broadcast
54 One-to-all broadcast/all-to-one reduction Realizace v případě sítě typu kruh One-to-all broadcast
55 One-to-all broadcast/all-to-one reduction Realizace v případě sítě typu kruh One-to-all broadcast
56 One-to-all broadcast/all-to-one reduction Realizace v případě sítě typu kruh One-to-all broadcast
57 One-to-all broadcast/all-to-one reduction Realizace v případě sítě typu kruh One-to-all broadcast
58 One-to-all broadcast/all-to-one reduction Realizace v případě sítě typu lineární řetězec je stejná jako u kruhu. poslední spoj nebyl potřeba Realizace v případě ortogonální sítě: nejprve se provede one-to-all broadcast podél jedné souřadnice, následně podél další
59 One-to-all broadcast/all-to-one reduction v MPI One-to-all broadcast 1 i n t MPI_Bcast ( void buf, i n t count, MPI_Datatype, 2 i n t source, MPI_Comm comm ) 1 MPI_Bcast ( &x, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD ) ; } All-to-one reduction 1 i n t MPI_Reduce ( void sendbuf, void recvbuf, 2 i n t count, MPI_Datatype datatype, 3 MPI_Op op, i n t t a r g e t, MPI_Comm comm) op = operace: MPI_MAX, MPI_MIN, MPI_SUM, MPI_PROD výsledek se uloží do recvbuf procesu target 1 MPI_Reduce ( &x, &max_x, 1, MPI_DOUBLE, MPI_MAX, 2 0, MPI_COMM_WORLD ) ;
60 All-to-all broadcast/all-to-all reduction Všech p procesů provádí současně one-to-all broadcast nebo all-to-one reduction s různými daty.
61 All-to-all broadcast/all-to-all reduction M 1 M 2 M 3 M p p p Před Po
62 All-to-all broadcast/all-to-all reduction M 1 M 2 M 3 M p p p Před All-to-all broadcast Po
63 All-to-all broadcast/all-to-all reduction M p M p M p M p.... M 3 M 3 M 3 M 3 M 2 M 2 M 2 M 2 M 1 M 2 M 3 M p M 1 M 1 M 1 M p p Před Po
64 All-to-all broadcast/all-to-all reduction M p,1 M p,2 M p,3 M p,4.... M 3,1 M 3,2 M 3,3 M 3,p M 2,1 M 2,2 M 2,3 M 2,p M 1,1 M 1,2 M 1,3 M 1,p p p Po Před
65 All-to-all broadcast/all-to-all reduction M p,1 M p,2 M p,3 M p,4.... M 3,1 M 3,2 M 3,3 M 3,p M 2,1 M 2,2 M 2,3 M 2,p M 1,1 M 1,2 M 1,3 M 1,p p p Po All-to-all reduction Před
66 All-to-all broadcast/all-to-all reduction M p,1 M p,2 M p,3 M p,4.... M 3,1 M 3,2 M 3,3 M 3,p p i=1 M 1,i p i=1 M 2,i p i=1 M 3,i p i=1 M p,i M 2,1 M 2,2 M 2,3 M 2,p M 1,1 M 1,2 M 1,3 M 1,p p p Po Před
67 All-to-all broadcast/all-to-all reduction Realizace all-to-all broadcast v případě sítě typu kruh: v každém kroku každý uzel pošle svoje data sousedovi vpravo a přijme data od souseda vlevo v následujícím kroku posílá data, která v předchozím kroku přijal vše se opakuje p 1-krát V případě ortogonálních sítí se opět postupuje podél jednotlivých souřadnic.
68 All-to-all broadcast/all-to-all reduction Realizace all-to-all reduction v případě sítě typu kruh: v první kroku pošle uzel i data M j,i pro j = 1, p a j i svému sousedovi vpravo a příjme data M j,i 1 pro j = 1, p a j i 1 od svého souseda vlevo v druhém kroku pošle uzel i data M j,i 1 pro j = 1, p a j i j i 1, svému sousedovi vpravo a příjme data M j,i 2 pro j = 1, p a j i 1 j i 2 od svého souseda vlevo vše se ještě opakuje p 2-krát za současného provádění redukční operace
69 All-to-all broadcast/all-to-all reduction v MPI All-to-all broadcast 1 i n t M P I _ A l l t o a l l ( void sendbuf, i n t sendcount, 2 MPI_Datatype sendtype, 3 void recvbuf, i n t recvcount, 4 MPI_Datatype recvtype, 5 MPI_Comm comm ) sendcount a recvcount je počet elementů poslaných jednomu procesu
70 All-reduce a Prefix-sum All-reduce na počátku má každý proces různá data M i o velikosti m na konci mají všechny procesy stejný součet dat p i=1 M i All-reduce lze provést jako All-to-one reduction + One-to-all broadcast p All-to-all broadcast, kde se ale provede součet i=1 M i pro m = 1 lze All-reduce použít jako bariéru 1 redukci nelze dokončit, dokud k ní nepřispěje každý proces svým podílem 1 Bariéra je místo v programu, které nesmí žádný proces překročit, dokud ho nedosáhnou všechny ostatní procesy. Má význam synchronizace procesů.
71 All-reduce a Prefix-sum Prefix-sum jde o modifikaci all-reduce pro data M 1, M p chceme najít S k = k i=1 M i pro k = 1, p postup je stejný jako u all-reduce, ale každý proces k si "přičítá"jen data od procesů s ID < k některá komunikace je tu tady zbytečná, ale celkovou složitost této operace to neovlivní
72 All-reduce a Prefix-sum v MPI All reduce 1 i n t MPI_Allreduce ( void sendbuf, void recvbuf, 2 i n t count, MPI_Datatype datatype, 3 MPI_Op op, MPI_Comm comm ) Prefix sum 1 i n t MPI_Scan ( const void sendbuf, void recvbuf, i n t count, 2 MPI_Datatype datatype, MPI_Op op, MPI_Comm comm ) Bariéra 1 i n t MPI_ Barrier ( MPI_Comm comm )
73 Scatter/Gather Scatter jeden proces má na počátku p různých zpráv M 1, M p proces i má na konci zprávu M i někdy se tato zpráva nazývá one-to-all personalized communicatio Gather je to duální operace ke scatter na počátku má každý proces i zprávu M i na konci má jeden proces všechny zprávy p i=1 M i
74 Scatter/Gather M p. M 3 M 2 M p p Před Po
75 Scatter/Gather M p. M 3 M 2 M p p Před Scatter Po
76 Scatter/Gather M p. M 3 M 2 M 1 M 1 M 2 M 3 M p p p Před Po
77 Scatter/Gather M 1 M 2 M 3 M p p p Po Před
78 Scatter/Gather M 1 M 2 M 3 M p p p Po Gather Před
79 Scatter/Gather M p. M 3 M 2 M 1 M 1 M 2 M 3 M p p p Po Před
80 Scatter/gather Realizace scatter v případě sítě typu kruh: je stejná jako u one-to-all broadcast ale s jinými objemy dat
81 Scatter/gather Scatter
82 Scatter/gather Scatter M 1, M
83 Scatter/gather M 5, M M 1, M 4 Scatter
84 Scatter/gather M 7, M 8 M 5, M Scatter M 1, M 2 M 3, M
85 Scatter/gather M 8 M 7 M 6 M Scatter M 1 M 2 M 3 M
86 Scatter/gather M 8 M 7 M 6 M Scatter M 1 M 2 M 3 M
87 Scatter/gather v MPI Scatter 1 i n t MPI_Scatter ( void sendbuf, i n t sendcount, 2 MPI_Datatype senddatatype, 3 void recvbuf, i n t recvcount, 4 MPI_Datatype recvdatatype, 5 i n t source, MPI_Comm comm ) } sendcount = recvcount udává počet prvků posílaných jednomu procesu Scatter vektorově - každý proces dostane jiný objem dat 1 i n t MPI_Scatterv ( void sendbuf, i n t sendcounts, 2 i n t d i s p l s, 3 MPI_Datatype senddatatype, 4 void recvbuf, i n t recvcount, 5 MPI_Datatype recvdatatype, 6 i n t source, MPI_Comm comm ) sendcounts ukazatel na pole udávájíci počet prvků posílaných danému procesu displs ukazatel na pole udávájící pozici dat pro daný proces
88 Scatter/gather v MPI Gather 1 i n t MPI_Gather ( void sendbuf, i n t sendcount, 2 MPI_Datatype senddatatype, 3 void recvbuf, i n t recvcount, 4 MPI_Datatype recvdatatype, 5 i n t t a r g e t, MPI_Comm comm ) recvcount udává počet prvků získaných od daného procesu Gather vektorově - každý proces dostane jiný objem dat 1 i n t MPI_Scatterv ( void sendbuf, i n t sendcount, 2 MPI_Datatype senddatatype, 3 void recvbuf, i n t recvcount, 4 i n t d i s p l s, 5 MPI_Datatype recvdatatype, 6 i n t t a r g e t, MPI_Comm comm ) } recvcounts ukazatel na pole udávájíci počet prvků získaných od daného procesu displs ukazatel na pole udávájící pozici dat od daného procesu
89 All-to-all personalized communication All-to-all personalized communication každý proces i má data M i,j, která pošle procesu j.
90 All-to-all personalized communication M p,1 M p,2 M p,3 M p,p.... M 3,1 M 3,2 M 3,3 M 3,p M 2,1 M 2,2 M 2,3 M 2,p M 1,1 M 1,2 M 1,3 M 1,p p p Před Po
91 All-to-all personalized communication M p,1 M p,2 M p,3 M p,p.... M 3,1 M 3,2 M 3,3 M 3,p M 2,1 M 2,2 M 2,3 M 2,p M 1,1 M 1,2 M 1,3 M 1,p p p Před All-to-all personalized communication Po
92 All-to-all personalized communication M p,1 M p,2 M p,3 M p,p M 1,p M 2,p M 3,p M p,p M 3,1 M 3,2 M 3,3 M 3,p M 2,1 M 2,2 M 2,3 M 2,p M 1,3 M 2,3 M 3,3 M p,3 M 1,2 M 2,2 M 3,2 M p,2 M 1,1 M 1,2 M 1,3 M 1,p M 1,1 M 2,1 M 3,1 M p, p p Před Po
93 All-to-all personalized communication jde vlastně o maticovou transpozici stejná analogie jako mezi scatter a one-to-all broadcast platí i mezi all-to-all personalized communication a all-to-all broadcast z toho plyne i realizace all-to-all personalized communication na síti typu kruh nebo na ortogonálních sítích
94 All-to-all personalized communication v MPI All-to-all personalized communication 1 i n t M P I _ A l l t o a l l ( void sendbuf, i n t sendcount, 2 MPI_Datatype senddatatype, 3 void recvbuf, i n t recvcount, 4 MPI_Datatype recvdatatype, 5 MPI_Comm comm) 1 i n t M P I _ A l l t o a l l v ( void sendbuf, i n t sendcounts, 2 i n t s d i s p l s, 3 MPI_Datatype senddatatype, 4 void recvbuf, i n t recvcounts, 5 i n t r d i s p l s, 6 MPI_Datatype recvdatatype, 7 MPI_Comm comm)
95 Circular shift Circular shift patří mezi tzv. permutační komunikační operace každý proces pošle jednu zprávu o velikosti m slov některému jinému uzlu Příklad: Circular q-shift proces i pošle svá data procesu (i + q) mod p
96 Kostra jednoduché aplikace 1 # include <mpi. h> 2 3 i n t main ( i n t argc, char argv [ ] ) 4 { 5 i n t nproc, i p r o c ; 6 Config c o n f i g ; 7 InputData input_ data ; 8 OutputData output_ data ; 9 M P I _ I n i t (& argc, &argv ) ; 10 MPI_Comm_size (MPI_COMM_WORLD, &nproc ) ; 11 MPI_Comm_rank (MPI_COMM_WORLD, &i p r o c ) ; 12 i f ( i p r o c == 0) 13 { 14 ParseConfigurationParameters (& config,& argc,& argv ) ; 15 GetInputData (& config,& input_ data ) ; 16 } 17 Broadcast (& config, 0 ) ; 18 S c a t t e r (& input_data, 0 ) ; 19 Compute(& input_ data, &output_ data ) ; 20 Gather (& output_data, 0 ) ; 21 i f ( i p r o c == 0) WriteOutput (& output_data ) ; 22 MPI_Finalize ( ) ; 23 }
97 Spouštění MPI aplikací Programy pro MPI většinou překládáme pomocí mpicc 1 mpicc o foo foo. c a spouštíme pomocí 1 mpirun v np 2 foo program mpirun spustí foo ve dvou procesech
98 Spouštění MPI aplikací MPI aplikace lze dobře provozovat i na vícejádrových procesorech v případě výpočtu na klastru nebo superpočítači je často potřeba udat více parametrů 1 mpirun np 256 npernode 4 m a c h i n e f i l e f i l e foo -npernode udává počet procesů na jeden uzel -machinfile udává adresy jednotlivých uzlů 1 node328 2 node328 3 node328 4 node328 5 node329 6 node329 7 node329 8 node329 9 node node node node
Programování založené na posílání zpráv
Programování založené na posílání zpráv Standard MPI Standard pro posílání zpráv - MPI = Message Passing Interface Dostupné implementace OpenMPI - http://www.open-mpi.org/ LAM-MPI - http://www.lam-mpi.org/
Základní komunikační operace
Základní komunikační operace Úvod Operace send a recieve Blokující a neblokující posílání zpráv Blokující posílání zpráv Neblokující posílání zpráv One-to-all broadcast/all-to-one reduction All-to-all
MPI Message Passing Interface. Charakteristika
MPI Message Passing Interface Charakteristika Původně pro C a Fortran, dnes třeba i mpijava Komunikační rozhraní pro paralelní programy Knihovna s definovaným API o Nezávislé implementace, možnost přenositelnosti
Proč potřebujeme komunikátory? - pokrač. Týden 4 Programování zasíláním zpráv (MP) - programování v MPI - počítání na svazcích stanic
Proč potřebujeme komunikátory? - pokrač. Týden 4 Programování zasíláním zpráv (MP) - programování v MPI - počítání na svazcích stanic Nelze zajistit různost příznaků: - neznáme příznaky v knihovních podprogramech,
Ústav technické matematiky FS ( Ústav technické matematiky FS ) / 35
Úvod do paralelního programování 2 MPI Jakub Šístek Ústav technické matematiky FS 9.1.2007 ( Ústav technické matematiky FS ) 9.1.2007 1 / 35 Osnova 1 Opakování 2 Představení Message Passing Interface (MPI)
Pokročilé architektury počítačů
Pokročilé architektury počítačů 03 Programování paralelních systémů Část II. OpenMP a MPI České vysoké učení technické, fakulta elektrotechnická A4M36PAP Pokročilé architektury počítačů Ver.1.00 1 Přehled:
1 Rozdělení paralelních úloh z hlediska jejich
Martin Lísal říjen 2003 1 Rozdělení paralelních úloh z hlediska jejich spolupráce během výpočtu Podle spolupráce během výpočtu můžeme rozdělit paralelní úlohy na MPMD (Multiple Program Multiple Data) úlohy
Paralelní algoritmy --- Parallel Algorithms
Paralelní algoritmy --- Parallel Algorithms Přemysl Šůcha suchap@fel.cvut.cz Motivace Nepopíratelnost trendu směřování k paralelním systémům i více-jádrový telefon je dnes samozřejmostí energetická efektivita
Paralelní programování
Paralelní programování přednáška 5 Michal Krupka 15. března 2011 Michal Krupka (KI UP) Paralelní programování 15. března 2011 1 / 13 Ještě ke kritickým sekcím Použití v praxi obvykle pomocí zámků (locks)
Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty
Paralení programování pro vícejádrové stroje s použitím OpenMP B4B36PDV Paralelní a distribuované výpočty Minulé cvičení: Vlákna a jejich synchronizace v C++ 11... 1 Minulé cvičení: Vlákna a jejich synchronizace
1.1 Příkazy pro kolektivní komunikaci (pokračování)
Martin Lísal listopad 2003 1 Často používané MPI příkazy (pokračování) 1.1 Příkazy pro kolektivní komunikaci (pokračování) 1.1.1 Distribuce informací nestejné velikosti na jednotlivé procesy call MPI_SCATTERV(sendbuf,sendcounts,displs,send_MPI_data_type,
Transformace digitalizovaného obrazu
Transformace digitalizovaného obrazu KIV/PPR Martina Málková (tina.malkova@centrum.cz) *15.10.1984 1 Zadání Realizujte transformaci digitalizovaného obrazu zadaného jako matice (m,n) s celočíselnými prvky.
SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ
SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ TITAN / HOPPER / NOTEBOOK TITAN HOPPER NOTEBOOK Počet CPU jader 299 008 153 216 2 Operační paměť [GB] 598 016 217 000 8 Počet GPU (CUDA) jader 50 233 344 0 8
Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)
Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze A0B36PR2 Programování 2 Jan Faigl, 2015 A0B36PR2
Cvičení předmětu MI-PAR P. Tvrdík, I. Šimeček, M. Šoch
Cvičení předmětu MI-PAR P. Tvrdík, I. Šimeček, M. Šoch pavel.tvrdik,xsimecek,soch@fit.cvut.cz Katedra počítačových systémů FIT České vysoké učení technické v Praze 2011 MI-PAR, ZS2011/12, Cv.1-6 Příprava
Motivace. Software. Literatura a odkazy
Využití paralelních výpočtů ve stavební mechanice Motivace Paralelní počítače Software Možnosti využití ve stavební mechanice Příklady Literatura a odkazy 1 Motivace Časová náročnost výpočtů Rozsáhlé úlohy
Vlákna a přístup ke sdílené paměti. B4B36PDV Paralelní a distribuované výpočty
Vlákna a přístup ke sdílené paměti B4B36PDV Paralelní a distribuované výpočty Minulé cvičení: Paralelizace nám může pomoct... 1 Minulé cvičení: Paralelizace nám může pomoct... B4B36PDV: Ale ne všechny
Základní datové struktury
Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013
Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz. Paralelní programování
Tomáš Foltýnek foltynek@pef.mendelu.cz Paralelní programování strana 2 Opakování Co je to síť? Co je to tok? Co je to velikost toku? Co je to řez? Co je to velikost řezu? Jaký je vztah mezi velikostí toku
Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016
ZPRO cvičení 2 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague October 17, 2016 Outline I 1 Outline 2 Proměnné 3 Proměnné - cvičení 4 Funkce 5 Funkce
Operační systémy. Cvičení 4: Programování v C pod Unixem
Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné
Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur
Přehled paralelních architektur Přehled paralelních architektur Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur Přehled I. paralelní počítače se konstruují
Koncepce (větších) programů. Základy programování 2 Tomáš Kühr
Koncepce (větších) programů Základy programování 2 Tomáš Kühr Parametry a návratová hodnota main Již víme, že main je funkce A také tušíme, že je trochu jiná než ostatní funkce v programu Funkce main je
Práce se soubory. Základy programování 2 Tomáš Kühr
Práce se soubory Základy programování 2 Tomáš Kühr Soubory z pohledu C Soubor zjednodušeně chápeme jako posloupnost bytů uložených někde na disku Datový proud (anglicky stream) Ještě obecnější přístup
for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }
5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu
Operační systémy. Cvičení 3: Programování v C pod Unixem
Operační systémy Cvičení 3: Programování v C pod Unixem 1 Obsah cvičení Editace zdrojového kódu Překlad zdrojového kódu Základní datové typy, struktura, ukazatel, pole Načtení vstupních dat Poznámka: uvedené
Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21
Stručný obsah 1. Hardware, procesory a vlákna... 19 2. Programování s ohledemna výkon... 45 3. Identifikování příležitostí pro paralelizmus... 93 4. Synchronizace a sdílení dat... 123 5. Vlákna v rozhraní
Paralelní LU rozklad
Paralelní LU rozklad Lukáš Michalec Katedra fyziky, Přírodovědecká fakulta Univerzity J.E. Purkyně v ročník, specializace Ústí n.l. Abstract Seminární práce se zabývá řešení soustavy lineárních rovnic
IB109 Návrh a implementace paralelních systémů. Kolektivní komunikační primitava. RNDr. Jiří Barnat, Ph.D.
IB109 Návrh a implementace paralelních systémů Kolektivní komunikační primitava RNDr. Jiří Barnat, Ph.D. Kvantitativní parametry komunikace B109 Návrh a implementace paralelních systémů: Kolektivní komunikační
Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek
9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 1/24 Editační prostření Kód programu lze editovat v jakémkoli textovém editoru. 2/24 Editační prostření Kód
Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič
Obecné výpočty na GPU v jazyce CUDA Jiří Filipovič Obsah přednášky motivace architektura GPU CUDA programovací model jaké algoritmy urychlovat na GPU? optimalizace Motivace Moorův zákon stále platí pro
Šablony, kontejnery a iterátory
7. října 2010, Brno Připravil: David Procházka Šablony, kontejnery a iterátory Programovací jazyk C++ Šablony Strana 2 / 21 Šablona funkce/metody Šablona je obecný popis (třídy, funkce) bez toho, že by
Základy programování (IZP)
Základy programování (IZP) Jedenácté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Gabriela Nečasová, inecasova@fit.vutbr.cz
C++ 0x aka C++11. Základním kamenem je třída std::thread
C++ 0x aka C++11 Jako jiné jazyky, např. Free/Object Pascal, se C++ ve standardu ++0x dočkal podpory vláken Výhodou je, že standardní knihovna je platformě nezávislá na úrovni zdrojového kódu Základním
Základy programování (IZP)
Základy programování (IZP) Deváté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 27.11.2017,
Základy programování (IZP)
Základy programování (IZP) Osmé počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 20.11.2017,
PROGRAMOVÁNÍ V C++ CVIČENÍ
PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné
Pole a Funkce. Úvod do programování 1 Tomáš Kühr
Pole a Funkce Úvod do programování 1 Tomáš Kühr (Jednorozměrné) pole u Datová struktura u Lineární u Homogenní = prvky stejného datového typu u Statická = předem určený počet prvků u Pole umožňuje pohodlně
Profilová část maturitní zkoušky 2017/2018
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
Správné vytvoření a otevření textového souboru pro čtení a zápis představuje
f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru
Pokročilé architektury počítačů
Pokročilé architektury počítačů Tutoriál 3 CUDA - GPU Martin Milata Výpočetní model CUDA Organizace kódu Sériově organizovaný kód určený pro CPU Paralelní kód prováděný na GPU Označuje se jako kernel GPU
Bitové operátory a bitová pole. Úvod do programování 2 Tomáš Kühr
Bitové operátory a bitová pole Úvod do programování 2 Tomáš Kühr Bitové operátory Provádějí danou operaci s jednotlivými bity svých operandů Operandy bitových operátorů mohou být pouze celočíselné Vyhodnocení
OPS Paralelní systémy, seznam pojmů, klasifikace
Moorův zákon (polovina 60. let) : Výpočetní výkon a počet tranzistorů na jeden CPU chip integrovaného obvodu mikroprocesoru se každý jeden až dva roky zdvojnásobí; cena se zmenší na polovinu. Paralelismus
1 Nejkratší cesta grafem
Bakalářské zkoušky (příklady otázek) podzim 2014 1 Nejkratší cesta grafem 1. Uvažujte graf s kladným ohodnocením hran (délka). Definujte formálně problém hledání nejkratší cesty mezi dvěma uzly tohoto
Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.
Základní principy konstrukce systémové sběrnice - shrnutí Shrnout základní principy konstrukce a fungování systémových sběrnic. 1 Co je to systémová sběrnice? Systémová sběrnice je prostředek sloužící
Procesy a vlákna (Processes and Threads)
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna (Processes and Threads) Správa procesů a vláken České vysoké učení technické Fakulta elektrotechnická 2012 Použitá literatura [1] Stallings, W.: Operating
Paralelizace neuronových sítí Parallelization of Neural Networks
VŠB Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Paralelizace neuronových sítí Parallelization of Neural Networks 2011 Jakub Rychlý Souhlasím se zveřejněním této
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
Univerzita Jana Evangelisty Purkyně v Ústí nad Labem. Přírodovědecká fakulta
Univerzita Jana Evangelisty Purkyně v Ústí nad Labem Přírodovědecká fakulta PARALELNÍ PROGRAMOVÁNÍ S APLIKACEMI Martin Lísal 2007 Studijní opora je určena studentům, kteří jsou zběhlí v programování v
Protokol S-BUS pro MORSE Popis protokolu
Popis protokolu verze 7.21 6. května 2008 1. Úvod Protokol S-Bus (dále jen S-Bus-MORSE) je implementován do systému MORSE jako přístupový modul pro komunikaci se zařízením PCD SAIA. Protokol je typu MASTER/SLAVE,
TG Motion verze 4 Modul Virtuální PLC návod k obsluze
TG Motion verze 4 Modul Virtuální PLC návod k obsluze Olomoucká 1290/79-1 - Fax: +420 548 141 890 Historie revizí datum verze popis 10. 1. 2017 1.0 31. 7. 2017 1.1 upravena typografie Olomoucká 1290/79-2
PROTOKOL RDS. Dotaz na stav stanice " STAV CNC Informace o stavu CNC a radiové stanice FORMÁT JEDNOTLIVÝCH ZPRÁV
PROTOKOL RDS Rádiový modem komunikuje s připojeným zařízením po sériové lince. Standardní protokol komunikace je jednoduchý. Data, která mají být sítí přenesena, je třeba opatřit hlavičkou a kontrolním
Paralelní a distribuované výpočty (B4B36PDV)
Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech
Analýza aplikačních protokolů
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická PROJEKT Č. 4 Analýza aplikačních protokolů Vypracoval: V rámci předmětu: Jan HLÍDEK Komunikace v datových sítích (X32KDS) Měřeno: 28. 4. 2008
VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií Autor: Tomáš Válek, xvalek02@stud.fit.vutbr.cz Login: xvalek02 Datum: 21.listopadu 2012 Obsah 1 Úvod do rozhraní I 2 C (IIC) 1 2 Popis funkčnosti
TG Motion verze 4 Modul Virtuální PLC návod k obsluze
TG Motion verze 4 Modul Virtuální PLC návod k obsluze -1- Obsah 1. Virtuální PLC...3 1.1 Popis Virtuálního PLC...3 1.2 Tvorba PLC...3 1.3 Vyžadovaný algoritmus PLC...3 Načtení vstupů...3 Zpracování hodnot
11MAMY LS 2017/2018. Úvod do Matlabu. 21. února Skupina 01. reseni2.m a tak dále + M souborem zadané funkce z příkladu 3 + souborem skupina.
11MAMY LS 2017/2018 Cvičení č. 2: 21. 2. 2018 Úvod do Matlabu. Jan Přikryl 21. února 2018 Po skupinách, na které jste se doufám rozdělili samostatně včera, vyřešte tak, jak nejlépe svedete, níže uvedená
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Práce se soubory. Úvod do programování 2 Tomáš Kühr
Práce se soubory Úvod do programování 2 Tomáš Kühr Soubory z pohledu C u Soubor chápeme jako posloupnost bytů uložených na disku u Datový proud (anglicky stream) u Ještě obecnější přístup u Sjednocuje
Paralelní a distribuované výpočty (B4B36PDV)
Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech
Vícevláknové programování na CPU: POSIX vlákna a OpenMP I. Šimeček
Vícevláknové programování na CPU: POSIX vlákna a OpenMP I. Šimeček xsimecek@fit.cvut.cz Katedra počítačových systémů FIT České vysoké učení technické v Praze Ivan Šimeček, 2011 MI-PRC, LS2010/11, Predn.2
Operační systémy 2: Zápočtové úkoly
Operační systémy 2: Zápočtové úkoly 18. listopad 2010 1 Paralelní Mergesort Implementujte paralelní verzi algoritmu Merge sort, který bude řadit celá čísla uložená v textovém souboru. Program bude mít
Algoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
Paralelní a distribuované výpočty (B4B36PDV)
Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech
Računalniške delavnice FMF: Delavnica MPI
Računalniške delavnice FMF: Delavnica MPI Matevž Jekovec matevz.jekovec@fri.uni-lj.si Laboratorij za vseprisotne sisteme UL FRI lusy.fri.uni-lj.si 18. april 2014 22. maj 2014 Motivacija Moorov zakon: število
Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2
Základy informatiky 2. Přednáška HW Lenka Carr Motyčková February 22, 2011 Základy informatiky 1 February 22, 2011 Základy informatiky 2 February 22, 2011 Základy informatiky 3 February 22, 2011 Základy
Paralelní výpočetní jádro matematického modelu elektrostatického zvlákňování
Paralelní výpočetní jádro matematického modelu elektrostatického zvlákňování Milan Šimko Technická univerzita v Liberci Interní odborný seminář KO MIX 19. prosince 2011 Obsah prezentace 1 MOTIVACE 2 VLÁKNOVÝ
Management procesu II Mgr. Josef Horálek
Management procesu II Mgr. Josef Horálek Vlákna = Vlákna (Threads) = proces je definován množinou zdrojů výpočetního systému, které používá a umístěním, kde je spuštěn; = vlákno (thread) nazýváme lehký
Paralelní programování
Paralelní programování přednáška 3 Michal Krupka 1. března 2011 Michal Krupka (KI UP) Paralelní programování 1. března 2011 1 / 14 Ještě k atomickým proměnným Další neatomické proměnné Mohou to být proměnné,
cv3.tex. Vzorec pro úplnou pravděpodobnost
3 cvičení - pravděpodobnost 2102018 18cv3tex n i=1 Vzorec pro úplnou pravděpodobnost Systém náhodných jevů nazýváme úplným, jestliže pro něj platí: B i = 1 a pro i k je B i B k = 0 Jestliže je (Ω, A, P
Metody připojování periferií
Metody připojování periferií BI-MPP Přednáška 7 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Paralelní a distribuované výpočty (B4B36PDV)
Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech
Úvod do OpenMP. Jiří Fürst
Úvod do OpenMP Jiří Fürst Osnova: Úvod do paralelního programování Počítače se sdílenou pamětí Základy OpenMP Sdílené a soukromé proměnné Paralelizace cyklů Příklady Úvod do paralelního programování Počítač
2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.
Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby
Ukázka zkouškové písemka OSY
Ukázka zkouškové písemka OSY Jméno a příjmení:.......................................... Odpovězte na otázky zaškrtnutím příslušného políčka. Otázky označené znakem mohou mít více než jednu správnou odpověď.
Paralelní výpočty ve finančnictví
Paralelní výpočty ve finančnictví Jan Houška HUMUSOFT s.r.o. houska@humusoft.cz Výpočetně náročné úlohy distribuované úlohy mnoho relativně nezávislých úloh snížení zatížení klientské pracovní stanice
IUJCE 07/08 Přednáška č. 1
Úvod do předmětu Literatura Záznamy přednášek a vaše poznámky Harbison, S. P., Steele, G. L.: Referenční příručka jazyka C Herout, P.: Učebnice jazyka C Kernighan, B. W., Ritchie, D. M.: The C Programming
1 Příkazy MPI REDUCE a MPI ALLREDUCE
Martin Lísal listopad 2003 1 Příkazy MPI REDUCE a MPI ALLREDUCE Příkazy MPI REDUCE a MPI ALLREDUCE umožňují provést určité typy operací (např. sčítání či násobení) na proměnných ( mezivýsledcích ), které
Paralelní a distribuované výpočty (B4B36PDV)
Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech
Paralelní architektury se sdílenou pamětí typu NUMA. NUMA architektury
Paralelní architektury se sdílenou pamětí typu NUMA NUMA architektury Multiprocesorové systémy s distribuovanou pamětí I. úzkým hrdlem multiprocesorů se sdílenou pamětí je datová komunikace s rostoucím
Programování v jazyce C pro chemiky (C2160) 6. Funkce, struktury
Programování v jazyce C pro chemiky (C2160) 6. Funkce, struktury Funkce Program v jazyce C je strukturován do funkcí Příkazy jazyka C nelze nikdy uvádět mimo funkce Program začíná funkcí main(), z ní lze
Paralelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 16 Semafory Await synchronizace používající await běží na železe = využívají
Profilová část maturitní zkoušky 2013/2014
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
Distribuované systémy a výpočty
Distribuované systémy a výpočty 9 Jan Janeček Czech Technical University in Prague c Jan Janeček, 2011 MI-DSV, SS 2011/12 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Jan Janeček
Úvod do programování. Lekce 1
Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -
<surface name="pozadi" file="obrazky/pozadi/pozadi.png"/> ****************************************************************************
zdroje/zdroje.xml
Real Time programování v LabView. Ing. Martin Bušek, Ph.D.
Real Time programování v LabView Ing. Martin Bušek, Ph.D. Úvod - související komponenty LabVIEW development Konkrétní RT hardware - cíl Použití LabVIEW RT module - Pharlap ETS, RTX, VxWorks Možnost užití
VzorTest-1. Prohlídka náhledu
1 z 11 14.11.2017 11:30 Přijímací zkouška magisterského studia Moodle Test MSP Testy VzorTest-1 Prohlídka náhledu Jste přihlášeni jako Josef Kolář (Odhlásit se) Info Výsledky Náhled Upravit VzorTest-1
Standardní algoritmy vyhledávací.
Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární
Řízení IO přenosů DMA řadičem
Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována
Matematika v programovacích
Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?
Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
Aplikace metody BDDC
Aplikace metody BDDC v problémech pružnosti P. Burda, M. Čertíková, E. Neumanová, J. Šístek A. Damašek, J. Novotný FS ČVUT, ÚT AVČR 14.9.2006 / SAMO 06 (FS ČVUT, ÚT AVČR) 14.9.2006 / SAMO 06 1 / 46 Osnova
Spojová implementace lineárních datových struktur
Spojová implementace lineárních datových struktur doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB
Programování v C++, 2. cvičení
Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule
Práce s binárními soubory. Základy programování 2 Tomáš Kühr
Práce s binárními soubory Základy programování 2 Tomáš Kühr Binární soubory Mohou mít libovolnou strukturu Data jsou uložena ve stejné podobě jako v paměti za běhu programu Výhody: Pro uložení je potřeba
Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů
Začínáme vážně programovat Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Podmínky a cykly Dokončení stručného přehledu řídících struktur jazyka C. Složený příkaz, blok Pascalské