High-level languages

Software package version
R 3.2.1-3, 3.3.1-2, 3.4.1, 3.5.1
Octave 4.0.0, 4.0.2, 4.2.0
Python 2.7.10, 2.7.13, 3.5.0, 3.6.5
Perl 5.22.0
Bash 4.1.2
Git 2.7.2

R

R is a language and environment for statistical computing and graphics. It is similar to the S language and environment developed at Bell Laboratories (formerly AT&T, now Lucent Technologies). R provides a wide variety of statistical and graphical techniques and is highly extensible.

Usage

module load R

R version 3.2.1 (2015-06-18) -- "World-Famous Astronaut"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-unknown-linux-gnu (64-bit)

Parallel R

The R is not parallelized by itself. There are a lot of R packages that focus on High-Performance and Parallel Computing with R. Here is a list: https://cran.r-project.org/web/views/HighPerformanceComputing.html

Number of Cpus

If you are using the core function detectCores please notice that this function reports the number of CPU cores on the current running host and NOT the ALLOCATED SLURM cpus. e.g:

#!/usr/bin/env Rscript

library(parallel)
numCores <- detectCores()
numCores

n <- Sys.getenv("SLURM_CPUS_PER_TASK")
as.numeric(n)
#SBATCH --ntasks=1
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=4

srun numcores.R
### Output
[1] 20 #num of physical cores on compute node
[1] 4  #SLURM cpus per task

Octave

GNU Octave is a high-level language primarily intended for numerical computations. It is typically used for such problems as solving linear and nonlinear equations, numerical linear algebra, statistical analysis, and for performing other numerical experiments. It may also be used as a batch-oriented language for automated data processing.