Diferencia entre revisiones de «Enviando un trabajo al cluster»

De Cluster Mazinger - Ingeniería UC
Saltar a: navegación, buscar
(Página creada con «A continuación se explicará la forma de enviar trabajos al cluster. == Explicación de la forma de trabajo == Cada usuario ingresará a "BigZ", servidor de login, el cu...»)
 
(Módulos de funciones)
 
Línea 3: Línea 3:
 
== Explicación de la forma de trabajo ==
 
== Explicación de la forma de trabajo ==
  
Cada usuario ingresará a "BigZ", servidor de login, el cual procesará todas las peticiones que le sean enviadas. Este servidor '''no ejecuta ningún tipo de cómputo (compilación, cálculo en paralelo, etc)''', está dedicado para que los usuarios envíen sus trabajos y gestionar su directorio de archivos, además de gestionar las colas de trabajo.  
+
Cada usuario ingresará a "Ztest", servidor de login, el cual procesará todas las peticiones que le sean enviadas. Este servidor '''no esta pensado para ejecutar trabajos de alto nivel de cómputo''', sino que está dedicado para que los usuarios envíen sus trabajos y puedan probar su código antes de enviarlo al cluster.  
  
Al enviar una petición, este servidor la distribuye en alguno de los nodos para que sea resuelta. Posteriormente se podrá ver los resultados dependiendo del tipo de salida que haya definido el usuario.
+
Al enviar un trabajo, este es recibido por el servidor BigZ, el cual se encarga de distribuir el trabajo en los nodos para que sea resuelto. Posteriormente se podrá ver los resultados dependiendo del tipo de salida que haya definido el usuario.
  
 
== Colas de trabajo ==
 
== Colas de trabajo ==
Línea 16: Línea 16:
  
 
Se le pide a los usuarios que envíen su trabajo a la cola correcta, esto permitirá obtener los resultados de forma más rápida.
 
Se le pide a los usuarios que envíen su trabajo a la cola correcta, esto permitirá obtener los resultados de forma más rápida.
 +
 +
== Módulos de funciones ==
 +
 +
Las distintas herramientas han sido modularizadas con el fin de facilitar el uso de las herramientas, la forma de utilizar un módulo es:
 +
 +
<pre>
 +
module load <nombre modulo>
 +
</pre>
 +
 +
Los módulos disponibles son:
 +
 +
<pre>
 +
anaconda/1.8.0    fftw/2.1.5        gurobi/5.6.0
 +
boost/1.55.0      fftw/3.3.3        mpich2/1.5/gcc
 +
canopy/1.1        gnu/4.8.2        openmpi/1.6.5/gcc
 +
 +
</pre>
 +
 +
Todos aquellos módulos que terminan en gcc fueron compilados con los compiladores libres, aquellos que terminan en intel fueron compilados con los compiladores de intel. Los compiladores de intel pueden ser cargados mediante su módulo intel/xe2013.
 +
 +
== Enviar un trabajo ==
 +
 +
El comando para enviar un trabajo es '''qsub''', el cual permite colocar un trabajo en una cola. Se recomienda crear un script que permita definir ciertos parámetros para el trabajo. Posteriormente se podrá enviar el trabajo como:
 +
 +
<pre>
 +
qsub job1.pbs
 +
</pre>
 +
 +
El archivo tiene esta forma
 +
 +
<pre>
 +
#------------------------------------------------------------------------
 +
# Asigna un nombre al trabajo
 +
#------------------------------------------------------------------------
 +
 +
#PBS -N <NOMBRE_TRABAJO>
 +
 +
#------------------------------------------------------------------------
 +
# Asigna el trabajo a una cola
 +
#------------------------------------------------------------------------
 +
 +
#PBS -q <NOMBRE_COLA>
 +
 +
#------------------------------------------------------------------------
 +
# Configura la cantidad de nodos a utilizar.
 +
# nodes indica la cantidad de maquinas y ppn la cantidad de procesos
 +
# por nodo.
 +
# Si queremos solicitar 3 procesos con 1 por nodo.
 +
# EJ. -l nodes=3
 +
# Si queremos solicitar 8 procesos con 2 procesos por nodo.
 +
# EJ. -l nodes=4:ppn=2
 +
# También se pueden solicitar procesadores como
 +
# EJ. -l ncpus=12
 +
# O memoria
 +
# EJ. -l mem=12
 +
#------------------------------------------------------------------------
 +
 +
#PBS -l nodes=<NODOS>:ppn=<PROCESADORES POR NODO>
 +
 +
#------------------------------------------------------------------------
 +
# Tiempo maximo de ejecucion del trabajo (opcional)
 +
#------------------------------------------------------------------------
 +
 +
#PBS -l walltime=2:00:00
 +
 +
#------------------------------------------------------------------------
 +
#  Ejecuta el trabajo
 +
#------------------------------------------------------------------------
 +
 +
module load intel/xe2013
 +
ifort comm_fortran.f
 +
 +
</pre>
 +
 +
== Monitoreo de trabajos ==
 +
 +
Para monitorear los trabajos se puede utilizar el comando '''qstat''', el cual produce una salida similar a esta:
 +
 +
<pre>
 +
Job ID                    Name            User            Time Use S Queue
 +
------------------------- ---------------- --------------- -------- - -----
 +
15.bigz                    STDIN            test                  0 R test
 +
</pre>
 +
 +
Aquí se podrán ver todos los trabajos enviados por el usuario y su estado (bajo la letra S), los cuales pueden ser: '''Q'''ueued, '''R'''unning, '''C'''omplete, '''E'''rror.
 +
 +
 +
== Eliminar trabajos ==
 +
 +
Si por algún motivo desea eliminar un trabajo, puede realizarlo con el comando '''qdel'''. Por ejemplo para eliminar el trabajo que aparece en el ejemplo anterior se debe ejecutar:
 +
 +
<pre>
 +
qdel 15
 +
</pre>
 +
 +
== Salida de trabajo ==
 +
 +
Los archivos generados se crearán en el directorio donde fue ejecutado el comando. Además, se generan 2 archivos: un con la salida en consola de la ejecución y el otro con los errores ocurridos.

Última revisión de 11:45 20 ene 2014