Go

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 /scratch-local e /scratch-global. 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 go.

Recursos

  • Cria automaticamente a pasta temporária
    • seleciona automaticamente se /scratch-local ou /scratch-global
  • 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

Uso

Para usar, basta preceder o comando de simulação com o termo go.

Exemplo

antes:

#!/bin/bash
#SBATCH -n 2

srun -n 2 ./hello

depois:

#!/bin/bash
#SBATCH -n 2

go srun -n 2 ./hello

Opções

INPUT

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

OUTPUT

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

CHECKPOINT

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

WAIT

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

VERBOSE

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

CHECKPOINT_FUNC

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

Exemplo

#!/bin/bash
#SBATCH -n 2

export WAIT=3600
export VERBOSE=1

go srun -n 2 ./hello

Debug e melhorias

Caso suspeite de algum problema com o script, execute com a opção

VERBOSE=1

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

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