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

Migration to new-style module names

Rules

Adapt module commands present in your shell "dot"-files and job scripts to new-style names 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 updates.
  • To insist on a specific version for a package in the new style, 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.

Configure in .bashrc

To switch over to new-style module names on both CentOS releases you could continue making all your module choices in ~/.bashrc.

vi .bashrc
# or:
nano .bashrc
Apply the changes shown in the #Rules section.
  • Tell CentOS-5 nodes to use the new module style as well. Simply create an empty customization file:
touch ~/.modules-el6

Configure in dedicated files

It is perhaps cleaner to perform the module selection in dedicated files. To migrate your existing configuration:

  • Move your previous module selections into a conspicuously named but otherwise unused file, e.g., .modules-el5.inactive.
cd      # Go to home directory
grep -A 1  module .bashrc > .modules-el5.inactive
  • Duplicate the file.
cp .modules-el5.inactive .modules-el6
  • Adapt contents to new module names, just as shown for .bashrc in the previous section. Clean up errant lines that the grep above might have included.
vi .modules-el6
# or:
nano .modules-el6
Apply the changes shown in the #Rules section.
  • Edit ~/.bashrc and remove all lines with "module" commands.
vi .bashrc
  • Test.
bash -l     # open a sub-shell (option is lowercase L)
module list
exit        # leave the sub-shell

CentOS-dependent module selection

If you encounter difficulties with making your module selection work simultaneously for CentOS-5 and CentOS-6, use separate configurations instead.

  1. Follow the steps as above.
  2. Re-activate the older module selection.
  3. Test.
cd      # Go to home directory
mv .modules-el5.inactive .modules-el5
vi .modules-el5    # clean up errant lines

# Test
exec bash -l
module list