Strumenti Utente

Strumenti Sito


grid:user

Note di Utilizzo

Informazioni generali: http://www.italiangrid.org/grid_operations/users

Aggiornate al 12/04/2009

L'accesso locale o grid dal nostro Dipartimento avviene mediante la User Interface (UI) 'grid-ui.pr.infn.it'

Per l'accesso GRID e' necessario un Certificato INFN. Per ottenere un certificato chiedere a LCA

Esecuzione Sequenziale

test.sh

#!/bin/sh
#PBS -N test
date
/bin/hostname
/bin/sleep 300
date

Esecuzione locale

#Escuzione interattiva:
bash   test.sh

#Esecuzione via Job-Manager:
qsub -q albert  test.sh    #Coda  albert 

Esecuzione Grid

Per l'esecuzione via grid è necessario per prima cosa disporre di un certificato proxy che è possibile creare disponendo sulla User Interface di un certificato X.509 validato da una Certification Authority riconosciuta da WLCG/EGEE.

I comandi per la creazione del proxy sono i comandi voms in grado di trovare gli attributi dell' utente e di includerli nel proxy:

 voms-proxy-init -voms theophys  -hours 96     # Creazione del Proxy valido 4gg - default 12 ore
 voms-proxy-init -voms infngrid:/infngrid/Role=parallel 
 voms-proxy-info -all

Per ricercare CE o SE che soddisfano determinate condizioni è possibile utilizzare lcg-info che interroga il BDII della relativa VO:

 lcg-info --list-attrs                                 # Lista degli attributi disponibili per la ricerca
 lcg-info --list-ce --attrs FreeCPUs  -vo theophys     # Elenca le cpu libere dei siti abilitati per theophys
 lcg-info --list-ce --attrs MaxWCTime,MaxCPUTime  -vo theophys
 lcg-info --list-ce --query 'Tag=PARMA' -vo=theophys --attrs=FreeCPUs --sed
 lcg-info --vo theophys --list-ce  --query 'Tag=*OPENMPI*'  # Ricerca delle risorse OPENMPI in theophys
 lcg-info --list-se --attrs 'TotalOnline,FreeOnline'

Per conoscere lo stato dei siti (Virtual Organizations) si utilizza lcg-infosites:

 lcg-infosites    --vo theophys ce                  # Informazioni sui CE disponibili sul BDII
 lcg-infosites    --vo theophys -v 1 ce             # Cerca i CE disponibili su BDII
 lcg-infosites    --vo theophys -v 2 ce             # Ram, nome e versione del sistema operativo, processori

test.jdl

Executable = "/bin/sh";
Arguments = "test.sh";
StdOutput = "hnam.out";
StdError = "hnam.err";
InputSandbox = {"test.sh"};
OutputSandbox = {"hnam.out","hnam.err"};
requirements = Member("PARMA",other.GlueHostApplicationSoftwareRunTimeEnvironment); 

Altri esempi di requirements:
#       Member("MPICH",other.GlueHostApplicationSoftwareRunTimeEnvironment) &&
#       (other.GlueCEStateFreeCPUs>=4) && 
#       (other.GlueHostOperatingSystemRelease == "LINUX") && 
#       (other.GlueHostMainMemoryRAMSize >= 128) &&
#       (other.GlueHostNetworkAdapterOutboundIP) &&
#       (other.GlueCEInfoLRMSType == "torque" || other.GlueCEInfoLRMSType == "LSF") $$          
#         TRUE ;

Comandi per la sottomissione e il monitoring dei job

glite-wms-job-list-match -a test.jdl       # Verifica quali risorse corrispondo al jdl
 glite-wms-job-submit  -a -o XX  test.jdl  # Sottomette il job e scrive il jobID sul file XX
 glite-wms-job-submit  -a -r  grid-ce.pr.infn.it:2119/jobmanager-lcgpbs-grid -o XX  test.jdl  # Sottomette direttamente 
 glite-wms-job-status     -i XX            # Verifica lo stato di uno dei jobID presenti sul file (interattivo)
 glite-wms-job-output     -i XX  --dir .   # Scarica l'output nella directory corrente
 glite-wms-job-cancel     -i XX            # Cancella, in caso di problemi il Job
 glite-wms-job-logging-info -i XX          # Interroga il servizio LB

Ricordarsi di scaricare l'output del job entro una settimana dal completamento dello stesso, in quanto i risultati vengono rimossi dal WMS in un breve periodo di tempo.

Comando grid

Sulla macchina grid-ui.pr.infn.it e' stato realizzato lo script grid che consente di automatizzare le operazioni de gestione dei Job grid.

Utilizzo di un WMS diverso

lcg-infosites --vo theophys wms

wms-pd.conf

[
OutputStorage  =  "/tmp/jobOutput";
JdlDefaultAttributes =  [
    RetryCount  =  3;
    rank  = - other.GlueCEStateEstimatedResponseTime;
    PerusalFileEnable  =  false;
    AllowZippedISB  =  true;
    requirements  =  other.GlueCEStateStatus == "Production";
    ShallowRetryCount  =  10;
    SignificantAttributes  =  {"Requirements", "Rank", "FuzzyRank"};
    MyProxyServer  =  "prod-wms-01.pd.infn.it";
    ];
WMProxyServiceDiscoveryType  =  "org.glite.wms.wmproxy";
virtualorganisation  =  "theophys";
ErrorStorage  =  "/tmp";
EnableServiceDiscovery  =  true;
ListenerStorage  =  "/tmp";
LBServiceDiscoveryType  =  "org.glite.lb.server";
WMProxyEndpoints  = {"https://prod-wms-01.pd.infn.it:7443/glite_wms_wmproxy_server"};
]


  glite-wms-job-submit -a -c ../wms-pd.conf -o XX test-ce.jdl 
  glite-wms-job-status -a -i XX 

test MPI

Esecuzione MPI in locale

Esecuzione interattiva

mpi-selector --list  #vedi i flavor
mpi-selector --query #vedi il flavour selezionato
mpi-selector --set openmpi-1.3-1 # seleziona un flavour 
cexec albert: mpi-selector --yes --set openmpi-1.3-1  #setta il flavour su tutti i WN di albert

ui> mpicc mpi_hnam.c -o mpi_hnam
ui> mpirun -np 4  -hostfile /etc/openmpi-default-hostfile  mpi_hnam

ui >cat /etc/openmpi-default-hostfile
grid-wn08 slots=2
grid-wn09 slots=2
grid-wn10 slots=2
grid-wn11 slots=2

Esecuzione con Jobmanager

grid-ui> qsub -q local esegui_mpi.bash

Per compilare ed eseguire:

 grid-ui> qsub -q local -l nodes=6:ppn=1  compila_esegui_mpi.bash

Per eseguire da shell di SLC4 di un WN:

ssh grid-wn01 ./mpi_compila_esegui.bash

Esecuzione MPI via Grid con mpistart

http://www.fis.unipr.it/grid/programmi/mpi/mpi-start-wrapper.jdl

http://www.fis.unipr.it/grid/programmi/mpi/mpi-start-wrapper.bash

http://www.fis.unipr.it/grid/programmi/mpi/mpi-hooks.bash

http://www.fis.unipr.it/grid/programmi/mpi/name_mpi.c

Query:

lcg-info --vo theophys --list-ce  --query 'Tag=*MPI*'  --attrs=Tag | egrep '2119|MPI'
lcg-info --list-ce --vo theophys  --attrs "FreeCPUs" --query "Tag=MPI-START"
glite-wms-job-submit  -a -o mpiXX   mpi-start-wrapper.jdl

Data Management

export LFC_HOST=lfcserver.cnaf.infn.it

lfc-ls -l /grid/theophys
lfc-mkdir /grid/theophys/parma/
lfc-mkdir /grid/theophys/parma/test/
lfc-rm -r /grid/theophys/parma/test/

Download file to Local Machine:
lcg-cp -v --vo theophys lfn:/grid/theophys/parma/filename file://$PWD/filename

How to delete one of replicas:
lcg-del -v -s grid-se2.pr.inf.it --vo theophys lfn:/grid/theophys/parma/filename

We can also delete all replicas at once:
lcg-del -v -a --vo theophys lfn:/grid/theophys/parma/filename

Let’s check if it works:
lcg-lr -v --vo theophys lfn:/grid/theophys/parma/filename
>lcg-lr: No such file or directory

test grid-se2

 
 lcg-ls -v  lfn:/grid/theophys/IS_OG51/IGPortal_Inputs/
test_se.bash
#!/bin/sh -x
data=$(date +%y%m%d-%H%M)
mydir=$(pwd)
file=test-se.bash
SE=grid-se2.pr.infn.it 
VO=theophys

echo /opt/lcg/bin/lcg-cr -v --vo $VO -d $SE -l lfn:/grid/$VO/test/parma/$file.$data file://$mydir/$file
/opt/lcg/bin/lcg-cr      -v --vo $VO -d $SE -l lfn:/grid/$VO/test/parma/$file.$data file://$mydir/$file




echo /opt/lcg/bin/lcg-cp -v --vo $VO lfn:/grid/$VO/test/parma/$file.$data  file://$HOME/$file.$data
/opt/lcg/bin/lcg-cp      -v --vo $VO lfn:/grid/$VO/test/parma/$file.$data  file://$HOME/$file.$data

echo /opt/lcg/bin/lcg-del  -v --vo $VO -a  lfn:/grid/$VO/test/parma/$file.$data 
/opt/lcg/bin/lcg-del       -v --vo $VO -a  lfn:/grid/$VO/test/parma/$file.$data 
test-se.jdl
Type = "Job";
JobType = "Normal";
Executable = "/bin/bash";
Arguments = "test-se.bash";
InputSandbox={"test-se.bash"};
StdOutput = "std.out";
StdError = "std.err";
OutputSandbox = {"std.out","std.err"};
requirements = Member("PARMA",other.GlueHostApplicationSoftwareRunTimeEnvironment);
lfc_clean.php

(toglie dal catalogo file che non esistono piu)

<?
$prog = $_SERVER['argv'][0] ;
if ($_SERVER["argc"] == 1) {echo "SINTASSI: $prog nomefile\n"; exit;}
$file =  "lfn:/grid/theophys/".$_SERVER["argv"][1];
$guid = trim(shell_exec("lcg-lg  $file"));
$sfn  =  trim (shell_exec("lcg-lr --vo theophys $file") ); 
echo ("lcg-uf $guid $sfn \n");
echo shell_exec("lcg-uf $guid $sfn");
?>

ILDG

Information System

ldapsearch -x -H ldap://egee-bdii.cnaf.infn.it:2170 -b mds-vo-name=local,o=grid '(GlueSiteUniqueID=INFN*)' | grep "#" 
ldapsearch -x -H ldap://egee-bdii.cnaf.infn.it:2170 -b mds-vo-name=local,o=grid
ldapsearch -x -H ldap://grid-bdii.pr.infn.it:2170 -b mds-vo-name=local,o=grid
ldapsearch -LLx -p 2170 -h cream-ce.pr.infn.it   -b o=grid
ldapsearch -LLx -p 2170 -h cream-ce.pr.infn.it   -b o=grid  | grep GlueCEStateWaitingJobs
ldapsearch -x -H ldap://egee-bdii.cnaf.infn.it:2170 -b mds-vo-name=local,o=grid 'GlueHostApplicationSoftwareRunTImeEnvironment=*MPI*' GlueHostApplicationSoftwareRunTimeEnvironment
ldapsearch -x -H ldap://egee-bdii.cnaf.infn.it:2170 -b mds-vo-name=local,o=grid 'GlueCEUniqueID=*infn*' GlueCEImplementationVersion
ldapsearch -x -H ldap://egee-bdii.cnaf.infn.it:2170 -b mds-vo-name=local,o=grid 'GlueHostApplicationSoftwareRunTImeEnvironment=MPI-START' GlueHostApplicationSoftwareRunTimeEnvironment | egrep 'MPI|#'

Selezione di un WMS per ILDG

UI> lcg-infosites --vo ildg wms
https://grid-wms1.desy.de:7443/glite_wms_wmproxy_server
https://grid-wms2.desy.de:7443/glite_wms_wmproxy_server
https://grid-wms5.desy.de:7443/glite_wms_wmproxy_server

glite-wms-job-list-match -a -c ../ildg_wms.conf test-ce.jdl
glite-wms-job-submit -a -o XX -c ../ildg_wms.conf test-ce.jdl
 glite-wms-job-status     -i XX


UI> less ildg_wms.conf

[
  WmsClient = [
      virtualorganisation = "infngrid";
      requirements = other.GlueCEStateStatus == "Production";
      MyProxyServer = "myproxy.cnaf.infn.it";
      WMProxyEndpoints = {
          "https://grid-wms1.desy.de:7443/glite_wms_wmproxy_server
"
      };
      ListenerStorage = "$HOME";
      ErrorStorage = "$HOME";
      ShallowRetryCount = 10;
      AllowZippedISB = true;
      PerusalFileEnable = false;
      rank =- other.GlueCEStateEstimatedResponseTime;
      OutputStorage = "$HOME";
      RetryCount = 1;
  ];
]

sarebbe una copia del file che si trova ad esempio in: /opt/glite/etc/dteam/glite_wms.conf (è quello che la UI usa di default quando non specifichi niente)

/var/www/html/dokuwiki/data/pages/grid/user.txt · Ultima modifica: Y/m/d H:i da