Presentation is loading. Please wait.

Presentation is loading. Please wait.

GLite.

Similar presentations


Presentation on theme: "GLite."— Presentation transcript:

1 gLite

2 gLite << gLite – antros eilės (generacijos) middleware grid skaičiavimams. Kūrė : 80 žmonių, 12 skirtingų akademinių ir verslo tyrimų centrų . >> see

3 Pradedant skaičiavimus reikia
1. Turėti sertifikatą, kuris išsaugomas Jūsų namų kataloge $HOME/.globus elena$ ls -l .globus total 0 -rw-r--r elena staff 0 Sep 18 23:26 usercert.pem -r elena staff 0 Sep 18 23:26 userkey.pem Sertifikatas nėra tiesiogiai naudojamas – tai leidimas dirbti gride. 2. užsiregistruoti į virtualią organizaciją: ( atliksim šiandien praktinio užsiėmimo metu)

4 Pradedant skaičiavimus reikia
3. Susigeneruoti grid proxy – leidimas galiojantis nustatytą valandų kiekį. Generuojamas saugai užtikrinti Saugai užtikrinti yra generuojamas. Naudojamos dvi komandos: grid-proxy-init <VO grupės pavadinimas> voms-proxy-init <VO grupės pavadinimas> šitą. PVZ: voms-proxy-init -voms gamess voms-proxy-init -voms gamess:/gamess/gaussian Skirtumas: voms... reikiama informacija nuskaitoma iš VOMS serverio (kokiai VO priklausot, Jūsų teisės, pirmumas, resursai ir t.t.)

5 Pradedant skaičiavimus…
4. Sukūrus proxy uždavinys (paruoštas) konmandomis: glite-job-submit uždavinys išsiunčiamas į “Network Server” glite-wms-job-submit - uždavinys išsiunčiamas į “WMProxy” ( įdiegta šitai). Nes WMProxy yra “web services interface” - platesnės galimybės, tokios kaip kolektyvinis uždavinių siuntimas. Pvz: glite-wms-job-submit -o jobs -a Guan1NaViduj.jdl

6 gLite elementai UI - Naudotojo interfeisas; RB – Resursų brokeris;
LB - Logging & Bookkeeping; CE – Skaičiavimų elementas; WN – Darbinės nodos; SE – Saugojimo elementas; BDII – Informacijos indeksas; LFC - LCG failų katoalogas; plius kiti “paslaugų” elementai

7 gLite elementai Naudotojo interfeisas (UI)
Bet kuri mašina, bet kuri prieiga, kur yra instaliuotas naudotojo sertifikatas. Iš čia naudotojas gali naudotis grid resursais, gauti reikiamą informaciją: 1. Sąrašą visų resursų, kuriais gali naudotis duotai užduočiai išspręsti; 2. Išsiųsti uždavinį skaičiavimams; 3. Nutraukti užduoties vykdymą;cancel jobs; 4. Gauti uždavinio skaičiavimo rezultatą; 5. Matyti uždavinio būklę; 6. Išsaugoti informaciją apie uždavinius; 7. Kopijuoti, ištrinti ir sukurti failus; 8. Gauti informaciją apie resursų būklę;

8 #CPU Free Total Jobs Running Waiting ComputingElement
grid4.mif.vu.lt:2119/jobmanager-lcgpbs-sdj grid4.mif.vu.lt:2119/jobmanager-lcgpbs-long grid4.mif.vu.lt:2119/jobmanager-lcgpbs-verylong ce2.grid.vgtu.lt:2119/jobmanager-pbs-gmsAMD creamce.reef.man.poznan.pl:8443/cream-pbs-gamess ce.grid.eenet.ee:2119/jobmanager-lcgpbs-gamess ce2.grid.vgtu.lt:2119/jobmanager-pbs-gmsINTEL spektras.itpa.lt:2119/jobmanager-lcgpbs-gamess

9 *************************************************************
BOOKKEEPING INFORMATION: Status info for the Job : Current Status: Waiting Status Reason: BrokerHelper: no compatible resources Submitted: Thu Feb 24 08:52: EET ***********************************************************

10 gLite elementai Skaičiavimo elementas
- kompiuterių tinklas ( klasteris, serveris) turintis reikiamą įrangą. CE sudaro: “Grid Gate (GG)1” -, tam tikras klasterio interfeisas, kuris priima darbą ir išsiunčia jį per LRMS apdorojimui į darbines nodas; “Local Resource Management System” (LRMS arba batch). gLite tipai OpenPBS/PBSPro, Platform LSF, Maui/Torque, BQS and Condor, and Sun Grid Engine ; Klasteris su darbinėmis nodomis;

11 gLite elementai Saugojimo elementas
- resurasi duomenims saugoti ( diskas serveryje) arba “ Mass Storage Systems” (MSS). Saugojimo elementas “perskaito” visus su duomenų saugojimu susijusius protokolus ir “interfeisus” . Suskirstymas: GSIFTP (a GSI-secure FTP) protokolas naudojamas duomenų failų siuntimui, o lakalių failų siuntimą užtikrina RFIO ar gsidcap. Saugojimo elementai yra valdomi “ Storage Resource Manager “(SRM): vietos rezervavimas, filų persiuntimas iš diskų ir t.t. Tačiau skirtingos SEs gali remti skirtingass SRM protokolų versijas, tad gali būti suteiktos skirtingos galimybės. Dažniausiai – informacija įrašoma į diskus.

12 gLite: veiksmų seka BDII: duomenų bazė apie resursus.
RB: grid “širdis”. Siunčia uždavinius ir juo “seka”.t BDII: duomenų bazė apie resursus. UI: PC kur naudotojas aprašo savo uždavinį. Visas valdymas vyksta čia LB: SQL duomenų bazė, kurioje registruojami bet kurie uždavinio būklės pasikeitimai. CE: LRMS (LSF, PBS, Torque…) LFC: išsaugoti failai yra registruojami kataloge. WN: elementai, kurie vykdo skaičiavimus actually execute the jobs SE: “output 'ai” yra įrašomi.

13 gLite: veiksmų seka Naudotojas aprašo savo darbą - paruošia visus būtinus failus. Vienas iš jų JDL. JDL failas siunčiamas į Resursų brokerį. Dabar Resursų brokeris (RB) informuos apie kiekveną uždavinio statuso pakeitimą. RB “perskaito” JDL ir “liepia” BDII surasti skaičiavimo elementą, kuris atitiktų nurodytus reikalavimus. RB išsiunčia uždavinį į tą skaičiavimo elementą (CE), kurį nurodė BDII. CE pateikia užduotį darbinėms nodoms. Kai darbas yra įrašomas į Saugojimo elementą ir jei jis yra įregistruojamas LFC kataloge, darbu gali naudotis bet kuris grid naudotojas. , Skaičiavimo rezultatai yra siunčiami į RB, o iš čia į naudotojo UI.

14 Uždavinio aprašymas 1. Turėti JDL failą JDL (Job Description Language) yra skriptas parašytas “ Class Advertisement (ClassAd) Language” kalba use kuriame yra pateikiamos darbo charakteristikos. JDL sudaro eilutės, kurių forma: attribute = expression; savybė=požymis Pvz.: Executable = “/bin/echo”;

15 HelloWorld.jdl Papraščiausias ir populiariausias JDL failo pvz:
[ Executable = “/bin/echo”; Arguments = “Hello World!”; StdOutput = “HelloWorld.out”; StdError = “HelloWorld.err”; OutputSandbox = {“HelloWorld.out”,” HelloWorld.err”}; VirtualOrganisation = “atlas”; ] Uždavinys išsiunčiamas komanda glite-wms-job-submit –a HelloWorld.jdl RB suteikia uždaviniui unikalų Nr, kurio forma:

16 The job has been successfully submitted to the WMProxy
====================== glite-wms-job-submit Success ====================== The job has been successfully submitted to the WMProxy Your job identifier is: The job identifier has been saved in the following file: /home/elena/jobs ========================================================================== Sudėtingesnis wglite-wms-job-submit -o jobs -a HelloWorld.jdl

17 HelloWorld.jdl glite-wms-job-status ID Nr glite-job-status -i jobs
Apie uždavinio būklę sužinome: glite-wms-job-status ID Nr > glite-wms-job-status ************************************************************* BOOKKEEPING INFORMATION: Status info for the Job : Current Status: Waiting Submitted: Tue Sep 19 15:03: CEST glite-job-status -i jobs

18 glite-job-status -i jobs
1 : 2 : 3 : 4 : a : all q : quit Choose one or more jobId(s) in the list - [1-4]all:

19 Uždavinio būsenos Submitted: užduotį naudotojas išsiuntė, bet jis nepasiekė NS ar WMP- RB elementų; Waiting: užduotis pasiekė NS ar WMP, bet skaičiavimai dar nepradėti; Ready: resursai surasti ir užduotis jau paruošta siuntimui į skaičiavimo elementą – (matchmaking); Scheduled: užduotis yra skaičiavimo elemento eilėje; Running: atliekami skaičiavimai; Done: darbas atliktas; Aborted: užduoties vykdymą nutraukė RB Canceled: užduoties vykdymą nutraukė naudotojas Cleared: naudotojas pasiiėmė darbo rezultatus – atsisiuntė į savo UI.

20 **********************************************************
> glite-wms-job-status ********************************************************** BOOKKEEPING INFORMATION: Status info for the Job : Current Status: Aborted Logged Reason(s): - File not available.Cannot read JobWrapper output, both from Condor and from Maradona. - Job got an error while in the CondorG queue. Status Reason: hit job shallow retry count (3) Destination: cmsitbsrv01.fnal.gov:2119/jobmanager-condor-atlas Submitted: Tue Sep 19 15:03: CEST Šiuo atveju, byuvo bandyta uždavinį vykdyti CE, kuris nepalaiko LCG.

21 *************************************************************
BOOKKEEPING INFORMATION: Status info for the Job : Current Status: Aborted Status Reason: request expired Submitted: Thu Feb 24 08:52: EET

22 Uždavinio istorija Visa informacija apie uždavinį yra išsaugoma LB, Logging&Bookkeeping, kuris yra pasiekiamas su komanda: glite-wms-job-logging-info [options] <JobID> [options] -v <0|1|2> Komandos pvz: glite-wms-job-logging-info -v 2

23 -v 1 LOGGING INFORMATION:
********************************************************************** LOGGING INFORMATION: Printing info for the Job : --- Event: RegJob - Source = NetworkServer - Timestamp = Thu Feb 24 08:56: EET Event: EnQueued - Result = START - Timestamp = Thu Feb 24 08:56: EET - Result = OK - Timestamp = Thu Feb 24 08:56: EET Event: DeQueued - Source = WorkloadManager Event: Pending ...

24 -v 1 .... (Tik galas) Event: Pending
- Arrived = Thu Feb 24 10:46: EET - Host = lxb065.mif.vu.lt - Reason = BrokerHelper: no compatible resources - Source = WorkloadManager - Src instance = - Timestamp = Thu Feb 24 10:46: EET - User = /DC=org/DC=balticgrid/OU=tfai.vu.lt/CN=Jelena Tamuliene/CN=proxy/CN=proxy --- Event: Abort - Arrived = Thu Feb 24 10:56: EET - Reason = request expired - Timestamp = Thu Feb 24 10:56: EET

25 -v 0 ****************************************************************** LOGGING INFORMATION: Printing info for the Job : Logged Events: - RegJob - Accepted - EnQueued - DeQueued -... - Pending - Abort **********************************************************************

26 Requirements Kaip greičiau atrinkti resursus, kurie mums reikalingi?
Įrašyti į JDL failą “Requirements” eilutę. Requirements nurodoma RB parinkti tik tuos kompiuterius, kurie atitinka tam tikrus požymius arba kitaip: nurodyti apribojimus, į kuriuos klasterius siųsti užduotį. Pvz.: Requirements = Member("VO-gamess-GAMESS",other.GlueHostApplicationSoftwareRunTimeEnvironment) && other.GlueCEPolicyMaxWallClockTime > 9576 ; Gali būti tik viena Requirements eilutė. Jei rašomos kelios – sujungiama per boolean operatorių (&&, ||, <, !=,…). && (ir) ir || (arba) operatoriais, bei nurodant ! (inversija).

27 Requirements pavyzdžiai:
Klasteriai, kuriuose žinote, kad HOME katalogai “pašarinti” (aktualu MPI užduotims, jei nesiimate priemonių kopijuoti reikiamų failų į visus nodus): Requirements = other.GlueCEUniqueID == "birzs.latnet.lv:2119/jobmanager-pbs-balticgrid" || other.GlueCEUniqueID == "pupa.elen.ktu.lt:2119/jobmanager-lcgpbs-balticgrid" || other.GlueCEUniqueID == "atomas.itpa.lt:2119/jobmanager-lcgpbs-balticgrid" || other.GlueCEUniqueID == "kriit.eenet.ee:2119/jobmanager-pbs-balticgrid"; tik IA64 klasteriai (skirtingi klasteriai ta patį procesoriaus modeli vadina skirtingai, todėl šitokia sąlyga tik apytikslė): Requirements = other.GlueHostProcessorModel == "IA64"; tik klasteriai, turintys 2GB RAM ir daugiau: Requirements = other.GlueHostMainMemoryRAMSize >= 2096;

28 Rank Pagal nutylėjimą "Normal" užduotims naudojama išraiška:
JDL faile galima nurodyti, pagal kokius prioritetus bus pasirenkami klasteriai. Tai yra: jei keli klasteriai palaiko Jūsų VO ir tenkina nurodytus Requrements - į kurį iš jų bus siunčiama užduotis. Pagal nutylėjimą "Normal" užduotims naudojama išraiška: Rank = -other.GlueCEStateEstimatedResponseTime; Siųsti į greičiausią klasterį (sąlyga nebūtinai teisinga, nes ne visi klasteriai teisingai nurodo SI00 reikšmę): Rank = other.GlueHostMainMemoryRAMSize; Kad pamatyti, kokie Rank'ai priskirti tinkamiems klasteriams: $ glite-job-list-match --rank job.jdl Padeda atrinkti kompiuterius, pvz, tuos kurie turi didesnį neužimtų nodų skaičių skaičių. glite-wms-job-list-match [--rank] your.jdl

29 Rank ir Requirements pvz.:
Rank = (other.GlueCEStateWaitingJobs == 0) ? ( (other.GlueCEStateFreeCPUs * 100) / ((other.GlueCEStateRunningJobs == 0) ? 1 : other.GlueCEStateRunningJobs) ) : ( -(other.GlueCEStateWaitingJobs * 100) / other.GlueCEStateRunningJobs) ; Requirements = (other.GlueCEStateStatus == "Production") && ((other.GlueCEPolicyMaxCPUTime * other.GlueHostBenchmarkSI00) >= ) && (other.GlueHostMainMemoryRAMSize >= 500) && (other.GlueHostNetworkAdapterOutboundIP == true) && (Member("VO-atlas-release ", other.GlueHostApplicationSoftwareRunTimeEnvironment) || Member("VO-atlas-offline ", other.GlueHostApplicationSoftwareRunTimeEnvironment)); The Rank uses two nested constructs “ true ? value1 : value2 “ and says if a site has no waiting jobs, then use (number of free CPU / 1) if there are no running jobs (number of free CPU / number of running jobs) if there are running jobs else, if there are waiting jobs, use - (number of waiting jobs * 100) / number of running jobs

30 JDL failas GAMESS skaiiavimams
JobType = "Normal"; RetryCount = 0; lrms_type = "pbs"; CpuNumber = 8; MyProxyServer = "grid3.mif.vu.lt"; Executable = "Guan2NaViduj.csh"; StdOutput = "Guan2NaViduj.out"; StdError = "Guan2NaViduj.err"; InputSandbox = {"Guan2NaViduj.csh","Guan2NaViduj.inp"}; OutputSandbox = {"Guan2NaViduj.out","Guan2NaViduj.err","Guan2NaViduj.dat","Guan2NaViduj.log", "rezults.tar.gz"}; Requirements = Member("VO-gamess-GAMESS",other.GlueHostApplicationSoftwareRunTimeEnvironment) && other.GlueCEPolicyMaxWallClockTime > 9576 ;

31 Atributas Galimos reikšmės Prasmė Type "Job" JobType "Normal", "MPICH", "Interactive", "DAG", "Parametric", "Checkpointable" Užduoties tipas

32 Executable "/kelias/programa", "programa" Programa, kuri bus vykdoma Arguments "arg" arba "arg1 arg2" Užduoties programos argumentai

33 StdInput "failo vardas" Failas, kuris bus pateikiamas programai vietoj įvedimo iš konsoles (stdin) StdOutput Kur bus įsimenami programos išvedami į ekraną rezultatai (stdout) StdError Kur bus įsimenami programos pranešimai apie klaidas (stderr) InputSandbox { "failas1", "failas2" } Programa ir jos duomenys, kurie persiunčiami karrtu su užduotim ( iki 10 MB ) OutputSandbox Failai, kurie gražinami su užduoties rezultatais

34 InputData "lfn:/..." arba "guid:...." Papildomi duomenys, kurie persiunčiami i užduoties vykdymui skirta WN is SE. DataAccessProtocol "gridftp", "rfio" Protokolas, kuris bus naudojamas InputData duomenų persiuntimui RetryCount N N - skaičius, kiek kartų bandyt pakartotinai paleist užduotį, jei uzduotis pasibaigė Abort'u. ShallowRetryCount N - pakartotinių bandymų paleisti užduotį skaičius, kai užduotis lūžta nepasiekus WN

35 Requirements ( loginė išraiška ) Reikalavimai, pagal kuriuos atrenkami užduoties vykdymui tinkami klasteriai. Rank ( aritmetinė išraiška ) Išraiška, pagal kurią rūšiuojami reikalavimus tenkinantys klasteriai NodeNumber N Norimas klasterio core'u skaičius (MPICH užduotims, core'ai išskiriami viename klasteryje) Lrms_Type "PBS" gLite klaidos apėjimas (MPICH užduotims) VirtualOrganisation "vo_vardas" Virtualios organizacijos (VO) pavadinimas MyProxyServer "myproxy_serveris" MyProxy serveris Max_Nodes_Running DAG užduoties maksimalus vienu metu veikiančių node'u skaičius

36 Šifruojam  JobType = "Normal"; RetryCount = 0; lrms_type = "pbs";
CpuNumber = 8; MyProxyServer = "grid3.mif.vu.lt"; Executable = "Guan2NaViduj.csh"; StdOutput = "Guan2NaViduj.out"; StdError = "Guan2NaViduj.err"; InputSandbox = {"Guan2NaViduj.csh","Guan2NaViduj.inp"}; OutputSandbox = {"Guan2NaViduj.out","Guan2NaViduj.err","Guan2NaViduj.dat","Guan2NaViduj.log", "rezults.tar.gz"}; Requirements = Member("VO-gamess-GAMESS",other.GlueHostApplicationSoftwareRunTimeEnvironment) && other.GlueCEPolicyMaxWallClockTime > 9576 ;

37 JobType = "Normal" Reikalingi atributai: Executable, StdOutput, StdError, InputSandbox, OutputSandbox. tinka nuosekliu programų vykdymui GRID'e. job-normal.jdl: Executable = "/bin/sh"; Arguments = "job-normal.sh"; StdOutput = "job-normal.out"; StdError = "job-normal.err"; InputSandbox = {"job-normal.sh"}; OutputSandbox = {"job-normal.err","job-normal.out"};

38 JobType = "MPICH" Reikalingi atributai: JobType, NodeNumber, Executable, StdOutput, StdError, InputSandbox, OutputSandbox. MPICH užduotys tinka lygiagrečiu programų vykdymui GRID'e. gLite (LCG-CE) tik rezervuoja klasterio mazgus užduoties vykdymui, o šių mazgų valdymas paliekamas vartotojui. job-mpich.jdl: Type = "Job"; JobType = "MPICH"; NodeNumber = 2; Executable = "job-mpich.sh"; Arguments = "job-mpich"; StdOutput = "job-mpich.out"; StdError = "job-mpich.err"; InputSandbox = {"job-mpich.sh","job-mpich.c"}; OutputSandbox = {"job-mpich.err","job-mpich.out","mpiexec.out"}; Requirements = (other.GlueCEInfoLRMSType == "PBS"); RetryCount = 0; Lrms_Type = "PBS";

39 JobType = "Interactive" Reikalingi atributai: JobType, Executable
job-interactive.jdl: Type="job"; JobType = "interactive"; Executable = "/bin/csh"; ListenerPort=6740; Pasiuntus interaktyvią užduotį, ant UI paleidžiama programa, kuri klausosi ant nurodyto ListenerPort parametre porto TCP protokolų. Kai užduotis startuoja WN, ji jungiasi prie UI ListenerPort. Taigi būtina, kad nurodytas UI portas būtų prieinamas iš išorės.

40 JobType = "DAG" JobType = "Parametric"
Reikalingi atributai: JobType, Executable, Parameters, ParameterStart, ParameterStep. Tai specializuotas DAG užduoties atvejis. Užduotis tinka norint paleisti dideli skaičių panašių užduočių, kurios skiriasi tik įėjimo duomenimis. _PARAM_ JDL faile pakeičiamas parametro reikšme. Parametras kinta nuo pradinės reikšmės iki priešpaskutinės. Jei neivykdoma bent viena užduotis, visa "Parametric" užduotis pasibaigia su klaida ir rezultatų paėmimas tampa painus. Siunčiamas per gLite-WMS serveri (LCG-RB netinka), t.y. su glite-wms-* komandom.

41 job-parametric.jdl: JobType = "Parametric"; Executable = "job-parametric.sh"; Parameters = 3; ParameterStart = 1; ParameterStep = 1; Arguments = "_PARAM_"; StdOutput = "job-parametric_PARAM_.out"; StdError = "job-parametric_PARAM_.err"; InputSandbox = { "job-parametric.sh" }; OutputSandbox = { "job-parametric_PARAM_.out", "job-parametric_PARAM_.err" };


Download ppt "GLite."

Similar presentations


Ads by Google