A ARC új á ió b ókAz ARC új generációs bróker rendszerenws.niif.hu/ncd2009/docs/phu/012.pdfA...
Transcript of A ARC új á ió b ókAz ARC új generációs bróker rendszerenws.niif.hu/ncd2009/docs/phu/012.pdfA...
A ARC új á ió b ókAz ARC új generációs bróker rendszererendszere
Rőczei Gábor2009 04 16 Rőczei Gá[email protected], Networkshop 2009
2009.04.16.
Nemzeti Információs Infrastruktúra Fejlesztési IntézetRövid összefoglaló
• KnowARC projekt• Mi is a bróker, miért van rá szükség?!• ARC bróker • Bróker modulok
R d B kRandomBrokerFastestCPUBrokerFastestQueueBrokerDataBroker
• Saját bróker modul fejlesztése: C++, Python nyelveken
Az ARC új generációs bróker rendszere2. oldal
Nemzeti Információs Infrastruktúra Fejlesztési IntézetKnowARC projekt
• 2006-ban indult• Kiemelt Európai Uniós projekt• NorduGrid köztesrétege: Advanced Resource Connector
(ARC)• Web service technológia alkalmazása• Web service technológia alkalmazása• Gridek közti együtműködés: Unicore, gLite, ARC• Szabványok használata (JSDL, OGSA BES, GLUE2, stb.)y ( , , , )
Az ARC új generációs bróker rendszere3. oldal
Nemzeti Információs Infrastruktúra Fejlesztési IntézetMiért van szükség brókerre?
• A felhasználó szeretné olyan gépen futtatni a programját, ami minden tekintetben megfelelő számára: memória, h l t ül t f tt tá i kö t tbhelyterület, futtatási környezet, stb.
• Intelligens döntés hozás valamilyen algoritmus alapján
Az ARC új generációs bróker rendszere4. oldal
Nemzeti Információs Infrastruktúra Fejlesztési IntézetARC bróker áttekintése (2/1.)
• Az ARC bróker a kliens oldalon helyezkedik el • Kihasználja az ARC kliens könyvtár által adott j y
eszközöket• Köztesréteg független brókerezés: ARC, gLite,
U iUnicore• Betölthető modul• Kiegészítő modul is fejleszthető hozzá• Kiegészítő modul is fejleszthető hozzá• Az broker mag végzi a felhasználó programja
által igényelt és a rendelkezésre álló erőforrások által igényelt és a rendelkezésre álló erőforrások összehasonlítását
• A bróker kiegészítő modulok már csak a kapott li t d é ét é ik l il l it lista rendezését végzik valamilyen algoritmus szerint (pl. futás idejű adatok)
Az ARC új generációs bróker rendszere5. oldal
Nemzeti Információs Infrastruktúra Fejlesztési IntézetARC bróker áttekintése (2/2.)
Feladat leírás
Bróker MegfelelőSzámítási Rendezésmag Megfelelőerőforrásokerőforrások
listája
Rendezés
FeladatFeladatküldő
Az ARC új generációs bróker rendszere6. oldal
Nemzeti Információs Infrastruktúra Fejlesztési IntézetBelső reprezentációk
• ExecutionTarget (GLUE2)• JobInnerRepresentation (GIN/PGI JSDL)
U i ARC JDL xRSL JSDLgLite Unicore ARC JDL xRSL JS
ExecutionTarget JobInnerRepresentationExecutionTarget JobInnerRepresentation
ApplicationEnvironment RuntimeEnvironment
MinCPUTime, MaxCPUTime TotalCPUTime
Az ARC új generációs bróker rendszere7. oldal
Nemzeti Információs Infrastruktúra Fejlesztési IntézetBroker modulok - RandomBroker
• Véletlenszerű sorrendet csinál
Előtte: A, B, C, DElőtte: A, B, C, D
Utána: C, A, D, B
Az ARC új generációs bróker rendszere8. oldal
Nemzeti Információs Infrastruktúra Fejlesztési IntézetBroker modulok - FastestCPUBroker
• CPU sebességnek megfelelően rendez• Integer Component of SPEC CPU2000 (CINT2000)
Működési elv:
• Első lépésként eltávolítja azokat a klasztereket, amelyek nem publikálják a a specint2000-es benchmark értéketp j p
• Olyan rendezést végez, hogy a lista elején lesz a legnagyobb benchmark értékű és a végén a legkisebb
Az ARC új generációs bróker rendszere9. oldal
Nemzeti Információs Infrastruktúra Fejlesztési IntézetBroker modulok - FastestQueueBroker
• A várakozó sorok hossza szerint végzi el a rendezéstMűködési elve:• Első lépésként eltávolítja azokat a, amelyek nem publikálják a
TotalSlots, FreeSlots, WaitingJobs értékeket• A lista elejére az fog kerülni ahol a WaitingJobs/TotalJobs érték a• A lista elejére az fog kerülni, ahol a WaitingJobs/TotalJobs érték a
legkisebb, minél nagyobb, annál hátrébb fog kerülni• Terhelés elosztás több üres várakozó sor esetén: FreeSlots értéket
illetve a véletlenszám generátort használjuk fel. • Például:
A WaitingJobs = 0 és B WaitingJobs = 0A.WaitingJobs = 0 és B.WaitingJobs = 0A.FreeSlots = 90 és B.FreeSlots= 10„A” várakozó sor lesz a nyertes, 90% eséllyel„ y , y
Az ARC új generációs bróker rendszere10. oldal
Nemzeti Információs Infrastruktúra Fejlesztési IntézetBróker modulok – DataBroker 2/1.
• Adat központú döntés (bemeneti fájlok)• A-REX szolgáltatás (számítási erőforrás)• CacheCheck interfész
A-REXA-REX
CacheCheck
interfészek
DataBrokerA-REX
A-REXnn.
1. 2. … n.
Az ARC új generációs bróker rendszere11. oldal
Nemzeti Információs Infrastruktúra Fejlesztési IntézetBroker modulok – DataBroker 2/2.
Működési elv:• A-REX-es várakozó soron kívül minden más eltávolításra
kerül• Ahonnan nem sikerül lekérdezni, ott nulla értéket kapunk
visszavissza• A lista elejére az kerül, amelyik legtöbb adattal rendelkezik.
Például:alma.png (3300 byte), korte.gif (400 byte)
A-REX1: alma.png, korte.gifA-REX2: korte gif A REX2: korte.gif
Az ARC új generációs bróker rendszere12. oldal
Nemzeti Információs Infrastruktúra Fejlesztési Intézetarcsub – kliens program
• Ennek a segitségével lehet jobot küdeni
arcsub –b FastestCPUBroker job.xrsl
• Alap beállitás: RandomBroker• Alap beállitás: RandomBroker
arcsub job.xrsl
Az ARC új generációs bróker rendszere13. oldal
Nemzeti Információs Infrastruktúra Fejlesztési IntézetSaját bróker modul C++ nyelven
• Broker ősosztályból kell leszármazatniS tT t fü é i l tálá• SortTargets függvény implementálása
• Modul leiró fájl létrehozása (ARC plugin descriptor)
Fordítás:
g++ -I /usr/local/include -L /usr/local/lib `pkg-config --cflags glibmm-2.4 libxml-2.0` -o libaccnewbroker.so -shared NewBroker.cpp
Használat:
arcsub -b NewBroker ~/simplejob.jsdl
Az ARC új generációs bróker rendszere14. oldal
Nemzeti Információs Infrastruktúra Fejlesztési IntézetSaját bróker modul Python nyelven
• PythonBroker • Ezeket az adatokat lehet elérni:
Kliens konfiguráció (pl. tanusítvány elérési útvonala, bróker paraméterek)Job leírásLehetséges erőforrások, ami rendezést lehet végezni
• Két darab python függvényt kell implementálni:def init (self cfg)def __init__(self, cfg)def SortTargets(self, PossibleTargets, job)
Használat:
arcsub –b PythonBroker:SampleBroker MyBrokerarcsub b PythonBroker:SampleBroker.MyBrokerarcsub –b PythonBroker:SampleBroker.MyBroker:10
Az ARC új generációs bróker rendszere15. oldal
Nemzeti Információs Infrastruktúra Fejlesztési IntézetHasznos linkek
http://svn.nordugrid.orghttp://www knowarc euhttp://www.knowarc.euhttp://www.nordugrid.org
Az ARC új generációs bróker rendszere16. oldal
Köszönöm a figyelmet!gy
Rőczei Gá[email protected]