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.
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.
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.
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:
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-ggplot) can use these commands.
ml r/3.6.1 ml r-devtools ml r-ggplot2 R > library(ggplot2)