HPC/Module naming scheme 2016: Difference between revisions

From CNM Wiki
< HPC
Jump to navigation Jump to search
Line 19: Line 19:


== Migration steps for  new-style modules ==
== Migration steps for  new-style modules ==
=== Rules ===
Adapt existing module load commands to new-style names as follows:
* Remove version numbers from module names of the old-style <code>''packagename/version''</code>, leaving only <code>''packagename''</code>. This is the recommended approach, as you will automatically benefit from future updates.
* To insist on a specific version for a package affected by the new-style names, use the form  <code>''packagename/compilername/version''</code> or <code>''packagename/mpiname/compilername/version''</code> as appropriate. To see available flavors and versions, separately run the command <code>module avail ''packagename''</code>.


=== Configure in .bashrc ===
=== Configure in .bashrc ===
Line 25: Line 29:
vi .bashrc
vi .bashrc
</source>
</source>
: Adapt module commands to new module names as follows:
: Apply the changes shown in the [[#Rules]] section.
:* Remove version numbers from module names of the old-style <code>''packagename/version''</code>, leaving only <code>''packagename''</code>. This is the recommended approach, as you will automatically benefit from future updates.
:* To insist on a specific version for a package affected by the new-style names, use the form  <code>''packagename/compilername/version''</code> or <code>''packagename/mpiname/compilername/version''</code> as appropriate. To see available flavors and versions, separately run the command <code>module avail ''packagename''</code>.
* Tell CentOS-5 nodes to use the new module style as well. Simply create an empty customization file:
* Tell CentOS-5 nodes to use the new module style as well. Simply create an empty customization file:
<source lang="bash">
<source lang="bash">
Line 52: Line 54:
vi .modules-el6
vi .modules-el6
</source>
</source>
: Apply the changes shown in the [[#Rules]] section.
* Edit code>~/.bashrc</code> and remove all lines with "module" commands.
* Edit code>~/.bashrc</code> and remove all lines with "module" commands.
<source lang="bash">
<source lang="bash">

Revision as of 22:39, October 7, 2015

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 steps for new-style modules

Rules

Adapt existing module load commands 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 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.

Configure in .bashrc

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

vi .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
Apply the changes shown in the #Rules section.
  • Edit code>~/.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