Klaszter alapú, nagysebességű adatgyűjtés és real-time feldolgozás Molnár Gergely <gemolnar@pet.dote.hu> Debreceni Egyetem, Orvos- és Egészségtudományi Centrum, PET Centrum Ecsedi Kornél <ecsedi@unideb.hu> Debreceni Egyetem, Informatikai Szolgáltató Központ Gál Zoltán <zgal@unideb.hu> Debreceni Egyetem, Informatikai Szolgáltató Központ Molnár József <jmolnar@atomki.hu> Magyar Tudományos Akadémia Atommag Kutató Intézete Balkay László <balkay@pet.dote.hu> Debreceni Egyetem, Orvos- és Egészségtudományi Centrum, PET Centrum Trón Lajos <tron@pet.dote.hu> Debreceni Egyetem Orvos- és Egészségtudományi Centrum, PET Centrum Emri Miklós <emri@pet.dote.hu> Debreceni Egyetem, Orvos- és Egészségtudományi Centrum, PET Centrum 1. Bevezetés Az orvosi képalkotó berendezések fejlesztése során az adatgyűjtéstől a modern képfeldolgozási programok használatáig az informatika legkorszerűbb technológiai megoldásait kell igénybe venni ahhoz, hogy a diagnosztikai központok és a kutató laboratóriumok számára hatékony eszközöket állítsunk elő. Egy radiológiai- vagy nukleáris orvosi kép minőségét az alkalmazott detektor rendszer és az azt kiszolgáló elektronika fizikai paraméterein kívül az adatgyűjtő, a rekonstrukciós és a korrekciós szoftverek határozzák meg. Egy 3D tomográfiás képeket előállító berendezés esetében minden szoftvermodul kidolgozása során jelentős számolási, adattárolási és adatátviteli kapacitásra van szükség. Ez a
feltételrendszer kialakítható egy, a párhuzamos számításokra alkalmas multiprocesszoros számítógép-klaszter segítségével. Egy megfelelően megválasztott paraméterű, kompakt szerelésű klaszterrel az adatgyűjtő felületre nagy sebességgel érkező események feldolgozása szoftveresen is megoldható. Egy piaci termék tervezése során kritikus feladat annak meghatározása, hogy a megépítendő jelfeldolgozó rendszer esetében az adatgyűjtő elektronika és szoftver milyen arányban vegyen részt a képalkotás szempontjából értékes események kiválasztásában. Amennyiben ezt a feladatot sikerül jelentős mértékben a szoftverre bízni, a fejlesztés költsége csökkenthető, és a kifejlesztett adatgyűjtő rendszer alkalmas lesz különböző topológiájú detektor rendszer kiszolgálására. A Debreceni Egyetem PET Centruma, az MTA ATOMKI és a Mediso Kft. által létrehozott konzorcium két (IKTA5 és NKFP) pályázati támogatással futó projektjeinek célkitűzései közé tartozik annak az innovációs folyamatnak a kidolgozása, melynek segítségével a multiprocesszoros technológia az orvosi képfeldolgozás eszközévé tehető. Az egyik alkalmazott kutatási terület annak vizsgálata, hogy a nagyszámú nukleáris detektorból álló detektor rendszerek érzékenysége milyen mértékben javítható a detektorokból nagysebességgel, szekvenciálisan érkező események klaszter-alapú feldolgozásával. Ennek megfelelően a projektek keretében jelentős elektronikai- és informatikai fejlesztési munkát végzünk egy saját forrásból kialakított - adatgyűjtő-klaszter (DAQ-klaszter) segítségével. A szoftverfejlesztések célja a DAQ-klaszteren futtatható MPI (Message Passing Interface) alapú szoftverkönyvtár kidolgozása, amely segítségével a PET-technikához használatos detektormodulok által előállított digitális események feldolgozását szimuláljuk, majd egy valódi detektor rendszer adatátviteli karakterisztikáját határozzuk meg.
2. Megvalósítás A megvalósítás során kialakítottunk egy kétszintű adatgyűjtő-klaszter logikai modelljét, feltételezve, hogy a szimulált, a későbbiek során majd megépítendő detektor rendszer moduljai képesek egy beágyazott operációs-rendszer (Linux) futtatására, vagy rendelkeznek olyan intelligens elektronikai eszközzel, amely képes TCP/IP kommunikációra. Ebben a modellben a detektorok mint adatgyűjtő kliensek - folyamatosan állítják elő, tárolják, majd küldik tovább a digitalizált eseményeket az adatgyűjtő szerverek felé (első szint). A szerverek valamilyen valósidejű feldolgozás segítségével kiválogatják a későbbi adatfeldolgozás szempontjából értékes esemény-halmazokat és azokat egy master-gép felé továbbítják (második szint). A klaszter felépítése Hardver Az általános modellt tekintve a klaszter felépítése a következő: 1. detector 2. detector s w i t c h 1. server 2. server s w i t c h M A S T E R N. detector M. server Az adatgyűjtés menete: az N darab detektorból (kliensek) álló detektor rendszer egyes elemei egy nagy sebességű portokkal rendelkező switch-en keresztül M darab szerverhez kapcsolódnak. A kliensek feladata, hogy egy, az
adatgyüjtés szempontjából oszthatatlan időegység alatt begyűjtött adatokat minél hamarabb egy, az adott időegység feldolgozásáért felelős szerverhez juttassák, amely a beérkező adatokon egy gyors előfeldolgozást hajt végre. Az így előállt adathalmazt minden szerver a master géphez küldi végleges feldolgozásra. és tárolásra A kommunikáció menete: a klaszter csomópontjai egy megfelelő broadcast üzenet hatására kezdik el, vagy fejezik be munkájukat. A master gép vezérel, üzenetet küld a klienseknek, hogy kezdjék el az adatok összegyűjtését majd a továbbítását. A szerverek ugyanekkor már fogadják a kliensek csomagjait. Maga a master gép pedig a szerverektől fogadja az adatokat. Klaszterünk konkrét modellje A klaszert a mini-pet fejlesztési-projekt keretében épitettük meg, amely 14-15 darab PC/104-es számítógépből (kliensek), vagy néhány egyszerű PC-ből és egy feldolgozó szerverből áll. A PC-k és a PC/104-es gépek egyaránt használhatók a beágyazott operációs rendszerrel rendelkező és a direkt TCP/IP adatforrásként megjelenő detektorokból felépített detektor rendszer modellezésére. A klaszterben egyetlen szerver van ami egyben a master funkciókat is ellátja. Egy PC/104-es gép 10 * 10 cm-es, egymásra szerelhető lapokból áll, amelyek egy 104 tűs buszrendszerrel csatlakoznak egymáshoz. (Külön lapokon foglalhat helyet a CPU, háttértároló, tápegység, PCMCIA csatoló, stb.) A PC104 előnye, hogy nincs szükség alaplapra, kis helyen elfér, és áramigénye megfelel a beágyazott rendszerek követelményeinek. Emellett működésében teljes mértékben megfelel a már ismert asztali PC-knek, azaz tetszőleges operációs rendszert lehet futtatni rajta (PC architektúra). Alkalmazási területe széleskörű (műholdak, rakéták, vezérlő berendezések, mérő eszközök, stb.) [http://www.pc104.com/]
A klaszter PC/104-es gépei 100MHz-es processzorral es 64 MByte RAM-mal rendelkeznek, amelyek feladata az adatgyűjtés. Az adatokat egy erre a célra szolgáló feltét nyújtja, amelyeket DMA-val juttatja az adatgyűjtő memóriájába. Az adatokat egy nagy áteresztőképességű switch-en keresztül a feldolgozó szerverhez küldik, amelyhez 100 Mbit/sec.-os sebességgel csatlakoznak. A server/master egy dual Xeon 2.4 GHz-es processzorokkal, 1 Gb RAM-mal rendelkezik, amely a switch-hez Gigabites porton (vagy portokon) csatlakozik (dual/quad Gigabit Ethernet kártya). Az adatgyűjtők és a szerver között hálózati kapcsolatot biztosító switch 2 * 1 Gigabit-es, és 24 * 10/100 Mbit/sec. porttal rendelkezik. 1. client 10/100 Mbit/sec. 2. client 10/100 Mbit/sec. s w i t c h Gigabit Ethernet server / MASTER N. client 10/100 Mbit/sec. Szoftver A klaszter minden résztvevője (mind a server/master, mind az adatgyűjtő kliensek) hálózatról boot-olnak (DHCP/TFTP), innen töltik le a Linux kernelt (2.4.22-es verzió). Operációs rendszerük Debian Linux, amelyet hálózatról (nfsroot) futtatnak. Az adatgyűjtést saját fejlesztésű eljáráskönyvtárrakkal és
alkalmazásokkal valósítottuk meg. A hálózati kommunikáció a szerver és a PC/104-ek között MPI segítségével történik. Adatgyűjtési modellek Az adatoknak a detektoroktól a szerverekig való eljutásának több módja lehetséges. A különböző modellek különböző átviteli (alkalmazás szintű) protokolt igényelnek. Az adatgyűjtés folyamatát időszeletekre bontjuk, amelyet a továbbiakban oszthatatlannak tekintünk. Egy másodperc alatt egy detektortól sok (~ 1.000.000) elemi esemény érkezik. Egy elemi eseménynek tekintünk egy foton egy detektorba való beérkezését amennyiben a foton energiája egy, a gyüjtés szempontjából optimális energiaszint feletti. Az esemény a továbbiakban egy rögzített szerkezetű és méretű bájt sorozat, amely hely, energia és idő paramétereket tartalmaz. Egy detektor által elküldött esemény tipusait a következő módon jellemezhetjük meg: Event On The Fly: a szerverekhez beérkező események önmagukban hordoznak minden, a feldolgozásához szükséges információt: keletkezésének időbélyegét, melyik detektortól mely mátrixpozíciójából érkezett, milyen energiájú. Source Identified: a szerverekhez beérkező események itt is önmagukban hordoznak minden szükséges információt, de nem tartalmazzák a detektor azonosítóját. Mindkét módszernek létezik egy kompakt változata, ahol eseménycsomagról beszélünk. Egy ilyen csomag több eseményt tartalmaz a következő képpen: a csomag elején található egy abszolút idő (időbélyeg), és a csomagok már csak ezen időhöz viszonyított relatív időbélyeget tartalmaznak.
Mérések A klaszter hálózati infrastruktúrája, topológiája meghatározó az adatgyűjtés módjában és sebességében. Ugyanakkor meghatározó a gyűjtő csomópontok sebessége: egyszerre kell gyűjteni az adatokat és továbbítani azokat a szerverek felé. A PC/104-es gépek 10/100 Mbit/sec. sebességű Ethernet kártyával rendelkeznek, amelyből mindössze 25-30 Mbit/sec.-ot képesek kihasználni úgy, hogy nincs adatgyűjtés, a processzor 100Mhz-es sebessége miatt. A gyűjtés sebessége változhat, ha nem PC/104-et használunk adatgyűjtésre, hanem megfelelő intelligenciával rendelkező célhardvert. Ekkor viszont a gyűjtő kliensek és a szerverek közötti kommunikáció nem MPI alapú lesz, hanem saját hálózati kommunikációs megoldást kell kifejleszteni. Az infrastruktúra kialakításánál a következő paramétereket vettük figyelembe: detektorok (kliensek) száma, egy detektor által időegység alatt érzékelt események, szerverek száma, szerver sávszélessége, gyűjtés ideje, előfeldolgozó algoritmus ideje, elemi esemény mérete. Szimuláció A folyamatot saját fejlesztésű eljáráskönyvtárakkal és a rájuk épülő programokkal szimuláljuk. A kliensek egy, a fizikai folyamathoz illeszkedő véletlenszerű eseménysorozatot küldenek a szervernek, amely az egy időszelet alatt minden detektortól összegyűjtött eseményhalmazban topológiai és időbeli relációt keres, kinyerve így a hasznos esemény-párokat. A master gép ezeket kapja meg, amely aztán feldolgozza, kiértékeli ezeket (szinogram készítés, megjelenítés, stb.).
A szimuláció során a kliensek és a szerverek, és a serverek és a master gép között a kommunikáció MPI segítségével történik. 3. Eredmények Az ismertetett konkrét modellt a következő eszközökkel valósítottuk meg: 4 detektor (kliens), 1 server/master gép, 1 switch (24 * 10/100 Mbit/sec, 2 * 1 Gbit/sec), 10/100 Mbit/sec. a kliensek és a switch között, 2 * 1 Gbit/sec. a szerver és a switch között. Egy detektor másodperceként 1.000.000 eseményt érzékel és egy esemény 8 byte méretű. Az időegység 0,01 másodperc. Ezen paramétereket rögzítettnek tekintve a konkrét modell implementációira a következő táblázat adható meg (az erdemények csak az adatgyűjtésre vonatkoznak: hány szerverre, mennyi és mekkora méretű pufferra van szükségünk adott kliensszám, hálózati sávszélesség és gyűjtési idő mellett): Detektorok (kliensek) Szerver sávszélesség Időegységnyi adatmennyiség Szerverhez küldés Pufferek száma Pufferméret a kliensen Szerverek száma száma (Mbyte/sec.) (Mbyte) ideje (sec.) a kliensen (Mbyte) 4 8 0,320 0,040 5 0,100 2 4 30 0,320 0,011 2 0,160 1 4 50 0,320 0,006 2 0,160 1 4 100 0,320 0,003 1 0,080 1 A leírt eredmények közelítő becslések.
4. Köszönetnyilvánítás A projekt az IKTA 153/2003, IKTA-00006/2001, OTKA-034910 és NKFP- 1/A/0010/2002 pályázatok segítségével készült. 5. Irodalomjegyzék H. Zaidi: Scatter modeling and correction strategies in fully 3D PET. Nucl. Med. Communications, 2001,22,1181-1184 Y. Ma, C.A. Evans: Analytical Modeling of PET Imaging with Correlated 2444,1997 J. Bruck, D. Dolev, Ching-Tien Ho, M. Catalin, Rosu, R. Strong: Efficient Message Passing Interface (MPI) for Parallel Cosmputing on Clusters of Workstations, ISBN: 0-89791-717-0, 64-73, 1995 Linux http://www.linux.org Debian Linux http://www.debian.org Diskless kliens Functional and Structural Images. IEEE Trans. Nucl. Sci. Vol.44,NO.6,2439- http://www.ibiblio.org/pub/linux/docs/howto/diskless-root-nfsother-howto Message Passing Interface (MPI) Standard http://www-unix.mcs.anl.gov/mpi/ PC/104 technology http://www.pc104.com/