R é uma linguagem de programação multi-paradigma, dinâmica, fracamente tipada, voltada à manipulação, análise e visualização de dados. Foi criado originalmente por Ross Ihaka e por Robert Gentleman no departamento de Estatística da Universidade de Auckland, Nova Zelândia.
Este exemplo é apropriado para a execução de scripts simples que não foram desenvolvidos para utilizar paralelismo, dessa forma, é recomendado que o arquivo .srm tenha os seguintes parâmetros para a submissão do job, substituindo:
entrada.R
pelo nome do seu arquivo de entrada;saida.out
pelo nome do seu arquivo de saída.#!/bin/bash #SBATCH --job-name=RSERIAL # 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.R" # 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 R - " `date` Rscript ${ARQINP} > ${ARQOUT} echo "Job Concluído - " `date`
Este exemplo é voltado para execução de script em vários cores de um único nó , dessa forma, é recomendado que o arquivo .srm tenha os seguintes parâmetros para a submissão do job, substituindo:
entrada.R
pelo nome do seu arquivo de entrada;saida.out
pelo nome do seu arquivo de saída;--cpus-per-task=4
pela quantidade de cores utilizados (máximo 12).#!/bin/bash #SBATCH --job-name=R-MULTINODE # 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 ## A entrada abaixo está configurada para 4 CPUs ARQINP="entrada.R" # 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 R - " `date` Rscript --vanilla ${ARQINP} > ${ARQOUT} echo "Job Concluído - " `date`
Este exemplo é voltado para execução de script em vários nós de um único nó , dessa forma, é recomendado que o arquivo .srm tenha os seguintes parâmetros para a submissão do job, substituindo:
entrada.R
pelo nome do seu arquivo de entrada;saida.out
pelo nome do seu arquivo de saída;--nodes=2
pela quantidade de nós utilizados (mínimo 2).#!/bin/bash #SBATCH --job-name=R-MULTINODE # 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.R" # 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 R - " `date` mpirun -n 1 Rscript --vanilla ${ARQINP} > ${ARQOUT} echo "Job Concluído - " `date`