Parallel Installation of R Packages

Installing R packages on Linux is time consuming if the packages include compiled code – which is the case for a lot of contemporary packages.

To speed things up we can use the argument Ncpus for install.packages:

install.packages("here", Ncpus = 4)

The optional arguments for devtools::install and remotes::install_* are passed on to install.packages, so Ncpus can be used here as well.

The command detectCores from the standard library package parallel can detect the number of available (logical) cores.

In my Docker images with R I now use Ncpus and experience a great speedup. The number used in Ncpus can be set with a build argument called NCORES.

If NCORES is specified it is available as an environment variable with a value during the build. If it is not specified the environment variable is an empty string.

I use this behavior to set a default number if NCORES is not specified:

Sys.getenv("NCORES", unset = parallel::detectCores())