Tantárgy » BMEVIIIMB02
Párhuzamos programozás laboratórium
Parallel Programming Laboratory
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
—
| Tantárgy neve (magyarul, angolul) |
Párhuzamos programozás laboratórium
Parallel Programming Laboratory
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tantárgykód | BMEVIIIMB02 | ||||||||||||
| Tantárgyjelleg | — | ||||||||||||
| Képzési szint | — | ||||||||||||
| Kurzustípusok és óraszámok (heti/féléves) |
|
||||||||||||
| Tanulmányi teljesítmény/értékelés típusa | félévközi érdemjegy | ||||||||||||
| Tantárgy kreditértéke | 4 | ||||||||||||
| Tantárgyfelelős |
Dr. Tóth Balázs György
elérhetőség:
tbalazs@iit.bme.hu
|
||||||||||||
| Tantárgyat gondozó oktatási szervezeti egység |
Irányítástechnika és Informatika Tanszék
|
||||||||||||
| Kar | Villamosmérnöki és Informatikai Kar | ||||||||||||
| Tantárgy weboldala | http://cg.iit.bme.hu/portal/oktatott-targyak/parhuzamos-programozas-laboratorium | ||||||||||||
| Tantárgy elsődleges mintatantervi jellege | — | ||||||||||||
| Közvetlen előkövetelmények – Erős előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Gyenge előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Párhuzamos előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Mérföldkő előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Kizáró feltétel | nincs |
Célkitűzés
Tantárgyprogram
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.
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.
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.
Tanulmányi eredmények
Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:
Tudás
Nincsenek rögzített tanulási eredmények.
Képességek
Nincsenek rögzített tanulási eredmények.
Attitűd
Nincsenek rögzített tanulási eredmények.
Autonómia és felelősség
Nincsenek rögzített tanulási eredmények.
Oktatási módszertan
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.
Tanulástámogató anyagok
Nincs megadva.
A tantárgy teljesítéséhez ajánlott előzetes ismeretek
Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Programozás, adat szerkezetek, algoritmusok, matematika.
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
Programozás, adat szerkezetek, algoritmusok, matematika.
Általános szabályok
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.
Pótlási lehetőségek:
A házi feladat bemutatható a pótlási hét végéig.
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása
Nincs megadva részletes értékelés.
Szorgalmi időszakban végzett teljesítményértékelések részaránya
Nincs megadva részarány.
Vizsgaidőszakban végzett teljesítményértékelések részletes leírása
Nincs megadva részletes értékelés.
Vizsgarészek részaránya
Nincs megadva részarány.
Érdemjegy megállapítása
Nincs megadva érdemjegy határ.
Jelenléti és részvételi követelmények
Nincs megadva jelenléti követelmény.
Javítás, ismétlés és pótlás különös szabályai
Nincs megadva.
Rövid leírás
Nincs megadva.
Részletes leírás
Nincs megadva.
Ajánlott tantárgyak
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.
A tantárgy elvégzéséhez szükséges tanulmányi munka
Nincs megadva munkaidő bontás.
Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
—
Tantárgykövetelmények hatályosságának vége:
—
Tantervi elhelyezés
Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.