PPMPI PŘEDMLUVA


Original: http://www.cs.usfca.edu/~peter/ppmpi/preface.html

Předmluva

Nyní je jasné, že paralelní výpočty je tady k pobytu: naše věčná potřeba navěky větší výpočetní výkon prostě nelze vyhovět, konvenční, jedním procesorem architektury. Další a další firmy investují do architektury s více procesory, a více a více škol a univerzit jsou včetně paralelní výpočty do svých osnov.

Zvýšení využití paralelních výpočtů se urychluje vývoj norem pro programování paralelních systémů. Vývojáři mohou nyní psát přenosné programy a tudíž očekávají, že jim přiměřenou návratnost obrovské investice v projektu vývoje velké paralelní softwaru.

O MPI
Rozhraní zasílání zpráv nebo MPI je nejvíce široce použité nové standardy. To není nový programovací jazyk; spíše je to knihovna podprogramů, které lze volat z C a Fortran 77 programů. Byl vyvinut otevřené, mezinárodní fórum složené ze zástupců průmyslu, akademické a vládní laboratoře. Rychle získalo široké přijetí protože byl pečlivě navržen umožňující maximální výkon na širokou škálu systémů a je založena na předávání zpráv, jeden z nejvíce výkonné a široce používané paradigmata programování paralelních systémů. Zavedením MPI umožňuje vývojářům paralelních softwaru k napsání knihovny paralelních programů, které jsou přenosné a efektivní. Použití těchto knihoven bude skrývat mnoho podrobností o paralelní programování a proto učinit paralelní výpočty mnohem přístupnější pro studenty a odborníky ve všech odvětvích vědy a inženýrství.

O této knize
Jako paralelní výpočty posunul více do hlavního proudu, je tu zřejmá potřeba pro úvodní text na paralelní programování – text, který lze použít studenti a odborníci, kteří nejsou specialisté na paralelní výpočty, ale stále chtějí naučit dost o paralelní programování tak, aby mohli využít mnohem větší výpočetní možnosti poskytované paralelních systémů. Paralelního programování v MPI byly zapsány na tuto potřebu vyplnit. Tento text má za cíl poskytnout studentů, vyučujících a profesionálů s nástrojem, který může usnadnit jejich přechod do této radikálně odlišné technologie.

Paralelního programování v MPI nebo PPMPI je především “hands-on” Úvod do programování paralelních systémů. Byl napsán pro studenty a odborníky, kteří nemají žádné předchozí zkušenosti v programování paralelních systémů. Byl navržen pro použití jako samostudium tutoriál i jako text ve více konvenční laboratorní nastavení učebny/počítač. Jediným předpokladem k přečtení je seznámil s prvního ročníku školy matematické posloupnosti a znalosti na vysoké úrovni, procedurální jazyk výpočetní přikyvuje. PPMPI poskytuje kompletní Úvod do MPI a elementární Úvod do paralelního programování. Pokrývá všechny funkce MPI, poskytuje stručný přehled o paralelních výpočtů a poskytuje úvod do takových témat jako paralelní ladění, paralelní program design a vývoj a analýza výkonnosti paralelních programu. To také obsahuje úvod do použití knihoven, MPI. V přesvědčení, že ” vyučování příkladem ” je nejužitečnější přístup všechny pojmy jsou zavedeny pomocí plně vyvinutý příklady. Zdroj pro všechny programy lze stáhnout z http://www.cs.usfca.edu/mpi.

Kromě materiálů v kapitolách 3-8 kapitol jsou většinou soběstačné a lze číst v libovolném pořadí. Kapitoly 3-8 tvoří samostatný kurz Úvod do MPI a jako takové asi obsaženou v pořádku a před zbývajících kapitol. Jsou však součástí těchto kapitol, které mohou být vynechány bez ztráty kontinuity. Shromažďovat materiál na, bodových a allgather v kapitole 5 a materiál na topologie v bodu 7 mohou být bezpečně vynechány v prvním čtení.

Před zápisem ve skutečnosti větší paralelní program, budete pravděpodobně chtít alespoň seznámit s některými problémy, provedení I/O na paralelních systémů. Kapitola 8 tak by měli dostat alespoň zběžnou úvodní vyšetření. Pokud jste dočkat, aby využívání non blokování komunikace, Kapitola 13 lze číst v libovolném bodě po dokončení kapitoly 7. Sekce 1.5 obsahuje podrobnější přehled o obsahu jednotlivých kapitol.

Vzhledem k tomu, že prostor úvahy nedovolují prezentace programování v C a Fortran, bylo na výběr mezi dvěma. Pro studenty použití C je jasná volba, protože většina se naučit programovat v Pascalu nebo C++, které jsou blíže než c, Fortran 77. Nicméně Fortran by jazyk volbou pro většinu praktikující vědce a inženýry. Domnívat se, že větší zkušenosti odborné publikum bude jednodušší pro ně než pro studenty na příklady v neznámém jazyce, rozhodl jsem se využít celé C. Nicméně snažil jsem se psát všechny zdroje C ve stylu, který by měl být relativně dostupné pro Fortran programátora. Jsem velmi omezené využívání ukazatelů a dynamického přidělování paměti, a snažil jsem se vyhnout použití C je více obskurní konstrukce. Kromě toho všechny programy příklad jsou k dispozici online v Fortran 77, díky bývalý student, Laura Koonce, který udělal překlad. Mohou stáhnout z http://www.cs.usfca.edu/mpi.
Všechny příklady v textu byly napsány v ANSI C, spíše než Kernighan a Ritchie C. Takže pokud váš systém používá K & R C kompilátor, budete pravděpodobně chtít získat jiný kompilátor. Používá GNU C kompilátor gcc, ANSI C, je volně dostupný z mnoha míst na internetu, a byl portován na prakticky všech v současnosti dostupných systémů.
Všechny programy v textu byly testovány na síti pracovních stanicích Silicon Graphics s mpich implementací MPI. Také byly testovány na nCUBE 2 mírně optimalizovanou verzí mpich. Prosím nahlaste všechny chyby, které povrch, v kódu nebo textu, [email protected] Budu platit obvyklé bounty $1 první osobě hlášení všech chyb. Seznam chyby bude k dispozici na http://www.cs.usfca.edu/mpi/errata.html.
Použití ve třídě
Paralelní programování bude brzy základní součástí každého počítače vědci vzdělávání, a PPMPI bude vhodné pro použití ve druhé nebo třetí semestr základní výpočetní sekvence. V současné době však většina vysokých škol a univerzit zavést paralelní programování v horním dělení tříd na počítačové architektury nebo algoritmy. Pro tyto třídy jsem použil PPMPI jako doplněk k existujícím, konvenční texty. Přiřaďte materiál v kapitolách 3-10 jako čtení na příslušných místech v kurzu a pokrýt zbývající materiál podle potřeby v učebně. Například ve třídě paralelních algoritmů si USF, trávím pár týdnů zahrnující materiály kapitol 1 a 2. Části kapitoly 3-10 jsou přiřazeni jako čtení na různých místech během kurzu – obvykle, když programovací úloha využívá materiálu. Materiál na výkon je podrobně ve třídě a u některých základních paralelní algoritmy (např. skalární součin a násobení matice vektor). Fox je algoritmus v kapitole 7 a bitonické řazení a hledání paralelní strom v kapitole 14 príkladu naší první “významné” paralelních algoritmů. Ve zbývající části kurzu jsme pokrýt více paralelních algoritmů od texty jako Kumar, et al Úvod do paralelních výpočtů.
Rovněž se zde vyučují horní rozdělení třídy v paralelní programování v USF. PPMPI následuje více či méně na základě kapitolu po kapitole. Podrobnosti o co je pokryta v učebně jsou přizpůsobeny na úroveň studentů. Dobře motivovaní studenti velmi málo času stráveného na syntaxi a kurz se ukáže být velmi blízko třídu výše popsaných paralelních algoritmů. Pro méně motivované studenty vedu třídu v podstatě stejným způsobem jako “Úvod k programování třídy ”. Každý týden nebo dva jsem zavést nový problém a pak stráví týden nebo dva diskutuje vývoj řešení. To obvykle vyžaduje poměrně rozsáhlé diskuse o syntaxi a sémantiku MPI funkcí.
Také přednáším pro seniory a postgraduální studenty, v nichž tráví rok pracoval na paralelní programování projekt sponzorovaný společností nebo vládní agentura. V této třídě obvykle tráví týden nebo dva na přehled paralelních výpočtů. Studenti se naučí paralelní programování prací prostřednictvím PPMPI na jejich vlastní.
Podpůrné materiály
Problémy v textu se dělí na “cvičení ” a ” programování přiřazení.” Většina cvičení zahrnují nějaké programování, ale zaměřují se na zvládnutí jediné základní koncepce a úsilí účastní zápisu řešení do cvičení je minimální ve srovnání s, potřebné k dokončení programování přiřazení. Ušetřit instruktoři z pracný aktivity navrhování hlavní programovací úlohy, bude existovat úložiště k dispozici on-line na http://www.cs.usfca.edu/mpi/progs.html. Aby Tento repozitář tak velký, chtěl bych aby to skupinové úsilí, a doporučujeme instruktoři cvičení a programování přiřazení (a, pokud je řešení máte) se mi na [email protected]

Comments are closed.