Klaszterező algoritmus implementálása GPU-ra CUDA és OpenCL nyelven

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

Ahol sok adatot tárolnak, ott általában feltűnik az adatbányászat, hogy szabad

szemmel láthatatlan összefüggéseket tárjon fel. Az adathalmaz nagy méretéből adódik,

hogy a feldolgozó algoritmusok sokszor nagyon hosszú ideig futnak.

A működés gyorsítására egy mód az adatok párhuzamos, elosztott feldolgozása.

Számítógép-klasztert építeni nehéz és drága, magánembereknek általában

nem járható út. Viszont minden PC tartalmaz grafikus kártyát, és az újabb típusokon

a feldolgozó egységek százas nagyságrendben találhatóak.

A diplomatervemben az adatbányászat egyik részfeladatát, a klaszterezést valósítom

meg GPU segítségével.

A klaszterezés feladata egy adathalmaz elemeinek csoportokra bontása úgy,

hogy az egy csoportban szereplő entitások minél hasonlóbbak, az

eltérő csoportokban lévők pedig minél különbözőbbek legyenek.

A klaszterezésen belül a K-közép algoritmust vizsgálom meg közelebbről,

több verziót megvalósítva grafikus kártyára, kihasználva annak

képességeit.

A GPU-ra való implementáláshoz két keretrendszert, a CUDA-t és az OpenCL-t használom

fel és hasonlítom össze a megvalósult programokat. Az OpenCL segítségével nem csak

GPU-ra, hanem CPU-ra is lehet többszálú programot írni.

Mindkét keretrendszer pár éves csak, ezeket folyamatosan fejlesztik, új

funkciókat nyújtanak, esetleg gyorsabbak lesznek. A diplomaterv kezdetekor

kiadott legújabb változatokat használtam, és a befejezésekor már rendelkezésre álltak

újabbak is.

Letölthető fájlok

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