Összefogalás (2. ea) Összefoglalás Szeberényi Imre BME IIT <szebi@iit.bme.hu> M Ű E G Y ET E M 7 8 2 20.05.04. - - Párhuzamos architektúrák Párhuzamos programok modellezése Párh. prog. fejlesztési módszerek kevés algoritmus Fejlesztési környezetek, nyelvek PVM, MPI OpenMp Clearspeed CUDA 20.05.04. - 2 - Flynn-féle architektúra modell Idealizált párhuzamos számítógép Single INSTRUCTIONS Multiple Single Single Instruction Single Data SISD (serial machines) Multiple Instruction Single Data MISD (pipelines) DATA Multiple Single Instruction Multiple Data SIMD (vector processors) Multiple Instruction Multiple Data MIMD (multiprocesszors) memória CPU memória CPU 2 Összeköttetés memória CPU 3 Több processzor egyazon problémán dolgozik. Minden processzornak saját memóriája és címtartománya van. Üzenetekkel koordinálnak és adatokat is tudnak átadni. A lokális memória elérése gyorsabb. Az átviteli sebesség független a csatorna forgalmától. 20.05.04. - 3-20.05.04. - 4 - Architektúrák jellemzői Programozási modell Processzorok eloszlása Homogén vagy heterogén A kapcsolat késleltetése és sávszélessége Topológia Hálók Gyűrűk Fák Hiperkockák Közös memóriás Elosztott közös memóriás Üzenet küldéses Valójában egyik modell sem kötődik szorosan a tényleges architektúrához Teljesen összekötött 20.05.04. - 5-20.05.04. - 6 -
Taszk/csatorna modell / minden taszk szekvenciális programot futtat minden taszknak van saját memóriája taszkok csatornákkal kapcsolódnak a csatornák üzenetsorokat valósítanak meg Taszk/csatorna modell /2 taszkok konkurensek van lokális memóriájuk küldés aszinkron fogadás szinkron csatornához in/out portokkal csatlakoznak taszkok tetszőlegesen rendelhetők össze a processzorokkal 20.05.04. - 7-20.05.04. - 8 - Taszk/csatorna modell /3 Példa: termelő-fogyasztó probléma taszk: termelő taszk2: fogyasztó Raktár Taszk/csatorna modell /4 Példa: termelő-fogyasztó probléma taszk: termelő taszk2: fogyasztó T T2 T T2 ha a fogyasztó lassabb, akkor a felhalmozódik a termelt termék ha a termelő a lassabb, a akkor vár a fogy. második csatornán a fogyasztó jelzi, ha kér újabb terméket a termelő ennek hatására termel 20.05.04. - 9-20.05.04. - 0 - Taszk/csat. modell jellemzői A modell közvetlenül hozzárendelhető az idealizált számítógéphez. A taszk egy soros kódot reprezentál. A csatorna processzorok közötti kommunikációt valósít meg. A taszk működése független a taszkprocesszor összerendeléstől, taszkok számától. Moduláris felépítést tesz lehetővé. Taszk/csatorna vs. üzenet Az üzenet egy adott taszknak szól, ezért kevésbé absztrakt, mint a csatorna. Az általános üzenetküldéses modell szerint nem lehet dinamikusan új taszkot létrehozni. (Több megvalósításban lehet.) Egy processzor csak egy taszkot futtathat. (Több megvalósításban ez sem korlát.) 20.05.04. - - 20.05.04. - 2-2
Párh. algoritmus példák / Véges differenciák: egy vektor minden elemére T-szer végre kell hajtani a következő műveletet: Párh. algoritmus példák /2 Páronkénti iteráció (pl. atomok kölcsönös egymásra hatása) Minden elemet egy-egy taszk számol, aki kommunikál a szomszédaival: N*(N-) üzenet kell, esetleg N*(N-)/2, ha kihasználjuk a szimmetriát. 20.05.04. - 3-20.05.04. - 4 - Párh. algoritmus példák /3 Párh. algoritmus példák /4 Körkörös kapcsolat (csatorna) a fenti problémára hatékonyabb üzenetstruktúrát eredményez: Egy N elemű vektorba minden taszk beteszi a saját adatát (koord., tömeg) és elküldi a szomszédnak. L 0 L 0 L 0 L 3 A bejövő üzenetbe megfelelő helyre ismét 2 elhelyezi a saját adatát és továbbküldi azt. N- lépés után mindenki ismeri az a többiek koordinátáit és tömegét. F értéke minden lépésben az új partnerek adata alapján akkumulálható. 3 0 N újabb csatornával az algoritmus a szimmetria miatt tovább egyszerűsíthető: hozzunk létre minden i. taszk és i+n/2-dik taszk között egy újabb csatornát. az adott atomra ható erőket folyamatosan számoljuk, és küldjük is körbe. N/2 iterációval előáll az eredmény. 0 L 0 F 0 L F L 2 F 2 L 3 F 3 L 4 F 4 4 3 2 20.05.04. - 5-20.05.04. - 6 - Párh. algoritmus példák /5 Párhuzamos keresés: fában történő keresés egyszerűen párhuzamosítható Paraméter elemzés: master-worker algoritmus 20.05.04. - 7 - PCAM módszertan. Particionálás: Részfeladatokra osztás. NEM veszi figyelembe a fizikai gép adottságait. 2. Kommunikáció megtervezése: Részfeladatok közötti adatcsere és szinkronizációs séma kialakítása. 3. Agglomeráció: Részfeladatok nagyobb egységekbe gyűjtése a hatékonyságnövelés érdekében. 4. Leképezés: A részfeladatok processzorhoz (feldolgozó elemhez) rendelése. 20.05.04. - 8-3
Domén dekompozíció Adat vagy paramétertér felosztása. Az adat lehet input, output, vagy közbülső adat. Példa: Egy 3D rácson minden rácspontban ki kell számolni egy értéket., 2, vagy 3 dimenziós partíció: Funkcionális dekompozíció Az algoritmus felosztása olyan részekre, melyek párhuzamosíthatók. Alapvetően a feladat funkcióiból adódik. Az adatokra is figyelni kell. Tipikus példa, amikor az adatok partícionálása nem járható: keresés fában. funkcionálisan viszont bontható 20.05.04. - 9-20.05.04. - 20 - Kommunikáció Kis környezetű (local) és globális a taszkok csak kis környezetükben (szomszéd), vagy sok másik taszkkal is kommunikálnak. Strukturált és nem strukturált rács, gyűrű,... vagy más Statikus és dinamikus végrehajtás közben változik Szinkron vagy aszinkron koordináció hiánya Kommunikációs példák / Lokális kommunkáció (véges elem): Red-Black ordering: 20.05.04. - 2-20.05.04. - 22 - Kommunikációs példák /2 Globális kommunkáció (szumma): Csővezeték: Oszd meg és uralkodj: A tényleges párhuzamos gép kommuniká-ciós adottságait is figyelembe véve a részfeladatokat nagyobb egységekbe gyűjtjük. Agglomeráció 20.05.04. - 23-20.05.04. - 24-4
Cluster koncepció Gyors hálózattal összekapcsolt gépek Gyakran közös fájlrendszer CPU vagy tárolási kapacitás növelése Paraméter study, vagy párhuzamos alkalmazások Ütemezők Condor (University of Wisconsin) DQS (Florida State University) LoadLeveler (IBM) Maui, Moab (Cluster Resources) LSF (Platform) PBS, OpenPBS (Alatair) Sun Grid Engne (SUN) Torque (Cluster Resources) 20.05.04. - 25-20.05.04. - 26 - Elosztott fájlrendszerek Nagyméretű klaszterekhez Földrajzilag is elosztott rendszerekhez NFS AFS, CODA Lustre, SFS GFS GlusterFS OCFS Több mint 70! fs Gfarm file system Google file system GPFS BigTable Parallel Virtual File System QFS Grid koncepció Számítógépek erőforrásainak egy adott cél érdekében összefogott halmaza, melyet a felhasználó egységesen, egy egészként kezelve tud elérni a Grid bármely pontjáról. A Grid szóhasználat szándékosan utal az elektromos hálózatra (power grid). A kezdeti intézményi gridek regionális, nemzeti, ill. világméretű gridekké nőnek, melyek erőforrásait dinamikusan és gazdaságosan lehet elosztani. Adat, számítási és információs gridek. 20.05.04. - 27-20.05.04. - 28 - Mobil Munkaállomás Vizualizáció Grid hasonlat G R I D M I D D L E W A R E Supercomputer, PC-Cluster Spec. erőforr.: Érzékelők, adatgyűjtők Intézet Donor és felhasználó Felhasználó Utility Grid modell Erőforrás biztosítás statikus 7/24 Internet Dinamikus erőforrás igények Intézet 2 Donor és felhasználó Felhasználó N 20.05.04. - 29-20.05.04. - 30-5
A Utility Gridek jellemzői A donorok profi erőforrás biztosítók (7/24 órás üzemmód) Egyszerűsítés Hasonló erőforrások Egyszerűsítés Mindenki használhatja az erőforrásokat saját problémáinak megoldására Aszimmetrikus kapcsolat a donorok és felhasználók között U >> D Large Hadron Collider LHC Produces ~5 PByte/year 20.05.04. - 3-20.05.04. - 32 - LHC Desktop Grid modell Data is stored at CERN and other (tier) sites Data is processed at CERN, the tier sites and ~00 tier2 sites Vállalati / Egyetemi Szerver Alkalmazás Dinamikus erőforrás biztosítás Internet Donor: Vállalat / Egyetem / privát PC Donor: Vállalat / Egyetem / privát PC Software disztribúció Donor: Vállalat / Egyetem / privát PC 20.05.04. - 33-20.05.04. - 34 - Cloud újabb buzzword? Metacomputing Utility computing Grid computing SaaS Softare as a Service HaaS Hardware as a Service PaaS Platform as a Service IaaS Infrastructure as a Service Web 2.0 Cloud computing def. Még nagy a bizonytalanság, többen mást gondolnak róla. A hálózati felhőből on-line igénybe venni számítási, tárolási kapacitást alkalmazást egyéb erőforrást Lényegében Web 2.0 kiterjesztve? 20.05.04. - 35-20.05.04. - 36-6
A Dasein Cloud API Java nyelvű, open source (Apache v2.0), aktívan fejlesztett programkönyvtár. Számos IaaS szolgáltatót (AWS, Terremark, Rejila), privát felhőt (vcloud, vsphere, CloudStack), storage rendszert (Rackspace, Mezeo, a Google App Engine vagy az MS Azure BlobStore szolgáltatása) kezel. Implementációja épít a platform-specifikus megoldásokra (vsphere VIM), és a jclouds open source API-ra. http://dasein-cloud.sourceforge.net/ PRAM modell Parallel Random Access Machine (PRAM) Elméleti modell a az algoritmusok vizsgálatához Célja: Algoritmusok osztályozása, komplexitásának vizsgálata. Párhuzamosíthatóság elvi határainak felfedése. Új algoritmusok kifejlesztése. 20.05.04. - 37-20.05.04. - 38 - OpenMP motivation Parallelize the following code using threads: for (i=0; i<n; i++) { sum = sum+sqrt(sin(data[i])); } A lot of work to do a simple thing Different threading APIs: Windows: CreateThread UNIX: pthread_create Problems with the code: Need mutex to protect the accesses to sum Different code for serial and parallel version No built-in tuning (# of processors someone?) 20.05.04. - 39 - Master thread OpenMP execution model FORK JOIN FORK JOIN Fork and Join: Master thread spawns a team of threads as needed Worker Thread 20.05.04. - 40 - Általános célú GPU A programozható vertex és fragment shaderek beépítésével általános célú eszközzé vált. Vektorprocesszor (SIMD), de pipeline egységek is vannak benne (MISD). Jellemzően SIMD Programozás: CUDA, OpenCl, Cg, Egy példa NVIDIA Quadro FX5800 grafikus kártya PCIe x6 240 CUDA mag 4 GB DDR3 78 GFlos double 933 Gflops single 89 W 300Millió háromszög / sec NVIDIA CUDA 20.05.04. - 4 - Grir Párhuzamos és OO labor és Grid BME-IIT rendszerek Sz.I. 20.05.04. 200..09. - 42-7