HPC/Module naming scheme 2016: Difference between revisions
< HPC
Jump to navigation
Jump to search
Line 20: | Line 20: | ||
== Configuration steps == | == Configuration steps == | ||
=== New-style modules only (recommended) === | === New-style modules only (recommended) === | ||
To switch over to new hierarchical module names on both CentOS releases | To switch over to new hierarchical module names on both CentOS releases you could continue making all your module choices in <code>~/.bashrc</code> and simply signal on the older platform to use the new module style by creating an empty new-style customization file: <code>touch ~/.modules-el6</code> . | ||
<!-- | |||
# Create a customization file for new names, but leave it empty (you'll configure your choices in the next step). Use the command: <source lang="bash">touch ~/.modules-el6</source> | # Create a customization file for new names, but leave it empty (you'll configure your choices in the next step). Use the command: <source lang="bash">touch ~/.modules-el6</source> | ||
# Edit your <code>.bashrc</code> file and update your module selections as follows: | # Edit your <code>.bashrc</code> file and update your module selections 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 | --> | ||
However, it's perhaps cleaner to move the module selection into their dedicated files: | |||
# Move your previous module selections inro a conspicuously named but otherwise unused file, e.g., <code>.modules-el5.inactive</code>. | |||
# Duplicate the file and adapt its contents to new module 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>. | #* 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>. | ||
# Remove all previous module customizations from <code>~/.bashrc</code>. | # Remove all previous module customizations from <code>~/.bashrc</code>. | ||
# Test. | |||
<source lang="bash"> | <source lang="bash"> | ||
cd ~ | cd ~ | ||
Line 38: | Line 40: | ||
vi .modules-el6 # adapt module names | vi .modules-el6 # adapt module names | ||
vi .bashrc # remove all lines with "module" commands | vi .bashrc # remove all lines with "module" commands | ||
exec bash -l | |||
module list | |||
</source> | </source> | ||
=== CentOS-dependent module selection === | === CentOS-dependent module selection === | ||
If you encounter difficulties with making your module selection work in both CentOS-5 and CentOS-6, use separate configurations | If you encounter difficulties with making your module selection work in both CentOS-5 and CentOS-6, use separate configurations. | ||
<!-- | |||
# Move all your previous module commands from <code>.bashrc</code> to <code>~/.modules-el5</code>, where they will apply only on CentOS-5. | # Move all your previous module commands from <code>.bashrc</code> to <code>~/.modules-el5</code>, where they will apply only on CentOS-5. | ||
# Place all your module selections for CentOS-6 in <code>~/.modules-el6</code>. Get started using the contents of the .*-el5 version. | # Place all your module selections for CentOS-6 in <code>~/.modules-el6</code>. Get started using the contents of the .*-el5 version. | ||
--> | |||
# Follow the steps as above. | |||
# Re-activate the older module selection. | |||
# Test. | |||
<source lang="bash"> | |||
cd ~ | |||
mv .modules-el5.inactive .modules-el5 | |||
exec bash -l | |||
module list | |||
</source> |
Revision as of 18:01, August 29, 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 |
Configuration steps
New-style modules only (recommended)
To switch over to new hierarchical module names on both CentOS releases you could continue making all your module choices in ~/.bashrc
and simply signal on the older platform to use the new module style by creating an empty new-style customization file: touch ~/.modules-el6
.
However, it's perhaps cleaner to move the module selection into their dedicated files:
- Move your previous module selections inro a conspicuously named but otherwise unused file, e.g.,
.modules-el5.inactive
. - Duplicate the file and adapt its contents to new module 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/version
orpackagename/mpiname/compilername/version
as appropriate. To see available flavors and versions, separately run the commandmodule avail packagename
.
- Remove version numbers from module names of the old-style
- Remove all previous module customizations from
~/.bashrc
. - Test.
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
exec bash -l
module list
CentOS-dependent module selection
If you encounter difficulties with making your module selection work in both CentOS-5 and CentOS-6, use separate configurations.
- Follow the steps as above.
- Re-activate the older module selection.
- Test.
cd ~
mv .modules-el5.inactive .modules-el5
exec bash -l
module list