„…meg lehet találni az utat, hogy egyre hatékonyabban használjuk a HPC-t.” – interjú Balogh Gábor Dániel HPC-ösztöndíjas PhD hallgatóval
„…meg lehet találni az utat, hogy egyre hatékonyabban használjuk a HPC-t.” – interjú Balogh Gábor Dániel HPC-ösztöndíjas PhD hallgatóval
Hogyan mutatná be magát, mi a kutatási területe?
Mérnök-informatikus vagyok, jelenleg a Pázmány Péter Katolikus Egyetemen, a Roska Tamás Műszaki és Természettudományi Doktori Iskola hallgatója. Az elmúlt hat évben a párhuzamosításra fókuszáltam. A kutatócsoportunk azzal foglalkozik, hogy miként lehet hatékonyan párhuzamos algoritmusokat implementálni CPU-ra, GPU-ra, klaszterekre, szuperszámítógépekre. Elsődlegesen olyan általános algoritmusok implementálásán dolgozunk, amivel a kutatók munkáját segítjük. Automatikusan párhuzamosítjuk a szimulációikat, így a kutatónak, legyen akár fizikus, biológus, gépészmérnök vagy bármi, nem feltétlenül kell hosszú időt beleölnie abba, hogy megértse, hogyan tudja átültetni a már meglévő alkalmazását. Azaz egy domainabsztrakció kidolgozásával foglalkozunk.
Mikor és hogyan találkozott a szuperszámítástechnikával?
A mesterképzés első félévében Dr. Reguly István tartott egy párhuzamos programozás nevű tárgyat az egyetemen, akkor hallottam először szuperszámítógépről. Ott egy széles merítést láttunk, CPU-párhuzamosítástól indulva GPU-párhuzamosításig. Megtetszett, mert kihívás van benne, kicsit másképp kell gondolkodni, kicsit rejtélyesnek is tűnt. Jelentkeztem is hozzá, hogy szívesen foglalkoznék ezzel alaposabban, egy önálló laboratórium keretében ez meg is valósult. Azóta is az ő témavezetésével foglalkozom párhuzamos programozással, különböző területeken.
Korábban nem szerepelt a tanulmányaiban a HPC?
BSc-n molekuláris bionikát tanultam, ott bioinformatikával kapcsolatban érintőlegesen volt szó párhuzamos algoritmusokról, de a szuperszámítógép nem volt fókuszban. A mérnök-informatikus mesterképzésen van párhuzamos programozás HPC irányban.
Mi a HPC szerepe a szakterületén?
Az én szakterületem lényegében arra fókuszál, hogy segítsünk másoknak használni a HPC-t. Két éve például volt egy évfolyamtársam, aki spinszimulációkat akart futtatni, segítettünk neki gyorsítani a szimulációs kódját. A mi keretrendszerünk az OP2 és az OPS, ez utóbbi bármilyen strukturált hálón történő számítás leírására alkalmas. Tehát, ha van egy négyzetrácson működő bármilyen szimuláció, az átültethető erre. A mi fókuszunk pedig az, hogy ezt hogyan lehet hatékonyan alkalmazni, akár szuperszámítógépeken, akár kisebb klasztereken.
Van alternatívája a szuperszámítógépnek a szakterületén?
A kérdés az, hogy mekkorák az alkalmazások, van-e szükség szuperszámítógépre. Vannak alkalmazások, ami kihasználnak egy teljes szuperszámítógépet is, a kisebbek annak egy részére, akár egy GPU-ra, vagy egy CPU node-ra párhuzamosítva működnek. De a teljes kutatás HPC-területen belül zajlik, tehát szuperszámítógép vagy kisebb klaszter szükséges hozzá.
Hol értesült a Kompetencia Központ ösztöndíjpályázatáról?
A témavezetőm küldte januárban, ha jól emlékszem, tehát bőven volt időm felkészülni a pályázatra.
Miért jelentkezett?
Az elsődleges motivációm a Komondor kipróbálása lett volna, amivel nagyméretű szimulációkat is le lehet majd futtatni. Izgalmas lehetőség megismerni egy új architektúrát és ezzel bekapcsolódni a hazai felhasználók támogatásába.
Milyen projekttel pályázott?
Korábban végeztünk egy kutatást tridiagonális rendszerek megoldására. A pályázat keretében ezt a kutatásunkat terjesztettük ki pentadiagonális rendszerekre. A cél egy olyan megoldó algoritmus létrehozása volt, ami nagyszámú node esetén is jól teljesít, tehát ténylegesen alkalmazható szuperszámítógépeken.
Sikerül elérnie a kitűzött célt?
Elindítottuk a kutatást, egészen sokat haladtunk is vele, de van, amit még nem teljesen oldottunk meg. Viszont a KIFÜ segítségével kaptunk gépidőt a MARCONI szuperszámítógépre, és az olaszok tárt karokkal fogadtak minket. Architekturális különbség van, a MARCONI-ban előző generációs GPU-k dolgoznak, ezért kíváncsiak vagyunk a teljesítménykülönbségekre is.
A single és double precisionben végrehajtott szimulációk közötti eltérés egy szárnykeresztmetszet-menti áramlásszimuláció esetén
Mennyire tartja kihívásnak a szuperszámítógép használatát?
Mindig vannak kihívások a szuperszámítógépekkel kapcsolatban. Ha kisebb alkalmazásról van szó, akkor az, hogy az adott node-on belül a lehető leghatékonyabban tudjuk futtatni az algoritmusokat. A nagyobb alkalmazásoknál a gépen belüli kommunikációval, és a node-ok szervezésével kapcsolatos kihívások izgalmasak. A mi feladatunk pedig az általánosítás, hogy a következő, hasonló problémát is jó teljesítménnyel tudjuk megoldani.
Mi kell ahhoz, hogy valaki hatékony szuperszámítógép-felhasználó legyen?
Elsődlegesen motiváció. Sok mindent kell megtanulni, de meg lehet találni az utat, hogy egyre hatékonyabb használjuk a HPC-t. Ha távolabbról indulunk, egy könyvtár használatával, ami segíti a párhuzamosítás megértését. Ha közelebbről, az egyes optimalizációs technikák megtanulásával, és ez a tudás folyamatosan fejleszthető.
Hol kezdődik a professzionális szint?
Minél több problémát ismer az ember, annál több újabbat lát előre. Sokféle problémával van már tapasztalatom HPC-témakörben, de még rengeteg minden van, amit szeretnék kipróbálni, hogy igazán megértsem a működését.
Kinek ajánlaná a szuperszámítógép használatát?
Nagyon sok területen lehet hasznos. Például orvosi felhasználásoknál kézenfekvő a képalkotás, elemzés, a személyre szabott gyógyászathoz is készülnek alkalmazások. Hagyományosabb alkalmazási területeken is, például mérnöki tervezés szimulációinál, mondjuk, áramlástanban sokat lehet nyerni vele. Nagyon széles a szuperszámítógépek felhasználási területe, elsődlegesen az hiányzik, hogy a potenciális felhasználók minél hamarabb megismerkedjenek vele.
Itt a felsőoktatásra gondol?
Akár. Például gépi tanulás környezetben viszonylag gyorsan eljutnak az emberek egy általános tudásig. Megtanítja az első egy-két hálóját, aztán GPU-kon is kipróbálja. Ez a lépés, hogy most futtatnék valami akkora nagyot, amihez már óriási számítási kapacitás kell, más területen sokkal később jön elő.
Mennyi idő alatt lehet megtanulni alapszinten a szuperszámítástechnikát?
Alapszinten nem sok. Hasonló rendszer működik nálunk az egyetemi klaszteren, a használata hamar megtanulható. A párhuzamos programozás és az alkalmazások elkészítése időigényesebb. Az, hogy egy szimuláció hogyan lehet hatékony egy teljes szuperszámítógépen, már nagy kihívás, mert nagyon sok módszer van, és nagyon sok mindentől függ. A teljes szuperszámítógépen történő számítás esetén fontos a kommunikáció, mert tulajdonképpen számítógépek vannak összekötve, amik üzeneteket küldenek egymásnak. Ahogy nő a számítógépek száma, úgy nő az üzenetküldés költsége. Ennek kezelése, a kommunikáció lokalizálása az egyik pont, amire mi fókuszálunk.
Tehát kell egy támogató csapat a szuperszámítógép mellé?
Ideális esetben sokat segít, például egy csillagásznak. Korábban ez úgy működött, hogy mindenki egyre bonyolultabb szimulációkat szeretett volna lefuttatni, ezért hozzátanulta a szükséges technikákat. Ha van egy támogató csapat, akkor a hozzátanulás lépései jelentősen csökkenthetők, vagy akár ugrásokra is válthatók.
El tud képzelni kölcsönhatást a különböző tudományterületek között?
Ez nagyon jól működik már most is. Vannak gyakori minták, amik előjönnek a számítások során. Ilyen például a pentadiagonális egyenletmegoldó, amivel most pályáztam. Ez az egyenletrendszer-típus felvetődhet pénzügyi számítások esetén ugyanúgy, mint áramlástanban. Ha az algoritmus építőelemei kellőképpen modulárisak, átültethetőek más tudományterületekre.
Hogyan látja a szuperszámítástechnika jövőjét?
Most, hogy a szuperszámítástechnika végre belépett az exascale tartományba, a legizgalmasabb kérdés az, hogyan lehet ekkora számítási teljesítményt hatékonyan kihasználni. A növekedés is érdekes téma, hogy tudjuk-e tartani ezt a fejlesztési tempót. Nagyon jónak látom azt a tendenciát, hogy itt, Európában is az a cél, hogy minél szélesebb körben lehessen használni az erőforrásokat.
Mit gondol a kvantumszámítógépről?
Nem vagyok szakértő ebben a témában, de azt gondolom, hogy vannak problémák, amiknél a közeljövőben forradalmasítani fogja a lehetőségeket. De a hagyományos HPC továbbra is megmarad, a kvantumszámítógép nem fogja kiváltani, inkább kiegészíti egymást a két eszköz.