2019
informatika
Az MMFF94 és az UFF molekulamechanikai erőterek optimalizációja GPU-ra
Témavezető:
Dr. Cserey György, Ladjánszki István
Dr. Cserey György, Ladjánszki István
Összefoglaló
A számítógépes szimulációk egyik fontos használati területe az anyagtudomány, a molekulák szerkezeteinek és kölcsönhatásainak a vizsgálata, melyre különböző algoritmusokat fejlesztettek. A legegyszerűbb modell a molekulamechanika, mely potenciális energiákat ír le; ilyenek például az MMFF94 és az UFF modellekben használt erőterek. A molekulában levő atomok koordinátáinak változtatásával és energiaszámolással lokálisan minimális energiájú állapotok találhatóak, melyek a molekula rezonáns határszerkezeteit reprezentálják.
A szimulációk sebessége nagyban hozzájárul az eredmények elérhetőségéhez, ezért törekedni kell a minél rövidebb futási időkre. Ezt erősebb hardver, az algoritmusok optimalizálása, illetve újfajta architektúrákra való átültetés segítségével lehet elérni. Manapság ez utóbbi hozhatja a legjobb eredményeket. Az ilyen új architektúrák egyike a GPU, vagyis grafikai feldolgozóegység, mely felépítéséből adódóan nagyfokú párhuzamosítást követel meg a rajta futó algoritmusoktól.
Ezen dolgozat az MMFF94 és UFF erőterek energia- és gradiensszámolásának GPU-n történő megvalósítását részletezi. A munka során fő szempont a számolási pontosság megőrzése és a CPU-n futó verzióhoz képest gyorsulás elérése.
Az első lépés egy CPU-n futó program készítése az algoritmusok használatára, hogy legyen egy saját keretrendszer, melybe GPU-s gyorsítás implementálható. A pontosság validálásához az Open Babel kémiai szoftvercsomagban elérhető MMFF94 és UFF modulok által számolt referenciaadatok használata jó megoldás.
Az erőterek által leírt teljes energia különböző energiatagokból épül fel, ezeket külön-külön vizsgálva fokozatosan lehet tesztelni a megvalósítást. Legnagyobb sebességnövekedést a van der Waals és elektrosztatikus energiák esetében várható, mivel ezeknél egy molekula majdnem minden atompárjára kell parciális energiát számolni, tehát lehet a jelentős párhuzamosítást kihasználva gyorsulást elérni.
A koordinátáktól független beállításokat és a tényleges számolásokat is érdemes grafikai egységen csinálni. Az atomok adatait, illetve a paramétereket ehhez át kell másolni a GPU memóriájába. Lokális memória és atomikus műveletek használata segíti a számolások elvégzését. A mérési eredmények azt mutatják, hogy jelentős gyorsulást lehet elérni: kétszeres pontossággal MMFF94 esetén 14-szeres, UFF esetén pedig 12-szeres, egyszeres pontosságot használva MMFF94 esetén 20-szoros, UFF esetén 14-szeres sebességnövekedést.
A szimulációk sebessége nagyban hozzájárul az eredmények elérhetőségéhez, ezért törekedni kell a minél rövidebb futási időkre. Ezt erősebb hardver, az algoritmusok optimalizálása, illetve újfajta architektúrákra való átültetés segítségével lehet elérni. Manapság ez utóbbi hozhatja a legjobb eredményeket. Az ilyen új architektúrák egyike a GPU, vagyis grafikai feldolgozóegység, mely felépítéséből adódóan nagyfokú párhuzamosítást követel meg a rajta futó algoritmusoktól.
Ezen dolgozat az MMFF94 és UFF erőterek energia- és gradiensszámolásának GPU-n történő megvalósítását részletezi. A munka során fő szempont a számolási pontosság megőrzése és a CPU-n futó verzióhoz képest gyorsulás elérése.
Az első lépés egy CPU-n futó program készítése az algoritmusok használatára, hogy legyen egy saját keretrendszer, melybe GPU-s gyorsítás implementálható. A pontosság validálásához az Open Babel kémiai szoftvercsomagban elérhető MMFF94 és UFF modulok által számolt referenciaadatok használata jó megoldás.
Az erőterek által leírt teljes energia különböző energiatagokból épül fel, ezeket külön-külön vizsgálva fokozatosan lehet tesztelni a megvalósítást. Legnagyobb sebességnövekedést a van der Waals és elektrosztatikus energiák esetében várható, mivel ezeknél egy molekula majdnem minden atompárjára kell parciális energiát számolni, tehát lehet a jelentős párhuzamosítást kihasználva gyorsulást elérni.
A koordinátáktól független beállításokat és a tényleges számolásokat is érdemes grafikai egységen csinálni. Az atomok adatait, illetve a paramétereket ehhez át kell másolni a GPU memóriájába. Lokális memória és atomikus műveletek használata segíti a számolások elvégzését. A mérési eredmények azt mutatják, hogy jelentős gyorsulást lehet elérni: kétszeres pontossággal MMFF94 esetén 14-szeres, UFF esetén pedig 12-szeres, egyszeres pontosságot használva MMFF94 esetén 20-szoros, UFF esetén 14-szeres sebességnövekedést.
Dr. Cserey György
Ladjánszki István