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.
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`
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`