N-test szimuláció párhuzamos környezetben

OData támogatás
Konzulens:
Dr. Dudás Ákos
Automatizálási és Alkalmazott Informatikai Tanszék

Diplomamunkám célja egy gravitációs N-test szimulátor program megvalósítása, különböző párhuzamosítási technológiák alkalmazásával.

A modern processzorok döntő többsége rendelkezik a párhuzamos programvégrehajtás képességével, mellyel jelentős számítási potenciált hordoznak magukban. Megfelelő kihasználásuk azonban sok esetben nem egyszerű feladat. Nehézséget jelent például a programozásuk során, a szekvenciális gondolkodásmódtól való eltérés, az adatintegritás megőrzése, a párhuzamosan futó programrészek közötti kommunikáció megvalósítása, valamint a rendelkezésre álló hardverkörnyezet ismerete.

A gravitációs N-test probléma, egy a csillagászatban gyakran előforduló probléma, mely egymással folyamatos interakcióban lévő égitestek mozgását írja le egyenletekkel, felhasználva a Newton-féle gravitációs törvényt. A felírt egyenletek numerikus megoldása adja a szimuláció alapját. A feladat rendkívül számításigényes és remek lehetőséget biztosít párhuzamos programozás szempontjából.

A dolgozat a gravitációs N-test probléma részletezésével indul, melyben a gyakran használt algoritmusok ismertetése mellett, levezetésre kerülnek a megvalósítandó összefüggések is. Számos párhuzamosítási lehetőség közül kiragadva tárgyalja a grafikus processzorok felépítését és programozását.

Az elméleti rész után a dolgozat bemutatja a diplomamunka keretein belül megtervezett és megvalósított N-test szimulátort. Először egy MATLAB prototípust, majd egy CPU-n futó, C++ alapú implementációt ismertet, mely felhasználja az OpenMP többszálúsítás, és az SSE/AVX vektorizáció által nyújtott párhuzamosítási lehetőségeket. Ezt követően pedig NVIDIA CUDA platformon létrehozott, grafikus processzoron futtatható megvalósítás kerül bemutatásra. A dolgozat a futási eredmény és a számítási teljesítmény kiértékelésével zárul.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.