1. Paraméterelemző feladatok a gyakorlatban

Hasonló dokumentumok
alkalmazásfejlesztő környezete

Saleve: párhuzamos grid-alkalmazások fejlesztôeszköze

Enabling Grids for E-sciencE. Grid bevezető INFSO-RI

GRID AZ OKTATÁSBAN. Kápolnai Richárd, Németh Dénes, Dr. Szeberényi Imre,

HunGrid Grid technológiák hozzáférési lehetőségei az intézetben

Példa: LHC, CERN, Genf Enabling Grids for E-sciencE

A JGrid rendszer biztonsági architektúrája. Magyaródi Márk Juhász Zoltán Veszprémi Egyetem

Worldwide LHC Computing Grid

Rőczei Gábor Szeged, Networkshop

Biztonság a glite-ban

Grid felhasználás: alkalmazott matematika

ÁLLOMÁNYOK HATÉKONY SZINKRONIZÁLÁSA WEBSZOLGÁLTATÁSON KERESZTÜL

WEB2GRID: Desktop Grid a Web 2.0 szolgálatában

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Felhő rendszerek és felhő föderációk. Kacsuk Péter MTA SZTAKI

A felhőről általában. Kacsuk Péter MTA SZTAKI

Európai Grid infrastruktúra

EGI-InSPIRE. Café Grid március 24. Szeberényi Imre 3/25/ EGI-InSPIRE RI

Taszkok ütemezése desktop-griden

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Grid menedzsment megoldás az ARC köztesrétegben

Verifikáció és validáció Általános bevezető

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

Dr. habil. Maróti György

MTA Cloud Use cases MTA Cloud workshop. Hernáth Szabolcs MTA WIGNER FK

Kommunikáció. 3. előadás

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRNÖK INFORMATIKUS SZAK. Diplomaterv

"A tízezer mérföldes utazás is egyetlen lépéssel kezdődik."

Az NIIF Intézet és a ÚMFT TÁMOP programok bemutatása

API tervezése mobil környezetbe. gyakorlat

A cloud szolgáltatási modell a közigazgatásban

Kivonat. 1. Bevezetés (Mi a Grid?)

30 MB INFORMATIKAI PROJEKTELLENŐR

A KÖZÉPSZINTŰ ÉRETTSÉGI VIZSGA INFORMATIKA TÉMAKÖREI: 1. Információs társadalom

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

ÁGAZATI SZAKMAI ÉRETTSÉGI VIZSGA TÁVKÖZLÉS ISMERETEK KÖZÉPSZINTŰ GYAKORLATI VIZSGA MINTAFELADATOK

Quadkopter szimulációja LabVIEW környezetben Simulation of a Quadcopter with LabVIEW

Az azonosító számú, Internetes alkalmazásfejlesztő megnevezésű elágazás szakmai követelménymoduljainak

Számítógép architektúra

Nyilvántartási Rendszer

Kvantitatív módszerek

Új generációs informatikai és kommunikációs megoldások ANMS. távközlési hálózatok informatikai hálózatok kutatás és fejlesztés gazdaságos üzemeltetés

Programozás alapjai Bevezetés

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

ÁGAZATI SZAKMAI ÉRETTSÉGI VIZSGA TÁVKÖZLÉSI ISMERETEK KÖZÉPSZINTŰ GYAKORLATI VIZSGA MINTAFELADATOK

Szoftver technológia. Projektmenedzsment eszközök. Cserép Máté ELTE Informatikai Kar 2019.

ADATBÁZIS-KEZELÉS. Adatbázis-kezelő rendszerek

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

Miért jó nekünk kutatóknak a felhő? Kacsuk Péter MTA SZTAKI

SSL elemei. Az SSL illeszkedése az internet protokoll-architektúrájába

A fejlődés megindulása. A Z3 nevet viselő 1941-ben megépített programvezérlésű elektromechanikus gép már a 2-es számrendszert használta.

Rendszerterv. 1. Funkcionális terv Feladat leírása:

Párhuzamos és Grid rendszerek

Szuperszámítógépes teljesítmény szuperszámítógép nélkül A BinSYS Projekt

IKT trendek és tapasztalatok a BME szemszögéből

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

SZÓBELI ÉRETTSÉGI TÉMAKÖRÖK

Eddig ha játékról volt szó: PC vagy konzol Mára már elindult a cloud szolgáltatásokon keresztül játszható játékok elterjedése

10.1. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ

Projektfeladatok 2014, tavaszi félév

Internetes térkép publikálási technikák, szabványok, trendek, nyílt forráskódú megoldások

Párhuzamos és Grid rendszerek

iseries Client Access Express - Mielőtt elkezdi

Campus6 projekt megbeszélés Mohácsi János

Számítógépes döntéstámogatás. Genetikus algoritmusok

ÁRAMKÖRÖK SZIMULÁCIÓJA

K&H token tanúsítvány megújítás

Explicit hibabecslés Maxwell-egyenletek numerikus megoldásához

Folyamatok. 6. előadás

Flex: csak rugalmasan!

Crawler.NET: Komponensalapú elosztott keretrendszer a web bejárására

MIKOVINY SÁMUEL TÉRINFORMATIKAI EMLÉKVERSENY

OCSP Stapling. Az SSL kapcsolatok sebességének növelése Apache, IIS és NginX szerverek esetén 1(10)

VIRTUALIZÁCIÓ KÉSZÍTETTE: NAGY ZOLTÁN MÁRK EHA: NAZKABF.SZE I. ÉVES PROGRAMTERVEZŐ-INFORMATIKUS, BSC

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Biztonságos mobilalkalmazás-fejlesztés a gyakorlatban. A CryptTalk fejlesztése során alkalmazott módszerek. Dr. Barabás Péter Arenim Technologies

20 éve az informatikában

Informatikai projektellenőr szerepe/feladatai Informatika / Az informatika térhódítása Függőség az információtól / informatikától Információs

Bevezetés a programozásba

Szenzorhálózatok programfejlesztési kérdései. Orosz György

Szabó Zoltán PKI termékmenedzser

Kockázatalapú díjfizetés az EU-s betétbiztosítóknál - az OBA-nál várható változások

Campus6 projekt megbeszélés Mohácsi János

Mobil Peer-to-peer rendszerek

Tájékoztató. Használható segédeszköz: számológép

Az NIIF új szuperszámítógép infrastruktúrája Új lehetőségek a kutatói hálózatban

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

S01-7 Komponens alapú szoftverfejlesztés 1

VBA makrók aláírása Office 2007 esetén

Hol tartunk? Párhuzamos és Grid rendszerek. Grid koncepció. Elosztott rendszerek reneszánsza. Grid hasonlat. Klaszter

Java I. A Java programozási nyelv

egy szisztolikus példa

Logisztikai szimulációs módszerek

Összeadás BCD számokkal

FEM 2.5-D EGY GEOFIZIKAI RENDSZER MEGVALÓSÍTÁSA A GRID-

Számítógép-rendszerek fontos jellemzői (Hardver és Szoftver):

ÉLET A FELHŐBEN - HATÉKONYSÁGNÖVELÉS CLOUD TECHNOLÓGIÁVAL. Baranyi Fanni Microsoft Online Szolgáltatások Értékesítési Szakértő

TÁVKÖZLÉS ISMERETEK KÖZÉPSZINTŰ GYAKORLATI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Átírás:

A SALEVE RENDSZER Dóbé Péter, dobe@iit.bme.hu Molnár Zsolt, zsolt@zsoltmolnar.hu Dr. Szeberényi Imre, szebi@iit.bme.hu BME-IIT BME-IK Az ún. paraméterelemző feladatok olyan, a gyakorlati életben is sok helyen előforduló problémák, amelyek jellegükből adódóan nagyon egyszerűen szétoszthatók párhuzamosan végezhető részfeladatokra. Az alábbiakban bemutatunk egy szoftverfejlesztést segítő eszközt, amellyel ebbe a problémakörbe tartozó feladatot megoldó, párhuzamos számítási kapacitást is igénybevevő programok készíthetők. 1. Paraméterelemző feladatok a gyakorlatban Ha ugyanazon számítási műveletsort egy nagy paramétertartományon hajtjuk végre, paraméterelemző (parameter study, PS) feladatról beszélünk. A különböző paraméterértékekre egymástól függetlenül végezhető a művelet, melynek következményeként a tartományt kisebb résztartományokra felosztva a számítás ezeken a résztartományokon konkurrensen, akár egyidőben futhat. Így ilyen feladatok esetében az elosztott számítási erőforrásokat könnyen ki lehet használni. Számos helyen felbukkannak ilyen problémák a gyakorlatban, példaként említhetjük a részecskefizikai számításokat, ahol egy nem analitikus függvényt kell sok ezer helyen kiértékelni annak integráljának numerikus közelítéséhez. Emellett a statika, szilárdságtan témakörében is vannak példák ilyen számításokra, és sok egyéb fizikai szimuláció is ide tartozik. Ez a széles körű megjelenés indokolja egy paraméterelemző feladatokat megkönnyítő segédeszköz szükségességét. Jelenleg ha egy kutató fel akarja használni a rendelkezésére álló párhuzamos számítási kapacitást, a számítógépére sokféle szoftvereszközt kell telepítenie, valamint meg kell tanulnia különböző, egymással

inkompatibilis hosszú távú ütemezők illetve Grid köztesrétegek kezelését. A Grid fejlesztések egyelőre kezdeti stádiumban vannak, ezzel együtt a megvalósítások egységességére törekvő szabványosítások is, melyek nem a grides alkalmazás készítését segítő fejlesztői környezetre, hanem inkább a Grid komponensek közötti mélyebb szintű együttműködésre irányulnak (például webszolgáltatások). További nehézség, hogy a programozó számára elsajátítandó technológiák többnyire idegenek a széles körben használt programozási nyelvektől. 2. A Saleve használata A paraméterelemző feladatok végrehajtásának egyszerűbbé tétele a Saleve projekt [1] célja. A Saleve egy nyílt forráskódú eszközkészlet, amely egy általános, elosztott technológiáktól független módszert nyújt C vagy C++ nyelven írt, párhuzamosan futni képes programok fejlesztésére. Használata igen egyszerű, hiszen már meglévő, szekvenciálisan futó programunkat forrás szinten csak kis mértékben szükséges megváltoztatni. A módosított programkódot lefordítjuk és összeszerkesztjük a Saleve függvénykönyvtárral, így megkapjuk a Saleve kliens programot, amely többféleképpen képes futni. Tesztelési célra használhatjuk egy teljes értékű helyi lefutású programként, amely azonban, amennyiben több processzor áll rendelkezésre a futtató számítógépben, kihasználja ezt az adottságot, és szétosztja a feladatot részfeladatokra a processzorok között. Másfelől viszont a programnak rendelkezésére bocsáthatjuk egy ún. Saleve szerver elérhetőségét egy környezeti változóban megadott URL formájában. Ekkor a kliens elküldi a saját bináris kódját és a bemeneti állományokat a Saleve szervernek. Innentől kezdve a szerver gondoskodik a feladat szétosztásáról, az eredmény begyűjtéséről és visszajuttatásáról a kliensnek. A kliens ilyenkor nem végzi el az egyes résztartományokon a számításokat, hanem a szervertől várja az ezeknek megfelelő részeredményeket, amelyek segítségével előállítja a végeredményt. Amennyiben hosszú idő múlva érkeznének meg a részeredmények, a várakozó kliens programot

megállíthatjuk, és egy feladat-azonosító megadásával később, akár egy másik gépen is folytathatjuk a várakozást a kimeneti adatokra. Az, hogy a számítást végző program futhasson a távoli, idegen környezetben is, jelenleg csak úgy oldható meg, hogy a kliens programot statikusan szerkesztjük össze a Saleve könyvtárral és a számításhoz szükséges további függvénykönyvtárakkal. 1. ábra: a Saleve használatának esetei Szerver használata esetén is több lehetőség van (lásd 1. ábra). Egyrészt futhat a feladat helyben a szerver gépen, amely előnyös lehet akkor, ha ez a gép erősebb számítási erőforrásokkal (például több processzorral) bír, mint a kliens PC. Másrészt viszont, ha rendelkezésünkre áll a háttérben egy többgépes klaszter (például Condor ütemezővel), vagy hozzáférésünk van egy Grid rendszerhez, a szerver ezt is ki tudja használni, amennyiben ezek interfészéhez van szerver-oldali támogatás egy plugin formájában (lásd később). Ilyen esetben a kliens számára teljesen közönbös, hogy a háttérben milyen elosztott számítási infrastruktúra található. 3. A moduláris Saleve szerver A Saleve szerver feladata elsődlegesen a számítás és a bemenő adatok szétosztása számítási erőforrások között, valamint az elkészült részeredmények begyűjtése és egyesítése. A szerver felépítése lehetővé teszi a könnyű bővíthetőséget: ha egy új elosztott technológia használatához kívánunk támogatást nyújtani, elég egyszerűen egy

plugin-t készítenünk. A plugin fejlesztése annyiból áll, hogy néhány függvényt kell megvalósítani C++ nyelven: ezek a függvények a feladat beküldését és futási állapotuk ellenőrzését végzik. Az alapszerverben a helyi végrehajtás mellett támogatott a Condor [2], amely nagyteljesítményű számítások céljára egy igen elterjedt hosszútávú ütemező. Fejlesztés alatt áll ezen kívül a glite-nak [3], az Enabling Grids for E-sciencE (EGEE) [4] köztesrétegének az illesztése is a rendszerhez. Fontosnak tartottuk az EGEE Gridhez is fejleszteni támogatást, mivel ez Európa legjelentősebb Grid projektjei közé tartozik, 32 ország és közel 30 ezer processzor részvételével, így várhatóan lesz igény az EGEE használatára a Saleve felhasználói között is. További fontos szerepe a szervernek a kliensek hitelesítése. Ez jelenti egyrészt a köztesréteg vagy ütemező felé történő hitelesítést, másrészt a szerver saját biztonsági elveinek megfelelő megszorításokat a kliensekkel szemben. Az előbbi függ a konkrét köztesréteg illetve ütemező technológiától, korszerű Grid esetén azonban általánosan elmondható, hogy egy X.509 tanúsítvány alapú hitelesítés az elterjedt módszer erre. A jelenlegi megvalósításban a tanúsítvány és a megfelelő titkos kulcs a szerver oldalon van tárolva, így a kliens oldalon semmilyen változtatás nem szükséges, amikor egy új plugint kívánunk használni a szerver oldalon. Ugyanakkor a szervert üzemeltetőre hárul a megfelelő felhasználói tanúsítványok beillesztésérnek feladata, továbbá a titkos kulcsok távoli oldalon történő tárolása is felvet biztonsági problémákat. A kliensnek a szerver felé történő hitelesítése egy SSL feletti HTTP kapcsolat révén megoldható, egy kliens oldali tanúsítvány bemutatásával. A kliens és szerver közötti adatcsere, amelybe többek között a kliens bináris és a feldolgozandó adatok továbbítása tartozik bele, webszolgáltatás alapú. Ez jelen esetben teljes állományokon működik, de később lehetővé válik adatfolyamok átvitele webszolgáltatás alapokon az ún. webstream segítségével, amely a C++-ban ismert stream osztályokkal megegyező módon használható.

4. Egy példa A népszerű Mandelbrot-halmaz [5] területének nagy pontosságú közelítését könnyen párhuzamosíthatjuk Saleve segítségével. A közelítést itt úgy végezzük, hogy egy könnyen számítható területű, a halmazt magába foglaló síkidom (például téglalap) nagyon sok pontjára megvizsgáljuk, hogy mekkora arányuk eleme a Mandelbrothalmaznak, majd ezt az arányt megszorozzuk a síkidom területével. A sík egy pontjának a halmazba tartozását egyszerű de időigényes számolással dönthetjük el. Fontos viszont, hogy más pontok halmazba tartozását nem kell ismernünk hozzá, vagyis pontonként függetlenül állapíthatjuk meg azt. Így a paramétertartomány felosztható résztartományokra, amelyeken egy-egy számítási példány futhat (lásd 2. ábra). 2. ábra: a Mandelbrot-halmaz területének kiszámítása a paramétertartomány felosztásával A területszámító alkalmazásunk az első fázisban ezt a felosztást végzi el. A paraméter itt kétdimenziós: a valós és képzetes tengely koordinátáiból áll, a résztartományok pedig legegyszerűbb esetben téglalap alakú területeknek felelnek meg.

A második fázis a résztartományokon pontonként történő kiértékelés. Ennek eredménye, vagyis egy részfeladat kimeneti adata az ebbe a téglalapba eső megtalált halmazpontok száma. A harmadik fázis a részeredmények összesítése: a talált pontok összegét elosztjuk az összes bejárt pont számával, majd ezt megszorozzuk a teljes vizsgált tartomány területével, így megkapjuk a végeredményt. 5. Köszönetnyilvánítás E munka részben a Nemzeti Kutatási és Technológiai Hivatal Pázmány Péter programjának (RET-06/2005) támogatásával jött létre. A szerzők szeretnék kifejezni a köszönetüket az Európai Unió által támogatott EGEE projektnek (EU INFSO-RI- 031688), valamint az NKFP MEGA (2_009_04) projektnek. Hivatkozások: [1] Zs. Molnár, I. Szeberényi, Saleve: simple web-services based environment for parameter study applications, In The 6th IEEE/ACM International Workshop on Grid Computing, 2005. [2] Condor Project, http://cs.wisc.edu/condor/ [3] glite: Lightweight Middleware for Grid Computing, http://glite.web.cern.ch/glite/ [4] Enabling Grids for E-sciencE, http://www.eu-egee.org/ [5] Benoît Mandelbrot, Fractal aspects of the iteration of z -> λz(1 z) for complex λ, z, Annals NY Acad. Sci. 357, 249/259