Kwant 1.4.1

Descrição

O Kwant é um pacote Python gratuito (de código aberto) , poderoso e fácil de usar para cálculos numéricos em modelos de vínculo restrito, com forte foco no transporte quântico.

Execução Serial

Para este exemplo estaremos utilizando uma configuração de execução em thread única, dessa forma, é recomendado que o arquivo .srm tenha os seguintes parâmetros para a submissão do job, substituindo o arquivo de entrada (quantum_wire_organized.py) pelo seu script de entrada:

#!/bin/bash

## EXEMPLO DE EXECUÇÃO SERIAL
## OBS: Scripts sem paralelismo utilizam um único core

#SBATCH --job-name=KWANTSERIAL          # Nome do job
#SBATCH --partition=medium              # Fila (medium/long/gpu)
#SBATCH --ntasks=1                      # Número de processos

# Arquivo de entrada
INPFILE="quantum_wire_organized.py"

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

# Nó de execução
echo "Nó de Execuçao: " `hostname`

# Iniciando Python 3
echo "Iniciando Kwant no Python 3 - " `date`
python3.8 ${INPFILE}

echo "Job Concluído - " `date`

Execução Paralela (MPI)

Para este exemplo estaremos utilizando uma configuração de execução em vário nós, dessa forma, é recomendado que o arquivo .srm tenha os seguintes parâmetros para a submissão do job, substituindo o arquivo de entrada (fabry_perot.py) pelo seu script de entrada.

Além disso é importante definir o parâmetro SBATCH --nodes= com valor mínimo de dois nós.

#!/bin/bash

## EXEMPLO DE EXECUÇÃO EM VÁRIOS NÓS (NO MÍNIMO 2 NÓS E NO MÁXIMO 12 CORE POR NÓ)

#SBATCH --job-name=KWANTPARALELO		# Nome do job
#SBATCH --partition=medium				# Fila (medium/long/gpu)
#SBATCH --nodes=2						# 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
INPFILE="fabry_perot.py"

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

# Nó de execução
echo "Nós de Execuçao: " `srun hostname -s | sort -u`

# Iniciando Python 3
echo "Iniciando Kwant no Python 3 - " `date`
mpirun python3.8 ${INPFILE}

echo "Job Concluído - " `date`