Goo-job-nanny » History » Version 2

Version 1 (Gabriel Winckler, 02 Apr 2015 17:19) → Version 2/3 (Gabriel Winckler, 30 Apr 2015 15:25)

h1. Goo-job-nanny

Ao enviar simulações ao cluster é importante que os arquivos temporários não sejam criados no */home*. Para isso devem ser utilizados o diretórios /tmp e /store. Dentro desses diretórios o usuário deve *criar uma pasta* com o seu login e deve *remover* esses arquivos ao terminar o processamento.

Para facilitar essas etapas, foi desenvolvido um script chamado *goo-job-nanny*.

h2. Recursos

* Cria automaticamente a pasta temporária
** seleciona automaticamente se /tmp ou /store
* Copia periodicamente (ainda durante a simulação) os arquivos, para permitir _checkpoints_ e acompanhar o andamento da simulação
* Remove a pasta temporária ao fim da execução

h2. Uso

Para usar, basta preceder o comando de simulação com o termo *goo-job-nanny*.

h3. Exemplo

antes:
<pre>
#!/bin/bash
#SBATCH -n 2

srun -n 2 ./hello
</pre>

depois:
<pre>
#!/bin/bash
#SBATCH -n 2

goo-job-nanny go srun -n 2 ./hello
</pre>

h2. Opções

INPUT

bq. (default="*") Arquivos copiados para a área temporária para iniciar a simulação.

OUTPUT

bq. (default="*") Arquivos copiados de volta para a pasta inicial (no /home) ao fim da simulação.

CHECKPOINT

bq. (default="$OUTPUT") Arquivos copiados sistematicamente para a pasta inicial.

WAIT

bq. (default="10800" -- 3horas) Intervalo entre a cópia dos arquivos de checkpoint, em segundos.

VERBOSE

bq. (default="0" -- False) Controla se informações sobre as operações do próprio script devem ser impressas no _stdout_

CHECKPOINT_FUNC

bq. *Avançado*: Usado apenas em casos específicos onde é necessário realizar alguma operação antes do checkpoint. Consule [[VASP]]

h3. Exemplo

<pre>
#!/bin/bash
#SBATCH -n 2

export WAIT=3600
export VERBOSE=1

go srun -n 2 ./hello
</pre>

h2. Debug e melhorias

Caso suspeite de algum problema com o script, execute com a opção
<pre>
VERBOSE=1
</pre>

Você pode inspecionar e copiar o script de: /opt/gridunesp/internals/bin/go

Sugestões (ou patchs) são bem-vindos.