Difference between revisions of "¿Cómo correr trabajos?"

From Supercomputación y Cálculo Científico UIS
Line 12: Line 12:
 
</div>
 
</div>
 
</div>
 
</div>
 +
 +
 
<div class="col-md-14">
 
<div class="col-md-14">
 
<div class="panel panel-success-white">
 
<div class="panel panel-success-white">
Line 23: Line 25:
 
<h3 class="panel-title">&iquest;C&oacute;mo Ejecutar Trabajos Seriales?</h3>
 
<h3 class="panel-title">&iquest;C&oacute;mo Ejecutar Trabajos Seriales?</h3>
 
</div>
 
</div>
 
 
<div class="panel-body">
 
<div class="panel-body">
{{Command|<nowiki>srun ./programa &> salida &</nowiki>}}
+
Para ejecutar programas seriales pasivos, es decir, que no requieran de alguna entrada de parámetros de forma interactiva, ejecute un comando como el que sigue:
 
 
<p>
 
Este comando ejecuta '''./programa''' en alguno de los nodos del cluster. El argumento '''&> salida''' indica que tanto la salida como los errores se almacenan en un archivo de nombre '''salida''' que se creará en el mismo directorio desde donde se ejecutó el programa. Finalmente, el últmo caracter '''&''' es para liberar la cónsola desde donde se lanza la ejecución del programa.
 
</p>
 
</div>
 
  
 +
{{Command|<nowiki>srun ./programa &amp;&gt; salida &amp;</nowiki>}}
  
 +
<p>Este comando ejecuta '''./programa''' en alguno de los nodos del cluster. El argumento '''&amp;&gt; salida''' indica que tanto la salida como los errores se almacenan en un archivo de nombre '''salida''' que se crear&aacute; en el mismo directorio desde donde se ejecut&oacute; el programa. Finalmente, el &uacute;ltmo caracter '''&amp;''' es para liberar la c&oacute;nsola desde donde se lanza la ejecuci&oacute;n del programa.</p>
 
</div>
 
</div>
 
</div>
 
</div>
Line 38: Line 36:
 
</div>
 
</div>
 
</div>
 
</div>
 +
 +
 +
 
<div class="col-md-14">
 
<div class="col-md-14">
 
<div class="panel panel-success-white">
 
<div class="panel panel-success-white">
Line 78: Line 79:
 
<p>Las primera l&iacute;nea indica que el archivo es un script shell. La segunda l&iacute;nea sirve para asignar un nombre al trabajo en el sistema de gesti&oacute;n de tareas. La siguiente  l&iacute;nea est&aacute; comentada (comienza con #), si la descomenta generar&aacute; un archivo de nobre '''nodos''' que tendr&aacute; los nodos que le fueron asignados al trabajo. Finalmente, la &uacute;ltima l&iacute;nea ejecutar&aacute; el programa paralelo MPI. la opci&oacute;n '''-map-by node''' distribuye equitativamente los procesos entre los nodos asignados. La opci&oacute;n '''-machinefile $OAR_FILE_NODES''' indica en cuales nodos se ejecutar&aacute; el programa paralelo; estos son seleccionados autom&aacute;ticamente por OAR.. La opci&oacute;n '''-np 96''' indica cuantos procesos se generar&aacute;n (usted lo puede cambiar seg&uacute;n sus necesidades) y por &uacute;ltimo, '''./programaParaleloEjecutable''' es el programa que se desea ejecutar.</p>
 
<p>Las primera l&iacute;nea indica que el archivo es un script shell. La segunda l&iacute;nea sirve para asignar un nombre al trabajo en el sistema de gesti&oacute;n de tareas. La siguiente  l&iacute;nea est&aacute; comentada (comienza con #), si la descomenta generar&aacute; un archivo de nobre '''nodos''' que tendr&aacute; los nodos que le fueron asignados al trabajo. Finalmente, la &uacute;ltima l&iacute;nea ejecutar&aacute; el programa paralelo MPI. la opci&oacute;n '''-map-by node''' distribuye equitativamente los procesos entre los nodos asignados. La opci&oacute;n '''-machinefile $OAR_FILE_NODES''' indica en cuales nodos se ejecutar&aacute; el programa paralelo; estos son seleccionados autom&aacute;ticamente por OAR.. La opci&oacute;n '''-np 96''' indica cuantos procesos se generar&aacute;n (usted lo puede cambiar seg&uacute;n sus necesidades) y por &uacute;ltimo, '''./programaParaleloEjecutable''' es el programa que se desea ejecutar.</p>
 
<p>2) Luego, ub&iacute;quese en el mismo directorio donde cre&oacute; el scrip shell anterior y ejecute el siguiente comando</p>
 
<p>2) Luego, ub&iacute;quese en el mismo directorio donde cre&oacute; el scrip shell anterior y ejecute el siguiente comando</p>
{{Command|<nowiki>oarsub -l nodes=2 ./paralle_job.sh </nowiki>}}
+
{{Command|<nowiki>oarsub -l nodes=2 ./paralle_job.sh</nowiki>}}
 
<p>La opci&oacute;n '''-l nodes=2''' indica que el trabajo se ejecutar&aacute; en 2 nodos del cluster. Usted puede cambiar este valor a conveniencia.</p>
 
<p>La opci&oacute;n '''-l nodes=2''' indica que el trabajo se ejecutar&aacute; en 2 nodos del cluster. Usted puede cambiar este valor a conveniencia.</p>
 
</div>
 
</div>

Revision as of 20:05, 10 August 2015

Logo_sc33.png

 

 

MANEJADORES DE TAREAS

Esta sección describe el uso de los manejadores de tareas utilizados en el SC3, los cuales constituyen la herramienta obligatoria paa la ejecución de trabajos


Ejecución de Programas Utilizando Slurm

¿Cómo Ejecutar Trabajos Seriales?

Para ejecutar programas seriales pasivos, es decir, que no requieran de alguna entrada de parámetros de forma interactiva, ejecute un comando como el que sigue:

srun ./programa &> salida &


Este comando ejecuta ./programa en alguno de los nodos del cluster. El argumento &> salida indica que tanto la salida como los errores se almacenan en un archivo de nombre salida que se creará en el mismo directorio desde donde se ejecutó el programa. Finalmente, el últmo caracter & es para liberar la cónsola desde donde se lanza la ejecución del programa.


Ejecutar Programas Utilizando OAR

¿Cómo Ejecutar Trabajos Seriales?

1) Editar un script shell, de nombre serial_job.sh, con el siguiente contenido

File: serial_job.sh
#!/bin/bash
#OAR -n nombreDelTrabajo
/camino/del/programa

Las primera línea indica que el archivo es un script shell. La segunda línea sirve para asignar un nombre al trabajo en el sistema de gestión de tareas. La última línea es el camino absoluto del programa que se desea ejecutar.

2) Luego, ubíquese en el mismo directorio donde creó el scrip shell anterior y ejecute el siguiente comando

oarsub ./serial_job.sh

¿Cómo Ejecutar Trabajos Paralelos MPI?

1) Editar un script shell, de nombre parallel_job.sh, con el siguiente contenido

File: parallel_job.sh
#/bin/bash
#OAR -n mpitest
# cat $OAR_FILE_NODES | sort | uniq > nodos #Si descomenta esta línea podrá conocer cuales nodos le fueron asignados al trabajo
mpirun -map-by node  -mca btl ^openib -machinefile $OAR_FILE_NODES -np 96 ./programaParaleloEjecutable

Las primera línea indica que el archivo es un script shell. La segunda línea sirve para asignar un nombre al trabajo en el sistema de gestión de tareas. La siguiente línea está comentada (comienza con #), si la descomenta generará un archivo de nobre nodos que tendrá los nodos que le fueron asignados al trabajo. Finalmente, la última línea ejecutará el programa paralelo MPI. la opción -map-by node distribuye equitativamente los procesos entre los nodos asignados. La opción -machinefile $OAR_FILE_NODES indica en cuales nodos se ejecutará el programa paralelo; estos son seleccionados automáticamente por OAR.. La opción -np 96 indica cuantos procesos se generarán (usted lo puede cambiar según sus necesidades) y por último, ./programaParaleloEjecutable es el programa que se desea ejecutar.

2) Luego, ubíquese en el mismo directorio donde creó el scrip shell anterior y ejecute el siguiente comando

oarsub -l nodes=2 ./paralle_job.sh

La opción -l nodes=2 indica que el trabajo se ejecutará en 2 nodos del cluster. Usted puede cambiar este valor a conveniencia.