Nagy teljesítményű számítástechnika a kémiában
A ReaDivivus egy többmagos
processzorokon, egy vagy több GPU-n, illetve számítógép klasztereken futtatható párhuzamos szimulációs
rendszer.
Segítségével nagy számításigényű sztochasztikus vagy determinisztikus reakció-diffúzió problémák
oldhatók meg akár 3 dimenzióban.
A probléma - Reakció, diffúzió és a természet mintázatai
Miként határozzák meg a gének arcunk vagy kezünk alakját? Hogyan alakulnak ki az állatok kültakaróján látható mintázatok? Vajon milyen törvények határozzák meg az olyan spontán, természetes módon kialakuló mintázatok felépülését, mint amilyenek egy pillangó szárnyán, vagy egy kettévágott achát kristály belsejében megfigyelhetők? Hogyan alakulnak ki a régóta ismert Liesegang-gyűrűk?
Az ilyen és ezekhez hasonló kérdésekre a válasz gyakorta egy megfelelően kialakított reakció-diffúzió modell, amely matematikailag általában egy csatolt, nemlineáris parciális differenciálegyenleteket tartalmazó egyenletrendszernek feleltethető meg. Ezeket az egyenleteket azonban sajnos összetettségük miatt az esetek többségében lehetetlen a szokványos matematikai eszközökkel (vagyis papíron ceruzával) megoldani. Éppen ezért a reakció-diffúzió rendszerek tanulmányozása terén a mai napig számos megoldatlan problémát találhatunk.
Az ígéret - Matematikai leírás
Egy RD-mechanizmust kitalálni, illetve a megfelelő egyenleteket felírni általában nem különösebben nehéz feladat. Ami viszont az egyenletek helyességének ellenőrzését illeti, arra - a problémák említett matematikai összetettsége miatt - az egyetlen használható eszköz a számítógépes szimuláció.
A reakció-diffúzió rendszerek viselkedése az emberi gondolkodás számára túlságosan összetett ahhoz, hogy egy-egy a modellen végrehajtott látszólag apró módosítás valamennyi hatását pusztán a józan eszünkre hagyatkozva előre megjósolhassuk.
A megoldás - Numerikus szimuláció és HPC
Ugyanezzel a problémával szembesülünk akkor is, amikor a modell felállítása előtt megpróbáljuk felmérni azoknak az effektusoknak a körét, amelyeket egyáltalán érdemes figyelembe venni. Egy jelenséget látva annak magyarázatára számos, fizikai és kémiai szempontból egyaránt kifejezetten "tetszetős" modellt konstruálhatunk, amelyeknek aztán az egyetlen közös tulajdonsága az lesz, hogy a gyakorlatban egyik se működik.
Ilyenkor az egyetlen dolog, amit tehetünk az, hogy készítünk egy valamelyest eltérő modellt, és újra próbálkozunk. A ReaDiVivus egy olyan eszközkészlet, ami ezt a próba-szerencse játékot jelentpsen lerövidítheti, hiszen segítségével egy-egy újabb modell megalkotása esetenként csak néhány sornyi kód megírását jelenti.
A ReaDiVivus rendszerhez az alapötletet a PhD disszertációm és egy azt folytató kutatási projekt, az úgynvezett Liesegang-jelenség tanulmányozása szolgáltatta.
Bár maga a jelenség sem nem új (1896-ban fedezte fel egy német kémikus), sem nem tűnik kémiai szempontból különösebben bonyolultnak, egészen 2003-ig nem volt rá egységes magyarázat. Ez elsősorban a fentebb említett matematikai és számítástechnikai nehézségeknek köszönhető.
Lényeges hangsúlyozni, hogy a fenti linken bemutatott eredmények még a szimulációs rendszer eredeti, szekvenciális, illetve egyes részleteiben a PVM segítségével párhuzamosított verziójával készültek, hiszen az általános célú, GPU-alapú számítástechnika ebben az időben még nem is létezett. (A PVM a "Parallel Virtual Machine" rövidítése. Ezt a párhuzamosítási technológiát az Oak Ridge National Laboratory fejlesztette és általában a "szegény ember szuperszámítógépe" néven hivatkoztak rá.)
Azóta nagyot lépett előre a világ, így természetesen a ReaDiVivus rendszer jelenlegi képességei sem hasonlíthatók már az akkoriakhoz. Bizonyos műveleteket ma akár több ezerszer gyorsabban lehet vele végrehajtani.
Az oldalsó képen látható szimulát Liesegang spirált 2003-ban négy napig
számolta 4 CPU.
Ma GPU-kon futtatva körülbelül ugyanennyi perc alatt készül el.
GPU-alapú szimuláció a kémiában - Lehetőségek tömören
- Szimulációk 1, 2 és 3 dimenziós terekben futhatnak.
- A reakcióközeg tetszőleges alakú lehet.
- A rendszer a többmagos processzorokat (multicore CPU) és a GPU-kat (manycore) egyaránt támogatja.
- Valamennyi nagy számításigényű művelet futtatható GPU-n.
- A könyvtáraknak van CUDA és OpenCL változata is, így a rendszer NVIDIA és ATI hardveren egyaránt futtatható. (AMD HIP változat fejlesztés alatt)
- A szimulációk egyszerre több GPU-n is képesek futni, kihasználva ezzel a hardver nyújtotta teljes számítási kapacitást.
- A teljes keretrendszer kizárólag szabványos párhuzamosítási technikákat használ, így elvben bármely szuperszámítógépes környezethez adaptálható.
- A GPU-n futó számítások technikai részleteit a rendszer megfelelő burkolófüggvényekkel teljesen elrejti, így a felhasználónak nem kell ezzel sem foglalkoznia, sem részletes ismeretekkel rendelkeznie vele kapcsolatban.
- A szoftver fordítás közben képes megát ráoptimalizálni az adott hardveres környezetre. (fejlesztés alatt)