Párhuzamos programozás laboratórium

A tantárgy angol neve: Parallel Programming Laboratory

Adatlap utolsó módosítása: 2019. január 25.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
Informatika MSc, Felhők és párhuzamos rendszerek
Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIIIMB02 3 0/0/3/f 4  
3. A tantárgyfelelős személy és tanszék Dr. Tóth Balázs György, Irányítástechnika és Informatika Tanszék
A tantárgy tanszéki weboldala http://cg.iit.bme.hu/portal/oktatott-targyak/parhuzamos-programozas-laboratorium
4. A tantárgy előadója

Dr. Szeberényi Imre, Irányítástechnika és Informatika Tanszék

Dr. Tóth Balázs György, Irányítástechnika és Informatika Tanszék

5. A tantárgy az alábbi témakörök ismeretére épít

Programozás, adat szerkezetek, algoritmusok, matematika.

6. Előtanulmányi rend
Ajánlott:

A C++ programozási nyelv ismerete.

- BMEVIIIMA06 Nagyteljesítményű párhuzamos rendszerek: kredit megszerzése.
- BMEVIIIMB01 GPGPU alkalmazások: kredit megszerzése vagy párhuzamos felvétel.
7. A tantárgy célkitűzése

A hallgatók a gyakorlatban megismerkedhetnek a felhő alapú rendszerek és a hozzá kapcsolódó fejlesztő- és teszteszközök használatával, valamint konkrét feladatokon keresztül elsajátíthatják a párhuzamos programozás lépéseit, módszereit. Megismerhetik továbbá a hagyományos informatikai alkalmazások felhőbe történő migrálásának kritériumait és lépéseit. A hallgatók a laborfeladatok nagy részét a CIRCLE rendszer segítségével biztosított felhő környezetben oldják meg.

8. A tantárgy részletes tematikája 1. Bevezetés, fejlesztő környezet megismerése.

A labor célja a párhuzamos algoritmusokban gyakran alkalmazott paraméter scan megismerése és az erre épülő alkalmazások párhuzamosítása. A feladat megoldása során lehetőség nyílik egy konkrét hosszútávú ütemező megismerésére.

 

2. Check-point elosztott környezetben.

 A labor célja az előző alkalommal elkészített program kibővítése egyszerű check-point kialakításával. A check-point hatásának mérése a futási idők szempontjából. SpeedUp becslése.

 

3. Párhuzamos programok szálakkal UNIX környezetben.

A labor célja a POSIX szálak kezelésének átismétlése. Egyszerű párhuzamos program készítése POSIX szálakkal. Futási idők mérése. SpeedUp becslése.


4. Párhuzamos program készítése OpenMP környezetben.

A labor célja az OpenMP eszközkészletének átismétlése. Előző órai feladat elkészítése OpenMP környzetben. Futási idők mérése és összehasonlítása az előző laboron készített implementációkkal.


5. Párhuzamos programok MPI környezetben.

A labor célja az MPI eszközkészletének átismétlése. A labor során lehetőség nyílik egyszerű kommunikációs sémák kipróbálására, az eltérő sémák hatása a futási időre.


6. Matematikai könyvtárak (MKL, LAPACK, BLAS) megismerése.

A labor célja egy számításigényes feladat megvalósítása BLAS könyvtárral GPGPU kártyán. A labor során az elkészült implementációt skálázhatóság és teljesítmény szempontjából is megvizsgáljuk.


7. Egy egyszerű feladat IaaS felhőbe migrálása.

A labor célja a cloud alapú távoli erőforrások és a lokális alkalmazások összekapcsolásának megismerése. A labor során bemutatjuk a felhőmenedzsment eszközöket és a felhő alapú szolgáltatások létrehozását.
 
8. Egyszerű CUDA programok készítése.
A labor célja a grafikus hardveren futó párhuzamos alkalmazások megismerése. A labor során bemutatjuk a CUDA környezetben elérhető Thrust konténer könyvtárat, és néhány ráépülő alkalmazást. Amennyiben a hardver környezet engedi, lehetőség lesz több GPGPU kártyán futó CUDA program készítésére.


9. MPI és CUDA könyvtárra épülő alkalmazás kialakítása.
A labor során bemutatjuk az eltérő párhuzamosítási stratégiák egy rendszeren belüli integrálásának lehetőségeit. A masszívan párhuzamos és elosztott rendszerek összekapcsolásával ötvözhetőek a kedvező tulajdonságaik és részben kiküszöbölhetőek az egyes sémák hátrányai.

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)
A tantárgy laborjain a hallgatók a feladatok nagy részét a CIRCLE rendszer segítségével biztosított felhő környezetben oldják meg, és egyéni házi feladatot kapnak. Az értékelés alapja az egyes méréseken kapott osztályzatok és a házi feladatra kapott osztályzat átlaga.
10. Követelmények

Laborok TVSZ-nek megfelelő látogatása  és a félév végén házi feladat elkészítése. A félév végi érdemjegy a teljesített laborok (50%) és a házi feladat eredményéből (50%) áll össze.

11. Pótlási lehetőségek A házi feladat bemutatható a pótlási hét végéig.
12. Konzultációs lehetőségek Előre egyeztetett időpontban.
14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra42
Félévközi készülés órákra42
Felkészülés zárthelyire0
Házi feladat elkészítése18
Kijelölt írásos tananyag elsajátítása18
Vizsgafelkészülés0
Összesen120
15. A tantárgy tematikáját kidolgozta

Dr. Szeberényi Imre,  Irányítástechnika és Informatika Tanszék

Dr. Tóth Balázs György,  Irányítástechnika és Informatika Tanszék