Installation of INLA and inlabru with Apptainer on HPC
Man Ho SuenSource:
High Performance Computing (HPC) is surging in popularity. Building INLA package on the HPC systems with the Anaconda environment sometimes can be tricky due to the Linux distributions and glibc versions. This article is to suggest a workaround with container images using Apptainer (formerly known as Singularity) because Docker requires root access and is usually not available on HPC. Apptainer can pull Docker images. Despite its convenience, the image size can be large.
- Check if Apptainer is available on your HPC. If not, ask the administrator to install it. Type on your HPC terminal to check which version is installed.
$ apptainer version
- Type the code below to pull the rocker/geospatial
Singularity Image Format (SIF) file with the latest R version. For
illustration, we’ll assume the file is stored at
# To pull the docker image $ apptainer pull your_container.sif docker://rocker/geospatial:latest # once the sif is downloaded, get into an interactive shell $ apptainer shell your_container.sif # Inside the interactive shell, one can install INLA on a personal library path $ R --verbose # Now, in a R environment > options(repos = c( INLA = 'https://inla.r-inla-download.org/R/testing', CRAN = 'https://cloud.r-project.org')) > install.packages("INLA") # One may be asked to create a personal library path. > install.packages("inlabru") # quit R > q()
- Put the following in your job script to execute an R file non-interactively.
# To execute an R file with apptainer $ apptainer exec ./your_container.sif Rscript --no-restore --no-save --verbose file_to_run.R
inla.setOption(num.threads = ncpu) to limit
the number of threads (ncpu) since INLA does not set it automatically.
ncpu also directly links to RAM requirements.