r20 - 03 Nov 2010 - 15:26:05 - CarlosEscobarYou are here: TWiki >  ECiencia Web  >  GridCSICMain > UsarGRIDCSIC

Cómo usar los recursos del GRID-CSIC

Una vez dispongas del certificado digital personal y pertenezcas a una Virtual Organization (VO) soportada por el GRID-CSIC podrás hacer uso de los recursos que ésta infraestructura te proporciona. En esta página vas a encontrar una serie de ejemplos a modo de tutorial para poder empezar el GRID-CSIC. Además, aprovechando este tutorial, se introduce toda la terminología GRID.

Para poder mandar trabajos a los Worker Nodes (WN) del GRID-CSIC desde el IFIC, tienes disponibles varios User Interfaces a los que es posible acceder mediante ssh. La lista de UI disponibles está disponible aquí. Puedes encontrar más información sobre la infraestructura GRID-CSIC en el IFIC en la siguiente twiki.

Conocimientos preliminares

Job Description Language (JDL)

Los trabajos Grid se definen mediante unos scripts escritos en un lenguaje específico llamado Job Description Language (JDL). El lenguaje JDL está basado en el lenguaje classAd y su sintaxis consiste básicamente en declaraciones acabadas por punto y coma, tipo: attribute = value;

Este sencillo lenguaje es sensible a espacios en blanco y tabulaciones. Es importante tener en cuenta que no deben de aparecer ni espacios ni tabulaciones después del punto y coma (;). Las valores de los atributos se enmarcan entre comillas. Para incluir comillas en el valor de un atributo hay que usar \ (por ejemplo: Arguments = "\"run\" 10"). Lo mismo ocurre para caracteres especiales: \& (para &) o \\\& (para \&). Por último, las comillas simples (') no están permitidas. Los comentarios vienen precedidos por #, // o /* y */.

Atributos

Respecto a los atributos que podemos definir en nuestro JDL tenemos:

Atributo ¿Necesario? Significado Ejemplo
Executable Define el ejecutable Executable = "test.sh";
Arguments No Argumentos del ejecutable Arguments = "run 10";
StdOutput Define el fichero de salida StdOutput = "std.out";
StdError Define el fichero de errores StdError = "std.err";
StdInput No Define el fichero de entrada StdInput = "std.in";
InputSandbox No Archivos de entrada que se transferirán del UI al WN InputSandbox = {"test.sh","std.in"};
OutputSandbox No Archivos de salida que se transferirán del WN al UI OutputSandbox = {"std.out","std.err"};
Environment No Permite extender el entorno del sistema Environment = {"CMS_PATH=$HOME/cms","CMS_DB=$CMS_PATH/cmdb"};
Requirements No Permite imponer requerimientos al CE Requirements = other.GlueCEInfoLRMSType == "PBS";
Rank No Aplicar un peso a la hora de seleccionar CEs Rank = other.GlueCEStateFreeCPUs;
PerusalFileEnable No Habilita el seguimiento de los trabajos PerusalFileEnable = true;
PerusalTimeInterval No Especifica la frecuencia con la que los ficheros del seguimiento son copiados al WMS (en segundos) PerusalTimeInterval = 30;
VirtualOrganisation No Define la Organización Virtual (VO) VirtualOrganisation = "ific";

Comentarios

  • StdError
    • El fichero definido puede ser el mismo que el fichero definido en StdOutput.
  • InputSandbox
    • Se permiten wildcards (*).
    • Los archivos deberán estar en el directorio desde el cual se manda el trabajo.
    • Los permisos de ejecución no se preservan en los archivos del InputSandbox cuando son transferidos al WN. Dichos permisos deben de ser otorgados (con chmod +x =) al inicio del script especificado en el atributo Executable del JDL (el comando =chmod +x es llamado por defecto para todo comando/script especificado en el atributo Executable).
    • En el InputSandbox no pueden haber dos archivos con el mismo nombre (aunque estén en deferentes directorios) ya que al ser transferidos uno de los dos se reescribirá.
  • OutputSandbox
    • No se pueden especificar archivos con una ruta específica.
    • En el OutputSandbox no pueden haber dos archivos con el mismo nombre (aunque estén en deferentes directorios) ya que al ser transferidos uno de los dos se reescribirá.
    • En el IFIC, el tamaño de los ficheros declarados en el OutputSandbox se ha limitado a 50 MB. Si supera esto se hace un tail de los ficheros. Si son ficheros de logs de texto no tiene porqué haber problemas, ahora si son .zip seran inservibles.
De todas formas en estos números, el usuario ya debería meter los trabajos en un SE como vimos.

Ejemplo

A modo de ejemplo, el archivo JDL para decir "Hello World" sería:

Executable = "/bin/echo";
Arguments = "Hello World";
StdOutput = "stdout.log";
StdError = "stderr.log";
OutputSandbox = {"stdout.log","stderr.log"};

Carga del certificado y registro en una VO

Una vez conectado/a en un UI deberas cargar tu certificado y registrate en una VO (en el ejemplo la del ific, aunque puede usarse cualquier VO soportada), mediante el comando:

 voms-proxy-init -voms ific

Validez del proxy

Por defecto, el proxy tendrá una validez de 12 horas. Para ampliar a un máximo de 24 horas, se puede usar el comando:

 voms-proxy-init -voms ific -valid 24:00

Para aumentar aun más la validez del proxy (por defecto, 7 días), se debe de usar los siguientes comandos:

 voms-proxy-init -voms ific
 myproxy-init -d -n -s lcg2proxy.ific.uv.es

E incluir el atributo MyProxyServer="lcg2proxy.ific.uv.es" en el archivo JDL correspondiente.

Variables de entorno

Por último, puede que necesitemos configurar algunas variables de entorno (como por ejemplo el catálogo de datos):

 export LFC_HOST=lfc02.ific.uv.es
 export LFC_HOME=/grid/ific/

Middleware gLite

gLite es el middleware usado actualmente en el Grid Computing. Desarrollado por una colaboración internacional dentro del proyecto EGEE, gLite proporciona un sólido marco de trabajo para crear aplicaciones que exploten la computación y el almacenamiento distribuidos.

De este modo los comandos para enviar, recoger y consultar (entre otros) los trabajos à la Grid empiezan con glite-wms-job-*. Aquí se presentará un resumen de los comandos más relevantes e importantes pero si se quiere profundizar, lo mejor es acudir a la sección Workload Management section de la gLite User Guide.

Gestión de trabajos con gLite

Más información en la twiki: Gestión de trabajos

Gestión de datos con gLite

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

Ejemplos prácticos

-- CarlosEscobar - 05 Feb 2010

Edit | WYSIWYG | Attach | PDF | Raw View | Backlinks: Web, All Webs | History: r20 < r19 < r18 < r17 < r16 | 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