Předávání zpráv v počítačových klastrech - Message passing in computer clusters
Předávání zpráv je nedílnou součástí všech počítačové klastry. Všechny počítačové klastry, od domácích Beowulfs k nejrychlejším superpočítače ve světě spoléhejte na předávání zpráv, abyste mohli koordinovat aktivity mnoha uzlů, které obklopují.[1][2] Předávání zpráv v počítačových klastrech postavených na komoditě servery a spínače používá prakticky každá internetová služba.[1]
V poslední době se šíří využití počítačových clusterů s více než tisícem uzlů. Jak se počet uzlů v klastru zvyšuje, rychlý růst složitosti komunikačního subsystému způsobuje zpoždění předávání zpráv přes propojit vážný problém s výkonem při provádění paralelní programy.[3]
K simulaci, vizualizaci a porozumění výkonu předávání zpráv v počítačových klastrech lze použít konkrétní nástroje. Před sestavením velkého počítačového clusteru, a trasovací simulátor může použít malý počet uzlů, aby pomohl předpovědět výkon předávání zpráv na větších konfiguracích. Následující testovací běhy na malém počtu uzlů simulátor přečte provedení a přenos zprávy Záznam souborů a simuluje výkon subsystému zasílání zpráv, když je vyměněno mnohem více zpráv mezi mnohem větším počtem uzlů.[4][5]
Zprávy a výpočty
Přístupy k předávání zpráv
Historicky dva typické přístupy ke komunikaci mezi uzly clusteru byly PVM Paralelní virtuální stroj a MPI Rozhraní pro předávání zpráv.[6] MPI se však nyní ukázalo jako de facto standard pro předávání zpráv v počítačových klastrech.[7]
PVM předchází MPI a byl vyvinut na Národní laboratoř v Oak Ridge kolem roku 1989. Poskytuje sadu softwarových knihoven, které umožňují výpočetnímu uzlu fungovat jako „paralelní virtuální stroj“. Poskytuje běhové prostředí pro předávání zpráv, správu úkolů a prostředků a upozornění na poruchy a musí být přímo nainstalováno na každém uzlu clusteru. PVM mohou používat uživatelské programy zapsané v C, C ++ nebo Fortran, atd.[6][8]
Na rozdíl od PVM, který má konkrétní implementaci, je MPI spíše specifikací než konkrétní sadou knihoven. Specifikace se objevila počátkem roku 1990 z diskuzí mezi 40 organizacemi, přičemž počáteční úsilí podpořila ARPA a Národní vědecká nadace. Návrh MPI vycházel z různých funkcí dostupných v komerčních systémech té doby. Specifikace MPI pak vedla ke konkrétním implementacím. MPI implementace obvykle používají TCP / IP a zásuvky.[6] MPI je nyní široce dostupný komunikační model, který umožňuje psát paralelní programy v jazycích, jako je C, Fortran, Krajta, atd.[8] Specifikace MPI byla implementována v systémech jako MPICH a Otevřete MPI.[8][9]
Testování, hodnocení a optimalizace
Počítačové klastry používají řadu strategií pro řešení distribuce zpracování přes více uzlů a výsledné komunikační režie. Některé počítačové klastry jako např Tianhe-I používat jiné procesory pro předávání zpráv než ty, které se používají k provádění výpočtů. Tiahnhe-I používá přes dva tisíce FeiTeng-1000 procesory, aby zlepšily provoz svého proprietárního systému pro předávání zpráv, zatímco výpočty provádí Xeon a Nvidia Tesla procesory.[10][11]
Jedním z přístupů ke snížení režie komunikace je využití místních čtvrtí (nazývaných také národní prostředí ) pro konkrétní úkoly. Zde jsou výpočetní úkoly přiřazeny konkrétním „sousedstvím“ v klastru, aby se zvýšila efektivita pomocí procesorů, které jsou si bližší.[3] Avšak vzhledem k tomu, že v mnoha případech skutečné topologie uzlů počítačového clusteru a jejich vzájemných propojení nemusí být vývojářům aplikací znám, pokus o jemné doladění výkonu na úrovni aplikačního programu je docela obtížný.[3]
Vzhledem k tomu, že MPI se nyní stalo de facto standardem v počítačových klastrech, vedlo zvýšení počtu uzlů klastru k pokračujícímu výzkumu zaměřenému na zlepšení efektivity a škálovatelnosti knihoven MPI. Tyto snahy zahrnovaly výzkum ke snížení paměťové stopy knihoven MPI.[7]
Od prvních dnů poskytovala společnost MPI zázemí pro profilování výkonu prostřednictvím „profilovacího systému“ PMPI.[12] Použití předpony PMIPI umožňuje sledování vstupních a výstupních bodů pro zprávy. Vzhledem k vysoké úrovni tohoto profilu však tento typ informací poskytuje pouze pohled na skutečné chování komunikačního systému. Potřeba více informací vyústila ve vývoj systému MPI-Peruse. Peruse poskytuje podrobnější profil tím, že umožňuje aplikacím získat přístup ke změnám stavu v knihovně MPI. Toho je dosaženo registrací zpětných volání u Peruse a následným vyvoláním jako spouštěčů, když dojde k událostem zprávy.[13] Peruse může pracovat s vizualizačním systémem PARAVER. PARAVER má dvě složky, stopovou komponentu a vizuální komponentu pro analýzu stop, statistik souvisejících s konkrétními událostmi atd.[14] PARAVER může používat formáty trasování z jiných systémů nebo provádět vlastní trasování. Funguje na úrovni úkolů, úrovní podprocesů a v hybridním formátu. Stopy často obsahují tolik informací, že jsou často ohromující. PARAVER je tedy shrnuje, aby je uživatelé mohli vizualizovat a analyzovat.[13][14][15]
Analýza výkonu
Když ve velkém měřítku, často superpočítač úrovni, vyvíjí se paralelní systém, je nezbytné umět experimentovat s více konfiguracemi a simulovat výkon. V tomto scénáři existuje řada přístupů k modelování efektivity předávání zpráv, od analytických modelů po simulaci založenou na trasování a některé přístupy se při provádění spoléhají na použití testovacích prostředí založených na „umělé komunikaci“ syntetické testy výkonu předávání zpráv.[3] Systémy jako VELKÝ poskytovat tato zařízení tím, že umožňuje simulaci výkonu na různých topologie uzlů, strategie předávání zpráv a plánování.[4]
Analytické přístupy
Na analytické úrovni je nutné modelovat komunikační čas T z hlediska sady dílčích komponent, jako je spuštění latence, asymptotická šířka pásma a počet procesorů. Dobře známým modelem je Hockneyho model, na který se jednoduše spoléhá komunikace mezi dvěma body, pomocí T = L + (M / R), kde M je velikost zprávy, L je spouštěcí latence a R je asymptotická šířka pásma v MB / s.[16]
Xu a Hwang zobecnili Hockneyův model tak, aby zahrnoval počet procesorů, takže latence i asymptotická šířka pásma jsou funkcemi počtu procesorů.[16][17] Gunawan a Cai to poté zobecnili zavedením velikost mezipaměti, a oddělil zprávy na základě jejich velikostí, získal dva samostatné modely, jeden pro zprávy s velikostí pod mezipamětí a jeden pro ty výše.[16]
Simulace výkonu
K simulaci a porozumění výkonu předávání zpráv v počítačových klastrech lze použít konkrétní nástroje. Například CLUSTERSIM používá pro Java vizuální prostředí simulace diskrétních událostí. V tomto přístupu jsou vizuálně modelovány vypočítané uzly a topologie sítě. Úlohy a jejich trvání a složitost jsou zastoupeny konkrétně rozdělení pravděpodobnosti umožňující různé paralelní plánování úloh algoritmy, které mají být navrženy a experimentovány. Komunikační režie pro MPI předávání zpráv lze tedy simulovat a lépe pochopit v kontextu rozsáhlého provádění paralelních úloh.[18]
Mezi další simulační nástroje patří MPI-sim a BIGSIM.[19] MPI-Sim je simulátor řízený prováděním, který k provozu vyžaduje programy C nebo C ++.[18][19] ClusterSim na druhé straně používá hybridní systém modelování na vyšší úrovni nezávislý na programovacím jazyce použitém pro provádění programu.[18]
Na rozdíl od MPI-Sim je BIGSIM systém řízený trasováním, který simuluje na základě protokolů o popravách uložených v souborech samostatným programem emulátoru.[5][19] BIGSIM obsahuje emulátor a simulátor. Emulátor spouští aplikace na malém počtu uzlů a ukládá výsledky, takže je může simulátor používat a simulovat aktivity na mnohem větším počtu uzlů.[5] Emulátor ukládá informace o sekvenčních blocích provádění (SEB) pro více procesorů do souborů protokolu, přičemž každý SEB zaznamenává odeslané zprávy, jejich zdroje a cíle, závislosti, časování atd. Simulátor čte soubory protokolu a simuluje je a může hrát další zprávy, které jsou poté také uloženy jako SEB.[4][5] Simulátor tak může poskytnout pohled na výkon velmi velkých aplikací na základě tras provádění poskytovaných emulátorem na mnohem menším počtu uzlů, než bude k dispozici nebo nakonfigurován celý stroj.[5]
Viz také
Reference
- ^ A b Organizace a design počítače podle David A. Patterson a John L. Hennessy 2011 ISBN 0123747503 strana 641 [1]
- ^ Clusterové výpočty Beowulf s Windows Thomas Lawrence Sterling 2001 ISBN 0262692759 MIT Stiskněte stránky 7–9
- ^ A b C d Nedávné pokroky v rozhraní pro předávání zpráv předložili Yiannis Cotronis, Anthony Danalis, Dimitris Nikolopoulos a Jack Dongarra 2011 ISBN 3642244483 stránky 160–162
- ^ A b C Petascale Computing: Algoritmy a aplikace David A. Bader 2007 ISBN 1584889098 stránky 435–435
- ^ A b C d E Jazyky a překladače pro paralelní výpočty editovali Keith Cooper, John Mellor-Crummey a Vivek Sarkar 2011 ISBN 3642195946 stránky 202–203
- ^ A b C Distribuované služby s OpenAFS: pro podniky a vzdělávání Franco Milicchio, Wolfgang Alexander Gehrke 2007, str. 339-341
- ^ A b Nedávné pokroky v paralelním virtuálním stroji a rozhraní pro předávání zpráv autori Matti Ropo, Jan Westerholm a Jack Dongarra 2009 ISBN 3642037690 strana 231
- ^ A b C Grid and Cluster Computing J. Prabhu 2008 ISBN 8120334280 strany 109–112
- ^ Gropp, William; Lusk, Ewing; Skjellum, Anthony (1996). „Vysoce výkonná, přenosná implementace rozhraní pro předávání zpráv MPI“. Parallel Computing.CS1 maint: ref = harv (odkaz)
- ^ Superpočítač TianHe-1A: jeho hardware a software autor: Xue-Jun Yang, Xiang-Ke Liao a kol Journal of Computer Science and Technology, Svazek 26, číslo 3, květen 2011, strany 344–351 „Archivovaná kopie“. Archivovány od originál dne 21.06.2011. Citováno 2012-02-08.CS1 maint: archivovaná kopie jako titul (odkaz)
- ^ USA tvrdí, že Čína staví „zcela domorodý“ superpočítačod Patricka Thibodeaua Computerworld 4. listopadu 2010 [2]
- ^ Co je PMPI?
- ^ A b Nedávné pokroky v paralelním virtuálním stroji a rozhraní pro předávání zpráv Bernd Mohr, Jesper Larsson Träff, Joachim Worringen a Jack Dongarra 2006 ISBN 354039110X strana 347
- ^ A b PARAVER: Nástroj pro vizualizaci a analýzu paralelního kódu autor: Vincent Pillet a kol., Sborník z konference o vývoji Transputer a Occam, 1995, strany 17–31
- ^ Výpočetní věda - Iccs 2003 úprava Peter M.A. Sloot, David Abramson, Alexander V. Bogdanov a Jack J. Dongarra ISBN 3540401970 strana 183
- ^ A b C Modelování zpráv předávaných nad hlavou od C.Y Chou a kol. in Advances in Grid and Pervasive Computing: First International Conference, GPC 2006 edited by Yeh-Ching Chung and José E. Moreira ISBN 3540338098 stránky 299–307
- ^ Vysoce výkonná práce na počítači a práci v síti editoval Peter Sloot, Marian Bubak a Bob Hertzberge 1998 ISBN 3540644431 strana 935
- ^ A b C Vysoce výkonná výpočetní věda a inženýrství editoval Michael K. Ng, Andrei Doncescu, Laurence T. Yang a Tau Leng, 2005 ISBN 0387240489 stránky 59–63
- ^ A b C Pokroky v informatice, životním prostředí, ekoinformatice a vzdělávání editoval Song Lin a Xiong Huang 2011 ISBN 3642233236 strana 16