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