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

Hasonló dokumentumok
Párhuzamos programozási platformok

9. MPI

Párhuzamos programozási platformok

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

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

alkalmazásfejlesztő környezete

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

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

Bevezetés. Bevezetés. Az üzenetküldéses paradigma A teljesítménynövekedés eredménye:

IBM felhő menedzsment

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

NIIF Központi Elosztott Szolgáltatói Platform

Szakdolgozat. Brosch Balázs 2009.

Ellenőrzőpont támogatás PVM alkalmazások számára a magyar ClusterGriden

Párhuzamos és Elosztott Rendszerek II

Bevezetés az MPI programozásba példákon keresztül Várady, Géza Zaválnij, Bogdán

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Hozzáférés a HPC-hez, kezdő lépések (előadás és demó)

A JGrid rendszer biztonsági architektúrája. Magyaródi Márk Juhász Zoltán Veszprémi Egyetem

Párhuzamos és Grid rendszerek

Java. Java Message Service. ANTAL Margit. JMS API technológia. ANTAL Margit. Sapientia - EMTE

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

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

Párhuzamos és Grid rendszerek

UNIX: folyamatok kommunikációja

Tartalomjegyzék. Előszó... 10

Csoportkezelés a szövetségben

Felhő demonstráció Gergely Márk MTA SZTAKI

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

Virtuális Obszervatórium. Gombos Gergő

IMOLA. Integrált MOKKA2, ODR2 és OLA. Vándorgyűlés Szombathely, 2008 július 25. Monguz MTA SZTAKI konzorcium

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

Folyamatok. 6. előadás

ERLANG PROGRAMOK TRANSZFORMÁCI CIÓJA ERLANG

2. fejezet Hálózati szoftver

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

egy szisztolikus példa

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

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

PVM programok áthelyezése GRID környezetbe

2. munkacsoport 1. fejezet (elektronikus banki szolgáltatások)

A rendszer célja. Funkciók

Autóipari beágyazott rendszerek. Local Interconnection Network

Kommunikáció. 3. előadás

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

Networkshop Kaposvár Balaskó Á., Kozlovszky M., Karóczkai K., Márton I., Kacsuk P. MTA SZTAKI

Integrációs mellékhatások és gyógymódok a felhőben. Géczy Viktor Üzletfejlesztési igazgató

Elosztott könyvtári rendszerek megvalósítása a Z39.50 és az OAI protokoll használatával

NAGY TELJESÍTM. Szerzők Dévai. István Automatizálási. és s Alkalmazott Informatikai Tanszék

Magas szintű optimalizálás

Occam 1. Készítette: Szabó Éva

A felhőről általában. Kacsuk Péter MTA SZTAKI

Tudásalapú információ integráció

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

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

access point: homeaut.com

Kommunikáció. Kommunikáció. Folyamatok. Adatfolyam-orientált kommunikáció. Kommunikáció típusok (1) Kommunikáció típusok (2) Média. Folyamok (Streams)

Operációs rendszerek. Bemutatkozás

IP megoldások a tűzjelzéstechnikában

SQLServer. SQLServer konfigurációk

Az MTA Cloud projekt MTA Cloud projektzáró június 28.

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

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba

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

Programozási technológia

Windows Server 2012: a felhő OS

Mikor és hogyan érdemes virtualizálni?

Elosztott rendszerek. Az elıadás. Az elosztott rendszer definíciója. Köztesrétegként felépülı elosztott rendszer

Cloud Akkreditációs Szolgáltatás indítása CLAKK projekt. Kozlovszky Miklós, Németh Zsolt, Lovas Róbert 9. LPDS MTA SZTAKI Tudományos nap

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Virtualizációs Technológiák Operációs rendszer szintű virtualizáció Konténerek Forrás, BME-VIK Virtualizációs technológiák

Párhuzamos és Grid rendszerek

Operációs rendszerek. Az NT folyamatok kezelése

Gyakorlati tudnivalók

Dr. Schuster György október 30.

Kommunikáció Androidon GSM hívás SMS küldés, fogadás Bluetooth NFC USB

Dr. habil. Maróti György

Everything Over Ethernet

GoWebeye Monitor Release Üzenetküldés

Neurális hálózatok bemutató

Elektronikus levelek. Az informatikai biztonság alapjai II.



















Átírás:

Bevezetés a párhuzamos programozási koncepciókba Kacsuk Péter és Dózsa Gábor MTA SZTAKI Párhuzamos és Elosztott Rendszerek Laboratórium E-mail: kacsuk@sztaki.hu Web: www.lpds.sztaki.hu

Programozási modellek memória processzor hálózat hálózat Üzenetküldés alapú kommunikáció MPI, PVM Közös memória alapú kommunikáció OpenMP

Üzenetküldés alapú programok Normál szekvenciális programozási nyelv (pl. Fortran, C,...) + néhány speciális eljárás (rutin könyvtár) az üzenetek kezeléséhez. p1 p2 send(p2, adat1) üzenet recv(p1, adat2)

Üzenetküldő rendszerek PVM : Parallel Virtual Machine üzenetküldő rendszer + egyszerű elosztott erőforrás kezelés ( virtuális gép kialakítása) Oak Ridge National Laboratory MPI : Message-Passing Interface üzenteküldő interfész szabvány (dokumentum!) széles körű szakmai fórum alkotta meg több implementáció (pl. MPICH, Sun HPC)

PVM procesz modell t6 t2 t3 t5 t1 t4 Procesz : önálló vagy csoport(ok) tagja Procesz azonosítása: globálisan ( task id ) pvm_mytid() : task id lekérdezése Procesz dinamikusan hozható létre és csatlakoztatható csoporthoz t0

Aszinkron üzenetküldés p1 send(p2, adat1) üzenetpuffer p2 recv(p1, adat2)

Blokkolt üzenetvétel p1 send(p2, adat1) üzenetpuffer p2 recv(p1, adat2)

PVM: Pont-pont kommunikáció pvm_recv(...) pvm_upk ( ) : pvm_upk ( ) t0 Címzett azonosítása: pvm_send t2 t1 t3 t5 t4 pvm_initsend(...) pvm_pk ( ) : pvm_pk ( ) pvm_send( ) célprocesz globális azonosítója ( task id ), Üzenet azonosítása: output puffer törlése: pvm_initsend, adatok feltöltése a pufferbe: pvm_pk...,

PVM: Mi van benne? Kommunikáció és procesz kezelés pont-pont kommunikáció, kollektív kommunikáció, aszinkron küldés, blokkolt vétel dinamikus procesz indítás / leállítás Dinamikus virtuális gép kezelés virtuális párhuzamos gép kialakítása a felhasználó számára heterogén hardver környezetben pvm_addhost( ), pvm_delhost( ),...

MPI procesz modell MPI_COMM_WORLD Kommunikátor : processz csoport + üzenet kontextus Processz azonosítás : (csoport, index) kommunikátor 0,,N-1

Szinkron üzenetküldés p1 send(p2, adat1) üzenet p2 recv(p1, adat2)

Nem-blokkolt üzenetvétel p1 üzenetpuffer p2 send(p2, adat1) recv(p1, adat2) recv(p1, adat2)

MPI: Pont-pont kommunikáció MPI_Recv kommunikátor 0 2 3 4 1 5 MPI_Send MPI_Send legfontosabb paraméterei: adat puffer kezdő memória címe, adatelemek száma, adatelemek típusa (MPI_Datatype), célprocesz indexe, kommunikátor (MPI_Comm) üzenet azonosítása címzett azonosítása

MPI: Kollektív kommunikáció kommunikátor 0 2 3 4 1 5 Minden proceszben : MPI_Bcast MPI_Bcast paraméterei: adat puffer kezdő memória címe, adatelemek száma, adatelemek típusa (MPI_Datatype), kommunikátor (MPI_Comm) a gyökér procesz indexe, üzenet azonosítása címzettek azonosítása küldő azonosítása

MPI : Mi van benne? MPI-1.1 pont-pont kommunikáció, kollektív kommunikáció, topológiák (sokdimenziós rács ill. általános gráf), szinkron és aszinkron üzenetküldés, blokkolt és nemblokkolt üzenetvétel Származtatott adattípusok ~ 120 rutint definiál MPI-2 processz kezelés (létrehozás, kilövés, ), párhuzamos IO több mint 100 újabb rutin

OpenMP: Közös memóriás kommunikáció Cél: szabvány kidolgozása Hardver gyártók és kutatók együttes fejlesztése Programozói interfész specifikáció sokszálas programok készítéséhez Fordítási direktívák + rutin könyvtár Radikálisan megkönnyíti sokszálas Fortran, C és C++ programok írását

OpenMP: Programozási modell Szétágazás-összevonás ( fork-join ) párhuzamosság Párhuzamosság inkrementális növelése mester szál (master thread) párhuzamos régiók

OpenMP: Tipikus alkalmazás Ciklusok párhuzamosítása void main() { : : for(i=0; i<1000; i++) sok_szamolas(res[i]) : } Szekvenciális program void main() { : #pragma omp parallel for for(i=0; i<1000; i++) sok_szamolas(res[i]) : } Párhuzamos program

Összehasonlítás PVM dinamikus, heterogén környezet hatékony támogatása hibatűrés és flexibilitás MPI gazdag rutinkészlet komplex programokhoz rendkívül hatékony implementációk statikus és homogén OpenMP inkrementális párhuzamosítás gyakori skálázhatósági problémák (max. ~10-20 processzor)

Köszönöm a figyelmüket? További információ: www.lpds.sztaki.hu