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 rendek grafikus formában itt láthatók.

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