Dinamikus vasúti mérleg off-line adatfeldolgozási feladatainak hatékony implementálása (evopro Innovation)
![]() associate professor
Szoba: IE334
Tel.:
+36 1 463-4372 Email: khazy (*) mit * bme * hu |
A kiírás adatai
Az evopro Innovation Kft. által kifejlesztett dinamikus vasúti mérőrendszer jelenleg Magyarország számos pontján van letelepítve és üzemeltetve. A rendszerek normál működése során jelentős mennyiségű adat keletkezik. Ezen adatok off-line feldolgozása segítségével végezhetők el olyan feladatok, mint például a rendszerek kalibrálása, statisztikai adatok generálása, stb. Ezen feladatok jelenleg Matlab környezetben hajtódnak végre, ami a nagy adatmennyiségre való tekintettel nem hatékony.
A végrehajtás gyorsítása érdekében szükséges az eljárások alacsonyszintű programnyelven (C/C++) történő hatékony implementálása, esetleges párhuzamosítása multicore architektúra segítségével. Az implementáláskor körbe kell járni a nagy adatmennyiség hatékony kezelésének, a kód párhuzamosíthatóságának és a skálázhatóságnak kérdéskörét. Tekintettel kell lenni a kód karbantarhatóságára és újrahasznosíthatóságára, mivel a rendszerek üzemeltetése során gyakran merülnek fel új igények, valamint a tesztelhetőségére is, hogy a már meglévő implementáció alapján a működés verifikálható legyen.
A Hallgató feladatai:
- Ismerkedjen meg az evopro dinamikus vasúti mérőrendszerével és az off-line feldolgozást megvalósító (főleg Matlab alapú) kódbázissal!
- Mérje fel az algoritmusok futási karakterisztikáját (I/O műveletek, processzálás, Matlab profiler) és hatékony, párhuzamos implementációs lehetőségeit!
- Tekintse át a párhuzamos megvalósítást elősegítő szabadon elérhető könyvtárakat (pl. OpenCL, FastFlow, stb.)!
- Készítse el az off-line adatfeldolgozó szoftver tervét!
- Implementálja a szoftvert, különös tekintettel a karbantarthatóság és tesztelhetőség szempontjaira! Szükség szerint párhuzamosítsa a kódot!
- Tesztelje a működést a már meglévő, Matlab-alapú implementációval összevetve!
Kapcsolódó készségek és ismeretek:
- Szoftverfejlesztés C/C++ nyelven
- Matlab ismeretek
- Párhuzamos programozási ismeretek