Skip to content

[R] [package list]

R/4.4.1-cpeGNU-24.03-OpenMP (R-4.4.1-cpeGNU-24.03-OpenMP.eb)

Install with the EasyBuild-user module:

eb R-4.4.1-cpeGNU-24.03-OpenMP.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider R/4.4.1-cpeGNU-24.03-OpenMP.

EasyConfig:

#DOC This EasyConfig provides R compiled with the multithreaded LibSci libraries (hence the -OpenMP suffix)
#DOC and with packages for parallel computing and other packages offered by Cray-R already installed.
#DOC It also contains some packages for benchmarking.
name =          'R'
version =       '4.4.1'
versionsuffix = '-OpenMP'

local_bzip2_version =        '1.0.8'         # http://www.bzip.org/downloads.html
local_cairo_version =        '1.18.0'        # https://www.cairographics.org/
local_cURL_version =         '8.3.0'         # https://curl.haxx.se/download/
local_gzip_version =         '1.13'          # https://ftp.gnu.org/gnu/gzip/
local_libjpegturbo_version = '3.0.1'         # https://github.com/libjpeg-turbo/libjpeg-turbo/releases
local_libpng_version =       '1.6.40'        # http://www.libpng.org/pub/png/libpng.html
local_libreadline_version =  '8.2'           # https://ftp.gnu.org/pub/gnu/readline/
local_libtiff_version =      '4.6.0'         # https://download.osgeo.org/libtiff/
local_ncurses_version =      '6.4'           # https://ftp.gnu.org/pub/gnu/ncurses/
local_Pango_version =        '1.51.0'        # http://ftp.gnome.org/pub/GNOME/sources/pango/
local_PCRE2_version =        '10.42'         # https://ftp.pcre.org/pub/pcre/
local_Tk_version =           '8.6.13'        # https://tcl.tk/
local_XZ_version =           '5.4.4'         # https://tukaani.org/xz/
local_zlib_version =         '1.3.1'         # https://zlib.net/

local_cURL_version =         '8.3.0'         # https://curl.haxx.se/download/

local_Zip_version =   '3.0'
local_UnZip_version = '6.0'

homepage = 'https://www.r-project.org/'

whatis = [
    "Description: R is a free software environment for statistical computing and graphics."
]

description = """
This module provides a base R package, without many bells and whistles. 
A fully-featured R has many dependencies that do not all make sense on
the compute nodes of LUMI, in particular when it comes to graphics.

Similarly, the build process as-is will not find a web browser nor
PDF viewer as these are not currently available on regular compute
nodes of LUMI.

This version of R links with the multithreaded version of 
Cray LibSci, so its linear algebra routines support multithreading
by setting OMP_NUM_THREADS.

We have observed crashes in the linear algebra libraries when running
multithreaded. It appears that setting OMP_STACKSIZE=256M,
which is now done in the module, reduces those crashes. 
Using ulimit -s 300000 may also help. The problem has been discussed with
HPE Cray, but a solution will come at the earliest with 25.03.
"""

toolchain = {'name': 'cpeGNU', 'version': '24.03'}
toolchainopts = {'openmp': True}

source_urls = ['https://cloud.r-project.org/src/base/R-%(version_major)s']
sources =     [SOURCE_TAR_GZ]
checksums = [
    'b4cb675deaaeb7299d3b265d218cde43f192951ce5b89b7bb1a5148a36b2d94d',  # R-4.4.1.tar.gz
]
# Note: R will not be able to tell which BLAS library was used as it is linked
# in automatically and does not appear in BLAS_LIBS so that the code in the
# configure script cannot figure out which BLAS is being used and set
# r_blas properly.

builddependencies = [
    ('buildtools', '%(toolchain_version)s', '', SYSTEM),
]

dependencies = [
    # Base R
    ('ncurses',       local_ncurses_version),
    ('libreadline',   local_libreadline_version),
    ('zlib',          local_zlib_version),
    ('bzip2',         local_bzip2_version),
    ('gzip',          local_gzip_version),
    ('XZ',            local_XZ_version),
    ('Info-ZIP',      f'{local_Zip_version}-{local_UnZip_version}'),  # Not really needed as anything in this module is also in the system-installed versions.
    # TODO: Add a zip/unzip command, though the system one might be OK as it only uses the commands.
    ('PCRE2',         local_PCRE2_version),    
    ('cURL',          local_cURL_version),          # for RCurl but also used by the base R package
    ('X11',           '%(toolchain_version)s'),
    ('Tk',            local_Tk_version),            # for tcltk (base package)
    ('libpng',        local_libpng_version),        # for plotting in R
    ('libjpeg-turbo', local_libjpegturbo_version),  # for plottting in R
    ('LibTIFF',       local_libtiff_version),
    ('cairo',         local_cairo_version),
    ('Pango',         local_Pango_version),
    # For extra packages
    ('cURL',           local_cURL_version),
]

# Some R extensions (mclust, quantreg, waveslim for example) require the math library (-lm) to avoid undefined symbols.
# Adding it to FLIBS makes sure it is present when needed.
preconfigopts  = 'export FLIBS="$FLIBS -lm" && '
# We also need to ensure a single Cray LibSci library is used. It looks like R compiles
# some files with OpenMP if it figures out that the compiler supports OpenMP, but does
# not add the flag to the link options, resulting in problems with Cray LibSci. Hence
# we enforce OpenMP and manually add it to the linker flags as that is not done by
# the build process.
preconfigopts += 'export LDFLAGS="-fopenmp $LDFLAGS" && '

configopts = "--with-pic --enable-threads --enable-R-shlib"
# some recommended packages may fail in a parallel build (e.g. Matrix), and
# we're installing them anyway below
configopts += " --with-recommended-packages=no"

# specify that at least EasyBuild v3.5.0 is required,
# since we rely on the updated easyblock for R to configure correctly w.r.t. BLAS/LAPACK
easybuild_version = '3.5.0'

exts_default_options = {
    'source_urls': [
        'https://cran.r-project.org/src/contrib/Archive/%(name)s',  # package archive
        'https://cran.r-project.org/src/contrib/',  # current version of packages
        'https://cran.freestatistics.org/src/contrib',  # mirror alternative for current packages
    ],
    'source_tmpl': '%(name)s_%(version)s.tar.gz',
}

# !! order of packages is important !!
# packages updated on 4th January 2024
exts_list = [
    # include packages that are part of the base installation of R,
    # both to make sure they are available (via sanity check),
    # and to be able to pass the check for required dependencies when installing extensions in parallel
    'base',
    'compiler',
    'datasets',
    'graphics',
    'grDevices',
    'grid',
    'methods',
    'parallel',
    'splines',
    'stats',
    'stats4',
    'tcltk',
    'tools',
    'utils',
    #
    # Do Rmpi first because of potential problems
    #
    #
    # Parallel compputing packages
    #
    ('Rmpi', '0.7-2', {
        'easyblock':   'RPackage',
        'patches':     ['Rmpi-%(version)s_Cray.patch'],
        'installopts': '--configure-args="--with-Rmpi-type=CRAY --with-Rmpi-include=$CRAY_MPICH_DIR/include --with-Rmpi-libpath=$CRAY_MPICH_DIR/lib" ',
        'checksums':   ['8591fa9f50de52535a32b36e7ed142c6ca4e03fdfdbef79a1e27a63ed5322eef'],
    }),
    ('Rcpp', '1.0.13', {
        'checksums': ['21fec650c113e57935fd86c7d1be190811f1ae036c1ee203bfbbf3ad5cdb22ce'],
    }),
    ('codetools', '0.2-20', {
        'checksums': ['3be6f375ec178723ddfd559d1e8e85bfeee04a5fbaf9f53f2f844e1669fea863'],
    }),
    ('RUnit', '0.4.33', {
        'checksums': ['b2a4c5afc7ef9534dac5006f6ef1b2af68630bb73eb74ef70ec7ed53dae6cb5f'],
    }),
    ('tinytest', '1.4.1', {
        'checksums': ['f6fc13887d096ba444fb722ef34cc88e079fc18be9668ffead1ba586a30b1c74'],
    }),
    ('backports', '1.5.0', {
        'checksums': ['0d3ed9db8f1505e88967f48d669b2a257e0c6b7e6320ea64b946c1bd40897ca2'],
    }),
    ('rlang', '1.1.4', {
        'checksums': ['f2d74527508bf3287102470beb27de0d234c3cbba399c28d3312f2c83c64a6e1'],
    }),
    ('parallelly', '1.38.0', {
        'checksums': ['632c823c64d1bb840b2a5ff2cb2f5ffc743d62d5090a3cde55a2ebdde230d1aa'],
    }),
    ('iterators', '1.0.14', {
        'checksums': ['cef3075a0930e1408c764e4da56bbadd4f7d14315809df8f38dd51f80ccc677b'],
    }),
    ('foreach', '1.5.2', {
        'checksums': ['56338d8753f9f68f262cf532fd8a6d0fe25a71a2ff0107f3ce378feb926bafe4'],
    }),
    ('doParallel', '1.0.17', {
        'checksums': ['b96a25ad105a654d70c7b4ca27290dc9967bc47f4668b2763927a886b178abd7'],
    }),
    ('doMPI', '0.2.2', {
        'checksums': ['68a45715690f50ebb121ee868634ff269e8f9636599b8dd8f601bf714fa81c2a'],
    }),
    ('snow', '0.4-4', {
        'checksums': ['84587f46f222a96f3e2fde10ad6ec6ddbd878f4e917cd926d632f61a87db13c9'],
    }),
    ('snowfall', '1.84-6.3', {
        'checksums': ['2641932b01041e34b7afb1261f649755b4c8d6560080e0e2ee549ffdf3b8b143'],
    }),
    ('doSNOW', '1.0.20', {
        'checksums': ['917cabed166aa2d1ec291691c17e1e3d344e858543e1682e3a442cc0c504bbb8'],
    }),
    ('base64url', '1.4', {
        'checksums': ['1d058f138660e9155ebb331d7a2561e2541ee3321b8da90f6c41fd8dcc122c58'],
    }),
    ('brew', '1.0-10', {
        'checksums': ['4181f7334e032ae0775c5dec49d6137eb25d5430ca3792d321793307b3dda38f'],
    }),
    ('checkmate', '2.3.2', {
        'checksums': ['7255732d6c2da51204128a910e8c0d05246324a0402fca4d0d99433af40a88e3'],
    }),
    ('data.table', '1.16.0', {
        'checksums': ['58f8aec50099de80d84faa50295c17295d465f669be79b46c3c7ca18c56ef9cd'],
    }),
    ('fs', '1.6.4', {
        'checksums': ['7e06290f2dbe36f54fdf51b748a4b00b8b0f68967b5754e37e0c83df7fea5ac8'],
    }),
    ('cli', '3.6.3', {
        'checksums': ['4295085f11221c54b1dd2b1d39a675a85dfd9f900294297567e1d36f65ac4841'],
    }),
    ('glue', '1.7.0', {
        'checksums': ['1af51b51f52c1aeb3bfe9349f55896dd78b5542ffdd5654e432e4d646e4a86dc'],
    }),
    ('lifecycle', '1.0.4', {
        'checksums': ['ada4d3c7e84b0c93105e888647c5754219a8334f6e1f82d5afaf83d4855b91cc'],
    }),
    ('pkgconfig', '2.0.3', {
        'checksums': ['330fef440ffeb842a7dcfffc8303743f1feae83e8d6131078b5a44ff11bc3850'],
    }),
    ('vctrs', '0.6.5', {
        'checksums': ['43167d2248fd699594044b5c8f1dbb7ed163f2d64761e08ba805b04e7ec8e402'],
    }),
    ('hms', '1.1.3', {
        'checksums': ['e626f4c60af46efd53ea631b316a103e089470d8fd63c0e0c0efb99364990282'],
    }),
    ('prettyunits', '1.2.0', {
        'checksums': ['f059f27e2a5c82e351fe05b87ad712f7afc273c651450453f59d99af5deeacea'],
    }),
    ('R6', '2.5.1', {
        'checksums': ['8d92bd29c2ed7bf15f2778618ffe4a95556193d21d8431a7f75e7e5fc102bf48'],
    }),
    ('crayon', '1.5.3', {
        'checksums': ['3e74a0685541efb5ea763b92cfd5c859df71c46b0605967a0b5dbb7326e9da69'],
    }),
    ('progress', '1.2.3', {
        'checksums': ['ea2b079b894de85c3ab12088c9c52aec06432245047a961d5b4b8aa6889f9276'],
    }),
    ('rappdirs', '0.3.3', {
        'checksums': ['49959f65b45b0b189a2792d6c1339bef59674ecae92f8c2ed9f26ff9e488c184'],
    }),
    ('stringi', '1.8.4', {
        'checksums': ['c219f8f64d1a2bfd4ca9528452d44d30db1899af14f4b9ef248412443bc669f3'],
    }),
    ('withr', '3.0.1', {
        'checksums': ['d573f1ac2f733c7dd89669feb495d68f1f15d7a9774473c2e46a9848945a3841'],
    }),
    ('digest', '0.6.37', {
        'checksums': ['82c4d149994b8a4a9af930f5a8e47420829935abed41f3f9030e94b6a48f0321'],
    }),
    ('batchtools', '0.9.17', {
        'checksums': ['b6e1dd54e8b70c2bf38d2ad1884f6b60fc74c1100f910f46724aa723c0749be6'],
    }),
    ('globals', '0.16.3', {
        'checksums': ['d73ced94248d8b81d29d774bdfc41496274d7da683a5d84440aed6a501a18c5b'],
    }),
    ('listenv', '0.9.1', {
        'checksums': ['422aaf487b91c6512b83c05536f8dac255db79b16ee85254acc59a3fda8c1c3b'],
    }),
    ('future', '1.34.0', {
        'checksums': ['5839d4fd1f8beb1b18b27a7c50c1eb2bb5d80acd926b1bce9323637c8b2dfa5d'],
    }),
    ('future.apply', '1.11.2', {
        'checksums': ['f4a635b0fa5e0d826d2f8da6bc1fa5bb055e640c29a85c644931d08ab2d81387'],
    }),
    ('future.batchtools', '0.12.1', {
        'checksums': ['db71ea7f239adad3a34d692f1e8b01a6b52653344bc8db30a83b74d08c27d931'],
    }),
    #
    # Some other popular packages available in Cray-R
    #
    ('lattice', '0.22-6', { # Dependency for Matrix and others
        'checksums': ['4b377211e472ece7872b9d6759f9b9c660b09594500462eb6146312a1d4d00f7'],
    }),
    ('Matrix', '1.7-0', { # Also dependency for survival
        'checksums': ['fb97bba0df370222eb4f7e2da2e94dd01053b5e054b1c51829ff9a6efc08ad37'],
    }),
    ('MASS', '7.3-61', { # Dependency for class
        'checksums': ['3144c8bf579dd7b7c47c259728c27f53f53e294e7ed307da434dfd144e800a90'],
    }),
    ('class', '7.3-22', { 
        'checksums': ['b6994164e93843fcc7e08dfdc8c8b4af6a5a10ef7153d2e72a6855342508d15c'],
    }),
    ('foreign', '0.8-87', { 
        'checksums': ['1a24acf4c8e87acc740599e950388b88e5beab7e54f699a015366fbd86db2856'],
    }),
    ('KernSmooth', '2.23-24', { 
        'checksums': ['d0b3ec39547ffd92565e91b0c3bb637f3b30e7a46afe416d8790b8c4f528ac5f'],
    }),
    ('nlme', '3.1-166', { # Dependency for mgcv
        'checksums': ['237a14ee8d78755b11a7efe234b95be40b46fbdd1b4aaf463f6d532be1909762'],
    }),
    ('mgcv', '1.9-1', { # Needs nlme
        'checksums': ['700fbc37bedd3a49505b9bc4949faee156d9cfb4f669d797d06a10a15a5bdb32'],
    }),  
    ('nnet', '7.3-19', {
        'checksums': ['a9241f469270d3b03bbab7dc0d3c6a06a84010af16ba82fd3bd6660b35382ce7'],
    }),  
    ('rpart', '4.1.23', {
        'checksums': ['f9b89aed6aa6cea656a2dcb271574e969ce2b1c98beb07bd91e17339f6daabaf'],
    }),  
    ('spatial', '7.3-17', {
        'checksums': ['f1003ed8cff2a47169a4787c8be46e8c2c501cc06c8b1e5f97bf62507e5f5dd7'],
    }),  
    ('survival', '3.7-0', { # Needs Matrix
        'checksums': ['cd96b08ec928b0028f69c942cc788e190b4543c8518d71deb6d8a712de44feef'],
    }),
    #
    # Some benchmarking packages and their dependencies not yet included above.
    #
    ('fansi', '1.0.6', { # Dependency for bench
        'checksums': ['ea9dc690dfe50a7fad7c5eb863c157d70385512173574c56f4253b6dfe431863'],
    }),
    ('utf8', '1.2.4', { # Dependency for bench
        'checksums': ['418f824bbd9cd868d2d8a0d4345545c62151d321224cdffca8b1ffd98a167b7d'],
    }),
    ('pillar', '1.9.0', { # Dependency for bench
        'checksums': ['f23eb486c087f864c2b4072d5cba01d5bebf2f554118bcba6886d8dbceb87acc'],
    }),
    ('profmem', '0.6.0', { # Dependency for bench
        'checksums': ['745ca9b22a8de3cda4374be6e2454e549742a3b72ff02c8894c972178192e63d'],
    }),
    ('magrittr', '2.0.3', { # Dependency for bench
        'checksums': ['a2bff83f792a1acb801bfe6330bb62724c74d5308832f2cb6a6178336ace55d2'],
    }),
    ('tibble', '3.2.1', { # Dependency for bench, benchmarkme
        'checksums': ['65a72d0c557fd6e7c510d150c935ed6ced5db7d05fc20236b370f11428372131'],
    }),
    ('bench', '1.1.3', {
        'checksums': ['bfae6320ad8c0c84fa6832519fac0e783e8d3ac5e3019ff6526f8060e8f1f317'],
    }),
    ('microbenchmark', '1.5.0', {
        'checksums': ['3d1e92a9206811ad128b28795d20a0d31da5f0c29ea7f1caaf1194ed3e49765f'],
    }),
    ('SuppDists', '1.1-9.8', { # Random number generators used by the commonly used R-benchmark-25.R script
        'checksums': ['6502e2113c4bd68351bc7c8daacd48170b5217b2f987ac2f757f557c78d3681e'],
    }),
    ('generics', '0.1.3', { # Dependency for bemchmarkme via dplyr
        'checksums': ['75046163bfa8b8a4f4214c1b689e796207f6447182f2e5062cf570302387d053'],
    }),
    ('tidyselect', '1.2.1', { # Dependency for bemchmarkme via dplyr
        'checksums': ['169e97ba0bbfbcdf4a80534322751f87a04370310c40e27f04aac6525d45903c'],
    }),
    ('dplyr', '1.1.4', { # Dependency for bemchmarkme
        'checksums': ['cf730414d5d4ab387b4e9890a4b1df9d17a3903488e8da8df1cf2e11e44558cb'],
    }),
    ('curl', '5.2.2', { # Dependency for bemchmarkme via httr
        'checksums': ['a658530f7d89e3ab6e7842ace2c79098a1a979bf9249a76599799f6e38ea11ff'],
    }),
    ('jsonlite', '1.8.8', { # Dependency for bemchmarkme via httr
        'checksums': ['7de21316984c3ba3d7423d12f43d1c30c716007c5e39bf07e11885e0ceb0caa4'],
    }),
    ('mime', '0.12', { # Dependency for bemchmarkme via httr
        'checksums': ['a9001051d6c1e556e881910b1816b42872a1ee41ab76d0040ce66a27135e3849'],
    }),
    ('sys', '3.4.2', { # Dependency for bemchmarkme via askpass via openssl via httr
        'checksums': ['b7bdce66f0fb681830ea6fb77b5a2c6babb43920abb1eddc733f95c0a63ce5b3'],
    }),
    ('askpass', '1.2.0', { # Dependency for bemchmarkme via openssl via httr
        'checksums': ['b922369781934d0ffc8d0c0177e8ace56796c2e6a726f65e460c16f792592cef'],
    }),
    ('openssl', '2.2.1', { # Dependency for bemchmarkme via httr
        'checksums': ['25a12328d584212d8d4c095b3d2a71152c5d2bc4adda7a9addb25da01136f78d'],
    }),
    ('httr', '1.4.7', { # Dependency for bemchmarkme
        'checksums': ['1555e6c2fb67bd38ff11b479f74aa287b2d93f4add487aec53b836ff07de3a3a'],
    }),
    ('stringr', '1.5.1', { # Dependency for bemchmarkme
        'checksums': ['a4adec51bb3f04214b1d8ef40d3a58949f21b1497cbeaf2ba552e0891eef45de'],
    }),
    ('benchmarkmeData', '1.0.4', { # Dependency for bemchmarkme
        'checksums': ['6e0768db1c783d2fa84d5214f3d8024dc9c69c7cc4d108059fa652fcd4949bd8'],
    }),
    ('benchmarkme', '1.0.8', {
        'checksums': ['1d7100e001a355afc83815b1b698466135f4512c53528c324d13013b3c475f61'],
    }),
]

# Set OMP_STACKSIZE to avoid crashes in LibSci
modextravars = {
    'OMP_STACKSIZE': '256M',
}

moduleclass = 'lang'

[R] [package list]