SubmissaoSimplificada » History » Version 21

Gabriel Winckler, 03 May 2016 14:05

1 1 Gabriel Winckler
h1. Sistema de Submissão Simplificada (GO)
2 1 Gabriel Winckler
3 1 Gabriel Winckler
{{>toc}}
4 1 Gabriel Winckler
5 2 Gabriel Winckler
h2. Introdução
6 2 Gabriel Winckler
7 1 Gabriel Winckler
Avaliando a utilização do sistema e tentando sempre facilitar a utilização dos recursos, foram identificadas algumas facilidades que não estavam presentes nas ferramentas tradicionais de grid de forma que sua ausência prejudicava a adoção do grid por parte dos usuários. Por essa razão, foi desenvolvido um método de submissão simplificado, batizado de go, que oferece as seguintes vantagens:
8 1 Gabriel Winckler
9 1 Gabriel Winckler
* Submissão simplificada da simulação
10 1 Gabriel Winckler
* Acompanhamento do progresso durante a execução
11 1 Gabriel Winckler
* Salvar e recuperar checkpoints
12 1 Gabriel Winckler
* Suporte a grandes arquivos de entrada e saída
13 1 Gabriel Winckler
* Flexibilidade na descrição de arquivos de saída
14 1 Gabriel Winckler
* Utilização automática de diretórios temporários
15 2 Gabriel Winckler
* Facilitar depuração de erros
16 1 Gabriel Winckler
17 1 Gabriel Winckler
Ainda estão previstas novas melhorias, como a cópia de grandes arquivos em duas etapas, um sistema de acompanhamento de processos via web e um sistema que direcione automaticamente os processos para os recursos mais adequados.
18 1 Gabriel Winckler
19 1 Gabriel Winckler
Esse sistema permite a criação de templates para aplicações específicas, facilitando o seu uso. A lista das aplicações suportadas por esse mecanismo está descrita abaixo. Porém esse sistema permite a utilização de qualquer aplicação, incluindo as desenvolvidas ou compiladas pelos próprios usuários. *Recomendamos o uso dessa ferramenta para todos os usuários (básicos e avançados)*
20 1 Gabriel Winckler
21 20 Gabriel Winckler
h2. Modos de operação
22 20 Gabriel Winckler
23 20 Gabriel Winckler
O sistema GO aceita o envio de processos para o cluster local ou através da estrutura de grid. No primeiro caso, os processos estarão restritos ao cluster central do GridUnesp, mas não é necessário gerar os certificados proxy, usados apenas no envio para o grid.
24 20 Gabriel Winckler
25 20 Gabriel Winckler
A operação local é a padrão, e não é necessário fazer nada para usá-la. Também *não* é necessário criar um proxy com o comando "myproxy-logon".
26 20 Gabriel Winckler
27 20 Gabriel Winckler
Para enviar o processo para a estrutura de grid, use a opção "-grid". Por exemplo:
28 20 Gabriel Winckler
<pre>
29 20 Gabriel Winckler
go caso.go -grid
30 20 Gabriel Winckler
</pre>
31 20 Gabriel Winckler
32 1 Gabriel Winckler
h2.  Aplicativos suportados
33 1 Gabriel Winckler
34 1 Gabriel Winckler
O sistema permite o envio de um programa desenvolvido e compilado pelo usuário. Porém conta também com modelos simplificados para algumas as aplicações que damos suporte. Esperamos expandir o número de aplicações suportadas.
35 1 Gabriel Winckler
36 1 Gabriel Winckler
37 18 Gabriel Winckler
|Nome             |Versão|Serial|SMP|MPI|Chekpoint|Progress|
38 18 Gabriel Winckler
|[[BEAST]]        |1.6.1 |S     |S  |N  |N        |S       |
39 18 Gabriel Winckler
|[[Clustalw]]     |1.82  |N     |N  |S  |N        |S       |
40 18 Gabriel Winckler
|[[Crystal]]      |14.1  |S     |N  |?  |?        |S       |
41 18 Gabriel Winckler
|[[Dacapo]]       |r474  |S     |N  |S  |S        |S       |
42 19 Gabriel Winckler
|[[Dalton]]       |2013.4|S     |N  |S  |?        |S       |
43 18 Gabriel Winckler
|[[Dirac]]        |12.3  |S     |N  |S  |?        |S       |
44 18 Gabriel Winckler
|[[Espresso]]     |3.2.0 |S     |N  |S  |?        |S       |
45 18 Gabriel Winckler
|[[Gamess]]       |2013  |S     |N  |S  |?        |ni      |
46 18 Gabriel Winckler
|[[Gamit]]        |10.5  |S     |N  |N  |?        |ni      |
47 18 Gabriel Winckler
|[[Garli]]        |2.0   |S     |N  |S  |N        |S       |
48 18 Gabriel Winckler
|[[Gaussian]]     |09    |S     |S  |S  |S        |S       |
49 18 Gabriel Winckler
|[[GPAW]]         |2012 07|S    |N  |S  |S        |S       |
50 18 Gabriel Winckler
|[[Gromacs]]      |4.5.4 |S     |S  |S  |T        |S       |
51 18 Gabriel Winckler
|[[Gromacs]]      |4.6.5 |S     |S  |S  |T        |S       |
52 18 Gabriel Winckler
|[[IM]]           |12_17_2009|S |N  |N  |S        |S       |
53 18 Gabriel Winckler
|[[IMa2]]         |8.26.11|S    |N  |N  |N        |S       |
54 18 Gabriel Winckler
|[[LAMMPS]]       |18_10_2011|S |ni |S  |?        |S       |
55 18 Gabriel Winckler
|[[Mathematica]]  |9     |S     |N  |S  |?        |S       |
56 18 Gabriel Winckler
|[[MOPAC]]        |13.294|S     |?  |N  |N        |S       |
57 18 Gabriel Winckler
|[[MrBayes]]      |3.1.2 |S     |N  |S  |?        |ni      |
58 18 Gabriel Winckler
|[[Mugsy]]        |1.2.1 |S     |N  |N  |N        |S       |
59 18 Gabriel Winckler
|[[NAMD]]         |2.9   |ni    |N  |S  |?        |ni      |
60 18 Gabriel Winckler
|[[OpenFOAM]]     |2.1   |S     |N  |S  |?        |?       |
61 18 Gabriel Winckler
|[[Orca]]         |r1730 |S     |N  |?  |S        |S       |
62 18 Gabriel Winckler
|[[Python]]*      |2.7   |S     |S  |S  |-        |-       |
63 18 Gabriel Winckler
|[[POY]]          |4.1.2 |S     |N  |S  |?        |ni      |
64 18 Gabriel Winckler
|[[QuantumEspresso]] |4.3|S     |N  |S  |?        |S       |
65 18 Gabriel Winckler
|[[R]]            |3.1   |S     |N  |N  |-        |-       |
66 18 Gabriel Winckler
|[[RAxML]]        |7.3.0 |S     |S  |S  |N        |S       |
67 18 Gabriel Winckler
|[[Siesta]]       |3.2.4 |S     |N  |N  |N        |S       |
68 15 Gabriel Winckler
69 1 Gabriel Winckler
70 1 Gabriel Winckler
Legenda:
71 1 Gabriel Winckler
|S |recurso implementado|
72 1 Gabriel Winckler
|N |recurso não suportado pelo software|
73 1 Gabriel Winckler
|T |recurso em fase de testes|
74 1 Gabriel Winckler
|ni|recurso disponibilizado pelo software, mas não implementado no *go*|
75 1 Gabriel Winckler
|? |informação não disponível|
76 7 Gabriel Winckler
77 7 Gabriel Winckler
[*] Módulos adicionais de Python
78 7 Gabriel Winckler
* SciPy
79 7 Gabriel Winckler
* NumPy
80 7 Gabriel Winckler
* matplotlib
81 7 Gabriel Winckler
* mpi4py
82 7 Gabriel Winckler
* networkx
83 7 Gabriel Winckler
* emcee
84 13 Gabriel Winckler
* decorators
85 14 Gabriel Winckler
* xlrd/xlwd
86 14 Gabriel Winckler
* libsbml
87 1 Gabriel Winckler
88 3 Gabriel Winckler
h2. Aplicativos compilados pelo próprio usuário
89 3 Gabriel Winckler
90 3 Gabriel Winckler
Com o go é possível também enviar arquivos desenvolvidos ou compilados pelo próprio usuário.
91 3 Gabriel Winckler
92 3 Gabriel Winckler
Mais detalhes estão [[SubmissaoSimplificadaCustom|aqui]].
93 3 Gabriel Winckler
94 1 Gabriel Winckler
95 2 Gabriel Winckler
h2. Utilização
96 2 Gabriel Winckler
97 2 Gabriel Winckler
* Crie um arquivo de parâmetros (ex: caso.go) como explicado abaixo
98 2 Gabriel Winckler
* Crie um certificado de proxy (myproxy-logon) com uma duração maior que a do seu job
99 2 Gabriel Winckler
* Execute "go caso.go"
100 2 Gabriel Winckler
101 2 Gabriel Winckler
Isso cria e envia o seu job para o grid. Caso não queira enviar imediatamente, utilize a opção "-nosubmit". O arquivo de submissão será criado com o nome de "caso.go.submit".
102 2 Gabriel Winckler
103 2 Gabriel Winckler
Caso você tenha especificado checkpoints ou arquivos de progresso, eles serão automaticamente copiados para esse diretório.
104 2 Gabriel Winckler
105 2 Gabriel Winckler
*IMPORTANTE: NÃO USE ESPAÇOS NOS NOMES DOS ARQUIVOS*
106 2 Gabriel Winckler
107 2 Gabriel Winckler
h2. Opções
108 2 Gabriel Winckler
109 2 Gabriel Winckler
h3. Opções gerais
110 2 Gabriel Winckler
111 2 Gabriel Winckler
* CASE - Nome do caso. Define o nome de arquivos de entrada, log e saida. *Padrão*: (nome do arquivo de parâmetros, sem a extensão)
112 2 Gabriel Winckler
* HOSTS - Número de hosts (processos) para a execução. *Padrão*: 1
113 21 Gabriel Winckler
* QUEUE - Fila do processo. Opções: short (até 24 horas), medium (até 7 dias), long (30 dias) *Padrão*: medium (24 horas)
114 2 Gabriel Winckler
* LARGE_FILES - Suporte a arquivos de simulação maiores que 8GB. *Padrão*: false
115 2 Gabriel Winckler
* NOTIFY - Escolhe quais notificação serão enviadas por email. "NOTIFY=" desabilita o envio.
116 2 Gabriel Winckler
117 2 Gabriel Winckler
h3. Opções *avançadas* (geralmente não são necessárias!)
118 2 Gabriel Winckler
119 2 Gabriel Winckler
* EXEC - executável
120 2 Gabriel Winckler
* TRANSFER_EXEC - se transfere o executável
121 2 Gabriel Winckler
* ARGS - argumentos
122 2 Gabriel Winckler
* INPUT - arquivos de entrada, *separados por espaço*
123 2 Gabriel Winckler
* OUTPUT - arquivos de saída, *separados por espaço*
124 2 Gabriel Winckler
* PROGRESS - arquivo que exibe o progresso da simulação
125 2 Gabriel Winckler
* WAIT_PROGRESS - tempo de atualização do progresso, em segundos. *Padrão*: 15 min.
126 2 Gabriel Winckler
* CHECKPOINT - arquivo de checkpoint
127 2 Gabriel Winckler
* WAIT_CHECKPOINT - tempo de atualização do checkpoint, em segundos. *Padrão*: 3 horas.
128 2 Gabriel Winckler
* HOSTS - Número de hosts (processos) para a execução. *Padrão*: 1
129 17 Gabriel Winckler
* PPH - Process per host. Opção para programas SMP. *Padrão*: 1. Máximo: 8
130 2 Gabriel Winckler
* MPI - Se o executável deve ser chamado em ambiente MPI (True ou False).
131 1 Gabriel Winckler
* SHARED_FS - Utiliza um sistema de arquivos compartilhado (útil para aplicações MPI)
132 17 Gabriel Winckler
* CORE_MEM - Memória RAM por core, em GB. *Padrão*: 2. Máximo: 16
133 2 Gabriel Winckler
134 1 Gabriel Winckler
h2. Exemplo passo-a-passo
135 1 Gabriel Winckler
136 1 Gabriel Winckler
Segue um exemplo completo utilizando o software "Orca". As opções específicas de cada aplicação estão a seguir.
137 1 Gabriel Winckler
138 2 Gabriel Winckler
h3. Prepare os arquivos de entrada 
139 1 Gabriel Winckler
140 1 Gabriel Winckler
Prepare os arquivos de entrada da aplicação. Nesse caso usaremos nome_do_caso.inp (arquivo do orca).
141 1 Gabriel Winckler
 
142 1 Gabriel Winckler
*IMPORTANTE: NÃO USE ESPAÇOS NOS NOMES*
143 1 Gabriel Winckler
144 1 Gabriel Winckler
caso_de_teste.inp
145 1 Gabriel Winckler
<pre>
146 1 Gabriel Winckler
! HF SVP
147 1 Gabriel Winckler
148 1 Gabriel Winckler
* xyz 0 1
149 1 Gabriel Winckler
  C 0.0 0.0 0.0
150 1 Gabriel Winckler
  O 0.0 0.0 1.13
151 1 Gabriel Winckler
*
152 1 Gabriel Winckler
</pre>
153 1 Gabriel Winckler
154 1 Gabriel Winckler
h3. Prepare o arquivo .go 
155 1 Gabriel Winckler
156 1 Gabriel Winckler
caso_de_teste.go
157 1 Gabriel Winckler
<pre><code class="bash">
158 1 Gabriel Winckler
APP=orca
159 1 Gabriel Winckler
QUEUE=short
160 1 Gabriel Winckler
</code></pre>
161 1 Gabriel Winckler
162 20 Gabriel Winckler
h3. Crie um proxy - *Apenas necessário se usado com a opção -grid*
163 1 Gabriel Winckler
<pre>
164 1 Gabriel Winckler
myproxy-logon
165 1 Gabriel Winckler
</pre>
166 1 Gabriel Winckler
167 1 Gabriel Winckler
h3. Submeta a simulação
168 20 Gabriel Winckler
169 20 Gabriel Winckler
h4. Local (padrão e recomendado)
170 1 Gabriel Winckler
<pre>
171 1 Gabriel Winckler
go caso_de_teste.go
172 1 Gabriel Winckler
</pre>
173 1 Gabriel Winckler
174 20 Gabriel Winckler
h4. Grid (alternativa)
175 20 Gabriel Winckler
<pre>
176 20 Gabriel Winckler
go caso_de_teste.go -grid
177 20 Gabriel Winckler
</pre>
178 20 Gabriel Winckler
179 1 Gabriel Winckler
h3. Verificando o status
180 1 Gabriel Winckler
181 20 Gabriel Winckler
Você pode verificar o status com o comando: @squeue -u $USER@ (local) ou @condor_q $USER -globus@ (grid). 
182 1 Gabriel Winckler
183 1 Gabriel Winckler
h3. Cancelando a execução
184 1 Gabriel Winckler
185 20 Gabriel Winckler
Para interromper uma simulação, utilize o comando: @scancel _jobid_@ (local) ou @condor_rm jobid@ (grid) , onde _jobid_ é o identificador do job, disponível no arquivo de log ou no comando de status.