HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

  • sdani: Sajnos nekem is hasonló érzéseim vannak az R kiszorulásával kapcsolatban. Remélem jobban fogja tar... (2024.04.29. 10:48) R meetup
  • sdani: Nagyon jók ezek a bejegyzések! Feszültséggel teli, fordulatos, mint egy jobb krimi. :D Abba ne hag... (2024.04.29. 10:35) Wgel CTF
  • sdani: @Travis.CG: Egy kis szerencse sosem árt. :D (2024.03.01. 13:19) A bioinformatika helyzete 2024-ben
  • Travis.CG: Szóval az akadémiai szféra mazochistává tett, amit a Pinephone-al élek ki? Hmm, érdekes összefüggé... (2023.10.05. 18:23) Új barátom az Informatikai titkárságról
  • Travis.CG: Túl nagy a hype körülötte, ezért túlzó elvárások vannak vele szembe. Ha a korábbi chatbotokhoz kép... (2023.02.28. 06:28) chatGPT, a bioinformatikus

Bioinformatika GPU-n

2014.09.07. 22:52 Travis.CG

Különböző fórumokon rendszeresen felbukkan az algoritmusok GPU-ra történő átírása. Ez alól a bioinformatika sem kivétel. A GPU-t amolyan isteni megváltásnak tekintik minden problémára. Még olyan emberrel is találkoztam, aki azt gondolta, attól, hogy erős videókártyát tesz a gépébe, máris hatalmas teljesítmény növekedést fog tapasztalni. Ezért is merült fel bennem:  tényleg szükség van rá? Egyfelől ott van az igény a gyors eredményekre, másrészt a szűk keresztmetszet sok esetben a lemez műveletek sebessége. Ebben a posztban megpróbálom kideríteni mekkora a GPU alapú bioinformatikai algoritmusok létjogosultsága. Kiválasztottam néhány programot, amelynek ismert a CPUs válatozata és összehasonlítottam őket. Habár nagy GPU rajongó vagyok, igyekszem objektív lenni.

Tesztkörnyezet

A teszteket egy AMD FX-8350 processzort tartalmazó gépen végeztem 32GB memóriával. A videokártya egy GeForce GTX 460 volt 1GB memóriával. A meghajtóprogram verziószáma 319.60. A tesztgépen egy 64bites Slackware 14.1 futott. A Cuda meghajtóprogram a 6.0 verziószámot viselte.

Programok

NVBio: A csomag része az nvBowtie, de más érdekes program is található rajta kívül. A fordítása gond nélkül sikerült a cmake/make párossal. Ellenfele a a bowtie2-2.2.2, szintén forráskódból fordítva, probléma nélkül.

 GPU-Blast: Az NCBI-Blast GPU-val erősített változata. Telepítés előtt szerkeszteni kellett az install szkriptet, mert letölti a CPU-s változatot az NCBI FTP tárhelyéről és a fájlnévben a verziószám elavult volt. A G-Blastn is ide kívánkozik. Érdekes lesz összehasonlítani nem csak a GPU/CPU teljesítmény különbséget, de az egyes implementációs különbségeket is. (Bár a két README fájl gyanúsan sok egyezést mutat.)

A gBlastn fordítása elég nehezen ment. Az install szkript először vagy letölti az 2.2.28 Blast-ot, vagy kéri a forráskód elérési útját, belemásolja a GPU függő kódot, felül ír más fájlokat és megpróbálja fordítani ezt a katyvaszt. Az 1.1 verzió semmilyen módon nem akart lefordulni. Igaz, a 2.2.28 Blast fordítása is csak úgy ment, ha a ncbi_gnutls.c-ből kitöröltem egy sort. Ebből adódóan, ha az install szkript töltötte le a Blastot, akkor az nem fordult le, mert benne volt a fordítást akadályozó sor. Ha én adtam be az elérési utat, akkor nem volt képes belerakni a saját vackait. Már majdnem úgy nézett ki, nem lesz semmi ebből a bejegyzésből, amikor ráakadtam a GitHubon fejlesztett verzióra. Az öröm korainak bizonyult, mert így a fordítás későbbi szakaszán jelentkezett hiba. Végül úgy döntöttem, nem kísérletezem tovább és kihagyom a tesztből.

 cuda-meme: A program a népszerű motivum kereső GPU-s változata. A fordítás itt sem okozott gondot. A CPU megfelelője a leírások alapján a MEME 4.4, de én az egyszerűség kedvéért a gépemre már korábban telepített 4.9.1 verziót használtam (szintén forráskódból és már sikeresen használtam is).

mummergpu: Ismét egy illesztő program, de ez genomi szinten pakolja egybe a szekvenciákat. Ebben az esetben az eredeti program fejlesztői készítették el a GPU-s változatot. Ezért is lepődtem meg, amikor a fordítás során hiányzó fejléc állományokra és linkelési hibákra utaló hibaüzeneteket kaptam. Egy ideig szenvedtem a kóddal, de végül ez a program is kiesett a rostán.

SOAP3: A kínaiak csodafegyvere a bioinformatika frontján. A de novo programjukkal már szenvedtem, ezért semmi jóra nem számítottam az illesztőjükkel kapcsolatban. Szerencsére ezt nem kellett fordítani, mert csak binárisan terjesztik.

Teszt futtatások

A MEME összehasonlításhoz a Doop adatbázis 85067420 klaszterét használtam. A klaszter 3000-es promótereit töltöttem le (All promoters, 3000bp, Download clusters). Hiába fordult le gond nélkül a program, nálam segmentation fault-al elszállt, még alapértelmezett beállításokkal is. Összehasonlításra így nincs mód.

A Bowtie illesztéshez egy C. elegans genom szekvenálást választottam. A genomot innen szedtem. Már az index építése is eltér a CPU és GPU verziókban. A bowtie2-build helyett az nvBWT program állítja elő azt. Sajnos a folyamat itt el is akadt, mert minden indítás alkalmával más történt. Először úgy tűnt végtelen cikusba került a program, mert fájokat nem hozott létre, de folyamatosan írt a konzolra. Második indításra segmentation fault-ot adott. Nem álltam neki hibát keresni.

Minden reményem a SOAP3-ban volt. A leírás szerint 3GB videomemória kell neki, ennek ellenére belevágtam. Fordítani nem kellett, mert csak binárisan terjesztik a programot. Itt is az index készítésénél akadt el a teszt, mert hiányzott neki a libcudart.3.so.

Összegzés

Bevallom, nagyon meglepett, hogy egyetlen programot sem tudtam használni. Való igaz, hogy sok ponton elbukhat egy Linuxos program telepítése, de ne feledjük, hogy a CPU változatot sikeresen tudtam fordítani és a kész programot használni ezen a rendszeren. Személy szerint azt gondolom, hogy a GPU verziós programok nem érik el kódinőségben azt a szintet, amit a CPU-s változat. A fejlesztők valahogy összerakják a rendszert, ami a saját gépükön elfut és írnak belőle egy cikket, majd nem fejlesztik tovább azt. Ez alól látszólag a gBlastn kivételt képez, mert a GitHub szerint rendszeresen érkeznek javítások a kódbázishoz. Talán a jövőben újra megpróbálkozom a telepítésével, de aki használni akarja ezeket a programokat, inkább támaszkodjon a CPU-ra. Az eredmény biztosabb.

Szólj hozzá!

Címkék: bioinformatika

A bejegyzés trackback címe:

https://cybernetic.blog.hu/api/trackback/id/tr696212718

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása