Procesadores, cores y tareas en SLURM.
Es decir, que si no se le especifica lo contrario, cuando le asignamos el número de tareas (-n), será lo mismo que procesadores a usar. Pero existen trabajos en los que las tareas requieren más procesadores, cómo por ejemplo los binarios multithreading.
Pongamos un ejemplo, si mi binario utiliza OpenMP para paralelizar, que lo que hace es crear threads, tendré que especificarle el número de threads/cores a usar. Imaginamos que quiero crear 4 threads, entonces tendré que reservar 4 cores de la siguiente forma:
Con el comando sbatch (envío de un trabajo a una partición para esperar a su ejecución).
Con el comando srun (envío de un trabajo a una partición en tiempo real).
sbatch -p generic -n 1 --cpus-per-task=4 script.sh
#!/bin/bash
#SBATCH -p generic # Partición (cola)
#SBATCH -N 1 # Numero de nodos
#SBATCH -n 1 # Numero de cores(CPUs)
#SBATCH -mem 100 # Bloque de memoria para todos los nodos
#SBATCH -t 0-02:00 # Duración (D-HH:MM)
#SBATCH -o slurm.%N, %j.out #STDOUT
#SBATCH -e slurm.%N, %j.err #STDERR