Sistema de Submissão Simplificada (GO)¶
- Sistema de Submissão Simplificada (GO)
Introdução¶
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:
- Submissão simplificada da simulação
- Acompanhamento do progresso durante a execução
- Salvar e recuperar checkpoints
- Suporte a grandes arquivos de entrada e saída
- Flexibilidade na descrição de arquivos de saída
- Utilização automática de diretórios temporários
- Facilitar depuração de erros
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.
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)
Modos de operação¶
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.
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".
Para enviar o processo para a estrutura de grid, use a opção "-grid". Por exemplo:
go caso.go -grid
Aplicativos suportados¶
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.
| Nome | Versão | Serial | SMP | MPI | Chekpoint | Progress |
| BEAST | 1.6.1 | S | S | N | N | S |
| Clustalw | 1.82 | N | N | S | N | S |
| Crystal | 14.1 | S | N | ? | ? | S |
| Dacapo | r474 | S | N | S | S | S |
| Dalton | 2013.4 | S | N | S | ? | S |
| Dirac | 12.3 | S | N | S | ? | S |
| Espresso | 3.2.0 | S | N | S | ? | S |
| Gamess | 2013 | S | N | S | ? | ni |
| Gamit | 10.5 | S | N | N | ? | ni |
| Garli | 2.0 | S | N | S | N | S |
| Gaussian | 09 | S | S | S | S | S |
| GPAW | 2012 07 | S | N | S | S | S |
| Gromacs | 4.5.4 | S | S | S | T | S |
| Gromacs | 4.6.5 | S | S | S | T | S |
| IM | 12_17_2009 | S | N | N | S | S |
| IMa2 | 8.26.11 | S | N | N | N | S |
| LAMMPS | 18_10_2011 | S | ni | S | ? | S |
| Mathematica | 9 | S | N | S | ? | S |
| MOPAC | 13.294 | S | ? | N | N | S |
| MrBayes | 3.1.2 | S | N | S | ? | ni |
| Mugsy | 1.2.1 | S | N | N | N | S |
| NAMD | 2.9 | ni | N | S | ? | ni |
| OpenFOAM | 2.1 | S | N | S | ? | ? |
| Orca | r1730 | S | N | ? | S | S |
| Python* | 2.7 | S | S | S | - | - |
| POY | 4.1.2 | S | N | S | ? | ni |
| QuantumEspresso | 4.3 | S | N | S | ? | S |
| R | 3.1 | S | N | N | - | - |
| RAxML | 7.3.0 | S | S | S | N | S |
| Siesta | 3.2.4 | S | N | N | N | S |
| S | recurso implementado |
| N | recurso não suportado pelo software |
| T | recurso em fase de testes |
| ni | recurso disponibilizado pelo software, mas não implementado no go |
| ? | informação não disponível |
- SciPy
- NumPy
- matplotlib
- mpi4py
- networkx
- emcee
- decorators
- xlrd/xlwd
- libsbml
Aplicativos compilados pelo próprio usuário¶
Com o go é possível também enviar arquivos desenvolvidos ou compilados pelo próprio usuário.
Mais detalhes estão aqui.
Utilização¶
- Crie um arquivo de parâmetros (ex: caso.go) como explicado abaixo
- Crie um certificado de proxy (myproxy-logon) com uma duração maior que a do seu job
- Execute "go caso.go"
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".
Caso você tenha especificado checkpoints ou arquivos de progresso, eles serão automaticamente copiados para esse diretório.
IMPORTANTE: NÃO USE ESPAÇOS NOS NOMES DOS ARQUIVOS
Opções¶
Opções gerais¶
- 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)
- HOSTS - Número de hosts (processos) para a execução. Padrão: 1
- QUEUE - Fila do processo. Opções: short (até 24 horas), medium (até 7 dias), long (30 dias) Padrão: medium (24 horas)
- LARGE_FILES - Suporte a arquivos de simulação maiores que 8GB. Padrão: false
- NOTIFY - Escolhe quais notificação serão enviadas por email. "NOTIFY=" desabilita o envio.
Opções avançadas (geralmente não são necessárias!)¶
- EXEC - executável
- TRANSFER_EXEC - se transfere o executável
- ARGS - argumentos
- INPUT - arquivos de entrada, separados por espaço
- OUTPUT - arquivos de saída, separados por espaço
- PROGRESS - arquivo que exibe o progresso da simulação
- WAIT_PROGRESS - tempo de atualização do progresso, em segundos. Padrão: 15 min.
- CHECKPOINT - arquivo de checkpoint
- WAIT_CHECKPOINT - tempo de atualização do checkpoint, em segundos. Padrão: 3 horas.
- HOSTS - Número de hosts (processos) para a execução. Padrão: 1
- PPH - Process per host. Opção para programas SMP. Padrão: 1. Máximo: 8
- MPI - Se o executável deve ser chamado em ambiente MPI (True ou False).
- SHARED_FS - Utiliza um sistema de arquivos compartilhado (útil para aplicações MPI)
- CORE_MEM - Memória RAM por core, em GB. Padrão: 2. Máximo: 16
Exemplo passo-a-passo¶
Segue um exemplo completo utilizando o software "Orca". As opções específicas de cada aplicação estão a seguir.
Prepare os arquivos de entrada¶
Prepare os arquivos de entrada da aplicação. Nesse caso usaremos nome_do_caso.inp (arquivo do orca).
IMPORTANTE: NÃO USE ESPAÇOS NOS NOMES
caso_de_teste.inp
! HF SVP * xyz 0 1 C 0.0 0.0 0.0 O 0.0 0.0 1.13 *
Prepare o arquivo .go¶
caso_de_teste.go
APP=orca
QUEUE=short
Crie um proxy - Apenas necessário se usado com a opção -grid
myproxy-logon
Submeta a simulação¶
Local (padrão e recomendado)
go caso_de_teste.go
Grid (alternativa)
go caso_de_teste.go -grid
Verificando o status¶
Você pode verificar o status com o comando: squeue -u $USER (local) ou condor_q $USER -globus (grid).
Cancelando a execução¶
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.