BwUniCluster2.0/Software/R/stringi: Difference between revisions

From bwHPC Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
<span style="color:red"><b>Note that the instructions provided below refer to R 4.2.1 (but not R 4.3.3)! We are currently updating our guides for R 4.3.3.</b></span>
<span style="color:red"><b>Note that the instructions provided below refer to R 4.4.1 (but not R 4.2.1)! We are currently updating our guides for R 4.3.3. </b></span>


= General information =
= General information =
Line 10: Line 10:


== Preparations ==
== Preparations ==
Prepare .R directory (if it does not already exists). This is then filled with information how R should compile the packages ('compiler flags'). These are written (and can be reviewed) into the (text) file Makevars.
Prepare an <code>.R/Makevars</code> file (if it does not already exist). This file specifies how R should compile the packages (i.e., sets some 'compiler flags').

If you already have a .R/Makevars file, check whether these flags are already set.


If an <code>.R/Makevars</code> file is present in your home directory (<code>$HOME</code>), check whether the flags displayed below are already set and apply adjustments, if necessary:
<pre>
<pre>
cat ~/.R/Makevars
cat ~/.R/Makevars

CXX14=g++
CXX17=g++
CXXFLAGS = -O3 -fPIC -mavx -mavx2 -mavx512f -msse4.2 -ffp-contract=off -fno-fast-math -fno-signed-zeros -fopenmp -Wno-unknown-warning-option
CXX14FLAGS += -std=c++14
CXX17FLAGS += -std=c++17
</pre>
</pre>




In this case, skip the following block of five commands. If this is not the case, enter the following commands in your shell (command line).
In this case, skip the following block of five commands. If this is not the case, enter the following commands in your shell (command line).

Revision as of 17:57, 28 October 2024

Note that the instructions provided below refer to R 4.4.1 (but not R 4.2.1)! We are currently updating our guides for R 4.3.3.

General information

stringi is an R package for fast, portable, correct, consistent, and convenient string/text processing in any locale or character encoding.

Installation

Please enter the code, presented in the boxes below, directly in your shell/command line on bwUniCluster:

Preparations

Prepare an .R/Makevars file (if it does not already exist). This file specifies how R should compile the packages (i.e., sets some 'compiler flags').

If an .R/Makevars file is present in your home directory ($HOME), check whether the flags displayed below are already set and apply adjustments, if necessary:

cat ~/.R/Makevars

CXX14=g++ 
CXX17=g++
CXXFLAGS = -O3 -fPIC -mavx -mavx2 -mavx512f -msse4.2 -ffp-contract=off -fno-fast-math -fno-signed-zeros -fopenmp -Wno-unknown-warning-option
CXX14FLAGS += -std=c++14
CXX17FLAGS += -std=c++17


In this case, skip the following block of five commands. If this is not the case, enter the following commands in your shell (command line).

mkdir -p ~/.R
echo "CXX14=icpc" >> ~/.R/Makevars
echo "CXX17=icpc" >> ~/.R/Makevars
echo "CXX14FLAGS=-O3 -fPIC -std=c++14 -wd308 -axCORE-AVX512,CORE-AVX2,AVX -xSSE4.2 -fp-model strict -qopenmp" >> ~/.R/Makevars
echo "CXX17FLAGS=-O3 -fPIC -std=c++17 -wd308 -axCORE-AVX512,CORE-AVX2,AVX -xSSE4.2 -fp-model strict -qopenmp" >> ~/.R/Makevars
echo "CXXFLAGS += -wd308" >> ~/.R/Makevars
echo "PKG_CXXFLAGS += -std=c++14 -wd308" >> ~/.R/Makevars

The installation of stringi makes use other libraries (C/C++ and Java libraries for Unicode and globalization, icu4c Intel) which need to be loaded before installation (and R, of course).

module purge 	
module load math/R
module load lib/icu4c/74.1_intel2021.4.0


Installing the R package

We can now install stringi (in its development version) and its dependencies within a R session

R -q
> install.packages("stringi")

Testing the installation

To check whether the installation worked, make a test run in R

> library(stringi)
> stri_length(c("Hello", "world", "!"))
[1] 5 5 1


Note that you always need to load

module load math/R/4.1.2
module load lib/icu4c/74.1_intel2021.4.0

to your batch job scripts that use stringi or to run them directly in the command line if you use an interactive session.