Az ARC új generációs erőforrás bróker rendszere

Rőczei Gábor <>
NIIF Intézet

A KnowARC projekt keretein belül kifejlesztettünk egy olyan bróker megoldást, ami képes több grid köztesréteg felé számítási jobokat szétosztani. Az egész rendszer egy olyan működési környezetre épül, ami röviden összefoglalva a következő főbb jellemzőkkel rendelkezik:


Jelenleg három köztesrétegnek tud jobokat küldeni a bróker: ARC0, ARC1, gLite. Olyan módon van megtervezve, hogy könnyedén bővíteni lehet más köztesréteggel, csupán a szükséges C++ osztályokat kell implementálni.

Maga a bróker rendszer több különböző libarcclient-es modullal áll kapcsolatban, amik közül a legfontosabbak a következők: TargetGenerator, TargetRetriever, ExecutionTarget, JobDescription, Submitter. A TargetRetriever az információs rendszernek, a TargetGenerator a számítási erőforrásnak, az ExecutionTarget egy várakozó sornak (queue-nak) feleltethető meg, a Submitter végzi a köztesréteg specifikus job küldést. Minden egyes köztesréteghez tartozik egy-egy ilyen komponens. A JobDescription osztály feladata egy jobleiró konvertálása egy másik jobleíróra, például ha Job Submision Description Language (JSDL) jobunk van és gLite-os köztesrétegnek szeretnénk küldeni akkor a JSDL-t Job Description Language-re (JDL) kell konvertálnunk. A JobDescription osztály jelenleg ezeket a jobleirókat támogatja: JSDL POSIX, JDL, xRSL, és egy új, még nem szabványosított JSDL formátumot, amivel az OGF PGI munkacsoportja foglalkozik.

Röviden ismertetni fogom, hogy a bróker fejlesztésekor milyen problémákat kellett megoldanunk, milyen részekből áll és ezek milyen feladatot látnak el.

Jelenleg ezeket a brókerek készültek el: FastestQueueBroker (abba a várakozó sorba fogja küldeni a jobunkat ahol a leghamarabb elindulhat), RandomBroker (véletlenszerűen választ egyet), FastestCPUBroker (Integer Component of SPEC CPU2006 benchmark szerinti leggyorsabb klasztert részesíti előnyben), DataBroker (azt fogja választani, ahol a legtöbb input adat megtalálható a cache-ben).

Röviden beszélni fogok arról, hogy hogyan lehet saját rendezési algoritmust használó brókert készíteni C++ és Python nyelveken.