33
1 2010-04-27 EDGI EDGI E E uropean uropean D D esktop esktop G G rid rid I I nitiative nitiative gLite job submission to EDGI EDGI is supported by the FP7 Capacities Programme under contract nr RI-261556

1 2010-04-27 EDGI European Desktop Grid Initiative gLite job submission to EDGI EDGI is supported by the FP7 Capacities Programme under contract nr RI-261556

Embed Size (px)

Citation preview

1

2010-04-27

EDGIEDGIEEuropeanuropean DDesktopesktop GGridrid IInitiativenitiativeEDGIEDGIEEuropeanuropean DDesktopesktop GGridrid IInitiativenitiative

gLite job submission to EDGI

EDGI is supported by the FP7 Capacities Programme under contract nr RI-261556

ContentsContentsContentsContents

• Single job submission to EDGI through gLiteSingle job submission to EDGI through gLite

• Metajob submission to EDGI through gLiteMetajob submission to EDGI through gLite

• GBAC submission to EDGI through gLite GBAC submission to EDGI through gLite

For each type of submission, there will be a step-by-step For each type of submission, there will be a step-by-step explanation in order to ease the understanding.explanation in order to ease the understanding.

2

Single job Single job submissionsubmission

3

Step 1: Choose application from the EDGI ARStep 1: Choose application from the EDGI ARStep 1: Choose application from the EDGI ARStep 1: Choose application from the EDGI AR

4

Let us select the dsp app…

Step 2: Get the gridftp url of its glite binary Step 2: Get the gridftp url of its glite binary Step 2: Get the gridftp url of its glite binary Step 2: Get the gridftp url of its glite binary

5

gsiftp://edgi-repo.cpc.wmin.ac.uk:2811/srv/edgi/1001/1102/dspgsiftp://edgi-repo.cpc.wmin.ac.uk:2811/srv/edgi/1001/1102/dsp

Step 3: Get the VO and site list and selectStep 3: Get the VO and site list and selectStep 3: Get the VO and site list and selectStep 3: Get the VO and site list and select

6

cr1.edgi-grid.eu:8443/cream-pbs-edgidemocr1.edgi-grid.eu:8443/cream-pbs-edgidemo

Step 4: create jdlStep 4: create jdlStep 4: create jdlStep 4: create jdl

• Create your dsp.jdl:Create your dsp.jdl:

Executable = "dsp";Executable = "dsp";

Arguments = "-f 22 -i 22 -p 723 -n pools.txt";Arguments = "-f 22 -i 22 -p 723 -n pools.txt";

InputSandbox = { InputSandbox = {

"gsiftp://edgi-repo.cpc.wmin.ac.uk:2811/srv/edgi/1001/1102/dsp" , "gsiftp://edgi-repo.cpc.wmin.ac.uk:2811/srv/edgi/1001/1102/dsp" ,

"pools.txt"};"pools.txt"};

OutputSandbox = {"cost.txt"};OutputSandbox = {"cost.txt"};

SubmitTo = "cr1.edgi-grid.eu:8443/cream-pbs-edgidemo“;SubmitTo = "cr1.edgi-grid.eu:8443/cream-pbs-edgidemo“;

7

Executable reference in the EDGI AR

Input file

Step 5: submit jdlStep 5: submit jdlStep 5: submit jdlStep 5: submit jdl

• Proxy creation:Proxy creation:

> glite-voms-proxy-init -voms > glite-voms-proxy-init -voms edgiprod.vo.edgi-grid.eu:/edgiprod.vo.edgi-grid.eu/Role=edgidemoedgiprod.vo.edgi-grid.eu:/edgiprod.vo.edgi-grid.eu/Role=edgidemo

• Submit:Submit:

> glite-wms-job-submit -a -o id dsp.jdl> glite-wms-job-submit -a -o id dsp.jdl

Connecting to the service Connecting to the service https://wms.grid.edges-grid.eu:7443/glite_wms_wmproxy_server

================== glite-wms-job-submit Success ===================================== glite-wms-job-submit Success ===================

The job has been successfully submitted to the WMProxyThe job has been successfully submitted to the WMProxy

Your job identifier is:Your job identifier is:

https://lb.grid.edges-grid.eu:9000/mhma6si6x__9zyfhG8KCuw

The job identifier has been saved in the following file:The job identifier has been saved in the following file:

/home/lpds/smith/TEST-EDGIDEMO/DSP/id/home/lpds/smith/TEST-EDGIDEMO/DSP/id

================================================================================================================

8

Step 6: get statusStep 6: get statusStep 6: get statusStep 6: get status

• Status:Status:

glite-wms-job-status -i idglite-wms-job-status -i id

================== glite-wms-job-status Success ================== glite-wms-job-status Success ==================================

BOOKKEEPING INFORMATION:BOOKKEEPING INFORMATION:

Status info for the Job : Status info for the Job : https://lb.grid.edges-grid.eu:9000/YFlhyw24Oh6AhZB6Yyk8Gghttps://lb.grid.edges-grid.eu:9000/YFlhyw24Oh6AhZB6Yyk8Gg

Current Status: RunningCurrent Status: Running

Status Reason: unavailableStatus Reason: unavailable

Destination: cr1.edgi-grid.eu:8443/cream-pbs-edgidemoDestination: cr1.edgi-grid.eu:8443/cream-pbs-edgidemo

Submitted: Wed May 16 14:59:48 2012 CESTSubmitted: Wed May 16 14:59:48 2012 CEST

==========================================================================================================

9

Step 7: loggingStep 7: loggingStep 7: loggingStep 7: logging

• Logging:Logging:

glite-wms-job-logging-info -v 2 -i idglite-wms-job-logging-info -v 2 -i id

Check UserTags! It returns:Check UserTags! It returns:

3gbridge_internal_id3gbridge_internal_id

3gbridge_dg_url3gbridge_dg_url

3gbridge_dg_id3gbridge_dg_id

The last one is a URL pointingThe last one is a URL pointingto the WU!to the WU!

10

Step 8: track the job in BOINCStep 8: track the job in BOINCStep 8: track the job in BOINCStep 8: track the job in BOINC

• Inspect BOINC WUInspect BOINC WU

11

Step 9: Step 9: get the get the resultresult

Step 9: Step 9: get the get the resultresult

12

Metajob Metajob submissionsubmission

13

Step 0: prepare your inputsStep 0: prepare your inputsStep 0: prepare your inputsStep 0: prepare your inputs

• Upload your individual input files to web server:Upload your individual input files to web server:

• http://somewhere.com/pools1.txthttp://somewhere.com/pools1.txt

• ……

• http://somewhere.com/pools10000.txthttp://somewhere.com/pools10000.txt

• Create the description of your metajob:Create the description of your metajob:%Required 100%%Required 100%

%SuccessAt 100%%SuccessAt 100%

%Comment pools1.txt%Comment pools1.txt

Arguments = "-i 0 -n pools.txt -f 22 -p 723“Arguments = "-i 0 -n pools.txt -f 22 -p 723“

Input = pools.txt=http://somewhere.com/pools1.txt=7b7eb86bf50c58cbf92dc12ff5adf7f4=9652Input = pools.txt=http://somewhere.com/pools1.txt=7b7eb86bf50c58cbf92dc12ff5adf7f4=9652

QueueQueue

[….][….]

%Comment pools10000.txt%Comment pools10000.txt

Input = pools.txt=http://somewhere.com/pools10000.txt=7b7eb86bf50c58cbf92dc12ff5adf7f4=9652Input = pools.txt=http://somewhere.com/pools10000.txt=7b7eb86bf50c58cbf92dc12ff5adf7f4=9652

QueueQueue

14

Step 1: Choose application from the EDGI ARStep 1: Choose application from the EDGI ARStep 1: Choose application from the EDGI ARStep 1: Choose application from the EDGI AR

15

Let us select the dsp app…

Step 2: Get the gridftp url of its glite binary Step 2: Get the gridftp url of its glite binary Step 2: Get the gridftp url of its glite binary Step 2: Get the gridftp url of its glite binary

16

gsiftp://edgi-repo.cpc.wmin.ac.uk:2811/srv/edgi/1001/1102/dspgsiftp://edgi-repo.cpc.wmin.ac.uk:2811/srv/edgi/1001/1102/dsp

Step 3: Get the VO and site list and selectStep 3: Get the VO and site list and selectStep 3: Get the VO and site list and selectStep 3: Get the VO and site list and select

17

cr1.edgi-grid.eu:8443/cream-pbs-edgidemocr1.edgi-grid.eu:8443/cream-pbs-edgidemo

Step 4: create and submit jdlStep 4: create and submit jdlStep 4: create and submit jdlStep 4: create and submit jdl

• Create your jdl:Create your jdl:

Executable = "dsp";Executable = "dsp";

Arguments = "-f 22 -i 22 -p 723 -n pools.txt";Arguments = "-f 22 -i 22 -p 723 -n pools.txt";

InputSandbox = { InputSandbox = {

"gsiftp://edgi-repo.cpc.wmin.ac.uk:2811/srv/edgi/1001/1102/dsp" , "gsiftp://edgi-repo.cpc.wmin.ac.uk:2811/srv/edgi/1001/1102/dsp" ,

"pools.txt","pools.txt",

"_3gb-metajob-dsp-10000" };"_3gb-metajob-dsp-10000" };

OutputSandbox = {"cost.txt"};OutputSandbox = {"cost.txt"};

SubmitTo = "cr1.edgi-grid.eu:8443/cream-pbs-edgidemo";SubmitTo = "cr1.edgi-grid.eu:8443/cream-pbs-edgidemo";

• Submit:Submit:

glite-wms-job-submit -o idglite-wms-job-submit -o id my-metajob-10000.jdl my-metajob-10000.jdl

18

Reference to the app in the EDGI AR

Basic input file

Extra input file

Step 5: Query the logging and get the urlStep 5: Query the logging and get the urlStep 5: Query the logging and get the urlStep 5: Query the logging and get the url

19

Location of the status description

Step 6: Query the statusStep 6: Query the statusStep 6: Query the statusStep 6: Query the status

20

Metajob handling rules

Actual status of jobs

Location of the mapping

Step 7: Download (and extract) the resultsStep 7: Download (and extract) the resultsStep 7: Download (and extract) the resultsStep 7: Download (and extract) the results

21

•Download result as usual:glite-wms-job-output -i id --dir outputs =>

./outputs/cost.txt

•Extract it:tar zxvf cost.txt =>

./outputs/<subjobid1>/cost.txt

./outputs/<subjobid2>/cost.txt

./outputs/<subjobid10000>/cost.txt

•See the mapping between your individual job definition and the jobids (which gives the name of directories storing the output files of your app) =>

one subjob id

one job

GBAC job GBAC job submissionsubmission

22

EDGIDemoBOINC project

OverviewOverview

3G Bridge

BOINC Client

GBAC

Application and Inputs

BOINC Client

GBAC

Application and Inputs

Application and Inputs

1. A User submits her application to EDGIDemo trough gLite. Using GBAC as a virtualization framework requires the real binaries and inputs defined as GBAC inputs.

2. Clients (who have VirtualBox installed) will download the BOINC native GBAC application with the submitted application and its inputs.

3. GBAC starts a Linux Virtual Machine (using VirtualBox).

4. GBAC copies the applications and inputs into the Virtual Machine.

5. The application is executed in the Linux VM.6. The result is fetched from the VM by GBAC.7. The VM is shut down and discarded.8. GBAC finishes and the result is returned to

EDGIDemo from the Client.9. The results are returned to gLite through 3G

Bridge from EDGIDemo.10. User can retrieve the results by using gLite

commands

Step 1: Get the gridftp URL of GBACStep 1: Get the gridftp URL of GBACStep 1: Get the gridftp URL of GBACStep 1: Get the gridftp URL of GBAC

• To submit a virtualised app choose the GBAC app from the EDGI ARTo submit a virtualised app choose the GBAC app from the EDGI AR

• Then query the Grid FTP url of the file “gbac.nobin” under the gLite Then query the Grid FTP url of the file “gbac.nobin” under the gLite implementation (as you did it during the single submission)implementation (as you did it during the single submission)

• Gridftp url:Gridftp url:

gsiftp://edgi-repo.cpc.wmin.ac.uk:2811/srv/edgi/1355/1512/gbac.nobingsiftp://edgi-repo.cpc.wmin.ac.uk:2811/srv/edgi/1355/1512/gbac.nobin

24

Step 2: Get the VO and site list and selectStep 2: Get the VO and site list and selectStep 2: Get the VO and site list and selectStep 2: Get the VO and site list and select

25

cr1.edgi-grid.eu:8443/cream-pbs-edgidemocr1.edgi-grid.eu:8443/cream-pbs-edgidemo

Step 3: Create “helloworld” applicationStep 3: Create “helloworld” applicationStep 3: Create “helloworld” applicationStep 3: Create “helloworld” application

• Notes: package must have the name X.app.tgz, where X is the name of Notes: package must have the name X.app.tgz, where X is the name of the executable which must be first launched after unpackaging.the executable which must be first launched after unpackaging.

26

Step 4: create jdlStep 4: create jdlStep 4: create jdlStep 4: create jdl

• Create your jdl:Create your jdl:

Executable = “gbac.nobin";Executable = “gbac.nobin";

Arguments = “anything";Arguments = “anything";

InputSandbox = { InputSandbox = {

"gsiftp://edgi-repo.cpc.wmin.ac.uk:2811/srv/edgi/1355/1512/gbac.nobin" , "gsiftp://edgi-repo.cpc.wmin.ac.uk:2811/srv/edgi/1355/1512/gbac.nobin" ,

"myhelloworld.sh.app.tgz" };"myhelloworld.sh.app.tgz" };

OutputSandbox = {"output"};OutputSandbox = {"output"};

SubmitTo = "cr1.edgi-grid.eu:8443/cream-pbs-edgidemo";SubmitTo = "cr1.edgi-grid.eu:8443/cream-pbs-edgidemo";

27

GBAC reference in the EDGI AR

Your hello world application

Name of GBAC app framework

Step 5: Submit jdlStep 5: Submit jdlStep 5: Submit jdlStep 5: Submit jdl

• Submitting the job:Submitting the job:

glite-wms-job-submit –a –o id helloworld.jdlglite-wms-job-submit –a –o id helloworld.jdl

28

Step 6a: CheckStep 6a: Checkthe status of thethe status of thejob under BOINCjob under BOINC

Step 6a: CheckStep 6a: Checkthe status of thethe status of thejob under BOINCjob under BOINC

29

Step 6b: Waiting for the job to finishStep 6b: Waiting for the job to finishStep 6b: Waiting for the job to finishStep 6b: Waiting for the job to finish

• Get the status of the job:Get the status of the job:

glite-wms-job-status -i idglite-wms-job-status -i id

30

Step 7: get the resultStep 7: get the resultStep 7: get the resultStep 7: get the result

• Get the result:Get the result:

glite-wms-job-output -i id --dir outputsglite-wms-job-output -i id --dir outputs

31

Controlled hands-on has finished at this point, please Controlled hands-on has finished at this point, please play with the tools you learnt or try any of the play with the tools you learnt or try any of the following tasks:following tasks:

Controlled hands-on has finished at this point, please Controlled hands-on has finished at this point, please play with the tools you learnt or try any of the play with the tools you learnt or try any of the following tasks:following tasks:

1.1. Try another application in the EDGI ARTry another application in the EDGI AR

2.2. Assume dsp is an MC type application, submit it 20 times with Assume dsp is an MC type application, submit it 20 times with the same input (“queue 20”)the same input (“queue 20”)

3.3. Take a real application and submit it using GBACTake a real application and submit it using GBAC

4.4. For advanced users: combine MetaJob and GBAC: submit the For advanced users: combine MetaJob and GBAC: submit the helloworld application 10 timeshelloworld application 10 times

a)a) With different inputsWith different inputs

b)b) With the same inputWith the same input

32

Thank you for your attention!Thank you for your attention!

www.edgi-project.euwww.edgi-project.eu

33