Difference between revisions of "¿Cómo correr trabajos?"
Line 61: | Line 61: | ||
</div> | </div> | ||
</div> | </div> | ||
− | |||
− | |||
<div class="panel-body"> | <div class="panel-body"> | ||
<div class="col-md-14"> | <div class="col-md-14"> | ||
Line 69: | Line 67: | ||
<h3 class="panel-title">¿Cómo Ejecutar Trabajos Paralelos con OpenMPI? (Memoria Distribuida)</h3> | <h3 class="panel-title">¿Cómo Ejecutar Trabajos Paralelos con OpenMPI? (Memoria Distribuida)</h3> | ||
</div> | </div> | ||
− | <div class="panel-body">Para ejecutar programas paralelos con OpenMPI edite un script shell con el siguiente contenido: | + | <div class="panel-body">Para ejecutar programas paralelos con OpenMPI edite un script shell con el siguiente contenido: {{File|mpi.sh| |
− | |||
<pre>#!/bin/bash | <pre>#!/bin/bash | ||
− | #echo $SLURM_NODELIST | sort | uniq | + | #echo $SLURM_NODELIST | sort | uniq > nodos |
mpirun --map-by node -mca btl ^openib -np 20 ./programaMPIejecutable | mpirun --map-by node -mca btl ^openib -np 20 ./programaMPIejecutable | ||
</pre> | </pre> | ||
− | }} | + | }} Descomente la línea '''#echo $SLURM_NODELIST | sort | uniq > nodos''' si desea conocer los nodos asignados a la tarea. La opción '''--map-by node''' balancea el número de procesos de MPI en todos los nodos solicitados. La opción '''-mca btl ^openib''' obligan el uso de la red de alta velocidad infiniband. La opción '''-np 20''' indica que se crearán 20 procesos de MPI, puede cambiar este valor de acuerdo a sus necesidades. Finalmente se especifica el programa ejecutable ('''programaMPIejecutable'''). Recuerde que los nodos de guane tienen capacidad de 16 y 24 hilos. Luego, ejecute siguiente comando: |
− | Descomente la línea '''#echo $SLURM_NODELIST | sort | uniq | ||
− | |||
− | |||
− | + | {{Command|<nowiki>.sbatch --partition=all --nodes=2 --ntasks-per-node=10 .//mpi.sh </nowiki>}} | |
− | |||
− | |||
− | Finalmente, la | + | <p>Este comando ejecuta el script '''./mpi.sh''' en el conjunto de los nodos del cluster. seleccionados con la opción '''--nodes=2'''. La opción '''--partition=all''' indica que los nodos necesrios para ejecutar el trabajo se seleccionarán de todo el conjunto de nodos del cluster. Guane cuenta con 5 nodos de 8 cores doble hebra (16 hilos de ejecución) y el resto de 12 cores doble hebra (24 hilos de ejecución). Así, usted puede seleccionar las siguientes particiones: *manycores16 *manycores24 *all Finalmente, la opción '''--ntasks-per-node=10''' indica que se ejecutarán 10 procesos por nodo.</p> |
</div> | </div> | ||
</div> | </div> | ||
</div> | </div> | ||
</div> | </div> | ||
− | |||
<div class="panel-body"> | <div class="panel-body"> | ||
<div class="col-md-14"> | <div class="col-md-14"> | ||
<div class="panel panel-neutral-white-border"> | <div class="panel panel-neutral-white-border"> | ||
<div class="panel-heading"> | <div class="panel-heading"> | ||
− | <h3 class="panel-title">¿Cómo Eliminar un Trabajo? </h3> | + | <h3 class="panel-title">¿Cómo Eliminar un Trabajo?</h3> |
</div> | </div> | ||
− | <div class="panel-body"> | + | <div class="panel-body">Ejecute el siguiente comando: {{Command|scancel ID }} |
− | Ejecute el siguiente comando: | ||
− | {{Command|scancel ID }} | ||
<p>Donde '''ID''' es el identificador del trabajo. Este se puede visualizar con el comando squeue.</p> | <p>Donde '''ID''' es el identificador del trabajo. Este se puede visualizar con el comando squeue.</p> | ||
</div> | </div> | ||
Line 104: | Line 93: | ||
</div> | </div> | ||
</div> | </div> | ||
− | |||
<div class="panel-body"> | <div class="panel-body"> | ||
<div class="col-md-14"> | <div class="col-md-14"> | ||
<div class="panel panel-neutral-white-border"> | <div class="panel panel-neutral-white-border"> | ||
<div class="panel-heading"> | <div class="panel-heading"> | ||
− | <h3 class="panel-title">¿Cómo Ver la Cola de Trabajos? </h3> | + | <h3 class="panel-title">¿Cómo Ver la Cola de Trabajos?</h3> |
</div> | </div> | ||
− | <div class="panel-body"> | + | <div class="panel-body">Ejecute el siguiente comando: {{Command|squeue }} |
− | Ejecute el siguiente comando: | + | <p>Este comando muestra las tareas que se encuentran en la cola. La primera columna muestra el identificador del trabajo. Cada tarea puede tener un estado diferente: *'''PD''' Pendiente o en espera *'''R''' En ejecución *'''CD'''El trabajo se ha completado en todos los nodos Para más información ejecute el comando {{Command|man squeue }}</p> |
− | {{Command|squeue }} | ||
− | <p>Este comando muestra las tareas que se encuentran en la cola. La primera columna muestra el identificador del trabajo. Cada tarea puede tener un estado diferente: | ||
− | *'''PD''' Pendiente o en espera | ||
− | *'''R''' En | ||
− | *'''CD'''El trabajo se ha completado en todos los nodos | ||
− | |||
− | Para | ||
− | |||
− | </p> | ||
</div> | </div> | ||
</div> | </div> | ||
</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"> |
Revision as of 15:25, 11 August 2015
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?
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.
¿Cómo Ejecutar Trabajos Seriales Usando un Script Shell?
Este comando ejecuta ./script.sh en alguno de los nodos del cluster. .
¿Cómo Ejecutar Trabajos Paralelos con OpenMP? (Memoria Compartida)
#!/bin/bash #export OMP_NUM_THREADS=`grep processor /proc/cpuinfo | wc -l` export OMP_NUM_THREADS=4 ./programa_ejecutable > salida
Este comando ejecuta el script ./openmp.sh en alguno de los nodos del cluster.
¿Cómo Ejecutar Trabajos Paralelos con OpenMPI? (Memoria Distribuida)
#!/bin/bash #echo $SLURM_NODELIST | sort | uniq > nodos mpirun --map-by node -mca btl ^openib -np 20 ./programaMPIejecutable
Este comando ejecuta el script ./mpi.sh en el conjunto de los nodos del cluster. seleccionados con la opción --nodes=2. La opción --partition=all indica que los nodos necesrios para ejecutar el trabajo se seleccionarán de todo el conjunto de nodos del cluster. Guane cuenta con 5 nodos de 8 cores doble hebra (16 hilos de ejecución) y el resto de 12 cores doble hebra (24 hilos de ejecución). Así, usted puede seleccionar las siguientes particiones: *manycores16 *manycores24 *all Finalmente, la opción --ntasks-per-node=10 indica que se ejecutarán 10 procesos por nodo.
¿Cómo Eliminar un Trabajo?
Donde ID es el identificador del trabajo. Este se puede visualizar con el comando squeue.
¿Cómo Ver la Cola de Trabajos?
Este comando muestra las tareas que se encuentran en la cola. La primera columna muestra el identificador del trabajo. Cada tarea puede tener un estado diferente: *PD Pendiente o en espera *R En ejecución *CDEl trabajo se ha completado en todos los nodos Para más información ejecute el comando
Ejecutar Programas Utilizando OAR
¿Cómo Ejecutar Trabajos Seriales?
1) Editar un script shell, de nombre serial_job.sh, con el siguiente contenido
#!/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
¿Cómo Ejecutar Trabajos Paralelos MPI?
1) Editar un script shell, de nombre parallel_job.sh, con el siguiente contenido
#/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
La opción -l nodes=2 indica que el trabajo se ejecutará en 2 nodos del cluster. Usted puede cambiar este valor a conveniencia.