Software modules
Blue Crab hosts two extensive sets of software modules accessible by the Lmod
environment modules system. Most users will start with the default modules which we call the “original software modules” and can be viewed with module avail
after you log on. We also offer “new software modules” which provide additional packages installed with the Spack build system. The “new software modules” offer the newest set of compilers and package options. More importantly, they also provide a number of supporting Python and R packages which can save users the effort of configuring these packages on their own.
The “Original” Software Modules
Blue Crab provides a large number of software modules using the Lmod
environment modules system. Users can view the modules using the module avail
or ml av
command. You can load a module by using the module load
command. For example, to use Python 3.7, you can run module load python/3.7
or ml 3.7
for short.
Not all modules are visible at all times. We show software which has been compiled with a single compiler (either Intel or GCC) and a single MPI implementation (OpenMPI or IntelMPI). We do not allow mixing of compilers. This means that switching from the default Intel compiler to GCC will reveal a new set of modules based on the GCC compiler. The upshot is that you must use a special command to search for modules which you cannot see. Use a command like module spider lammps
to search the entire tree for a piece of software. It will tell you if you need to switch compilers to load it. The following example demonstrates this method.
$ ml list
Currently Loaded Modules:
1) centos7/current 2) intel/18.0 3) openmpi/3.1 4) MARCC/summer-2018
$ ml spider lammps
ml spider lammps
----------------------------------------
lammps:
----------------------------------------
Versions:
lammps/2016-ICMS
lammps/20180822-gpu
lammps/20180822
lammps/20190208
lammps/20190329
lammps/20190514
----------------------------------------
For detailed information about a
specific "lammps" module (including
how to load the modules) use the
module's full name.
For example:
$ module spider lammps/20180822
----------------------------------------
$ module spider lammps/20190514
----------------------------------------
lammps: lammps/20190514
----------------------------------------
You will need to load all module(s)
on any one of the lines below before
the "lammps/20190514" module is
available to load.
gcc/5.5.0 openmpi/3.1
$ module load gcc/5.5.0
Lmod is automatically replacing "intel/18.0" with "gcc/5.5.0".
Due to MODULEPATH changes, the following have been reloaded:
1) openmpi/3.1
$ module load openmpi/3.1
$ module load lammps/20190514
$ which lmp
/software/apps/lammps/20190514/gcc/5.5/openmpi/3.1/bin/lmp
$ ml
Currently Loaded Modules:
1) centos7/current 3) gcc/5.5.0 5) cuda/9.2 7) fftw3/3.3.8
2) MARCC/summer-2018 4) openmpi/3.1 6) gsl/2.5 8) lammps/20190514
In the workflow above we have listed our modules, used module spider
to search for instructions to load the latest available LAMMPS package, and then used the module load
commands to access the right software. We call this system a hierarchical modules system because we enforce the use of a single compiler and MPI implementation to constrain the set of available codes. This reduces compatibility problems.
Users with further questions about the modules system should read the documentation for Lmod for more details.
The “New” Software Modules
The latest software builds on Blue Crab are now available through an alternative modules tree. These have been delivered with the Spack package management tool which has been developed by a large community of very generous programmers who help to make a more uniform and comprehensive set of software available to scientists.
To use the “new” software modules, run ml stack/0.3
or ml stack/0.4
for the pre-release version.
History
The original software modules were built after our August 2018 upgrade. In 2019 we started offering new software inside of a separate set of Lmod software modules using Spack. New and complex software requests will be added to this module tree in the future.
The new stack can be accessed by running ml stack
which loads a special module that replaces all of the available modules. You must run this command once per terminal session unless you add it to your ~/.bashrc
file. After you load the stack
module, try module avail
to see the new additions. As with the original software modules, the modules are hierachical, which means that loading a different compiler or MPI implementation will change the available list. The default compiler is gcc/7.4.0
and the default MPI is openmpi/3.1.5
on the new software modules. To return to the original modules, use ml -stack
and your modules will be reset.
Note that there may be some lingering issues with module collections, including the default collection. Please consult our support team if you encounter one of these issues.
Releases
We maintain both a current and pre-release version of the stack
module. We recommend taking note of which one you are using. After you load the default with ml stack
, use ml
to see which version you are using. The current release is ml stack/0.3
. You should use this in your SLURM scripts to maintain a stable environment. We may upgrade or remove packages over time. We also offer a pre-release version with new software available if you use ml spider
to list the versions.
Extra compilers
The primary benefit to the new stack is that we can easily supply almost any package provided by Spack. This helps improve the number and combination of supporting packages, including compilers and MPI implementations. As of 2019 this includes the following items which cannot be found on the default modules list:
gcc/6.3.0
gcc/7.4.0
gcc/9.2.0
llvm/8.0.0
The entire list includes many more complex packages. We encourage all users to consult the list when they need new software.
Returning to the original modules
You cannot unload the stack
module (if you try, you will see a warning message). This differs from the standard Lmod method in order to accomodate our use of two entirely distinct sets of modules. Instead, use ml original
to return to the default modules system if the new stack does not interest you. We provide hints when you load the stack
module to remind you of the right command. If you want to permanently use the new modules, load stack
and then save your default modules with ml save
which will save your current modules as the default for next time
More efficient R packages
The R package provided by r/3.6.1
on the new software stack also provides packages via modules. Typically a user who wants to use the devtools
package will install a local copy using install.packages
inside an R session. This is both time-consuming and wastes disk space. Users who wish to automatically load R packages from the list (e.g. r-devtools
and r-ggplot
) can use these commands.
ml r/3.6.1
ml r-devtools
ml r-ggplot2
R
> library(ggplot2)
Please let our support team know if you are interested in other R packages provided by Spack.