R CRAN

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.

Utilização Serial

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`

Utilização Multicore

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`

Utilização Multinode

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`