BwUniCluster2.0/Software/R/Glmnet
Note that the instructions provided below refer to R 4.4.1 (but not R 4.2.1)!
General information
glmnet
is an R
package that fits generalized linear and similar models via penalized maximum likelihood, particularly, lasso and elastic-net.
Installation instructions
Preparations
Installing glmnet
involves compiling source code. Therefore, ensure that the following flags are set in $HOME/.R/Makevars
:
cat ~/.R/Makevars CXX14=g++ CXX17=g++ CXX14FLAGS += -std=c++14 CXX17FLAGS += -std=c++17 CXXFLAGS = -O3 -fPIC -march=cascadelake -ffp-contract=off -fno-fast-math -fno-signed-zeros -fopenmp -Wno-unknown-warning-option
If necessary, the appropriate compiler flags can be set by running the following lines of code:
mkdir -p ~/.R echo "CXX14=g++" > ~/.R/Makevars echo "CXX17=g++" >> ~/.R/Makevars echo "CXXFLAGS = -O3 -fPIC -march=cascadelake -ffp-contract=off -fno-fast-math -fno-signed-zeros -fopenmp -Wno-unknown-warning-option" >> ~/.R/Makevars echo "CXX14FLAGS += -std=c++14" >> ~/.R/Makevars echo "CXX17FLAGS += -std=c++17" >> ~/.R/Makevars
Since installing glmnet
involves compiling, we start an interactive session on one of the compute nodes:
salloc -n 1 -t 30 -p dev_single
- Load the R software module, e.g.
module load math/R/4.1.2
- Prepare .R directory (if it does not already exists)
mkdir -p ~/.R
- Write the following environment variables to Makevars
- Skip the 2nd and 3rd commands below if Makevars already consist these variables (1st command shows content of Makevars)
cat ~/.R/Makevars echo "CXX17=icpc" >> ~/.R/Makevars echo "CXX17FLAGS=-O3 -fPIC -std=c++17 -axCORE-AVX512,CORE-AVX2,AVX -xSSE4.2 -fp-model strict -qopenmp" >> ~/.R/Makevars
- Install the glmnet package from within R session
R -q > install.packages("glmnet", dependencies=TRUE)
- Run a quick test
> library(glmnet) > data(QuickStartExample) > x <- QuickStartExample$x > y <- QuickStartExample$y > fit <- glmnet(x, y) > print(fit)