SIESTA é um método e sua implementação de programas de computador, para realizar cálculos eficientes de estrutura eletrônica e simulações de dinâmica molecular ab initio de moléculas e sólidos.
Este exemplo é apropriado para execução em apenas 1 core. Onde:
entrada.fdf
é o arquivo de entrada;saida.out
é o arquivo de saída que vai ser gerado após o termino da execução do job.#!/bin/bash #SBATCH --job-name=SiestaSerial # 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=1 # Número de CPUs (cores) utilizada por cada processo # Arquivo de entrada ARQINP="entrada.fdf" # Arquivo de saída ARQOUT="saida.out" # 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 Siesta - " `date` srun siesta < ${ARQINP} > ${ARQOUT} echo "Job Concluído - " `date`
De acordo com o exemplo acima, o parâmetro “siesta” é o executável do Siesta, o “entrada.fdf” é o arquivo de entrada, já o “saida.out” é o arquivo de saída que vai ser gerado após o termino da execução do job.
Este exemplo é apropriado para execução em vários núcleos de processamento, utilizando MPI. Onde:
--nodes=
define a quantidade de nós que será utilizada. Observe que cada nó esta utilizando 12 cores;entrada.fdf
é o arquivo de entrada;saida.out
é o arquivo de saída que vai ser gerado após o termino da execução do job.#!/bin/bash #SBATCH --job-name=SiestaMPI # Nome do job #SBATCH --partition=medium # Fila (medium/long/gpu) #SBATCH --nodes=2 # Número de nós utilizados #SBATCH --ntasks-per-node=12 # Número de processos em cada nó #SBATCH --cpus-per-task=1 # Número de CPUs (cores) utilizada por cada processo # Arquivo de entrada ARQINP="entrada.fdf" # Arquivo de saída ARQOUT="saida.out" # 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 Siesta - " `date` mpirun siesta < ${ARQINP} > ${ARQOUT} echo "Job Concluído - " `date`