Párhuzamos és Grid rendszerek. Parallel programozás áttekintése. Történelmi áttekintés

Hasonló dokumentumok
Párhuzamos és Grid rendszerek

Parallel programozás áttekintése. Párhuzamos és Grid rendszerek. Történelmi áttekintés. Jellemző szupersz.gép típusok. Flynn-féle architektúra modell

Bevezetés a párhuzamos programozási koncepciókba

Párhuzamos programozási platformok

Párhuzamos és Grid rendszerek

Párhuzamos programozási platformok

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

egy szisztolikus példa

Condor rendszer röviden. IKTA NI-2000/0008 munkaszkasz zárókonferencia

Párhuzamos és Grid rendszerek

EGI-InSPIRE. Café Grid március 24. Szeberényi Imre 3/25/ EGI-InSPIRE RI

SAT probléma kielégíthetőségének vizsgálata. masszív parallel. mesterséges neurális hálózat alkalmazásával

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Az NIIF új szuperszámítógép infrastruktúrája Új lehetőségek a kutatói hálózatban

Szenzorhálózatok programfejlesztési kérdései. Orosz György

Párhuzamos és Grid rendszerek

Párhuzamos és Grid rendszerek. Összefogalás. Jellemző szupersz.gép típusok. Párhuzamos architektúrák. Párh. prog. fejlesztési módszerek

Összefogalás. Párhuzamos és Grid rendszerek. Párhuzamos gépek osztályai. Jellemző szupersz.gép típusok. Flynn-féle architektúra modell

Számítógépek felépítése

Neurális hálózatok bemutató

Számítógép-rendszerek fontos jellemzői (Hardver és Szoftver):

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Az NIIF új szuperszámítógép infrastruktúrája Új lehet!ségek a kutatói hálózatban Debreceni Egyetem

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

A számítógép-hálózat egy olyan speciális rendszer, amely a számítógépek egymás közötti kommunikációját biztosítja.

Párhuzamos és Grid rendszerek. Hol tartunk? Klaszter. Megismerkedtünk az alapfogalmakkal,

Párhuzamos genetikus algoritmus

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Párhuzamos és Grid rendszerek. Flynn-féle architektúra modell. ClearSpeed gyorsító kártya. 2006: Tokyo Institute of Technology's

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Elosztott rendszer architektúrák

Ezeket a kiemelkedı sebességő számítógépeket nevezzük szuperszámítógépeknek.

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Párhuzamos programok futásának kiértékelése Scalasca profiler segítségével

Számítógép architektúra

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Párhuzamos és Grid rendszerek

VLIW processzorok (Működési elvük, jellemzőik, előnyeik, hátrányaik, kereskedelmi rendszerek)

ISA szimulátor objektum-orientált modell (C++)

Programozás II. 2. Dr. Iványi Péter

Flynn-féle architektúra modell. Párhuzamos és Grid rendszerek (8. ea) egy vektorprocesszor. Belső felépítés. ClearSpeed gyorsító kártya MTAP

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

Hálózati réteg. WSN topológia. Útvonalválasztás.

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Számítógép architektúrák záróvizsga-kérdések február

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Bevezetés a számítástechnikába

Teljesítménymodellezés és futási idő előrejelzés klaszter rendszerekben

Architektúra, megszakítási rendszerek

Live free() or die() Az openmosix cluster szoftver

Programozás 6. Dr. Iványi Péter

Grafikus csővezeték 1 / 44

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Hogyan lesz adatbányából aranybánya?

AGSMHÁLÓZATA TOVÁBBFEJLESZTÉSE A NAGYOBB

VIRTUAL NETWORK EMBEDDING VIRTUÁLIS HÁLÓZAT BEÁGYAZÁS

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Párhuzamosítás adatbáziskezelő rendszerekben

9. MPI

Párhuzamos és Grid rendszerek

Architektúra, cache. Mirıl lesz szó? Mi a probléma? Teljesítmény. Cache elve. Megoldás. Egy rövid idıintervallum alatt a memóriahivatkozások a teljes

Magas szintű optimalizálás

UNIX: folyamatok kommunikációja

IBM felhő menedzsment

K+F a Hálózattervezés területén

Informatika Rendszerek Alapjai

Számítógép Architektúrák

Példa: LHC, CERN, Genf Enabling Grids for E-sciencE

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

Parciális rekonfiguráció Heterogán számítási rendszerek VIMIMA15

Kommunikáció az EuroProt-IED multifunkcionális készülékekkel

Autóipari beágyazott rendszerek. Integrált és szétcsatolt rendszerek

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Enabling Grids for E-sciencE. Grid bevezető INFSO-RI

Párhuzamos és Elosztott Rendszerek

NIIFI HPC Szolgáltatás

Felhasználók hitelesítése adatbiztonság szállításkor. Felhasználóknak szeparálása

Digitális rendszerek. Digitális logika szintje

Vezérlési szerkezetek

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

Párhuzamos programozási modellek

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Számítógépek felépítése, alapfogalmak

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

A CUDA előnyei: - Elszórt memória olvasás (az adatok a memória bármely területéről olvashatóak) PC-Vilag.hu CUDA, a jövő technológiája?!

Számítógép felépítése

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

SAP Business One. Áttekintés, gyakorlati ismertetı. Mosaic Business System Kft.; Support:

SzA19. Az elágazások vizsgálata

Operációs rendszerek

Átírás:

Párhuzamos és Grid rendszerek (1. ea) alapfogalmak Szeberényi Imre ME IIT <szebi@iit.bme.hu> M Ű E G Y E T E M 1 7 8 2 Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 1 - Parallel programozás áttekintése Miért fontos a párhuzamos feldolgozás? agyobb teljesítmény elérése miatt? Csak a teljesítményért? a párhuzamosítás ebben az esetben csak technológia nem fontos az alkalmazás tervezője számára el kell fedni (mint pl. a hardware regisztereket, cache-t,...) Egy lehetséges eszköz a valóság modellezésére Egyszerűsítheti a tervezési munkát Párhuzamos feldolgozás problémái Gyakran nehezebb kivitelezni, mint a soros feldolgozást törékeny (nem determinisztikus viselkedés) deadlock problémák léphetnek fel erőforrás allokációs problémák lehetnek nem egyszerű hibát keresni Ezek valós tapasztalatok, de nem szükségszerűek! Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 2 - Történelmi áttekintés eumann korában felmerült az ötlet (Daniel Slotnick), de a csöves technológia nem tette ezt lehetővé. Első szupergép: 1967-ben ILLIC IV (256 proc, 200MFlop) Thinking Machines CM-1, CM-2 (1980) Cray-1 Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 3 -

Jellemző szupersz.gép típusok Vektorprocesszoros rendszerek Gyors műveletvégzés vektor jellegű adatokon Masszívan párhuzamos rendszerek (MPP) Üzenetküldéses elosztott memóriás (MDM) Szimmetrikus multiprocesszoros (SMP) Elosztott közös memória (DSM) Elosztott számítási rendszerek Homogén rendszerek Heterogén rendszerek Metaszámítógépek és Grid redszerek Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 4 - Párhuzamos gép modellje Több modell alakult ki. legegyszerűbb a Flynn-féle modell, mely a eumann modell kiterjesztésének tekinti a párhuzamos gépet. másik gyakran alkalmazott modell az idealizált párhuzamos számítógép modell Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 5 - Flynn-féle architektúra modell Single DT Multiple Single ISTRUCTIOS Multiple Single Instruction Single Data SISD (serial machines) Multiple Instruction Single Data MISD (pipelines) Single Instruction Multiple Data SIMD (vector processors) Multiple Instruction Multiple Data MIMD (multiprocesszors) Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 6 -

Idealizált párhuzamos számítógép memória memória memória CPU 1 CPU 2 CPU 3 Összeköttetés 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. lokális memória elérése gyorsabb. z átviteli sebesség független a csatorna forgalmától. Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 7 - rchitektúrák jellemzői Processzorok eloszlása Homogén vagy heterogén kapcsolat késleltetése és sávszélessége Topológia Hálók Gyűrűk Fák Hiperkockák Teljesen összekötött Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 8 - Programozási modell 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 Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 9 -

Közös memória elv jellemzői Közös memória használatának előnyei Egységes hozzáférés Egyszerűbb programozás hw adottságaitól függően jó speed-up értékel érhetők el Közös memória használatának hátrányai Memória-hozzáférés szűk keresztmetszetet jelenthet em jól skálázható Cache problémák megoldása külön hardvert igényel ehéz nyomkövethetőség Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 10 - Elosztott memória elv jellemzői Elosztott memória használatának előnyei Skálázható Költségkímélő redundancia növelésével növekedhet a megbizhatóság Speciális feldolgozó eszközökkel is együttműködik Elosztott memória használatának hátrányai Kommunikáció igényes em minden algoritmus párhuzamosítható így meglevő soros programokat és a közös memóriát használó alkalmazásokat át kell dolgozni Jó speed up értékeket nehéz elérni ehéz nyomkövethetőség Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 11 - Párhuzamos gépek osztályai Szimmetrikus multiprocesszoros (SMP) sok azonos processzor közös memóriával egy operációs rendszerrel UM, ccum Masszívan párhuzamos (MPP) sok processzor gyors belső hálózattal elosztott memória sok példányban fut az operációs rendszer Klaszter sok gép gyors hálózattal összekötve elosztott memória sok példányban esetleg heterogén operációs rendszer Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 12 -

Teljesítménymérés Sebességnövekedés (Speed Up): Sn = Ts/Tn ahol:sn processzorral elért sebességnövekedés Ts futási idő soros végrehajtás esetén Tn futási idő processzor esetén Hatékonyság (Efficiency): En = Sn/ ahol:en processzorral elért hatékonyság Sn processzorral elért sebességnövekedés processzorok száma Rededundancia (Redundancy): r = Cp/Cs ahol:r párhuzamos program redundanciája Cp párhuzamos program műveleteinek száma Cs soros program műveleteinek száma Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 13 - Speed Up határa mdahl féle felső határ: Sa = 1/(s+(1-s)/) ahol:sa processzorral elértetô sebességnövekedés felsô határa s a feladat nem párhuzamosítható része processzorok száma z (1-s)/ tagot elhagyva: Sa < 1/s összefüggést kapjuk, ami egy felső korlátot ad. Ez azt jelenti, hogy pl. 10% nem párhuzamosítható rész mellet 1/0.1 = 10 adódik a speed up felső korlátjaként. Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 14 - em gyorsítható korlátlanul 10 9 8 7 6 5 4 3 2 1 0 2 4 6 10 20 40 200 2000 Processzorszám Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 15 -

Programozási nyelvek Linda közös memória modell, Tuple Space out kimásol egy adathalmazt a közös területre in, inp behoz egy adathalmazt (megszűnik) rd, rdp behoz egy adathalmazt eval végrehajt egy függvényt processzként Egyszerű modell, de implementációs nehézségek vannak, főleg az üzenetküldéses architektúrákon. Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 16 - Programozási nyelvek/2 Express elosztott memória modell 160 C-ből és fortranból hívható rutin: programindítás, leállítás logikai kommunikációs topológia felépítése programok közötti kommunikáció, szinkronizáció fájlműveletek grafikai műveletek teljesítmény analízis, debug Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 17 - Programozási nyelvek/3 PVM elosztott memória modell 70 C-ből és fortranból hívható rutin: programindítás, leállítás programok közötti kommunikáció, szinkronizáció Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 18 -

Mire használják a PVM-et? "Szegények" szuperkomputere a szabad CPU kapacitások összegyűjthetők a munkaállomásokról és a PC-ről Több szuperkomputer összekapcsolásával hihetetlen számítási kapacitás állítható elő Oktatási eszköz a párhuzamos programozás tanításához hatékony eszköz Kutatási eszköz skálázható és költségkímélő Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 19 - PVM alapkoncepciója CPU #1 CPU #2 CPU #3 app #1 app #2 app #3 app #4 libpvm libpvm libpvm libpvm pvmd pvmd pvmd Összeköttetés app # z alkalmazás része libpvm yelvi interfész pvmd PVM daemon Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 20 - libpvm libpvm által nyújtott funkciók a négy csoportra oszthatók: dminisztratív funkciók Virtuális gép indítása, megállítása, álapotlekérdezés, új node felvétele Folyamatkezelő funkciók Folyamatok indítása, megállítása datátviteli funkciók Üzenetek összeállítása, elküldése, vétele, szétcsomagolás Szinkronizációs funkciók Üzenetküldéssel, vagy barrier használatával Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 21 -

Párhuzamos program felépítése soros párhuzamos párhuzamos soros párhuzamos párhuzamos párhuzamos soros CPU #1 CPU #2 CPU #3 Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 22 - Kényszerű Párhuzamosítási startégiák program soros változatát futtatjuk párhuzamosan különböző adatokkal. Csak akkor kielégítő módszer, ha a soros változat elviselhető futási idejű. Ciklusok párhuzamosítása kkor alkalmazható, ha az egyes iterációk függetlenek egymástól Felosztó párhuzamosítás (master / slave) Egy felügyelő taszk fut az egyik node-on kkor alkalmazható, ha a felügyelő program feladatai egyszerűbbek mint a többi taszk feladatai. Ha a taszkok függetlenek egymástól, akkor jól skálázható a taszkok számának változtatásával. Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 23 - Párhuzamosítási startégiák /2 Egymást követő Minden node a következő node-nak adja tovább a részben feldolgozott adatot. kkor használható, ha a soros része a feldolgozásnak lényegesen rövidebb, mint a párhuzamos rész. Rendszerint minden node azonos kódot futtat. Különösen alkalmas a gyűrű topológiához. Régiók párhuzamosítása z adatfüggőség régiókba lokalizálható. kkor használható, soros végrehajtási idő nagyobb mint a párhuzamos. Rendszerint nagy kommunikációigényű. Legbonyolultabb. Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 24 -

Számítsuk ki az f ( x) dx =8 esetén pl: Párhuzamosítási példa f(x) integrál értékét egyszerű numerikus közelítéssel (téglány összegek)! f ( x ) dx = h f ( h + i h ) ahol h= - 2 i= 1 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 h x z egyes téglányok számítása egymástól függetlenül, párhuzamosan is elvégezhető. Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 25 - Számítsuk ki az Párhuzamosítási példa integrál értékét egyszerű numerikus közelítéssel (téglány összegek)! f ( x) dx h - f ( x) dx = h f ( + i h) ahol h= 2 i= 1 =8 esetén pl: f(x) P 1 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 h x z egyes téglányok számítása egymástól függetlenül, párhuzamosan is elvégezhető. Pl. minden task csak minden M-edik téglányt számol ki, majd az összegezzük az eredményeket. Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 26 - Számítsuk ki az Párhuzamosítási példa integrál értékét egyszerű numerikus közelítéssel (téglány összegek)! f ( x) dx h - f ( x) dx = h f ( + i h) ahol h= 2 i= 1 =8 esetén pl: f(x) P 1 P 2 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 h x z egyes téglányok számítása egymástól függetlenül, párhuzamosan is elvégezhető. Pl. minden task csak minden M-edik téglányt számol ki, majd az összegezzük az eredményeket. Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 27 -

Számítsuk ki az Párhuzamosítási példa integrál értékét egyszerű numerikus közelítéssel (téglány összegek)! f ( x) dx h - f ( x) dx = h f ( + i h) ahol h= 2 i= 1 =8 esetén pl: f(x) P 1 P 2 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 h z egyes téglányok számítása egymástól függetlenül, párhuzamosan is elvégezhető. Pl. minden task csak minden M-edik téglányt számol ki, majd az összegezzük az eredményeket. P 3 x Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 28-1 4 1 + x Egy példa dx Számítsuk ki PI értékét a 2 integrál numerikus integrálásával! 0 fenti módszert alkalmazva SPMD programot írunk. program első példánya bekéri a lépésközt és elindítja a többi példányt. z egyes példányok csak minden M-edik téglányt számítanak, majd az eredményeket elküldik az indító taszk-nak. PI PI PI PI CPU #1 CPU #2 CPU #3 Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 29 - pi.c program #include <stdlib.h> #include <stdio.h> #include <math.h> #include "pvm3.h" /* PVM 3 include file */ #define f(x) ((float)(4.0/(1.0+x*x))) #define PI ((float)(4.0*atan(1.0))) /* csak az ellenorzeshez */ #define MXPROCS 32 /* node programok max szama */ #define TG_ 111 /* uzenettipus */ #define TG_SUM 222 /* SUM uzenettipus */ #define TG_TIDS 333 /* TIDS uzenettipus */ /* * z elso peldany belep a PVM-be es elinditja * sajat magat nproc peldanyban. */ void startup(int *pmynum, int *pnprocs, int tids[]) { int i, mynum, nprocs, mytid, numt, parent_tid; mytid = pvm_mytid(); if (mytid < 0) { printf("sikertelen mytid\n"); exit(0); Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 30 -

pi.c program /2 parent_tid = pvm_parent(); if (parent_tid == PvmoParent) { /* ez az elso peldany */ mynum = 0; tids[0] = mytid; printf ("Hany node peldany(1-%d)?\n", MXPROCS); scanf("%d", nprocs); numt = pvm_spawn("pi", ULL, PvmTaskDefault, "", nprocs, &tids[1]); if (numt!= nprocs) { printf ("Hibas taszk inditas numt= %d\n",numt); exit(0); *pnprocs = nprocs; /* node peldanyok szama */ pvm_initsend(pvmdatadefault); /* tid info az mindenkinek */ pvm_pkint(&nprocs, 1, 1); pvm_pkint(tids, nprocs+1, 1); pvm_mcast(&tids[1], nprocs, TG_TIDS); else { /* ez nem elso peldany */ pvm_recv(parent_tid, TG_TIDS); pvm_upkint(&nprocs, 1, 1); pvm_upkint(tids, nprocs+1, 1); for (i = 1; i <= nprocs; i++) if (mytid == tids[i]) mynum=i; *pmynum = mynum; Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 31 - pi.c program /3 /* * ertek eloallitasa. (z elso peldany bekeri). */ void solicit(int *p, int *pnprocs, int mynum, int tids[]) { if (mynum == 0) { /* ez az elso taszk */ printf("kozelites lepesszama:(0 = vege)\n"); if (scanf("%d", p)!= 1) *p = 0; pvm_initsend(pvmdatadefault); pvm_pkint(p,1,1); pvm_pkint(pnprocs,1,1); pvm_mcast(&tids[1], *pnprocs, TG_); else { /* egyebkent a fonok node kuldi */ pvm_recv(tids[0], TG_); pvm_upkint(p, 1, 1); pvm_upkint(pnprocs, 1, 1); Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 32 - pi.c program /4 main() { float sum, w, x; int i,, M, mynum, nprocs, tids[mxprocs+1]; startup(&mynum, &nprocs, tids); for (;;) { solicit (&, &nprocs, mynum, tids); if ( <= 0) { printf(" %d. peldany kilep a virtualis gepbol\n", mynum); pvm_exit(); exit(0); /* * Szamitas. M=nprocs+1 peldany van, igy csak minden M. * teglanyt szamolja egy processz. */ M = nprocs+1; w = 1.0/(float); sum = 0.0; for (i = mynum+1; i <= ; i += M) sum = sum + f(((float)i-0.5)*w); sum = sum * w; Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 33 -

pi.c program /4 /* Eredmenyek feldolgozasa */ if (mynum == 0) { /* ha ez az elso peldany */ printf ("Elso peldany szamitasa x = %7.5f\n", sum); for (i = 1; i <= nprocs; i++) { pvm_recv(-1, TG_SUM); pvm_upkfloat(&x, 1, 1); printf ("Elso peldany x = %7.5f erteket kapott\n", x); sum = sum+x; printf("sum=%12.8f\terr=%10e\n", sum, sum-pi); flush(stdout); else { /* tovabbi peldanyok elkuldik az eredmenyt. */ pvm_initsend(pvmdatadefault); pvm_pkfloat(&sum, 1, 1); pvm_send(tids[0], TG_SUM); printf(" %d. elkuldte a reszosszeget: %7.2f \n", mynum, sum); fflush(stdout); Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 34 - Message Passing Interface (MPI) lapvetően más célokkal fejlődött ki: szabványos, a gyártók által elfogadott, speciális hw. környezetet is támogató fejl. környezet. hosszú nyűgös fejlődés kezdetben csak statikus processzkezelés nem igényli a virtuális gép előzetes felépítését, mert a teljes kommunikációs séma az alkalmazáshoz szerkesztődik. Ezzel szemben a PVM op.r. funkciókat nyújt. viszonylag gyorsan fejlesztették. Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 35 - 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 Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 36 -