Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    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