Utilización
-
Acceso al cluster
-
Ejemplos de scripts
-
Encolar trabajos
-
Monitorización del trabajo
Acceso al cluster Si utiliza Unix o Linux
Si utiliza Windows
|
||||||
Ejemplo Trabajos series El siguiente es un ejemplo con algunas opciones SGE. #!/bin/bash # # Script para correr trabajo serial # # Opciones SGE #$ -l h_rt=168:00:00 # Setea 168 horas de wall clock time #$ -cwd # Cambia al directorio actual #$ -V # Exporta las variables de entorno #$ -N nombre_job # El nombre del job # Comando para correr el programa, tal cual lo llamaríamos desde la línea de comandos programa Ejemplo de script para corrida paralela con MPI: #$ -N nombre
#$ -pe impi 32 #$ -cwd #$ -l h_rt=10:00:00 # MPIR_HOME, importo variables de entorno del SGE #$ -V #$ -v MPIR_HOME=/opt/intel/impi/3.1/bin64,SGE_QMASTER_PORT PATH="/opt/intel/impi/3.1/bin64:$PATH" ; export path $MPIR_HOME/mpirun -machinefile $TMPDIR/machines -l -genv I_MPI_DEVICE sock -n $NSLOTS ejecutable |
||||||
Ejemplo de script para corrida paralela con OpenMp: #$ -N nombre
# #$ -pe openmp 8 #$ -l h_rt=10:00:00 #$ -cwd # MPIR_HOME, importo variables de entorno del SGE #$ -V ##Seteo la cantidad de threads que se va a usar #$ -v OMP_NUM_THREADS=1 ### Setea la cantidad de threads a 1 # Comandos del usuario Array de jobs Los arreglos de job proveen un mecanismo para enviar un conjunto de jobs relacionados. A cada job se le asigna un ID de tarea que puede ser usado dentro del sript para controlar el comportamiento del job. Los jobs son enviados como un bloque y controlados por un ID de job. Esta forma de enviar jobs es util cuando se intenta enviar a correr un mismo programa muchas veces con diferentes datos de entrada. En vez de enviar cientos de jobs individuales, se puede enviar un único job que ejecute una tarea para cada input distinto. Como ejemplo, consideremos la siguiente tarea. Tenemos 50 archivos con datos de entrada (datos.1 a datos.50) para un programa (serie), el script quedaría: #!/bin/bash # # Script para correr array de jobs seriales # # Opciones SGE #$ -l h_rt=10:00:00 # Setea 10 horas de wall clock time #$ -cwd # Cambia al directorio actual #$ -V # Exporta las variables de entorno #$ -t 1-50 # Setea el array de indices # corre el programa $HOME/programa < datos.$SGE_TASK_ID > output.$SGE_TASK_ID El SGE utilizará tantos slots como haya disponibles para correr tantas tareas en forma concurrente como sea posible. |
||||||
Encolar trabajos El script SGE más básico consiste en un conjunto de comandos, por ejemplo: #!/bin/bash # hostname -f date Si nombramos al script con el nombre script1, luego lo enviamos a correr con el siguiente comando: qsub script1
El script anterior no seteaba ninguna opción del SGE. Si se necesita incluir opciones, estas deben agregarse en líneas que comiencen con #$ Es OBLIGATORIO el seteo de la variable de TIEMPO DE CÁLCULO: #$ -l h_rt=HH:MM:SS |
||||||
Los parámetros más usados son:
|
||||||
Monitorización del trabajo:
|