Migrating from Rider
General Concepts
The software library available through modules on Pioneer is generally richer and more up to date than on Rider, but the way it is organized is significantly different. Keep in mind the following key points while migrating a job or workflow from Rider to Pioneer.
Module Hierarchy
The software modules on Rider were organized hierarchically, so you needed to load certain modules before you could load other modules. On Pioneer, the modules are all flat, so you just load the application you want directly. For example on Rider, you first need to load gcc 6.3.0 before you can load Python 2.8.6:
module load gcc/6.3.0 python/3.8.6
On Pioneer, you just load Python directly, and it handles loading any dependent modules:
module load Python/3.8.6
Matching Dependencies
A second key point to note is that since the modules load all of their dependencies, you must plan to load compatible modules if you need a software stack beyond a single module. Matching the dependencies is fairly simple in most cases, where we only need to match the toolchain that was used to build the software. The toolchain is included in the full version string for the modules, e.g. highlighted in bold below:
module spider R
...
Versions:
R/4.0.3-foss-2020b
R/4.1.0-foss-2021a
R/4.1.2-foss-2021b
R/4.1.3-foss-2021a
R/4.2.0-foss-2021b
R/4.2.1-foss-2021a
R/4.2.1-foss-2021b
R/4.2.1-foss-2022a
R/4.2.2-foss-2022a
R/4.2.2-foss-2022b
If we want to load Tensorflow and R, we need to load versions from compatible toolchains, so we also look at Tensorflow:
module spider TensorFlow
...
Versions:
TensorFlow/2.6.0-foss-2021a-CUDA-11.3.1
TensorFlow/2.7.1-foss-2021b-CUDA-11.4.1
TensorFlow/2.11.0-foss-2022a-CUDA-11.7.0
We see that Tensorflow 2.11 and R 4.2.2 were both compiled with the foss-2022a toolchain, and thus we can load them both without generating conflicts:
module load R/4.2.2-foss-2022a TensorFlow/2.11.0-foss-2022a
As a general rule of thumb, if you see messages like "Reloading the following modules..." output to the terminal, you have a conflict in your module versions.
Python
Multiple versions of Python are available:
module spider Python
Versions:
Python/2.7.18-GCCcore-9.3.0
Python/2.7.18-GCCcore-10.2.0
Python/2.7.18-GCCcore-10.3.0-bare
Python/2.7.18-GCCcore-11.2.0-bare
Python/2.7.18-GCCcore-11.3.0-bare
Python/3.7.4-GCCcore-8.3.0
Python/3.8.2-GCCcore-9.3.0
Python/3.8.6-GCCcore-10.2.0
Python/3.9.5-GCCcore-10.3.0-bare
Python/3.9.5-GCCcore-10.3.0
Python/3.9.6-GCCcore-11.2.0-bare
Python/3.9.6-GCCcore-11.2.0
Python/3.10.4-GCCcore-11.3.0-bare
Python/3.10.4-GCCcore-11.3.0
Python/3.10.8-GCCcore-12.2.0-bare
Python/3.10.8-GCCcore-12.2.0
These can be loaded directly, e.g. module load Python/3.10.4
In addition, several widely used Python packages have dedicated modules, such as Tensorflow and SciPy. Loading the package specific modules loads the compatible version of Python, e.g.:
[stm@hpc8 ~]$ module load SciPy-bundle/2022.05
[stm@hpc8 ~]$ python
Python 3.10.4 (main, Sep 12 2022, 18:12:09) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
We encourage the use of virtual environments when there is a need to build a highly customized software stack, such as specific versions of libraries, or libraries beyond what are available in the default install.
R
There are multiple version of R:
module spider R
Versions:
R/4.0.3-foss-2020b
R/4.1.0-foss-2021a
R/4.1.2-foss-2021b
R/4.1.3-foss-2021a
R/4.2.0-foss-2021b
R/4.2.1-foss-2021a
R/4.2.1-foss-2021b
R/4.2.1-foss-2022a
R/4.2.2-foss-2022a
R/4.2.2-foss-2022b
These can be loaded directly, e.g. module load R/4.2.2.
There are also a modules available specifically for Bioconductor that load the compatible supporting version of R, e.g.:
[stm@hpc8 ~]$ module load R-bundle-Bioconductor/3.15
[stm@hpc8 ~]$ R
R version 4.2.2 (2022-10-31) -- "Innocent and Trusting"
Copyright (C) 2022 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
...
Additional packages can be installed in the user home directory the same as on Rider.
MATLAB
There are multiple versions of MATLAB, which can be loaded directly, the same as on Rider
module spider matlab
Versions:
matlab/R2020b
matlab/R2021b
matlab/R2023a