Migrating to the upgraded module system
The OS upgrade requires reinstalling all software on the HPCC. ICER has also used this as an opportunity to realign our module system closer to the tools we use to install software.
As such, users have to take steps to transition their workflows to work successfully with the new module system. Please follow the steps below to make the necessary changes.
The key points are to:
- Look up the new names/versions for software
- Make sure that when loading multiple pieces of software at once, they have compatible "toolchains"
Find the new names of software
The names of all nearly all software have changed. To search for the new software names, please review the Available Software page or use the module spider
command.
For example, you can load R
in the previous module system using
1 |
|
On the upgraded module system, search for R
and ignore the "gateway" modules that are dependencies. Additionally, most of the versions of software supported have changed, so you may need to search without the version.
input | |
---|---|
1 |
|
output | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
R/4.2.2
is available under the name R/4.2.2-foss-2022b
.
The line
1 |
|
in a script or on the command line can then be replaced with
1 |
|
On the new operating system. When there is only one version of the software with that version, you can use only the version and leave off the toolchain identifier, e.g.,
1 |
|
will also work.
Load modules from compatible toolchains
In the new module system, the structure of most module names follows the same format:
1 |
|
The "toolchain" is the set of programs used to compile and install that software, and needs to be loaded first before the software itself can be loaded. On the old system, this was done manually, e.g., by first loading GCCcore
and OpenMPI
(see the above example). On the new system this is done automatically.
However, this allows for the potential of loading modules with incompatible toolchains at the same time. Doing so will produce an error message, e.g.,
input | |
---|---|
1 |
|
output | |
---|---|
1 2 3 4 5 6 7 8 9 10 |
|
Instead, you will need to search for versions of the software that have compatible toolchains using the module spider
command (again, see the above example).
Another alternative (if it fits your workflow) is to load these modules in separate stages. First, load the first module, and do your work with that software. Then run module purge
, load the second module, and do your work with that software.
Loading modules from subtoolchains is also allowed
You are also allowed to load modules from "subtoolchains" that are compatible with a toolchain that is already loaded, that is, software that has been installed with a subset of the pieces in a full toolchain. For example, the foss/2023a
toolchain includes GCCcore/12.3.0
which is a subtoolchain. The two primary toolchains are foss
and intel
. For a full listing of their subtoolchains, see EasyBuild's documentation, but common examples include gfbf
, gompi
, iimpi
, and iimkl
.
Most subtoolchains share the same versioning scheme, labeled by a year and a letter. On the HPCC the three primary versions of all toolchains are 2022b
, 2023a
, and 2023b
. So for example, you can load modules with the foss-2023a
and gfbf-2023a
toolchains at the same time. The exception to this scheme is GCCcore
. It is always named using the version of the GCC software, and corresponds to the year/letter scheme as follows:
GCCcore/12.2.0
is in all2022a
toolchainsGCCcore/12.3.0
is in all2023a
toolchainsGCCcore/13.2.0
is in all2023b
toolchains
This can be verified by loading a year/letter toolchain and running module list
, e.g.,
input | |
---|---|
1 2 |
|
output | |
---|---|
1 2 3 4 5 6 7 8 9 |
|
Note that software without a toolchain (e.g., MATLAB
) can be loaded with any other module.
Use module purge
to load software incompatible with default modules
All default modules are installed under 2023a
toolchains. If you try to load a module with any other toolchain, you must first run
1 |
|
to avoid the errors discussed above.
Use the exact name of software when loading
At the moment, the module system is case sensitive. For example,
1 |
|
works, while
1 |
|
does not. ICER is working to resolve this, but for now, please make sure to use the name exactly as specified in the module spider
results (note that searching with module spider
is not case sensitive).
Search for and load extensions
Some modules include "extensions" to software. For example, the R-bundle-CRAN
includes hundreds of R
packages, and SciPy-bundle
includes many commonly used Python packages for data analysis. When using module spider
, you can also search for these extensions:
input | |
---|---|
1 |
|
output | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
As the message suggests, extensions are marked with an (E)
. To figure out what module loads them, run module spider
with the specific version:
input | |
---|---|
1 |
|
output | |
---|---|
1 2 3 4 5 6 7 8 9 10 |
|
Request missing modules
If a software module you need was not carried over from the previous system, please request it by submitting a ticket with the subject "OS Upgrade 2024".
If you need access to a piece of software immediately and cannot wait for it to be reinstalled, please look into using our backwards compatibility options.
Version availability
ICER may not be able to install older versions of software especially if they require older compilers that do not work well on the new operating system. Please try using versions of the software that are already installed before reaching out to request older versions. When requesting an older version, please provide a short justification.