Párhuzamos programozást támogató nyelvi eszközök összehasonlítása: Áttekintés


1. Áttekintés

1.1 Párhuzamos modellek, osztályozási szempontok

A hagyományos számítógépes feladat-megoldási módszerek sok területen elégtelennek bizonyultak, ezért próbálnak napjainkban új utakat keresni a problémák megoldására. Ezek egyik fajtája a párhuzamosság felhasználása.

A felhasznált megoldást két irányból is megvizsgálhatjuk: milyen feladatfajtát old meg, illetve milyen modellt használ a feladat megoldásához.

A párhuzamos megoldások igénye következô problématerületeken jelentkezett:

Ezek a feladatok a megoldásának keresése során hasonló problémákat vet fel, amelyek a különbözô absztrakciós szinteken hasonló modellekkel írhatóak le.

A párhuzamos modellek fô osztályozási szempontjai az absztrakciós szintektôl függetlenül:

Ezek a szempontok persze az adott szinten más-más irányba finomíthatóak.

1.2 Hardware

A fentiekben leírt feladatosztályok megoldására nagyon sok speciális hardware megoldás született.

A futásidô gyorsítására a párhuzamosságot elôször a hetvenes évek végén megjelent szuperszámítógépeket kell megemlíteni. Ezek vektorprocesszorokat használtak, amellyel azonos mûveleteket lehetett elvégezni nagy mennyiségû adaton. Ez a megoldás fôleg speciális problémák megoldására, nagy mennyiségû adaton végzett mûveletekre használható. (pl.: Cray-1, Los Alamos National Laboratory, 1976)

A következô lépést a RISC processzorok megjelenése jelentette, amelyekben az utasításonkénti fix hosszúsági végrehajtási idô nagyon megkönnyítette a processzorokon belüli elemi utasításonkénti párhuzamos végrehajtást.

Ez a módszer manapság már majdnem minden mikroprocesszorban jelentkezik. Az processzorokban többszörözött feldolgozó egységek vannak, amelyek az elemi utasítások szintjén párhuzamosítják a szekvenciálisan írott programokat.

Ennek a módszernek persze vannak korlátai hiszen egy hagyományos program utasításai nem párhuzamosíthatóak tetszôleges mértékben.

Hasonló fejlôdés figyelhetô meg a számítógépek makro-architektúrájában is.

Eleinte a futásidô csökkentésére egyre nagyobb sebességû processzorokat használtak, de egy idô után több hagyományos processzort kapcsoltak össze egyetlen számítógépben.

E számítógépek fôbb osztályai:

Ábra 1. Flynn osztályozása

1.2.1 SISD (Single Instruction Single Data)

A hagyományos számítógépek ilyenek.

1.2.2 SIMD (Single Instruction Multiple Data)

Nagyon sok egyszerû processzorból álló gépek, amelyek mindegyike rendelkezik saját memóriával, de mindegyiken azonos program fut. Ezek fôleg mátrixmûveletek megoldására alkalmas rendszerek.

Példa:

1.2.3 MISD (Multiple Instruction Single Data)

Nem nagyon létezik ilyen gép, csak az osztályozás teljessége miatt került bele az ábrába.

1.2.4 MIMD (Multiple Instruction Multiple Data)

1.2.4.1 SMP (Symmetric multiprocessing)

Ábra 2. SMP számítógép

Az SMP rendszerek jellemzôje, hogy a rendszerbuszra egyetlen fizikai memória csatlakozik, amelyet minden processzor lát. Ennek az architektúrának nagy elônye, hogy az osztott memórián keresztül nagyon egyszerû a programok közötti kommunikáció, illetve szinkronizáció megoldása, hagyományos programok nagyon könnyen átültethetôek ilyen környezetbe. Hátránya, hogy a memória elérésének fizikai korlátai korlátokat szabnak a lehetséges processzorok számának.

Ilyen rendszerek:

Ezen rendszerek szépsége, hogy hagyományos operációs rendszereket futtatnak, ezért kezelésük, programozásuk nem kíván nagy többletráfordítást, mégis nagy számítási teljesítményt képviselnek.

1.2.4.2 MPP (Massively parallel processing)

Ábra 3. MPP számítógép

Az MPP rendszerek lényegében önálló memóriával rendelkezô processzorokból felépített nagy számítógépek. Egy egyszerû LAN is felfogható ilyen számítógépnek, a különbség a processzorok közötti kapcsolatban jelentkezik. Egyszeri LAN-okban az egyedi gépek közötti kapcsolat felépítése elég lassú, ezekben a gépekben erre a feladatra speciális hardware elemeket használnak amely mind a kapcsolat felépítését, mind az adatátvitelt nagyon meggyorsítja.

Az MPP rendszerek nagy elônye, hogy felépítésüknél fogva nagyon könnyen bôvíthetôek. Hátrányuk, hogy a processzorok közötti kommunikációra általában csak üzenetküldés használható, amely a hagyományos programok használatát megnehezíti, és új - a párhuzamosságot már figyelembe vevô - programok írását igénylik.

1.2.4.3 SPP (Scalable parallel processing)

Ábra 4. SPP számítógép

MPP rendszer amelyben a processzorok közötti kommunikációs eszköz szimulálni tudja, az egyetlen osztott memóriát. A processzorok számára nem saját memóriájuk elérése csak idôbeni különbséget jelent. Lényegében ötvözik az SMP és MPP rendszerek elônyeit, viszont ehhez sokkal bonyolultabb hardware megoldásokra van szükség.

Példák:

A fennmaradó két problémakör megoldására is sok megoldás született, amely kapcsolatba hozható a párhuzamossággal. Ilyen lehet egy egyszerû PC I/O processzorra, amely a CPU-tól függetlenül tud mûködni, vagy a repülôgépek többszörözött számítógépes rendszere a megbízhatóság növelésére.

1.3 Operációs rendszerek lehetôségei

Operációs rendszerek szintjén nyújtott támogatás a párhuzamos programok támogatására nehezen választható el a programozási nyelvektôl és a bennük használható rutinkönyvtáraktól.

A határ a megoldható feladatok fajtája alapján húzható meg. Egy operációs rendszernek, illetve az általa nyújtott eszköznek biztonságosan kell mûködnie a feladatok széles skáláján. Ezt a biztonságot csak úgy lehet elérni ,ha az operációs rendszer által nyújtott eszközöket nem lehet megkerülni.

A feladatok széles skálája miatt az operációs rendszer által nyújtott szolgáltatások nagyon egyszerûek lehetnek, tehát ezekre épülô eszközök használata szükséges lehet a problémák egyszerû megoldása érdekében.

A megbízhatóság természetes igény bármely probléma megoldása során, a biztonság viszont inkább napjainkban került elôtérbe a sokfelhasználós rendszerek megjelenésével. A biztonságot biztosító eszközöket csak az operációs rendszer szintjén lehet hatékonyan megvalósítani, tehát egy eszköz osztályozásakor ez a szempont irányadó lehet.

Operációs rendszerek általában a következô feladatokat oldják meg:

Párhuzamosan dolgozó, illetve osztott operációs rendszerek ezen feladatok megoldására a következô lehetôségeket biztosítják:

A fejezet elején szereplô feladat osztályozási szempontok szerint:

Párhuzamos modellek szempontjából egy operációs rendszer nagy mértékben az alatta lévô hardware-tôl függ. Néhány esetben az operációs rendszer a hardware néhány jellemzôjét módosíthatja, például az IBM SP1 és SP2-es MPP rendszerén az operációs rendszer egy SPP architektúrát is szimulálhat.

1.4 Nyelvek, eszközök

A világon nagyon sok olyan programozási nyelv, illetve eszköz van, amely valamilyen fokon támogatja a párhuzamosságot. Ezek közül található itt néhány. Ezek osztályozási szempontjai, illetve egy-egy eszköz részletesebb elemzése a következô fejezetben található.

1.5 Egyéb lehetôségek

Egyes eszközökre építve sok kényelmes felületet, programozási környezetet fejlesztettek ki, ezek fõbb fajtái a következõk:

Egy ilyen eszköz specifikálását tartalmazza a 3. fejezet.



P�rhuzamos Programoz�si Eszközök, Frohner Ákos
Hosted by www.Geocities.ws

1