Python 3.8

Descrição

Python é uma linguagem de programação de alto nível, interpretada, de script, imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte. Foi lançada por Guido van Rossum em 1991.

Utilização Serial

Este exemplo é apropriado para a maioria dos casos onde o script Python não foi desenvolvido para utilizar paralelismo, dessa forma, é recomendado que o arquivo .srm tenha os seguintes parâmetros para a submissão do job:

#!/bin/bash

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

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

# Arquivo de entrada
INPFILE="serial.py"
# Arquivo de saída
OUTFILE="serial.out"

# 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 Python 3 - " `date`
srun python3.8 ${INPFILE} > ${OUTFILE}

echo "Job Concluído - " `date`

Utilização Paralela

Neste exemplo o script Python utiliza a biblioteca Joblib  para execução paralela, dessa forma podemos habilitar vário núcleos de processamento para esta tarefa. Para este tipo de execução recomendado que o arquivo .srm tenha os seguintes parâmetros para a submissão do job:

#!/bin/bash

## EXEMPLO DE EXECUÇÃO PARALELA
## OBS: O script de entrada em python precisa ser desenvolvido
##      para utilizar esta funcionalidade.

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

# Arquivo de entrada
INPFILE="paralelo.py"
# Arquivo de saída
OUTFILE="paralelo.out"

# 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 Python 3 - " `date`
srun python3.8 ${INPFILE} ${SLURM_NTASKS} > ${OUTFILE}

echo "Job Concluído - " `date`