Goo-job-nanny » History » Version 1

Gabriel Winckler, 02 Apr 2015 17:19

1 1 Gabriel Winckler
h1. Goo-job-nanny
2 1 Gabriel Winckler
3 1 Gabriel Winckler
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.
4 1 Gabriel Winckler
5 1 Gabriel Winckler
Para facilitar essas etapas, foi desenvolvido um script chamado *goo-job-nanny*.
6 1 Gabriel Winckler
7 1 Gabriel Winckler
h2. Recursos
8 1 Gabriel Winckler
9 1 Gabriel Winckler
* Cria automaticamente a pasta temporária
10 1 Gabriel Winckler
** seleciona automaticamente se /tmp ou /store
11 1 Gabriel Winckler
* Copia periodicamente (ainda durante a simulação) os arquivos, para permitir _checkpoints_ e acompanhar o andamento da simulação
12 1 Gabriel Winckler
* Remove a pasta temporária ao fim da execução
13 1 Gabriel Winckler
14 1 Gabriel Winckler
h2. Uso
15 1 Gabriel Winckler
16 1 Gabriel Winckler
Para usar, basta preceder o comando de simulação com o termo *goo-job-nanny*.
17 1 Gabriel Winckler
18 1 Gabriel Winckler
h3. Exemplo
19 1 Gabriel Winckler
20 1 Gabriel Winckler
antes:
21 1 Gabriel Winckler
<pre>
22 1 Gabriel Winckler
#!/bin/bash
23 1 Gabriel Winckler
#SBATCH -n 2
24 1 Gabriel Winckler
25 1 Gabriel Winckler
srun -n 2 ./hello
26 1 Gabriel Winckler
</pre>
27 1 Gabriel Winckler
28 1 Gabriel Winckler
depois:
29 1 Gabriel Winckler
<pre>
30 1 Gabriel Winckler
#!/bin/bash
31 1 Gabriel Winckler
#SBATCH -n 2
32 1 Gabriel Winckler
33 1 Gabriel Winckler
go srun -n 2 ./hello
34 1 Gabriel Winckler
</pre>
35 1 Gabriel Winckler
36 1 Gabriel Winckler
h2. Opções
37 1 Gabriel Winckler
38 1 Gabriel Winckler
INPUT
39 1 Gabriel Winckler
40 1 Gabriel Winckler
bq. (default="*") Arquivos copiados para a área temporária para iniciar a simulação.
41 1 Gabriel Winckler
42 1 Gabriel Winckler
OUTPUT
43 1 Gabriel Winckler
44 1 Gabriel Winckler
bq. (default="*") Arquivos copiados de volta para a pasta inicial (no /home) ao fim da simulação.
45 1 Gabriel Winckler
46 1 Gabriel Winckler
CHECKPOINT
47 1 Gabriel Winckler
48 1 Gabriel Winckler
bq. (default="$OUTPUT") Arquivos copiados sistematicamente para a pasta inicial.
49 1 Gabriel Winckler
50 1 Gabriel Winckler
WAIT
51 1 Gabriel Winckler
52 1 Gabriel Winckler
bq. (default="10800" -- 3horas) Intervalo entre a cópia dos arquivos de checkpoint, em segundos.
53 1 Gabriel Winckler
54 1 Gabriel Winckler
VERBOSE
55 1 Gabriel Winckler
56 1 Gabriel Winckler
bq. (default="0" -- False) Controla se informações sobre as operações do próprio script devem ser impressas no _stdout_
57 1 Gabriel Winckler
58 1 Gabriel Winckler
CHECKPOINT_FUNC
59 1 Gabriel Winckler
60 1 Gabriel Winckler
bq. *Avançado*: Usado apenas em casos específicos onde é necessário realizar alguma operação antes do checkpoint. Consule [[VASP]]
61 1 Gabriel Winckler
62 1 Gabriel Winckler
h3. Exemplo
63 1 Gabriel Winckler
64 1 Gabriel Winckler
<pre>
65 1 Gabriel Winckler
#!/bin/bash
66 1 Gabriel Winckler
#SBATCH -n 2
67 1 Gabriel Winckler
68 1 Gabriel Winckler
export WAIT=3600
69 1 Gabriel Winckler
export VERBOSE=1
70 1 Gabriel Winckler
71 1 Gabriel Winckler
go srun -n 2 ./hello
72 1 Gabriel Winckler
</pre>
73 1 Gabriel Winckler
74 1 Gabriel Winckler
75 1 Gabriel Winckler
h2. Debug e melhorias
76 1 Gabriel Winckler
77 1 Gabriel Winckler
Caso suspeite de algum problema com o script, execute com a opção
78 1 Gabriel Winckler
<pre>
79 1 Gabriel Winckler
VERBOSE=1
80 1 Gabriel Winckler
</pre>
81 1 Gabriel Winckler
82 1 Gabriel Winckler
Você pode inspecionar e copiar o script de: /opt/gridunesp/internals/bin/go
83 1 Gabriel Winckler
84 1 Gabriel Winckler
Sugestões (ou patchs) são bem-vindos.