Martin Lísal. Úvod do MPI



Podobné dokumenty
IB109 Návrh a implementace paralelních systémů. Organizace kurzu a úvod. RNDr. Jiří Barnat, Ph.D.

1 Rozdělení paralelních úloh z hlediska jejich

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

Ústav technické matematiky FS ( Ústav technické matematiky FS ) / 35

Motivace. Software. Literatura a odkazy

Úvod do OpenMP. Jiří Fürst

Paralelní výpočetní jádro matematického modelu elektrostatického zvlákňování

Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty

Univerzita Jana Evangelisty Purkyně v Ústí nad Labem. Přírodovědecká fakulta

Paralelní výpočty ve finančnictví

Paralelní a distribuované výpočty (B4B36PDV)

OPS Paralelní systémy, seznam pojmů, klasifikace

Zřízení studijního oboru HPC (High performance computing)

Objektově orientovaná implementace škálovatelných algoritmů pro řešení kontaktních úloh

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

Datová věda (Data Science) akademický navazující magisterský program

IB109 Návrh a implementace paralelních systémů. Analytický model paralelních programů. RNDr. Jiří Barnat, Ph.D.

Tvorba počítačových clusterů pomocí Linuxu. Vedoucí práce: Mgr. Jiří Pech, Ph.D. Katedra informatiky

Paralelní a distribuované výpočty (B4B36PDV)

INOVACE ODBORNÉHO VZDĚLÁVÁNÍ NA STŘEDNÍCH ŠKOLÁCH ZAMĚŘENÉ NA VYUŽÍVÁNÍ ENERGETICKÝCH ZDROJŮ PRO 21. STOLETÍ A NA JEJICH DOPAD NA ŽIVOTNÍ PROSTŘEDÍ

Propojení matematiky, fyziky a počítačů

SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ

Úvod do B4B36PDV. Organizace předmětu a seznámení se s paralelizací. B4B36PDV Paralelní a distribuované výpočty

Paralelní algoritmy --- Parallel Algorithms

Hlavní využití počítačů

Paralelní grafové algoritmy

SIMULACE ŠÍŘENÍ NAPĚŤOVÝCH VLN V KRYSTALECH MĚDI A NIKLU

Numerické modelování interakce proudění a pružného tělesa v lidském vokálním traktu

METACentrum Český národní gridovýprojekt. Projekt METACentrum. Jan Kmuníček ÚVT MU & CESNET. meta.cesnet.cz

Numerické řešení proudění stupněm experimentální vzduchové turbíny a budících sil na lopatky

Paralelní architektury se sdílenou pamětí typu NUMA. NUMA architektury

Paralelní a distribuované výpočty (B4B36PDV)

Povídání na téma. SUPERPOČÍTAČE DNES A ZÍTRA (aneb krátký náhled na SC) Filip Staněk

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY TECHNIKY PARALELNÍHO ZPRACOVÁNÍ VÝPOČTŮ

Západočeská univerzita FAKULTA APLIKOVANÝCH VĚD

Paralelní programování

Využití paralelních výpočtů v geodézii

4. Úvod do paralelismu, metody paralelizace

Projekt EGEE / EGI. Jan Kmuníček CESNET. Enabling Grids for E-sciencE. EGEE-III INFSO-RI

Výukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití.

Server je v informatice obecné označení pro počítač, který poskytuje nějaké služby nebo počítačový program, který tyto služby realizuje.

IB109 Návrh a implementace paralelních systémů. Organizace kurzu a úvod. Jiří Barnat

Digitální učební materiál

Architektury paralelních počítačů I.

PB002 Základy informačních technologií

AVDAT Nelineární regresní model

Paralelní programování

CERIT SCIENTIFIC CLOUD. Centrum CERIT-SC. Luděk Matyska. Praha, Seminář MetaCentra,

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

METACentrum zastřešení českých gridových aktivit

MATEMATIKA V MEDICÍNĚ

Rozvoj tepla v betonových konstrukcích

Static Load Balancing Applied to Time Dependent Mechanical Problems

cv3.tex. Vzorec pro úplnou pravděpodobnost

U Úvod do modelování a simulace systémů

Transformace digitalizovaného obrazu

Disková pole (RAID) 1

Paralelní LU rozklad

Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti 1 / 16

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

C2115 Praktický úvod do superpočítání

Pokročilé architektury počítačů

Struktura pamětí a procesů v DB Oracle. Radek Strnad

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Tento dokument obsahuje zadání pro semestrální programy z PAA. Vypracování. vypracovanou úlohu podle níže uvedených zadání. To mimo jiné znamená, že

Provozní statistiky centra CERIT-SC

Přednáška #12: Úvod do paralelních počítačů. Paralelní počítače a architektury

Paralelní programování

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Základy algoritmizace

Optimalizace pomocí icc/gcc - vektorizace

Zpracoval: 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty.

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Nelineární obvody. V nelineárních obvodech však platí Kirchhoffovy zákony.

Paměti cache. Cache může být realizována softwarově nebo hardwarově.

Numerická matematika 1

Disková pole (RAID) 1

Software pro modelování chování systému tlakové kanalizační sítě Popis metodiky a ukázka aplikace

Sem vložte zadání Vaší práce.

Pokročilé architektury počítačů

APROXIMACE KŘIVEK V MATLABU NEWTONŮV INTERPOLAČNÍ POLYNOM CURVE FITTING IN MATLAB NEWTON INTERPOLATION POLYNOMIAL

Jednání OK , podklad k bodu 2: Návrh valorizace důchodů

Šíření tepla. Obecnéprincipy

Aktuální stav MetaCentra, novinky

Návrh paralelních algoritmů

Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič

Povídání na téma SUPERPOČÍTAČE DNES A ZÍTRA

Bakalářský studijní obor informatika

Práce v textovém editoru

Flyback converter (Blokující měnič)

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

1 Strukturované programování

časovém horizontu na rozdíl od experimentu lépe odhalit chybné poznání reality.

Vlákna a přístup ke sdílené paměti. B4B36PDV Paralelní a distribuované výpočty

Matematika v programovacích

Řešení "stiff soustav obyčejných diferenciálních rovnic

Transkript:

Martin Lísal září 2003 PARALELNÍ POČÍTÁNÍ Úvod do MPI 1

1 Co je to paralelní počítání? Paralelní počítání je počítání na paralelních počítačích či jinak řečeno využití více než jednoho procesoru při výpočtu (viz. obr. 1). 2 Proč potřebujeme paralelní počítače? Od konce 2. světové války dochází k bouřlivému rozvoji počítačových simulací (computational science). Počítačové simulace řeší problémy, které teoretická věda (theoretical science) nedokáže vyřešit analyticky či problémy, které jsou obtížné nebo nebezpečné pro experimentální vědu (experimental science). Jako příklad uveďme proudění okolo trupu letadla, které teoretická věda dokáže popsat parciálními diferenciálními rovnicemi; ty ale nedokáže analyticky řešit. Dalším příkladem je určení vlastností plazmy. Jelikož plazma existuje při vysokých teplotách, je experimentální měření většiny jejich vlastností obtížné či přímo nemožné. Počítačové simulace vyžadují náročné numerické výpočty, které se v současnosti neobejdou bez nasazení paralelizace. Vývoj procesorů naráží (či v budoucnu narazí) na svůj materiálový limit t.j. vývoj procesorů nepůjde zvyšovat do nekonečna. (To pull a bigger wagon, it is easier to add more oxen than to grow a gigantic ox.) Cena nejvýkonějších (advanced) procesorů na trhu obvykle roste rychleji než jejich výkon. (Large oxen are expansive.) 3 Problémy spojené s vývojem paralelního počítání Hardware: v současné době lze konstruovat paralelní počítače mající společnou (sdílenou) paměť pro maximálně asi 100 procesorů. Trendem je tedy spojení jednoprocesorových či několikaprocesorových počítačů do clusteru pomocí rychlé komunikační sítě tzv. switche. Pozornost v 2

oblasti hardwaru se proto převážně zaměřuje na vývoj switchů, které umožňují rychlost meziprocesorové komunikace srovnatelnou s rychlostí komunikace mezi procesorem a vnitřní pamětí počítače. Algoritmy: bohužel se ukazuje, že některé algoritmy používané na jednoprocesorových počítačích nelze dobře paralelizovat. To vede k nutnosti vytvářet zcela nové paralelní algoritmy. Software: existují prostředky pro automatickou paralelizaci jakými jsou např. paralelní kompilátory [High Performance Fortran (HPF) Standard] či paralelní numerické knihovny. Platí (a pravděpodobně dlouho bude platit), že nejlepší paralelizace je ta, kterou si uděláme sami. 4 Kdy se vyplatí paralelizace? Zrychlení výpočtu paralelizací lze odhadnout pomocí Amdahlova pravidla: 100 P + P (1) n kde P je část programu, kterou lze paralelizovat a n je počet použitých procesorů. Amdahlovo pravidlo nám říká, kolik procent výpočtového času bude trvat paralelizovaný program oproti stejnému programu spuštěnému na jednoprocesorovém počítači. Uveďme si jednoduchý ilustrativní příklad. Představme si, že máme sečíst 1 000 000 000 prvků vektoru a. Načtení prvků trvá 8% celkového výpočtového času, vlastní výpočet součtu trvá 90% celkového výpočtového času a tisk trvá 2% celkového výpočtového času. Je zřejmé, že jen výpočet součtu lze paralelizovat t.j. P = 90% (viz. obr. 2). V případě použití n = 10 procesorů dostaneme z Amdahlova pravidla výsledek 19% t.j. zrychlení výpočtu paralelizací přibližně 5-krát. Z Amdahlova pravidla a uvedeného příkladu plynou dva závěry: (i) neplatí přímá úměra mezi počtem procesorů a urychlením výpočtu ( užití 10 procesorů neznamená urychlení výpočtu 10-krát ) a (ii) pro limitní případ n je urychlení výpočtu konečné a rovno 100/(100 P ). 3

5 Závisí způsob paralelizace výpočtů na architektuře paralelních počítačů? Způsob paralelizace výpočtů bohužel závisí na architektuře paralelních počítačů. V současnosti se nejvíce používají dva typy architektur: (i) paralelní počítače se sdílenou pamětí (shared ) a (ii) paralelní počítače s distribuovanou pamětí (distributed ); viz. obr. 3. Z hlediska způsobu paralelizace je výhodnější architektura se sdílenou pamětí, neboť sdílení a výměna informací mezi procesory během výpočtu se děje přes sdílenou (společnou) paměť. Paralelizace na shared- počítačích se provádí pomocí tzv. OpenMP. OpenMP je seznam direktiv, které se vkládají na místa, které chceme paralelizovat. Jinými slovy říkáme počítači kde a co paralelizovat. Uveďme si jako příklad paralelizaci cyklu (do) pomocí OpenMP:!$OMP PARALLEL DO do i = 2, n b(i) = (a(i) + a(i-1)) / 2.0 end do!$omp END PARALLEL DO Direktiva před začátek cyklu,!$omp PARALLEL DO, říká: paralelizuj cyklus, zatímco direktiva na konci cyklu,!$omp END PARALLEL DO, říká: ukonči paralelizaci cyklu. 1 Paralelní počítače se sdílenou pamětí jsou oproti paralelním počítačům s distribuovanou pamětí dražší a počet procesorů sdílející jednu paměť je v současnosti omezen maximálně asi na 100. Proto se běžněji setkáváme s distributed- počítači. Distributed- počítače mají fyzicky oddělené paměti a komunikace (sdílení dat) mezi procesory zajišťuje switch. Paralelizace na distributed- počítačích je obtížnější než paralelizace na shared- počítačích, neboť musíme zajistit a pracovat s předáváním informací (message passing) mezi procesory během výpočtu. Na paralelních počítačích s distribuovanou pamětí se používají dva systémy: (i) Parallel Virtual Machine (PVM) vhodný pro heterogenní clustery a (ii) 1 Jelikož direktivy OpenMP začínají! a ten se ve FORTRANu90 interpretuje jako začátek komentářového řádku, lze programy s direktivami OpenMP spouštět bez problému na jednoprocesorových počítačích. 4

Message Passing Interface (MPI) vhodný pro homogenní clustery. PVM a MPI je knihovna příkazů pro FORTRAN, C a C++, jež umožňují předávání informací mezi procesory během výpočtu. Komunikace představuje časovou ztrátu, o kterou se sníží zrychlení výpočtu paralelizací dané Amdahlovým pravidlem. Čas komunikace (overhead) jako funkce množství předávané informace je znázorněn na obr. 4. Z obr. 4 je patrno, že čas komunikace závisí na latenci (času, který potřebuje procesor a switch k navázání komunikace ) a dále, že overhead roste s množstvím předávané informace mezi procesory. Z obr. 4 plynou následující zásady, které bychom měli dodržovat při parelelizaci na počítačích s distribuovanou pamětí: (i) přenášet co nejméně informací a (ii) komunikovat co nejméně. 5

Obrázek 1: Schema (a) jednoprocesorového a (b) paralelního počítače typu výpočtový cluster; paměť (), procesor (). Obrázek 2: Schema (a) sériového a (b) paralelního programu (běžícího na 4 procesorech). S 1 a S 2 jsou částí programu, které nelze paralelizovat a P je paralelizovatelná část programu. Obrázek 3: Schema paralelního počítače (a) se sdílenou pamětí (shared ) a (b) s distribuovanou pamětí (distributed ). 6

Obrázek 4: Čas komunikace (overhead) versus množství předávané informace mezi procesory. 7

Obrázek 1 (M. Lísal, 1. Týden) (a) Jednoprocesorový počítač (b) Paralelní počítač typu výpočtový cluster

Obrázek 2 (M. Lísal, 1. Týden) (a) Sériový program (b) Paralelní program a.out S1 P S1 S1 S1 S1 S2 P P P P S2 S2 S2 S2

Obrázek 3 (M. Lísal, 1. Týden) (a) Paralelní počítač se sdílenou pamětí (shared ) (b) Paralelní počítač s distribuovanou pamětí (distributed ) (shared) switch ~ komunikace

Obrázek 4 (M. Lísal, 1. Týden) čas komunikace (overhead) latence množství přenášené informace