Guia rápido de submissão
A submissão de jobs pode ser realizado por dois comandos do gerenciador do cluster: srun
e sbatch
. O comando srun
executa na linha de comando e é bloqueante, enquanto o comando sbatch
executa um arquivo de configuração e não é bloqueante.
Sumário
Principais parâmetros de submissão:
-p|--partition nome
Especifica o nome da partição que o job será executado.
-t|--time tempo
Especifica um tempo limite para a execução do job. Caso o tempo limite especificado seja maior que o tempo da partição, o job ficará com o estado pendente (PENDING), possivelmente para sempre. Formatos de tempo aceitos: “minutos”, “minutos:segundos”, “horas:minutos:segundos”, “dias-horas”, “dias-horas:minutos” e “dias-horas:minutos:segundos”.
-c|--cpus-per-task
Especifica a quantidade de core/threads o seu programa utilizará.
--mem tamano unidade
Especifica quantidade de memória seu programa utilizará.
-n NUM_PROCESSOS
Especifica o número de processos a serem iniciados.
-N NUM_NODOS
Especifica que deverão ser alocados pelo menos NUM_NODOS nodos para a execução do job, ou seja, cada nodo vai executar NUM_PROCESSOS dividido por NUM_NODOS.
–job-name=NOME
Especifica o nome do Job que será executado. Este nome irá aparecer juntamente com o id do job na listagem de jobs do sistema.
-e
Especifica o redirecionamento do stderr. Exemplo:
-e arquivoErros.txt
-o
Especifica o redirecionamento do stdout. Caso-e
não tenha sido especificado, stderr também será enviado para o arquivo especificado. Exemplo:
-o arquivoSaida.txt
ou--output arquivoSaida.txt
Comando srun
srun
submete um job para o escalonador, por padrão esse comando é bloqueante. A sintaxe do comando é:srun executavel
Exemplo: Execução simples do srun
O exemplo submete o programa /cluster/tests/omp/omp
para fila de execução do cluster e será executado quando tiver recursos disponíveis.
testem@c3hpc:~$ srun /cluster/tests/omp/omp
Missing arguments
Usage: /cluster/tests/omp/omp [-n|--nprocs] <cpus> [-t|--time] <time>
Examples:
Example 1: short options: To Execute program with 4 threads during 10 seconds:
/cluster/tests/omp/omp -n 4 -t 10
Example 2: long options: To Execute program with 8 threads during 15 seconds:
/cluster/tests/omp/omp --nprocs 8 --time 15
srun: error: node4: task 0: Exited with exit code 2
testem@c3hpc:~$ srun /cluster/tests/omp/omp --nprocs 4 -t 4
Time 4 Nproc 4
count: 258531857
count: 260249707
count: 262771821
count: 262113384
testem@c3hpc:~$
srun <argumentos do srun> executavel
Exemplo: Execução com argumentos srun
No exemplo abaixo, o executável é um programa em openMP que lança 4 threads, mas o srun só disponibiliza duas threads para ser executado. Portanto, as, quatro que as quatros threads tenham aceso a 4 núcleo de processamento é necessário passar o argumento --cpus-per-task 4
.
testem@c3hpc:~$ srun --cpus-per-task 2 --mem 16G --partition maratona /cluster/tests/omp/omp --nprocs 4 -t 60
Time 60 Nproc 4
count: 430357224
count: -63444304
count: -21866144
count: -33171848
testem@c3hpc:~$
Comando sbatch
#SBATCH
antes da opção.#SBATCH --time=1
Abaixo, um exemplo de script que roda a aplicação “meuPrograma” que está no diretório bin. A aplicação irá executar por no máximo 7 dias e é solicitado 1 nodo para a execução.
sbatch -o saida.txt meuscript.sh
Modelo de arquivo sbatch
#!/bin/bash
#SBATCH -t 1-10:00:00
#SBATCH --cpus-per-task=NUM_CPUS_POR_PROCESSO
#SBATCH -o ARQUIVO_DE_SAIDA
#SBATCH --job-name=NOME_JOB
#SBATCH -p PARTICAO_ONDE_SERA_EXECUTADO
#SBATCH -n NUM_DE_PROCESSOS
#SBATCH -N NUM_NODOS_NECESSARIOS
srun $HOME/meuPrograma parametro1Programa parametro2Programa
sbatch -o saida.txt -t 5-00:00:00 meuscript.sh
Cancelando jobs
scancel jobId
Nota
O jobid pode ser obitido através do comando squeue