Mudar o script bash enviado para sbatch em slurm durante a execução de uma má ideia?
Eu queria executar um script pythonmain.py
várias vezes comdiferente argumentos através de umsbatch_run.sh
script como em:
#!/bin/bash
#SBATCH --job-name=sbatch_run
#SBATCH --array=1-1000
#SBATCH --exclude=node047
arg1=10 #arg to be change during runs
arg2=12 #arg to be change during runs
python main.py $arg1 $arg2
Os argumentos são codificados no arquivo bash executado pelo sbatch. Eu estava preocupado que se eu corressesbatch_run.sh
várias vezesum após o outro mas alterando o valor de arg1 e arg2 durante cada execução, isso pode causar erros nas minhas execuções. Por exemplo, se eu fizer:
sbatch sbatch_run.sh # with arg1=10 and arg2=12
e depoisimediatamente depois que eu mudosbatch_run.sh
mas execute o arquivo novamente como em:
sbatch sbatch_run.sh # with arg1=69 and arg2=666
caso minhas corridas sejam executadas com a última (ou seja,arg1=69
earg2=666
) em vez de cada execução com seus próprios argumentos.
Eu tenho certeza que se eu codificar os argumentos em main.py e executar o mesmo script sbatch, mas alterar o main.py, ele executará o último. Eu queria saber se esse também é o caso, se eu mudar osbatch_run.sh
roteiro.
Só para você saber, eu tentei esse experimento, executando 1000 scripts, alguns ficam na fila e colocam um comando de suspensão e depois alteram osbatch_run.sh
. Parece não mudar o que é a minha corrida, no entanto, se eu estiver errado, isso é muito importante para ser errado por acidente e queria ter certeza de que eu também pedi.
Para o registro eu corri:
#!/bin/bash
#SBATCH --job-name=ECHO
#SBATCH --array=1-1000
#SBATCH --exclude=node047
sleep 15
echo helloworld
echo 5
e depois altere o eco para eco 10 ou eco pelo mundo.