Gromacs 5.0

Descrição

GROMACS é um pacote versátil para executar dinâmica molecular, ou seja, simular as equações de movimento newtonianas para sistemas com centenas a milhões de partículas.

Utilização Multicore

Este exemplo é apropriado para a execução em várias CPUs (máximo 12) de um único nó. Dessa forma, é recomendado que o arquivo .srm tenha os seguintes parâmetros para a submissão do job, substituindo:

  • entrada.tpr pelo nome do seu arquivo de entrada;
  • saida.log pelo nome do seu arquivo de saída;
  • --cpus-per-task=12 pela quantidade de cores utilizado.
#!/bin/bash
#SBATCH --job-name=GMX-MULTICORE	# Nome do job
#SBATCH --partition=medium			# Fila (medium/long/gpu)
#SBATCH --nodes=1					# Número de nós utilizados
#SBATCH --ntasks-per-node=1			# Número de processos em cada nó
#SBATCH --cpus-per-task=12			# Número de CPUs (cores) utilizada por cada processo

# Arquivo de entrada
ARQINP="entrada.tpr"
# Arquivo de saída
ARQOUT="saida.log"

# Nó de execução
echo "Nó de Execução ${SLURM_JOB_NODELIST}"

export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
ulimit -s unlimited

# Diretório de execução
cd $SLURM_SUBMIT_DIR
echo "Diretório de Execução: $SLURM_SUBMIT_DIR"
echo "Entrada: $ARQINP"

echo "Iniciando Gromacs - " `date`
gmx mdrun -nt ${SLURM_CPUS_PER_TASK} -s ${ARQINP} -g ${ARQOUT}

echo "Job Concluído - " `date`

Utilização Multinode

Este exemplo é apropriado para a execução em vários nós do cluster. Dessa forma, é recomendado que o arquivo .srm tenha os seguintes parâmetros para a submissão do job, substituindo:

  • entrada.tpr pelo nome do seu arquivo de entrada;
  • saida.log pelo nome do seu arquivo de saída;
  • --ntasks-per-node=2 pela quantidade de processos em cada nó;
  • --cpus-per-task=6 pela quantidade de cores utilizado em cada processo.

Obs.: (ntasks-per-node) * (cpus-per-task) ≤ 12

#!/bin/bash
#SBATCH --job-name=GMX-MULTINODE	# Nome do job
#SBATCH --partition=medium			# Fila (medium/long/gpu)
#SBATCH --nodes=2					# Número de nós utilizados
#SBATCH --ntasks-per-node=2			# Número de processos em cada nó
#SBATCH --cpus-per-task=6			# Número de CPUs (cores) utilizada por cada processo

# Arquivo de entrada
ARQINP="entrada.tpr"
# Arquivo de saída
ARQOUT="saida.log"

# Nó de execução
echo "Nó de Execução ${SLURM_JOB_NODELIST}"

export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
ulimit -s unlimited

# Diretório de execução
cd $SLURM_SUBMIT_DIR
echo "Diretório de Execução: $SLURM_SUBMIT_DIR"
echo "Entrada: $ARQINP"

echo "Iniciando Gromacs - " `date`
mpirun `which mdrun_mpi` -ntomp ${SLURM_CPUS_PER_TASK} -s ${ARQINP} -g ${ARQOUT}

echo "Job Concluído - " `date`

Melhorando o desempenho de Jobs

Leia a seção “Getting good performance from mdrun” da documentação do Gromacs para obter mais informações sobre melhoria dos tempos de execução de seus jobs.

Embora se presuma que adicionar mais processadores a um determinado job aumentará automaticamente o desempenho, vários tamanhos de modelos atingirão o desempenho máximo com diferentes contagens de processadores.

Referências