Submissão de jobs

Para submeter um job, você deve criar um script de submissão com os parâmetros adequados e usar o comando sbatch:

sbatch teste.sh

O script de submissão define as características do trabalho, como nome, partição, número de nós e CPUs, memória, tempo máximo de execução, e arquivos de saída. Um exemplo básico:

#!/bin/bash
#SBATCH --job-name=teste
#SBATCH --partition=debug-cpu
#SBATCH --cpus-per-task=1
#SBATCH --mem=1G
#SBATCH --time=00:10:00
#SBATCH --output=output_%j.log

echo "Olá do cluster Marvin!"
hostname
date
sleep 60
echo "Trabalho concluído."

Indicando a partição do SLURM (fila)

Para especificar uma partição (fila) use:

#SBATCH --partition=<substitua pelo nome da partição>

Cada partição ou fila possui recursos e limites diferentes, elas podem ser consultadas em Sistema de filas.

Solicitando recursos específicos

  • Solicite o número de CPUs para a tarefa
#SBATCH --cpus-per-task=<substitua pelo numero de cpus>
  • A solicitação de GPUs varia de acordo com a partição. Partições *-gpu-small possuem GPUs de 5GB de memória, enquanto que partições *-gpu-big possuem GPUs A100 com 40GB de memória.

Para as filas *-gpu-small use:

#SBATCH --gres=gpu:1g.5gb:1 

Para as filas *-gpu-big use:

#SBATCH --gres=gpu:a100:1 
  • A solicitação da quantidade de memória pode ser feita em quantidade total para o job ou quantidade por cpu.

Para solicitar a quantidade total use:

#SBATCH --mem=16G 

Para solicitar a quantidade por CPU use:

#SBATCH --mem-per-cpu=4GB
  • Solicitação de tempo

Para um melhor funcionamento do sistema gerenciador de tarefas e recursos (SLURM) é importante que o usuário indique o tempo aproximado de execução da tarefa, mesmo sendo sobreestimado. Através desse tempo, o SLURM conseguirá alocar jobs em janelas ociosas e otimizar o uso dos recursos.

Exemplo solicitando 10 horas de tempo de processamento.

#SBATCH --time=10:00:00 

Trabalhos interativos

Você pode iniciar uma sessão interativa com:

srun -p debug-cpu --pty bash 

Ou com recursos definidos:

srun -p short-gpu-small --gres gpu:1g.5gb:1 -c 4 --mem 8G --time 01:00:00 --pty bash