Working with Modules on CentOS 7
We appreciate your patience in the transition from CentOS 6 to CentOS 7.
This page is a resource guide for updating your profiles (or rather, cleaning them) so that you can understand how Lmod modules are used on the MARCC Blue Crab Cluster.
New users should mostly be unaffected as module commands are not inserted for new accounts.
On the old CentOS 6 system, bash profile files showed that users could load modules like so (here’s an old $HOME/.bashrc)
# .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions # this is a comment, you may want to comment out 'module loads' module load slurm module load gcc
The practice works, but many users are not aware that they load gcc by default. Our current recommended practice is to use the ‘centos7’, ‘intel’, and ‘openmpi’ modules (as this was our previous default on MARCC), and comment out ‘
module load <module>‘ where
<module> is a valid module.
There are multiple ways to manage modules
module load 'module'in your
- You can use Lmod to control the defaults for you, as well as save module collections – directions ahead
- Re-perform module loads inside job scripts
Please exclusively perform 1) and 2) SEPARATELY, otherwise you may get confused as to what is driving your software module collection. 3) is probably the most common, to properly set the software grounds for a job before running local or MARCC shared software.
We will discuss the 2nd step as many new users are unaware that they can control their module collections this way.
Getting Back to Square One
If you are unsure what modules you are using, run the command
And if you want to use the recommended starting basis for MARCC – the MARCC module contains the modules ‘centos7’, ‘intel/18.0’, and ‘openmpi/3.1’.
module purge; module load MARCC # comment: what's inside this software tree module avail # comment: look for software across all compiler/MPI trees module spider # comment: verify module list
If you want to save this for jobs and future logins (this is the ‘default’)
module save default
Custom Module Collections
Sometimes you have a set of modules you like to have every time you login:
We recommended using starting basis for MARCC, then loading the software you want afterwards:
module purge module load MARCC module load python/3.6-anaconda module load cmake module list
Then you can save a ‘collection’
module save mypython
Then when you log back in
module restore mypython
Starting Over with Module Collections
cd $HOME/.lmod.d ls # see what is in there rm default rm mypython