HPC/Module naming scheme 2016

From CNM Wiki
Jump to navigation Jump to search

Configuration files used

You have files:
.bashrc and …
Remark CentOS-5 uses CentOS-6 uses
module names files module names files
Starting situation. old .bashrc only new .bashrc only
.modules-el6 Switch over, recommended. new .modules-el6 and .bashrc .modules-el6 and .bashrc
.modules-el5 Avoid! – file ignored on EL6. old .modules-el5 and .bashrc .bashrc only
.modules-el5 .modules-el6 For advanced users. old .modules-el5 and .bashrc .modules-el6 and .bashrc

Configuration steps

New-style modules only (recommended)

To switch over to new hierarchical module names on both CentOS releases it's perhaps easiest to continue making all your module choices in ~/.bashrc, but you have to signal on the older platform to use the new module style:

  1. Create a customization file for new names, but leave it empty (you'll configure your choices in the next step). Use the command:
    touch ~/.modules-el6
    
  2. Edit your .bashrc file and update your module selections as follows:
    • Remove version numbers from module names of the old-style packagename/version, leaving only packagename. This is the recommended approach, as you will automatically benefit from future versions.
    • To insist on a specific version for a package affected by the new-style names, use the form packagename/compilername/version or packagename/mpiname/compilername/version as appropriate. To see available flavors and versions, separately run the command module avail packagename.

Alternatively:

  1. Keep a copy of your previous module selections in a conspicuously named but unused file, e.g., .modules-el5.inactive.
  2. Adapt the file to new module names.
  3. Remove all previous module customizations from ~/.bashrc.
cd ~
grep module .bashrc > .modules-el5.inactive
cp .modules-el5.inactive .modules-el6

vi .modules-el6    # adapt module names
vi .bashrc         # remove all lines with "module" commands

CentOS-dependent module selection

If you encounter difficulties with making your module selection work in both CentOS-5 and CentOS-6, use separate configurations:

  1. Move all your previous module commands from .bashrc to ~/.modules-el5, where they will apply only on CentOS-5.
  2. Place all your module selections for CentOS-6 in ~/.modules-el6. Get started using the contents of the .*-el5 version.