HPC/Module naming scheme 2016: Difference between revisions
< HPC
| Line 55: | Line 55: | ||
</source> | </source> | ||
: Apply the changes shown in the [[#Rules]] section. | : 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"> | ||
vi .bashrc | vi .bashrc | ||
Revision as of 22:40, 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 onlypackagename. 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/versionorpackagename/mpiname/compilername/versionas appropriate. To see available flavors and versions, separately run the commandmodule 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
.bashrcin 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
~/.bashrcand 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.
- Follow the steps as above.
- Re-activate the older module selection.
- 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