HPC Portré-dr. Juhász Zoltán
„Az emberi gondolkodás vezérli ezeket az algoritmusokat.” – interjú dr. Juhász Zoltánnal, a Pannon Egyetem docensével
Mikor és hogyan ismerte meg a szuperszámítástechnikát?
A Műegyetemen végeztem, aztán Angliában kezdtem dolgozni, ott ismerkedtem meg közelebbről a párhuzamos számítógépekkel. Azokat még nem szuperszámítógépnek hívták, de a technológia ugyanaz volt. Ott 64-128 processzort tartalmazó számítógépeket használtunk. Itthon, az egyemen még egy vagy két processzor volt a maximum, amit egyidőben használtak, tehát ez egy elég nagy ugrás volt. Két évig dolgoztam ott kutatóként. Az a technológia, amit mi ott használtunk, a transputer nevet viselte.
Az 1980-as évek végén a bristoli Inmos brit mikroelektronikai cég által gyártott, lapkára integrált memóriát és soros kommunikációs interfészt tartalmazó transzputer-processzorokra akarták alapozni a jövő számítástechnikáját. Noha a transzputerek nem váltották be a hozzájuk fűzött reményeket, nagy hatást gyakoroltak a számítástechnikára. |
Ez a technológia eljutott Magyarországra is?
’92-ben megpróbáltam itthon is valami hasonlót felépíteni, transputer alapú szuperszámítógépet létrehozni az egyetemen, de addigra a technológia korlátai is kiütköztek. Megjelentek a klaszterszámítógépek, sok-sok számítógép hálózatba kötve, ezeket próbáltuk nagyon gyors számításokra használni. Utána jó 10-15 évig ilyen kutatási témákon dolgoztam, hogy miként lehet ilyen nagyméretű számítási rendszereket létrehozni, illetve ezeknek a programozását egyszerűsíteni és kitalálni, hogyan lehet tudományos és ipari feladatokra használni őket.
Mi volt az első szuperszámítógépes munkája, élménye?
Nem klasszikus felhasználó vagyok. A szó valódi értelmében a szuperszámítógép-felhasználó az olyan valaki, akinek nagyon nagy számítási feladatai vannak, amiket hagyományos számítási környezetben nem tud megcsinálni. Ők főleg a természettudományok művelői közül kerülnek ki, biológusok, fizikusok, vegyészek, gyógyszerkutatók. Én informatikus vagyok, azon dolgozom, hogy még gyorsabb, még jobb számítási módszereket, algoritmusokat tudjunk létrehozni, amik majd segítenek a klasszikus felhasználóknak.
Van alternatívája a szuperszámítógépnek?
Voltak 15 éve. Nem mindenféle feladatra, de bizonyos feladatokra mindenképpen. Amíg klaszteralapú rendszerekkel foglalkoztunk, pont az volt a célunk, hogy kiváltsuk a méregdrága szuperszámítógépeket olcsóbb, alternatív megoldásokkal. Szándékunkban állt demokratizálni ezt a technológiát, hogy a nagyon elzárt szuperszámítógépektől jussunk el a sokak által igénybe vehető számítási rendszerekig. Ma már ez a felhő alapú számítástechnika, amit mindenki elérhet.
Mi változott meg időközben?
Jött egy nagy ugrás 2006-ban, megjelent az NVIDIA első programozható grafikus kártyája. Ez egy borzasztó gyors fejlődést indított el a processzorgyártás területén. Nagyon gyorsan kiderült, hogy ezek a grafikus kártyák nagyságrendekkel nagyobb számítási teljesítményt nyújtanak, mint a korábbi szuperszámítógépek, vagy a klaszteralapú elosztott környezetek. Innen kezdve nem volt kérdéses, hogy ezzel kell foglalkozni. Ez annyira sikeres volt, hogy már a szuperszámítógépek is alapvetően erre épülnek, mert ha igazán nagy teljesítményt akarunk elérni, erre van szükség. Az elmúlt évtizedben azzal foglalkoztam leginkább, hogy lehet hatékonyan felhasználni ezeket a grafikus kártyákat, alapvetően tudományos számításokra, és hogyan kell programozni őket.
Ez a technológia új megközelítést is igényel?
Röviden; nagyon más ez a programozási módszertan és nagyon másképp működnek ezek az eszközök, mint amit korábban megszoktunk. Már önmagában egy grafikus kártya használata is másfajta gondolkodásmódot igényel, az ezekből felépített szuperszámítógép különösen.
Hogyan magyarázná el ezt egy laikusnak?
A mai szuperszámítógépekben a sebesség abból adódik, hogy egyszerre sok dolgot csinál, sok részfeladatot tud kiszámolni egyidejűleg. Ehhez olyan program kell, amiben van sok részfeladat. Korábban egy hagyományos szuperszámítógépen ezeknek a száma százas nagyságrendű volt. A mai gépekben egyetlen egy grafikus kártyában van 5-10 ezer darab számítási egység, azaz processzor. Ezekből van nagyon sok, a Komondorban 140 darab lesz, ha mindegyikben ezret feltételezek, az 140 000 számítási egység. A nagyon nagy szuperszámítógépekben több tízezer kártya van, ott már több tízmillió feladat fut egyszerre. Ahhoz, hogy ki tudjuk használni ezt a teljesítményt, ennyi részfeladatnak kell egyszerre készen állnia a végrehajtásra. Ez már nem egyszerű, megírni egy olyan programot, amiben millió egyidőben futó folyamat van. Persze vannak ismétlődő mintázatok, tipikus feladatok, a bennük lévő adatszerkezet vagy az algoritmus hasonlósága alapján. Ha egyet megismertünk és van egy hasonló, tudjuk ugyanazokat az algoritmusokat, módszereket ott is alkalmazni.
Nem dehumanizálja így a szuperszámítógép a tudományt?
Nem. A programozónak megmarad az a feladata, hogy eldöntse, hogy melyik feladatot célszerű párhuzamosítani, és melyik az, amit nem érdemes. Tudnak segíteni szoftverek, a kód egy részét automatikusan le lehet generáltatni, de azt nem tudják megmondani, hogy melyik részét kell átalakítani. Az emberi gondolkodás vezérli ezeket az algoritmusokat. Sok esetben az ismert módszerek egymás utáni végrehajtásra lettek tervezve és lehet, hogy az nem alkalmas a párhuzamosításra. Olyankor újra kell gondolnunk az egész feladatot, hogy találjuk egy olyan alternatív megoldást, ami viszont párhuzamosítható.
Új megoldásokkal kísérleteznek?
Amíg a gondolkodásunkat megköti valami, akár a tapasztalat, akár egy prekoncepció, addig nem biztos, hogy egy új technológiát jól tudunk használni. Az algoritmusok mögött matematikai elméletek, módszerek vannak. Mostanában több esetben is kiderült, hogy az eredeti alapgondolat nem alkalmas az ilyen nagymértékű párhuzamosításra. Matematikusok, fizikusok keresnek alternatív megoldásokat, és ha sikerül, nagyságrendekkel lehet a sebességet növelni.
Hogyan kapcsolódott be a magyar szuperszámítógép-fejlesztésbe?
Amikor még a legelső szuperszámítógép, a SUN érkezett, már figyeltem a hazai fejlesztéseket. Egyfelől azért, mert dr. Máray Tamással még az egyetemről ismerjük egymást, másrészt meg én mindig is a párhuzamos programozással foglalkoztam. De 2005-ig főleg az elosztott rendszerek érdekeltek. 2006 után, a grafikus kártyák érkezésekor erősödött fel a kíváncsiságom a szuperszámítógéppel kapcsolatban. Amennyire én tudom, nekem volt Magyarországon az első GPU-s szerverem az egyetemen, négy kártyával. Akkor már látszott, hogy nagyon nagy dolog van készülőben, ezért kezdtem intenzíven használni, kutatni, fejleszteni.
Mennyire tartja kihívásnak a szuperszámítógép használatát?
Ennek szintjei vannak. Ha valaki szerencsés, meg tudja oldani a feladatát egy mások által megírt programmal. Például kell neki egy molekulaszimulációs program. Ha van, csak megadja a bemenő adatokat és elindítja a programot. Ez alapvető számítási ismeretek birtokában bárkinek megoldható feladat. Nehézségek ott jönnek, ha nincs ilyen szoftver, vagy nem tudja azt, amire szükség van. A kérdés ilyenkor az, hogy ki lehet-e egészíteni a szoftvert plusz funkciókkal, vagy teljesen újat kell írni arra a feladatra? Az komoly kihívás.
Mi ennek a kihívásnak a lényege?
A szuperszámítógép alapvető célja, hogy gyorsabban számoljon, mint a hagyományos számítógép. De alapelv szintjén ugyanolyan alkatrészekből áll a szuperszámítógép is, mint egy laptop. Csak akkor leszünk gyorsabbak, ha a szuperszámítógépben lévő sok-sok alkatrészt egyszerre és hatékonyan tudjuk használni. Ha nem jól írjuk meg a programot, rengeteg veszteség lehet a program végrehajtása során, amikor a gép nem számol, hanem vár valamire. Adatra, vagy arra, hogy valaki más befejezze azt, amit csinál. Ha a belső koordináció, kommunikáció a részfeladatok között nincs jól megszervezve, lehet, hogy a gép gyorsan kiszámol valamit, aztán csak várakozik. Az a kihívás, hogy miként tudjuk nulla veszteséggel, folyamatosan 100%-on használni a szuperszámítógépet.
Hogyan jellemezné a szuperszámítógépek fejlődését?
Töretlen, folyamatosan nő a teljesítmény. Először tudott százezer műveletet másodpercenként, aztán elértük az egymilliót, egymilliárdot… Most a legújabb szint az exaflops tartományban működő szuperszámítógép, az egész világ ezt a teljesítményhatárt szeretné áttörni. Viszont ebben a fejlődésben mindig vannak technológiai ugrások. Nagyjából egy évtizedet ural egy technológia, aztán jön egy ugrás és a következőig abba az irányba fejlődik a szuperszámítógép-ipar. A legutóbbi a grafikus processzorok megjelenése volt, 2010 óta tart ez a fejlődési irány és még jó darabig meghatározó lesz.
Ez Önt is érinti?
Amikor ilyen ugrások vannak, a korábban megírt szoftverek gyakran már nem használhatóak tovább. Újra kell írni ezeket a programokat és ez sok pénzbe, sok időbe kerül. Igaz, a következő évtizedben azzal tudnak dolgozni a kutatók vagy az ipari fejlesztők, tehát garantált a megtérülés.
Mennyire nehéz követni ezeket az ugrásokat?
Közelről követni még egy szakembernek is nehéz. Olyan sebességgel fejlődik ez a technológia, hogy mi is alig tudunk lépést tartani vele. De a felhasználók többsége nem programfejlesztő, őket ez annyira nem érinti.
Mi a leggyakoribb kérés, kérdés, amit HPC-szakértőként kap?
Ha valaki még nem dolgozott szuperszámítógépen, az alapkérdés az, hogy használja-e egyáltalán? Vagy próbáljon meg a saját kutatói, vállalati környezetében felépíteni olyan infrastruktúrát, amin a feladatait le tudja futtatni. A másik gyakori kérdés, amikor a jelentkezőnek van egy számítási feladata, és azt szeretné, hogy gyorsabban fusson. Tehát átültetné szuperszámítógépre. A kérdés az, hogy kezdjen hozzá? Ha programot kell írni, milyen nyelven programozzon, egy nyelven belül is van több alternatív technológia, melyiket éri meg a legjobban használni. Nagyon sok technikai kérdést kell egy potenciális felhasználóval átbeszélni. Mindig minden a felhasználótól és az adott feladattól függ. Abban mindenképp tudunk segíteni, hogy ha van ötven lehetséges irány, mi az, amit érdemes követni, és mit nem. Meg tudjuk kímélni őket egy elég fáradtságos és csalódásoktól sem mentes időszaktól.
Mik a Kompetencia Központ legfontosabb feladatai?
Az egyik az, hogy ilyen problémák esetén a meglévő vagy leendő felhasználókat el tudják látni szakmai tanácsokkal. A második a hátország, a hazai HPC-szaktudás általános szintjének emelése, kutatói, alkalmazói, oktatási szinten. A Kompetencia Központnak nagyon fontos feladata, hogy ezt összefogja. Elengedhetetlen, hogy a magyarországi szakemberek körében kialakuljon az együttműködés és fejlődjön a terület, legyen utánpótlás is, az új generációk tanulják meg ezt a technológiát és csinálják még jobban, mint mi.
Integrálni kell a felsőoktatásba a szuperszámítógépet?
Mindenképp. Régen az egyetemek voltak a szuperszámítógép-központok, illetve Amerikában, az állami kutatóintézetekben van több. Most már annyira drágák ezek a gépek, hogy nem várható el, hogy egy egyetem egy ilyet üzemeltessen. A finanszírozás és a működtetés állami feladat, tehát a mostani működési modell jó. Az egyetemekre viszont be kell hozni ezeknek az alkalmazását. Ez részben már megvan, nagyon sok kutatócsoport és kutatóintézet napi szinten használja a szuperszámítógépet, de a hallgatók még nem nagyon. Itt lehetne nagyot előre lépni, hogy az oktatásba is bevigyünk a szuperszámítógépet, minél több mérnök és természettudományos hallgató aktívan használja is.
Ez hogyan érhető el?
Könnyebb hozzáférést kell biztosítani a hallgatóknak. Alapvetően más felhasználásról van szó. Egy kutató viszonylag hosszú ideig használja a szuperszámítógépet, nagy feladatokra. A hallgatók az órán akarják használni, nekik azonnal hozzá kell férni, és kicsi feladatokat fognak futtatni. Nem az a cél, hogy olyan méretű problémákat oldjanak meg, amilyet még senki, hanem az, hogy készség szintjén tudják használni ezeket a technológiákat. Legalább egy elvi képük legyen arról, hogy a szuperszámítógépek mitől olyan gyorsak, például a párhuzamosítás alapelveit ismerjék.
Volt olyan, hogy kapcsolatban maradtak a közös munka után is?
Mindenképpen van. Megtörtént, hogy tanácsot kértek tőlem és már kétéves kutatómunka áll mögöttünk.
Hogyan látja a szuperszámítástechnika jövőjét?
A jövő köszöni szépen, jól van. Régen volt ennyire izgalmas ez a terület, elképesztő sebességű a fejlődés. Megjelentek olyan felhasználási területek, amik új irányba viszik a szuperszámítógépek fejlődését, például a mesterséges intelligencia, az adattudományok, adatelemzés. Ez az elmozdulás a klasszikus tudományos szimulációk irányából közelebb viszi az átlagos felhasználóhoz ezeket a rendszereket. A fejlődés nem fog megállni, a következő évtizedben csodálatos dolgokat fogunk látni, hallani, és aki ebből kimarad, az lemarad. Éles a globális verseny, nyitott a kérdés, hogy kié lesz a vezető szerep szuper-számítástechnikában. Vannak aspiránsok Ázsiában, ott az USA és az EU is két exascale szuperszámítógépet tervez üzembe helyezni nemsokára. De technológiai ugrást a közeljövőben nem várok, a félvezetőgyártás éppen most érte el a fizikai korlátait, ami lassulást hoz. Persze biztos van még egy-két trükk a tarsolyban. De a forradalmi ugrás nem látszik, de persze ne legyen igazam, csak fejlődjön minél gyorsabban.