Hi Everyone,

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

# 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

  1. Use module load 'module' in your $HOME/.bashrc
  2. You can use Lmod to control the defaults for you, as well as save module collections – directions ahead
  3. 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

Default Modules

If you are unsure what modules you are using, run the command

module list 

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:

module list

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