Para enviar trabajos paralelos en entornos de memoria compartida tendremos que seguir los siguientes pasos:
- compilar el programa, en caso de que no dispongamos ya de los binarios
- reservar los recursos necesarios para su ejecución
Este tipo de trabajos usan hebras para dividir la carga de trabajo. Existen diferentes modelos de programación para usar hebras: openMP, pthreads, etc.
Trabajos OpenMP
Hay soporte para programas desarrollados usando OpenMP. Consultar más información aquí
Reserva de recursos
Básicamente, tendremos que indicar el número de CPUs por tarea que queremos usar, esto es, se iniciará un proceso que tendrá disponible una serie de cores. Es importante que comprobemos que se está usando el número de cores que se han solicitado. Si usamos menos, estaremos haciendo mal uso de los recursos del cluster. Si usamos más, el tiempo de ejecución se verá afectado.
Script de ejecución en cola:
$ cat run.sh
#!/bin/bash
#SBATCH -n 1 # una tarea en total
#SBATCH -c 8 # 8 cores por tarea
#SBATCH -t 00:10:00 # 10 min ejecución
srun ./omphello_f
Envío a cola
$ sbatch run.sh