r24 - 01 Apr 2011 - 13:11:33 - CarlosEscobarYou are here: TWiki >  ECiencia Web  >  GridCSICMain > UsarGRIDCSIC > EjemplosGRIDCSIC

Ejemplos de cómo usar los recusos GRID-CSIC con gLite

Ejemplos gLite

Una vez estes conectado/a a un UI (ver UI disponibles) y hayas cargado tu certificado digital (más información) ya estamos listos para probar algunos ejemplos.

Trabajando con ROOT

Vamos a usar un sencillo programa en ROOT para ver cómo se mandan este tipo de trabajos al GRID. Todos los archivos necesarios para seguir este tutorial los puedes encontrar en root.tar.gz. Este ejemplo se basa en la macro gaus.cc, que genera valores aleatorios siguiendo una distribución gausiana, la almacena en un histograma y luego se guarda en el fichero gaus.eps.

Para hacer que dicha macro corra en algúno de los WNs de los CE disponibles, hay que preparar un fichero JDL como el siguiente (gaus.jdl):

Type = "job";
JobType = "normal";
Executable = "gaus.sh";
StdOutput = "jobGaus.out";
StdError = "jobGaus.err";
InputSandbox = {
"gaus.sh",
"gaus.cc"
};
OutputSandbox = {
"jobGaus.err",
"jobGaus.out",
"gaus.gif"
};
Rank = ;
VirtualOrganisation = "ific";

Este fichero JDL, ejecutará el script gaus.sh mediante la opción "Executable", el cual prepara las variables de entorno y ejecuta todos los programas y comandos requeridos. En el fichero JDL se especifica mediante la opción "InputSandbox" los archivos necesarios para ejecutar con éxito el trabajo. Estos ficheros se copiaran en uno de los WNs del CE escogido mediante la opción "Requirements" y finalmente guardará los archivos especificados bajo la opción "OutputSandbox".

Antes de mandar los trabajos a los WN's es una buena costumbre comprobar en el User Interface que todo funciona correctamente. Para ello simplemente tienes que ejecutar el script que vas a mandar:

 source gaus.sh

Para enviar tu trabajo hay que seguir unos pasos muy sencillos: ver pasos

Por último, comentar que en el script gaus.sh se ha añadido la opción de copiar los resultados (en este caso, gaus.eps) en lustre. Desde los WNs lustre está montado como "sólo lectura", por lo que para poder copiar cosas en él se tendrán que usar las herramientas "lcg". De este modo mediante el siguiente comando es posible copiar tus resultados en el espacio (temporal) que proporciona el SE del GRID-CSIC:

  export LFC_HOST=lfc02.ific.uv.es
  export LFC_HOME=/grid/ific/
  file=/lustre/ific.uv.es/$LFC_HOME/scratch/users/$USER/tutorials/root/gaus/gaus.eps  
  lcg-cp -v --vo ific file://`pwd`/gaus.eps srm://srmv2.ific.uv.es/$file

Hay que saber que una vez se escribe un fichero en lustre, este comando no lo sobreescribirá si intentamos copiarlo de nuevo en el mismo sitio. Por ese motivo en el script gaus.sh se da un ejemplo de cómo se borrar el fichero (si existe) antes de copiarlo. Los comandos son:

  lcg-del --vo ific -v -l srm://srmv2.ific.uv.es$file

Más información en: Gestión de datos

Trabajando con Geant4

Veamos un ejemplo práctico de cómo mandar trabajos con Geant4 al GRID. Todos los archivos ncesarios para seguir este tutorial los puedes encontrar en geant4.tar.gz. Este sencillo ejemplo simula el paso de muones de 180 GeV por tres capas de detectores de silicio colocados de manera trasnversal y secuencial al paso de las partículas generadas. Se ha incluido también la simulación de un campo magnético para curvar las trayectorias de las partículas y poder medir así el momento en el tracking. El programa genera un archivo ROOT, que contiene los resultados de la simulación y un archivo WRL con la geometría y 200 trazas.

Para hacer que dicho script corra en algúno de los WN de los CE disponibles, existe un fichero JDL como el siguiente (geant4_test.jdl):

Type = "job";
JobType = "normal";
Executable = "geant4_test.sh";
StdOutput = "jobGEANT4.out";
StdError = "jobGEANT4.err";
InputSandbox = {
"geant4_test.sh",
"geant4_test.tar.gz"
};
OutputSandbox = {
"jobGEANT4.err",
"jobGEANT4.out" 
};
Requirements = other.GlueCEUniqueId == "ce03.ific.uv.es:2119/jobmanager-lcgpbs-short"; 
VirtualOrganisation = "ific";

Este fichero JDL, ejecutará el script geant4_test.sh mediante la opción "Executable", el cual prepara las variables de entorno de Geant4 y ROOT y ejecuta la simulación y el análisis. En el fichero JDL se especifica mediante la opción "InputSandbox" los archivos necesarios para ejecutar con éxito el trabajo. Estos ficheros se copiaran en uno de los WNs del CE escogido mediante la opción "Requirements" y finalmente guardará los archivos especificados bajo la opción "OutputSandbox". En este ejemplo, en vez de traernos los resultados de la simulación y del análisis vía "OutputSandbox", lo que se hace es copiarlos directamente al espacio "scratch" de lustre (es decir, al SE del GRID-CSIC en el IFIC), en el que cada usuario puede escribir. Esto se hace de forma similar a como se hace en el ejemplo de ROOT.

Antes de mandar los trabajos a los WN's es una buena costumbre comprobar en el User Interface que todo funciona correctamente. Para ello simplemente tienes que ejecutar el script que vas a mandar:

 source geant4_test.sh

Para enviar tu trabajo hay que seguir unos pasos muy sencillos: ver pasos

Trabajando con PYTHIA

Para ilustrar cómo usar PYTHIA à la GRID usaremos un par de ejemplos (main01 y main61) que vienen con el propio programa. Descargamos el siguiente archivo pythia_test.tar.gz que contiene estos dos ejemplos y un Makefile para compilarlos. Preparamos el archivo JDL para lanzar los trabajos de ejemplo. El archivo es similar al fichero JDL que hemos preparado para el caso de querer trabajar con ROOT (pythia_test.jdl):

Type = "job";
JobType = "normal";
Executable = "pythia_test.sh";
StdOutput = "jobGaus.out";
StdError = "jobGaus.err";
InputSandbox = {
"pythia_test.sh",
"pythia_test.tar.gz"
};
OutputSandbox = {
"jobPYTHIA.err",
"jobPYTHIA.out"
};
Requirements = other.GlueCEUniqueId == "ce03.ific.uv.es:2119/jobmanager-lcgpbs-short";
VirtualOrganisation = "ific";

Este fichero JDL, ejecutará el script pythia_test.sh mediante la opción "Executable", el cual prepara las variables de entorno, descomprime el archivo donde están los ficheros necesarios, los compilará y finalmente los ejecutará. En el fichero JDL se especifica mediante la opción "InputSandbox" los ficheros que se copiaran en uno de los WNs del CE escogido mediante la opción "Requirements". Finalmente guardará los archivos especificados bajo la opción "OutputSandbox" (en nuestro caso, únicamente salida por pantalla).

Resumiendo, en un mismo directorio tendremos los siguientes archivos: pythia_test.jdl, pythia_test.tar.gz y pythia_test.sh

Antes de mandar los trabajos a los WN's es una buena costumbre comprobar en el User Interface que todo funciona correctamente. Para ello simplemente tienes que ejecutar el script que vas a mandar:

 source pythia_test.sh

Para enviar tu trabajo hay que seguir unos pasos muy sencillos: ver pasos

Trabajando con Mathematica

Trabajando con Calibob

Vamos lanzar un trabajo al GRID que corrar toda la cadena de simulación del software Calibob. Todos los archivos ncesarios para seguir este tutorial los puedes encontrar en calibob.tar.gz.

Para ejecutar Calibob en algúno de los WNs de los CE disponibles, hay que preparar un fichero JDL como el siguiente (calibob_test.jdl):

Type = "job";
JobType = "normal";
Executable = "calibob_test.sh";
StdOutput = "jobCalibob.out";
StdError = "jobCalibob.err";
InputSandbox = {
"calibob_test.sh"
};
OutputSandbox = {
"jobCalibob.err",
"jobCalibob.out"
};
Requirements = other.GlueCEUniqueId == "ce03.ific.uv.es:2119/jobmanager-lcgpbs-long";
VirtualOrganisation = "ific";

Este fichero JDL, ejecutará el script calibob_test.sh mediante la opción "Executable", el cual prepara las variables de entorno y ejecuta los comandos necesarios para ejecutar este software de simulación. En el fichero JDL se especifica mediante la opción "InputSandbox" que el script calibob_test.sh se copiará a uno de los WNs del CE escogido, mediante la opción "Requirements", para ser ejecutado y finalmente podrá recuperar los archivos especificados bajo la opción "OutputSandbox".

Antes de mandar los trabajos a los WN's es una buena costumbre comprobar en el User Interface que todo funciona correctamente. Para ello simplemente tienes que ejecutar el script que vas a mandar:

 source calibob_test.sh

Para enviar tu trabajo hay que seguir unos pasos muy sencillos: ver pasos

Por último, comentar que los resultados de este test de simulación ocupan aproximadamente 1 GB por lo que no es buena idea incluir estos resultados en el "OutputSandbox" (que es para archivos de menos de 10 MB). De modo que estos resultados son copiados directamente a lustre (scratch temporal). Recordar que desde los WNs lustre está montado como "sólo lectura", por lo que para poder copiar cosas en él se tendrán que usar las herramientas "lcg". Desde cualquier UI es posible acceder a estos resultados, pudiendo incluso copiarlos a algún otro sitio mediante scp.

Más información en: Gestión de datos

Enviar los trabajos

Para mandar, consultar y finalmente obtener el resultado una vez el trabajo haya finalizado, se deberan usar los siguientes comandos:

 glite-wms-job-delegate-proxy -d $USER
 glite-wms-job-submit -d $USER -o jobId mytest.jdl
 glite-wms-job-status -i jobId
 glite-wms-job-output -i jobId

Donde cambiaremos mytest.jdl por nuestro script JDL. Una vez finalizado el trabajo se puede comprobar que todo se ha ejecutado correctamente consultando los ficheros mytest.out y mytest.err (asumiendo que tu JDL contiene StdOutput = "mytest.out"; y StdError = "mytest.err"; y que dichos archivos se solicitan a través del "OutputSandbox") que se generan automáticamente.

Más información aquí

-- CarlosEscobar - 03 Feb 2010

toggleopenShow attachmentstogglecloseHide attachments
Topic attachments
I Attachment Action Size Date Who Comment
elsejdl pythia_test.jdl manage 0.3 K 15 Mar 2010 - 15:03 CarlosEscobar  
shsh pythia_test.sh manage 0.9 K 15 Mar 2010 - 15:03 CarlosEscobar  
elsegz pythia_test.tar.gz manage 4.0 K 15 Mar 2010 - 15:03 CarlosEscobar  
elsegz gaus.tar.gz manage 1.2 K 07 Apr 2010 - 13:41 CarlosEscobar  
elsegz geant4.tar.gz manage 21.3 K 14 Apr 2010 - 13:27 CarlosEscobar  
elsegz calibob.tar.gz manage 1.4 K 06 Oct 2010 - 09:28 CarlosEscobar  
elsegz root.tar.gz manage 1.7 K 01 Apr 2011 - 13:09 CarlosEscobar  
Edit | WYSIWYG | Attach | PDF | Raw View | Backlinks: Web, All Webs | History: r24 < r23 < r22 < r21 < r20 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback