O documento descreve como submeter trabalhos (jobs) no GridUNESP usando ferramentas como Globus, condor-g, GridFTP e SRM. É explicado como criar um proxy, submeter jobs simples e complexos com Globus e condor-g, usar MPI, acessar arquivos de entrada e saída, e referências adicionais são fornecidas.
1. Submissão de Jobs no GridUNESP
Marco Dias e Gabriel Winckler
SPRACE-NCC
16 de dezembro de 2009
Marco Dias e Gabriel Winckler Submissão de Jobs no GridUNESP
2. Criação do Proxy
Para começar a utilizar os recursos é necessária a criação do
proxy:
[pepe@access ~]$ source /OSG/client-1.2.3/setup.sh
[pepe@access ~]$ grid-proxy-init
Your identity: /C=BR/O=UNESP/OU=ncc.unesp.br/CN=Pepe Legal
Enter GRID pass phrase for this identity:
Creating proxy .................................................... Done
Your proxy is valid until: Tue Dec 15 07:14:19 2009
[pepe@access ~]$ grid-proxy-info
subject : /C=BR/O=UNESP/OU=ncc.unesp.br/CN=Pepe Legal/CN=268359979
issuer : /C=BR/O=UNESP/OU=ncc.unesp.br/CN=Pepe Legal
identity : /C=BR/O=UNESP/OU=ncc.unesp.br/CN=Pepe Legal
type : Proxy draft (pre-RFC) compliant impersonation proxy
strength : 512 bits
path : /tmp/x509up_u666
timeleft : 11:59:53
Marco Dias e Gabriel Winckler Submissão de Jobs no GridUNESP
3. Submetendo usando Globus
Primeiros passos...
[pepe@access ~]globusrun -a -r ce.grid.unesp.br
GRAM Authentication test successful
[pepe@access ~]$time globus-job-run ce.grid.unesp.br/jobmanager-fork /bin/hostname
ce.grid.unesp.br
real 0m2.349s
user 0m0.102s
sys 0m0.078s
[pepe@access ~]$time globus-job-run ce.grid.unesp.br/jobmanager-condor /bin/hostname
node081
real 1m5.648s
user 0m0.114s
sys 0m0.068s
Marco Dias e Gabriel Winckler Submissão de Jobs no GridUNESP
4. Submetendo usando Globus
Podemos usar um script como executável:
[pepe@access ~]$ cat myjob
#!/bin/bash
echo $PWD
hostname -f
env
[pepe@access ~]$ globus-job-submit ce.grid.unesp.br/jobmanager-fork -s ./myjob.sh
https://ce.grid.unesp.br:38019/5557/1260827558/
[pepe@access ~]$ globus-job-status https://ce.grid.unesp.br:38019/5557/1260827558/
DONE
[pepe@access ~]$ globus-job-get-output https://ce.grid.unesp.br:38019/5557/1260827558/
/home/uscms001
ce.grid.unesp.br
GLOBUS_LOCATION=...
OSG_WN_TMP=...
OSG_SITE_WRITE=...
LD_LIBRARY_PATH=...
[pepe@access ~]$ globus-job-clean https://ce.grid.unesp.br:38019/5557/1260827558/
WARNING: Cleaning a job means:
- Kill the job if it still running, and
- Remove the cached output on the remote resource
DONE
Marco Dias e Gabriel Winckler Submissão de Jobs no GridUNESP
5. Usando o condor-g
Submissão de jobs mais complexos pode ser feitas com o
condor . Criamos um arquivo para ser submetido:
[pepe@access ~]$ cat submit_grid
executable = env-test.pl
globusscheduler = ce.grid.unesp.br/jobmanager-condor
universe = globus
environment = foo=bar; zot=qux
output = env-test.$(Process).out
log = env-test.$(Process).log
queue
environment = foo=bar; zot=qux
queue
environment = foo=bar; zot=qux
queue
[pepe@access ~]$ cat env-test.pl
#!/usr/bin/env perl
foreach $key (sort keys(%ENV))
{
print "$key = $ENV{$key}n"
}
exit 0;
Marco Dias e Gabriel Winckler Submissão de Jobs no GridUNESP
6. Usando o condor-g
E fazemos a submissão do job, usando o comando abaixo:
[pepe@access ~]$ condor_submit submit_grid
Submitting job(s).......
Logging submit event(s).......
3 job(s) submitted to cluster 43.
[pepe@access ~]$ condor_q
-- Submitter: access.grid.unesp.br : <200.145.46.37:33018> : access.grid.unesp.br
ID OWNER SUBMITTED RUN_TIME ST PRI SIZE CMD
43.0 pepe 12/14 19:19 0+00:00:00 I 0 0.0 env-test.pl
43.1 pepe 12/14 19:19 0+00:00:00 I 0 0.0 env-test.pl
43.2 pepe 12/14 19:19 0+00:00:00 I 0 0.0 env-test.pl
3 jobs; 3 idle, 0 running, 0 held
[pepe@access ~]$ condor_q -globus
-- Submitter: access.grid.unesp.br : <200.145.46.37:33018> : access.grid.unesp.br
ID OWNER STATUS MANAGER HOST EXECUTABLE
43.0 pepe UNSUBMITTED condor ce.grid.unesp.br /home/pepe/env-te
43.1 pepe UNSUBMITTED condor ce.grid.unesp.br /home/pepe/env-te
43.2 pepe UNSUBMITTED condor ce.grid.unesp.br /home/pepe/env-te
[pepe@access ~]$ condor_rm pepe
User pepe's job(s) have been marked for removal.
Marco Dias e Gabriel Winckler Submissão de Jobs no GridUNESP
7. Condor e MPI
Jobs MPI rodam sobre o condor:
[pepe@access ~]$cat grid-mpi-hpl.cmd
universe=globus
GlobusScheduler=ce.grid.unesp.br:/jobmanager-condor
globusrsl = (condor_submit=(universe parallel)(machine_count 16))
executable = /opt/condor-7.2.4/bin/condor-impi.sh
#arguments = /opt/intel/Compiler/11.0/083/mkl/benchmarks/mp_linpack/bin_intel/em64t/xhpl_em64t
arguments = ./xhpl_em64t
log = grid-mpi-hpl.log
output = grid-mpi-hpl.out
error = grid-mpi-hpl.error
transfer_input_files = xhpl_em64t,HPL.dat
WhenToTransferOutput = ON_EXIT
#should_transfer_files = no
queue
Marco Dias e Gabriel Winckler Submissão de Jobs no GridUNESP
8. OSG_GRID: Diretório onde reside o worker node client ou
pacotes para o usar o grid são instalados.
OSG_APP: Diretório disponível para o job poder instalar
seus binários ou aplicações especícas.
OSG_DATA: Diretório disponível para o job poder guardar
dados e fazer stage , compartilhado por todo o cluster.
OSG_WN_TMP: Diretório disponível para scratch nos
nós de processamento. Local em cada node.
Marco Dias e Gabriel Winckler Submissão de Jobs no GridUNESP
9. Globus-WS
Podemos enviar o job utilizando ainda o Globus-WS
[pepe@access ~]$ cat rsl_unesp
job
executablemy_whoami/executable
directory${GLOBUS_USER_HOME}/directory
stdout${GLOBUS_USER_HOME}/stdout/stdout
stderr${GLOBUS_USER_HOME}/stderr/stderr
fileStageIn
transfer
sourceUrl
gsiftp://ce.grid.unesp.br:2811/usr/bin/whoami
/sourceUrl
destinationUrl
gsiftp://ce.grid.unesp.br:2811/${GLOBUS_USER_HOME}/my_whoami
/destinationUrl
/transfer
/fileStageIn
fileStageOut
transfer
Marco Dias e Gabriel Winckler Submissão de Jobs no GridUNESP
10. Globus-WS
sourceUrl
gsiftp://ce.grid.unesp.br:2811/${GLOBUS_USER_HOME}/stdout
/sourceUrl
destinationUrl
gsiftp://ce.grid.unesp.br:2811/tmp/teste
/destinationUrl
/transfer
/fileStageOut
fileCleanUp
deletion
filefile:///${GLOBUS_USER_HOME}/my_whoami/file
/deletion
/fileCleanUp
/job
Submetemos o job dessa forma:
[pepe@access ~]$globusrun-ws -F https://ce.grid.unesp.br:9443 -submit -f rsl_unesp -S
Submitting job...Done.
Job ID: uuid:4a92c06c-b371-11d9-9601-0002a5ad41e5
Termination time: 12/14/2009 20:58 GMT
Current job state: Active
Current job state: CleanUp
Current job state: Done
Destroying job...Done.
Marco Dias e Gabriel Winckler Submissão de Jobs no GridUNESP
11. SRM e GridFTP
Existem algumas formas de manusear arquivos tanto no
storage quanto para pequenos arquivos:
[pepe@access ~]$globus-url-copy file:////bin/bash gsiftp://ce.grid.unesp.br:2811/tmp/teste
[pepe@access ~]$globus-url-copy -dbg -vb -nodcau gsiftp://spraid01.sprace.org.br//mdias/LoadTest07
gsiftp://dts02.grid.unesp.br:2811/store/testexq1
[pepe@access ~]$globus-url-copy -vb -p 10 -dbg file:////bin/bash
gsiftp://dts02.grid.unesp.br:2811/store/testexq
O protocolo srm permite comandos como srmmkdir, srmrm,
etc.
[pepe@access ~]$ srmcp -2 --debug=true file:////bin/bash
srm://se.grid.unesp.br:8443/srm/v2/server?SFN=/store/testex
É possível ainda interagir dentro do diretório para qual seu DN
é mapeado
[pepe@access ~]$ uberftp ce.grid.unesp.br
220 ce.grid.unesp.br GridFTP Server 2.7 (gcc32dbg, 1204845443-63) [VDT patched 4.0.7] ready.
230 User uscms001 logged in.
UberFTP ls
-rw-r--r-- 1 uscms001 uscms 0 Dec 14 15:34 simple.3.error
UberFTP get simple.3.error
simple.3.error: 0.049000 Seconds (0.000 B/s)
UberFTP quit
221 Goodbye.
Marco Dias e Gabriel Winckler Submissão de Jobs no GridUNESP
12. References
[1] Um bom tutorial sobre o condor:
http://www.cs.wisc.edu/condor/tutorials/intl-grid-school-3/
[2]É possível que o usuário instale o pacote OSG-Client em seu
computador pessoal e submeta jobs para o GridUNESP:
https://twiki.grid.iu.edu/bin/view/ReleaseDocumentation/ClientInstallationGuide
[3]Exemplos de uso do srm:
https://twiki.grid.iu.edu/bin/view/Documentation/StorageSrmcpUsing
Marco Dias e Gabriel Winckler Submissão de Jobs no GridUNESP