Nagyléptékű tudományos adat haladó feldolgozása
Papp István Babes-Bolyai Egyetem Fizika kar
Témavezető Lázár Zsolt József Elméleti és Számítógépes Fizika Tanszék Fizika kar Babes-Bolyai Egyetem
1. Bevezetés Kísérleti adatok struktúrája lehet egyszerű, mint például az elektrofiziológiában, ahol a feldolgozás bemeneti adatai egy mátrixba foglalhatóak. Minden csatornának (elektróda) egy oszlop és minden beolvasásnak (időlépés) egy sor felel meg. Az oszlopok száma tízes nagyságrendű, míg a sorok száma a több milliót is elérheti. Vannak azonban szélsőséges esetek is, amikor az adat sokkal bonyolultabb, mint például egy bank esetében, ahol az adatstruktúrának tartalmaznia kell az ügyfeleket,
díjakat, szolgáltatásokat, ügyleteket,
stb. A világhálón a linkek adatstruktúrája
közepes összetettségűnek mondható, mert az kapcsolatok természete mindenhol ugyanaz. Az adatokra ezentúl úgy tekintünk mint egy objektum hálóra, mely általános esetben gráfként modellezhető. A faszerkezet egy emberközelibb modell, ezért használt olyan esetekben is, amikor a kapcsolatgráf nem tiszta fa. Erre példa a szimbólikus linkeket is tartalmazó állományrendszer. Egy harmadik modellezési lehetőség a csatolt táblák relációs modellje, mely talán a legszámitogépközelibb az összes közül. Az, hogy a gráf modell pontos, a hierarhikus emberközeli míg a relációs modell számítógép közeli nem általános érvényű szabály. Függ az éppen tanulmányozott konkrét adat szerkezetétől, hogy a modellek ezen tulajdonságai mennyire nyilvánvalóak. Ha az obiektumok közti kapcsolatokat az obiektumok adattípusa szabja meg, egy sor érdekes probléma merül fel. A típus alatt olyan statikus információt értünk, amely kötődik az objektumhoz, és jelentősen meghatározza az objektumok közti bármely létező kapcsolatot. Például egy bankban az obiektumok osztályokba vannak csoportositva (ügyfelek, ügyletek, stb.), és bonyolult
információs
rendszer
szükséges
kezelésükhöz. Az
táblázatként
modellezhető
elektrofiziológiai adatok kezelő alkalmazás, vagy a weboldalak kapcsolatrendszerét feltérképező robotok sokkal egyszerűbb szoftverek. Tanulmányunk az adattípus által meghatározott faszerkezetű obiektum-kapcsolatokra
vonatkozik.
Mindezt
egy
konkrét
problémakör
keretén
belül
tanulmányozzuk. A magasenergiás részecskefizikában végzett kísérletek során termelt adatok és azok
hátterében
levő
elméleti
modellek
jó
példát
szolgáltatnak
nagy
összetettségű
adatszerkezetekre. Ugyanakkor a felmerülő feladatokra konkrétn igények alapján lettek megfogalmazva. Céljaink a következők: 1. Vizuálisan reprezentálni az adatokat típusuk faszerkezete szerint, és nem a konkrét objektum kapcsolatrendszer szerint. 2. Előző ábrázolás keretein belül vezessünk be egy olyan leírási módot mely segítségével egyértelműen meghatározható a teljes adathalmaz egy alhalmaza. 3. Fordítsuk át a faszerkezetet egy egyenértékű relációs modellbe (táblázatba). 4. Írjuk le annak a szoftvernek a magasszintű tervét mely a fenti feladatokat el tudja végezni. 5. Készítsünk egy prototípust a terv alapján.
2. Alkalmazási terület: részecskefizika
2.1 CERN A World Wide Web születési helye, Svájc és Francia ország határán helyezkedik el, Genf északnyugati külvárosában a világ legnagyobb részecske-fizika laboratóriumában,
CERN-ben
(Conseil Européen pour la Recherche Nucléaire). Az ott épülő részecskegyorsító körgyűrűjének sugara 4 kilométer, és 100 méterrel a föld alatt húzódik. 2600 munkás, 7931 tudós és mérnök dolgozik rajta a nap minden percében. 80 nemzet 500 egyetemének kutatói tervezik és építik a körgyűrűt (LHC) és az azon elhelyezkedő négy fő detektort
(CMS,
LHCb,
ATLAS,
ALICE),
melyekkel részecske ütközéseket vizsgálnak már az idéntől. CERN teljes költségvetése az LHC és a négy fő kísérletre 50 milliárd euró. Nagy energiájú ütközések: jelenünk egyik legnagyobb kihívása az anyag összetevő elemi részeinek a felfedezése és tanulmányozása, a részecskék
közötti
kölcsönhatások
és
a
Világegyetemre való kihatásuk tanulmányozása. A gyorsító működésének megkezdésével új részecskék felfedezése várható,
valamint szerepet játszhat a kozmológia előrehaladásában, a
kvantumtérelméletek megerősitésében például a Higgs-bozon felfedezése, melyet a mellékelt ábrán látható CMS-től várnak. Fejlemény várható még olyan területen is, amely még csak elmélet formájában létezik: a húrelmélet, melyre kísérleti bizonyítékokkal még nem rendelkezünk. A gyorsító beindítását követő néhány évben több Nobel-díj CERNbeli kutatásokra való kiosztását várja a fizikusi közösség.
2.2 LHCb
A Világegyetem keletkezésére vonatkozó elméletek szempontjából is fontos a gyorsitó eredményessége, az LHCb (Large Hadron Collider beauty) kisérlet célja, hogy megmérje a szimmetriasértést a b-kvarkot tartalmazó hadronok kölcsönhatásánál. Ezzel megmagyarázható lenne az, hogy miért nem semmisitette meg egymást az antianyag és az anyag az ősrobbanást követően. Az LHCb segíthet meghatározni az anyag uralmát az antianyag fölött, és feltérképezni a protonok szerkezetét. A munka menete egy kísérletben a szimulált adatokkal kezdődik, majd az események reprodukciója következik, begyűjtik a mért adatokat és elemzik őket. Az adatok fa szerkezet formájában tárolódnak, amelyek tartalmazzák az eseményeket valamint a részecskék és a vertexek közötti kapcsolatokat, ezeket mind a szoftverek készitik el. Az LHCb-ben egyetlen ütközési esemény kb. 300KB-nyi adatot eredményez. Ahhoz, hogy minden terv megvalósuljon, és azon túl tovább is fejlődjön több éven keresztül
sok
feldolgozására
petabyte-nyi van
szükség,
adat ezt
a
nagymennyiségű adatsorozatot lehetetlen lenne szoftverek nélkül feldolgozni. Erre a célra olyan szoftver kell, amely mind a mellett, hogy tartalmazza egy detektor szerkezeti
és
formai
részleteit
a
részecskék fizikai tulajdonságait is lefedi. Az ilyen szoftver élettartama 10-20 év között kell mozogjon, vagyis könnyen fenntartható és bővithető kell legyen. Ezekre a követelményekre az alkotóelem technológia az ideális jelölt. A rendszer alapja egy olyan keret, amely
a
kibővithetőségre
optimalizált,
és C++ban végrehajtott (implementált), miközben
rendelkezik olyan sajátságokkal, amelyek a kísérleti részecskefizikára jellemzőek, ez a keret a Gaudi. A probléma egyik kiemelkedő tulajdonsága az, hogy független az ütközési eseményektől, ezért globális elemzés csak a statisztikák szintjén történik. A Gaudi felületen négy alkalmazás fut: a generált események szimulátora (Gauss); a detektor elemek által kibocsátott digitális jelek szimulátora válasz ként a szimulált eseményekre (Boole); a digitális jelekből érzékelt részecskék rekonstruálása, vagy a Boole által visszatéritett értékekből származó részecskék rekonstruálása szimuláció esetén; végül adatelemzés (DaVinci). Ezek az alkalmazások három részből tevődnek össze: algoritmusokból, eszközökből, szolgáltatásokból. Elegendő jelen esetben az algoritmusokkal foglalkozni. Az elemzés egy sorozat algoritmusnak a lefutásából all minden eseményt tekintve, melyek a DST-ből lettek kiolvasva. Mind a szimulált, mind a rekonstruált részecskék és tetőpontok
egy objektum fába helyeződnek el a referenciéjuk szerint összekapcsolva. A kimeneti adatok három féle rendeltetési helyre kerülhetnek: adat fájlba speciális táblázat formájába (ntuple) vagy ROOT grafikon (histogram) formájában, új DST-be vagy úgy nevezett microDST-be, vagy megmaradhat a memoriában az ideiglenes esemény tárolóban újrahasznositás céljából a következő algoritmus által. A ROOT egy haladó alkalmazás adatok elemzésére, egy általános objektum orientált keret ellátva a Clint felülettel lehetővé téve az interaktiv programozást C++ szintaxist használva. Alapvető eszköz a részecske és nehéz-ion fizikában, mivel elsődleges használata a statisztikai elemzésekben van (A ROOT nem tartalmaz speciális LHCb szoftver elemeket). A microDST nem más mint egy DST csökkentett adatmennyiséggel egy adott elemzésre jellemzően, de újra hasznositható a Gaudi keretén belül például a DaVinciben későbbi analizishez. Egy doktorandusnak 6-12 hónap szükséges, ahhoz hogy biztonsággal és eredményt is produkálva használni tudja a rendszert, attól függően, hogy mennyire jártas a számitástechnikában, illetve a csoportjában meglévő technikai háttértől. Még ezen időszak elteltével is rendszeresen bekövetkezhetnek olyan problémák, amelyeket nem fog tudni megoldani. Annak érdekében, hogy javitsanak a külső megjelenésen egy Python felületet készitettek amit GaudiPythonnak neveztek el, és erre egy újabb réteg az analizishez a Bender. Ezek is csak korlátozott interakciót kináltak. Az LHCb szoftvert, amelynek mérete megközelitőleg 2GB, alapja a C++ és Python felület kapcsolódik rá. (A Python egy könnyen tanulható, sokoldalú programozási nyelv. Jól használhatő magas szintű adatstruktúrákkal rendelkezik, és egyszerű – ugyanakkor eredményes az objektumorientált programozás nyelvi megvalósítása. A Python nyelvtana elegáns, a nyelv dinamikusan tipusos. Parancsértemlező jellegű nyelv, mely a byte-forditást is támogatja (mint pl. a Java), ideális szkriptek készitésére, továbbá nagyon gyors alkalmazásfejlesztést tesz lehetővé több platfromon, szerteágazó területeken). Két nagyenergiájú proton ütkozése akár 1000 részecske keletkezését is eredményezheti, az LHCb szoftver képes az események szimulálására és analizálására. Az LHCb szoftver keretrendszere legelőször annál a detektornál tűnt hasznosnak amelyről a nevét is kapta, az összes alkalmazás ebbe a keretrendszerbe van öszpontositva ez a Gaudi, mely hálózaton keresztül működik, funkciói közé tartozik az adatok betöltése, algoritmusok futtatása konfigurálása, adatok lementése és ideiglenes tárolása is. A felhasználó szemszögéből egy gyűjtemény C++ osztálynak vagy függvénynek tűnhet, amelyen keresztül külső eszköztárakat érhet el. A Gaudi előnyét nem bizonyitja jobban más mint az, hogy más kisérletekhez, detektorokhoz és Európán kivül is alkalmazzák. A szerkezetet, amit a CERN-iek használnak a részecskefizika adataihoz a DST (Data Summary Tape), mi csak faként emlegetjük, információkat tartalmaz olyan objektumokról, amelyek kölcsönösen utalnak egymásra. Az analizis során ezt a formát könnyen kezelhető és reprezentálható táblázattá alakitjuk (ezeket ntuple-okak nevezzük).
2.3 Feicim A „Feicim” egy kezdeményezés a Dublin-i fizika egyetem részecskefizikus csoportjától, amelyhez a Babeş-Bolyai Tudomány Egyetem fizika szakos diákjai is csatlakoztak. Az alkalmazás egy réteg a GaudiPython és a Bender tetejére, mely az intuitiv grafikus felülete mellett biztositja, hogy az adatelemzés újra fizikus probléma legyen ne pedig technikai a C++ sablonok és szövegkönyvek árnyékában. A Feicim két fő részből áll, az egyik adatokat kutat fel, a másik pedig összegyűjti az algoritmusokat egy vizuális programozáshoz. Az első prototipus bemutatása CERN-ben egy nemzetközi konferencián került sor, ahol felkeltette az érdeklődést. A Feicim jellegzetességei: navigálás a helyi fájl rendszerben, navigálás a CERN-i adat fájlrendszeren, navigálás a DST fa szerkezetében, csomópontok bejelölése a fában kiválasztásra, az eredmény előterjesztése ROOT táblázat formájában, grafikon kimutatása bármely oszlopra a táblázatból és a táblázat lementése ROOT formátumban. Egyike a legérdekesebb problémaknak, nem csak elméleti szempontból, hanem az alkalmazás szempontjából is, a vizuális nyelv leforditása struktúrált nyelvvé.
3. Adat modellezés és szűrés Objektum orientált programozásra fektetve a hangsúlyt, hasznos, ha a szoftver objektumaiban követjük a tipusok összetételét. Annak érdekében, hogy végig tudjuk járni a fának minden csomópontját szülő-gyerek kapcsolatok értelmezésére van szükség úgy, hogy a szülő visszatéritse a gyerekét. Ennek az eljárásnak szüksége van legalább egy argumentumra, amely azonositja a gyereket. Egy nem tiszta fa esetében szükség van a forditott mutatásra is, a gyerek is utal a szülőre argumentum nélkül, míg ha tiszta fáról van
szó,
akkor
ez
a
követelmény
elhanyagolható, ellenkező esetben, ha mégis létezik az eljárás nem követel paramétert. A testvérekről feltételezhető, hogy egy azon tipusba tartoznak. Objektumok elérése A gyökéren kívül minden objektum elérhető a szülője valamelyik tagjának a segitségével. Az egyszerűség
kedvéért
feltételezzük,
hogy
hivhatatlan tagok a „get” eljárások („hiv” függvény) paraméter nélkül. Ahhoz, hogy könnyebben érjük el akármelyik csomópontot a fából szükségünk van egy tulajdnoság ismertetésére. A tulajdonságok függvények, melyek kulcs-érték párokat határoznak meg, ahol az objektum maga része a kulcsnak. Az értékek pedig vagy adottak, vagy a tárolt információból lett létrehozva az objektumon belül, és lehetnek kötöttek az onjektumhoz mint például egy részecske momentumja, vagy magukra létezhetnek mint egy részecske tetőpontja (vertex). Relációs modell Két csomópont közti kapcsolatának megértése és az adat kezelése végett nem elég csak az összetett illetve az egyszerű atributumokat vizsgálni. Egy objektum a szülő csomópontjából mutathat egy lista objektumra több gyerek csomópontjából 1-n vagy n-m módon. Hasonlóképpen forditva, ha a gyerek egyszerű a kapcsolata a szülővel lehet 1-1 vagy n-1 függetlenül a szülő sokszerűségétől. Éppen ezért nem elég, ha egy csomópontot egyszerű vagy összetett atribútummal jellemzünk, meg kell jelölnünk a kapcsolat tipusát is: 1-1, n-1, 1-n vagy n-m típusú. Az 1-1 típusú kapcsolatok megengednek némi egyszerűsitést a modellben. Ha a gyerek nem tartalmaz leveleket, a csomópont egészen kiküszöbölhető, és a szülő egyből az unokákkal kapcsolható össze. Linkek, kapcsok A fa nem tiszta karakterisztikájának köszönhetően az objektumok egyes osztályai több helyről is elérhetők. Ennek értelmében megkülönböztetjük az objektumok helyét az objektum linkjétől (kapcsától) arra a helyre. Az utóbbi párositja a forrás csomópont útvonalát a cél útvonalával. Ezek a linkek úgy viselkednek mint Unix fájlrendszerében vagy ahhoz hasonló fájlrendszerek esetében a szimbolikus linkek. Az ábrán látható néhány linkelésre példa. El jutottunk arra a szintre, hogy megmutassuk az adataink szerkezetét. Adatszűrés Alkalmazva az atributumokat az egész adatot át lehet alakitani táblázattá, és le lehet kérdezni SQLben. Azzal, hogy a kapcsolatokat az emlitett módon kezeljük két dolgot is elérhetünk: az adatok szerkezetét táblázatba ntuple-be, vagy ugyanazzal a kiválasztási módszerrel részfába alakithatjuk. Az adatbázis megalkotásához a leggyorsabb módszer, ha egy táblázatot társitunk külon a csomópontoknak, és külön feltérképező táblázatot az összeköttetéseknek azaz a direkt szülő-gyerek kapcsolatoknak vagy linknek egy távoli csomóponthoz. Két kivétel van: azok a levelek amelyek skalár mennyiségek, ezek egy oszlopba kerülnek a szüleikkel; és azok amelyek linkek, a leképező táblázatba kerülnek. A táblázat működése a felhasználó szemszögéből egyszerűen történik. Attól függően, hogy az óhajtott adat kimenete táblázat formájában, vagy fa formában történik az adatot
egyszer vagy kétszer kell beolvasni annak megfelelően. Először megkapja az úgynevezett metaadatot, az adatok struktúrájának a leirását, ahol kiválasztja a leveleket, amelyeket meg akar tartani a későbbi szűrésen. A folyamat végén az adat beovasására kerül sor, és átalakul a belső kapcsolati formába, így a felhasználó képes lesz a táblázaton belül is választani, ha megadja a szűrési kritériumokat. Az elkészült táblázatot tetszés szerint elmentheti táblázat formába, vagy visszaalakithatja objektum részfába.
4. Következtetés, kitekintés A prototipussal megmutattuk a CERN-ieknek, hogy a fizikusok munkája így is lehetséges lenne, vagyis grafikus felületen való keresgéléssel. A demo azonban csak arra szolgált, hogy bemutassunk egy lehetőséget, rugalmasság még nem volt benne csak a Gaudi oktató oldalak alapján egy felület amelyet mi kapcsoltunk rá. A Gaudi-Pythonra több felületet is kapcsoltunk: egy Python felület, amely táblázattá alakitotta a fát (és rugalmasság hiján mi adtuk meg a fát), a Pythonra épült a JPype, utóbbi szintén egy olyan felület, ami összekapcsolja a Pythont a Java-val, hogy végül rátehessük a Java-ban megirt grafikus részt.