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ó    

    Nagyteljesítményű párhuzamos feldolgozás

    A tantárgy angol neve: High Performance Parallel Computing

    Adatlap utolsó módosítása: 2014. október 4.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar

    Informatika MSc, Számítási felhők és párhuzamos rendszerek

    mellékszakirány

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIIIMA06 2 2/1/0/v 4  
    3. A tantárgyfelelős személy és tanszék Dr. Szeberényi Imre,
    4. A tantárgy előadója Dr. Szeberényi Imre, 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, adatstruktúrák, algoritmusok, matematika, operációs rendszerek
    6. Előtanulmányi rend
    Kötelező:
    NEM ( TárgyEredmény( "BMEVIIIM141" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIIIM141", "FELVETEL", AktualisFelev()) > 0)

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

    Ajánlott:
    A tantárgy elvégzéséhez C++ programozási ismeret szükséges.
    7. A tantárgy célkitűzése A tantárgy az igen nagy számításigényű és vagy feldolgozási szükségletű mérnöki és kutatási feladatok megoldását biztosító szuperszámítógépek architektúra-osztályait, működtetésükhöz és alkalmazásukhoz szükséges szoftver komponenseket és programozási nyelveket mutatja be. A tárgy hallgatói megismerkedhetnek azokkal a hálózati megoldásokkal, amelyek a legnagyobb teljesítményű gépekben (TOP500) is alkalmaznak. Megismerkedhetnek továbbá a különféle gyorsító processzorokkal és tároló megoldásokkal. Fontos célja a tárgynak, hogy átfogó képet adjon ezen rendszerek használatával, programozásával, minőségi ellenőrzésével és üzemeltetésével kapcsolatban is.
    8. A tantárgy részletes tematikája
    1. Történelmi áttekintés. Párhuzamosítási igények, mozgatórugók. Párhuzamos architektúrák alapfogalmai, osztályozása. Flynn modell Teljesítménymérés és mérőszámai, benchmarkok. HTC és HPC rendszerek fő jellemzői.
    2. Párhuzamosítás szintjei (bit, utasítás, taszk). Ideális párhuzamos számítógép modellje. Párhuzamos számítógépek architektúrái, modellek.
      Gyakorlat: Piacon és az akadémiai szférában elérhető párhuzamos konkrét HPC rendszerek besorolása, főbb tulajdonságai. TOP 500 áttekintése, trendek.
    3. Taszk/csatorna modell és az üzenetküldés elvén alapuló megoldások. PRAM modell, algoritmusok analízise.
    4. Párhuzamos algoritmusok tervezése, módszerek (PCAM).
      Gyakorlat: Parallel Random Access Machine (PRAM) modell és a Partitioning Communication Agglomeration Mapping (PCAM) módszer alkalmazása példákon.
    5. Feladatosztályok. Párhuzamosítási minták (Master-worker, pipeline, task, loop).
    6. Programozási modellek. Programozási nyelvek, környezetek (Linda, MPI).
      Gyakorlat: Mintaprogram MPI környezetben.
    7. POSIX szálak, OpenMP.
    8. Gyorsító processzorok, gyorsító kártyák és eszközeik (GPGPU, ClearSpeed, Phi).
      Gyakorlat: Ciklusok párhuzamosítása. Mintapéldák bemutatása. Gyakorlati példák SMP architektúrán.
    9. Matematikai könyvtárak fontossága, hordozhatósága. Egyszerűbb algoritmusok. Thrust és cuSPARSE könyvtár megismerése.
    10. Ütemezők és elosztott fájlrendszerek.
      Gyakorlat: BLAS, CUBLAS, MKL könyvtárak gyakorlati példákkal. Egyszerű feladat a Thrust felhasználásával.
    11. Meglevő kódok párhuzamosítása. Teljesítmény-optimalizálás lehetőségei. Kód felülvizsgálat. Meglepő teljesítménytényezők. Cache hatása.
    12. Profiling eszközök. Modern processzorok profiling támogató mechanizmusai. Check-point módszerek, problémák és megoldások.
      Gyakorlat: Egy konkrét profiling eszköz bemutatása.
    13. Meta computing, Grid computing, Cloud és a HPC/HTC viszonya.
    14. Összefoglalás
    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) A tantárgy elméleti és gyakorlati órákból áll. A gyakorlati órákon, melyekre kéthetente kerül sor, az elméleten elhangzott anyag gyakorlati bemutatása történik egy-egy példaprogram segítségével. Több gyakorlati alkalmat hallgatói szeminárium formájában tartunk, ami alkalmat ad a gyorsan változó téma követésére.
    10. Követelmények

    a.) Szorgalmi időszakban:

    A tanórákon a jelenlétet a félév folyamán több, előre nem jelzett alkalommal ellenőrizzük, aláírást nem kaphat az, aki ezek alapján azórák több, mint 30%-áról hiányzott.

    Előre bejelentett időpontokban legalább 4 db ellenőrző dolgozat, valamint a 12. tanulmányi héten (előre egyeztetett időpontban) egy nagy zárthelyi megírására kerül sor. Az ellenőrző dolgozatok megírása nem kötelező, azok a jegymegajánlást teszik lehetővé.

    b.) Otthoni feladat:

    A 8. héten kiadásra kerül a nagy házi feladat, melynek megoldását legkésőbb a vizsga napját megelőzően elektronikusan fel kell tölteni, a vizsgán pedig be kell mutatni.

    c.) Aláírás:

    Csak az kaphat aláírást, aki az órák legalább 70%-án részt vett, és a nagy zárthelyit legalább elégséges szinten teljesítette.

    d.) Vizsga:

    A vizsga írásbeli és szóbeli. A szóbeli rész a házi feladat bemutatásából, és a feladattal kapcsolatos kérdések megválaszolásából áll.. Akinek a legjobb 3 ellenőrző dolgozata átlagosan eléri a 85 %-os szintet és a nagy zárthelyi eredménye jeles, valamint a házi feladatát a szorgalmi időszak végéig bemutatta és az kiváló minősítésű, megajánlott vizsgajegyet kaphat.

    11. Pótlási lehetőségek
    • A szorgalmi időszakban a sikertelen vagy meg nem írt nagy zárthelyi egyszer pótolható.
    • A pótlási héten a sikertelen nagy zárthelyi ismételten pótolható.
    • Az ellenőrző dolgozatok nem pótolhatók. Azok eredménye csak a jegymegajánlást befolyásolja.
    12. Konzultációs lehetőségek Igény szerint.
    13. Jegyzet, tankönyv, felhasználható irodalom
    1. Georg Hager, Gerhard Wellein: Introduction to High Performance Computing for Scientists and Engineers, CRC Press, 2000
    2. Michael McCool, James Reinders: Structured Parallel Programming: Patterns for Efficient Computation, Morgan Kaufmann, 200
    3. https://computing.llnl.gov/tutorials/mpi/
    4. http://openmp.org/wp/

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra 42
    Félévközi készülés órákra 10
    Felkészülés zárthelyire 15
    Házi feladat elkészítése 23
    Kijelölt írásos tananyag elsajátítása 
    Vizsgafelkészülés 30
    Összesen 120
    15. A tantárgy tematikáját kidolgozta

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