Difference between revisions of "¿Cómo correr trabajos?"
Line 9: | Line 9: | ||
<h4>MANEJADORES DE TAREAS</h4> | <h4>MANEJADORES DE TAREAS</h4> | ||
<p class="bs">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</p> | <p class="bs">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</p> | ||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
+ | <div class="col-md-14"> | ||
+ | <div class="panel panel-success-white"> | ||
+ | <div class="panel-heading"> | ||
+ | <h3 class="panel-title">Ejecución de Programas Utilizando Slurm</h3> | ||
+ | </div> | ||
+ | <div class="panel-body"> | ||
+ | <div class="col-md-14"> | ||
+ | <div class="panel panel-neutral-white-border"> | ||
+ | <div class="panel-heading"> | ||
+ | <h3 class="panel-title">¿Cómo Ejecutar Trabajos Seriales?</h3> | ||
+ | </div> | ||
+ | <div class="panel-body">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: {{Command|srun ./programa &> salida &}} | ||
+ | <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> | ||
+ | </div> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 24: | Line 42: | ||
<div class="panel-heading"> | <div class="panel-heading"> | ||
<h3 class="panel-title">¿Cómo Ejecutar Trabajos Seriales?</h3> | <h3 class="panel-title">¿Cómo Ejecutar Trabajos Seriales?</h3> | ||
+ | </div> | ||
+ | <div class="panel-body">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: {{Command|srun ./programa &> salida &}} | ||
+ | <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> | ||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
</div> | </div> | ||
<div class="panel-body"> | <div class="panel-body"> | ||
− | Para ejecutar programas seriales pasivos, | + | <div class="col-md-14"> |
− | + | <div class="panel panel-neutral-white-border"> | |
− | {{Command| | + | <div class="panel-heading"> |
− | + | <h3 class="panel-title">¿Cómo Ejecutar Trabajos Seriales Usando un Script Shell?</h3> | |
− | <p>Este comando ejecuta '''./ | + | </div> |
+ | <div class="panel-body">Para ejecutar programas seriales pasivos utilizando un script shell, que no requieran de alguna entrada de parámetros de forma interactiva, ejecute un comando como el que sigue: {{Command|sbatch ./script.sh }} | ||
+ | <p>Este comando ejecuta '''./script.sh''' en alguno de los nodos del cluster. .</p> | ||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
+ | <div class="panel-body"> | ||
+ | <div class="col-md-14"> | ||
+ | <div class="panel panel-neutral-white-border"> | ||
+ | <div class="panel-heading"> | ||
+ | <h3 class="panel-title">¿Cómo Ejecutar Trabajos Paralelos con OpenMP?</h3> | ||
</div> | </div> | ||
+ | <div class="panel-body">Para ejecutar programas paralelos con OpenMP (Memoria Compartida) edite un script shell con el siguiente contenido: {{File|openmp.sh| | ||
+ | <pre>#!/bin/bash | ||
+ | #!/bin/bash | ||
+ | #export OMP_NUM_THREADS=`grep processor /proc/cpuinfo | wc -l` | ||
+ | export OMP_NUM_THREADS=4 | ||
+ | ./programa_ejecutable > salida | ||
+ | </pre> | ||
+ | }} La línea '''export OMP_NUM_THREADS=4''' indica que se utilizarán 4 hilos de ejecución. El valor de esta variable debe fijarse según las necesidades y características de su programa ejecutable ('''programa_ejecutable'''). Recuerde que los nodos de guane tienen capacidad de 16 y 24 hilos. Si quiere utilizar la máxima capacidad de hilos de un nodo puede descomentar la segunda línea simplemente eliminando el caracter # y colocándolo al principio de la tercera línea. Luego, ejecute siguiente comando: {{Command|sbatch ./script.sh }} | ||
+ | <p>Este comando ejecuta el script '''./openmp.sh''' en alguno de los nodos del cluster.</p> | ||
</div> | </div> | ||
</div> | </div> | ||
</div> | </div> | ||
</div> | </div> | ||
+ | |||
Line 79: | Line 126: | ||
<p>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.</p> | <p>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.</p> | ||
<p>2) Luego, ubíquese en el mismo directorio donde creó el scrip shell anterior y ejecute el siguiente comando</p> | <p>2) Luego, ubíquese en el mismo directorio donde creó el scrip shell anterior y ejecute el siguiente comando</p> | ||
− | {{Command|<nowiki>oarsub -l nodes=2 ./ | + | {{Command|<nowiki>oarsub -l nodes=2 ./parallel_job.sh</nowiki>}} |
<p>La opción '''-l nodes=2''' indica que el trabajo se ejecutará en 2 nodos del cluster. Usted puede cambiar este valor a conveniencia.</p> | <p>La opción '''-l nodes=2''' indica que el trabajo se ejecutará en 2 nodos del cluster. Usted puede cambiar este valor a conveniencia.</p> | ||
+ | </div> | ||
</div> | </div> | ||
</div> | </div> |
Revision as of 20:58, 10 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.
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?
#!/bin/bash #!/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.
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.