HPC/Module naming scheme 2016: Difference between revisions
< HPC
Jump to navigation
Jump to search
mNo edit summary |
|||
Line 11: | Line 11: | ||
| – || – || style="color:#888; text-align: left;" | Starting situation. || style="background:#ffd;" | old || style="background:#ffd;" | .bashrc only || style="background:#ddf;" rowspan=4 | new || style="background:#ddf;" | .bashrc only | | – || – || style="color:#888; text-align: left;" | Starting situation. || style="background:#ffd;" | old || style="background:#ffd;" | .bashrc only || style="background:#ddf;" rowspan=4 | new || style="background:#ddf;" | .bashrc only | ||
|- | |- | ||
| – || .modules- | | – || .modules-2 || style="color:#888; text-align: left;" | Switch over, ''recommended.'' || style="background:#ddf;" | new || style="background:#ddf;" | .modules-'''2''' and .bashrc || style="background:#ddf;" | .modules-2 and .bashrc | ||
|- | |- | ||
| .modules- | | .modules-1 || – || style="color:#888; text-align: left;" | Only recommended during transition. || style="background:#ffd;" | old || style="background:#ffd;" | .modules-1 and .bashrc || style="background:#ddf;" | .bashrc only | ||
|- | |- | ||
| .modules- | | .modules-1 || .modules-2 || style="color:#888; text-align: left;" | For advanced users. || style="background:#ffd;" | old || style="background:#ffd;" | .modules-1 and .bashrc || style="background:#ddf;" | .modules-2 and .bashrc | ||
|} | |} | ||
Line 54: | Line 54: | ||
* Tell CentOS-5 nodes to offer the new-style module catalog instead of the old one. To do so, simply create an empty customization file: | * Tell CentOS-5 nodes to offer the new-style module catalog instead of the old one. To do so, simply create an empty customization file: | ||
<source lang="bash"> | <source lang="bash"> | ||
touch ~/.modules- | touch ~/.modules-2 | ||
</source> | </source> | ||
* Then, apply the changes shown in the [[#Rules]] section: | * Then, apply the changes shown in the [[#Rules]] section: | ||
Line 64: | Line 64: | ||
: Use a text editor of your choice, such as <code>nano</code> or <code>vi</code>. | : Use a text editor of your choice, such as <code>nano</code> or <code>vi</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- | # 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-2</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: | ||
--> | --> | ||
Line 71: | Line 71: | ||
It is perhaps cleaner to perform the module selection in files dedicated for each CentOS release, so that you can better address possible incompatibilities. | It is perhaps cleaner to perform the module selection in files dedicated for each CentOS release, so that you can better address possible incompatibilities. | ||
To migrate your existing configuration: | To migrate your existing configuration: | ||
* Move your previous module selections into a conspicuously named but otherwise unused file, e.g., <code>.modules- | * Move your previous module selections into a conspicuously named but otherwise unused file, e.g., <code>.modules-1.inactive</code>. | ||
<source lang="bash"> | <source lang="bash"> | ||
cd # Go to home directory | cd # Go to home directory | ||
grep -A 1 module .bashrc > .modules- | grep -A 1 module .bashrc > .modules-1.inactive | ||
</source> | </source> | ||
* Duplicate the file. | * Duplicate the file. | ||
<source lang="bash"> | <source lang="bash"> | ||
cp .modules- | cp .modules-1.inactive .modules-2 | ||
</source> | </source> | ||
* Adapt contents to new module names, just as shown for <code>.bashrc</code> in the previous section. Clean up errant lines that the grep above might have included. | * Adapt contents to new module names, just as shown for <code>.bashrc</code> in the previous section. Clean up errant lines that the grep above might have included. | ||
<source lang="bash"> | <source lang="bash"> | ||
vi .modules- | vi .modules-2 | ||
# or: | # or: | ||
nano .modules- | nano .modules-2 | ||
</source> | </source> | ||
: Apply the changes shown in the [[#Rules]] section. | : Apply the changes shown in the [[#Rules]] section. | ||
Line 101: | Line 101: | ||
If you encounter difficulties with making your module selection work simultaneously for CentOS-5 and CentOS-6, use ''separate'' configurations instead. | If you encounter difficulties with making your module selection work simultaneously for CentOS-5 and CentOS-6, use ''separate'' configurations instead. | ||
<!-- | <!-- | ||
# Move all your previous module commands from <code>.bashrc</code> to <code>~/.modules- | # Move all your previous module commands from <code>.bashrc</code> to <code>~/.modules-1</code>, where they will apply only on CentOS-5. | ||
# Place all your module selections for CentOS-6 in <code>~/.modules- | # Place all your module selections for CentOS-6 in <code>~/.modules-2</code>. Get started using the contents of the .*-1 version. | ||
--> | --> | ||
* Re-activate the older module selection. | * Re-activate the older module selection. | ||
<source lang="bash"> | <source lang="bash"> | ||
cd # Go to home directory | cd # Go to home directory | ||
mv .modules- | mv .modules-1.inactive .modules-1 | ||
</source> | </source> | ||
* Clean up errant lines: | * Clean up errant lines: | ||
<source lang="bash"> | <source lang="bash"> | ||
vi .modules- | vi .modules-1 | ||
# or: | # or: | ||
nano .modules- | nano .modules-1 | ||
</source> | </source> | ||
* Test – same as in [[#Configure in dedicated files|previous section]]. | * Test – same as in [[#Configure in dedicated files|previous section]]. |
Revision as of 18:00, January 22, 2016
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-2 | Switch over, recommended. | new | .modules-2 and .bashrc | .modules-2 and .bashrc | |
.modules-1 | – | Only recommended during transition. | old | .modules-1 and .bashrc | .bashrc only | |
.modules-1 | .modules-2 | For advanced users. | old | .modules-1 and .bashrc | .modules-2 and .bashrc |
New-style module names
You may need to adapt module names you use in your files to new, more hierarchical, names.
General name change rules
- To use the latest or automatically selected version of a package, remove version numbers from old-style module names of the form
packagename/version
, leaving onlypackagename
. This is the recommended approach, as you will automatically benefit from future updates and maintenance builds. - To insist on a specific version for a package in new style names:
- Inspect the available flavors and versions (some older modules were not migrated):
module avail packagename
.
- Choose the new-style name up to the desired specificity. You may leave out trailing name or directory parts.
- For instance, instead of
vasp5/5.3/openmpi-1.4/intel/5.3.3p3-mkl-3
you may writevasp5/5.3/openmpi-1.4
orvasp5/5.3
, letting the system choose the versions for MPI and compiler that are chosen as defaults at a given time.
- For instance, instead of
- Inspect the available flavors and versions (some older modules were not migrated):
Renamed modules
OLD NEW
-------------------------------------
asap3 asap/3
ase2 ase/2
ase3 ase/3
g09 gaussian/09
GaussView gaussview
Customizing module selection by OS release
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
.
- Tell CentOS-5 nodes to offer the new-style module catalog instead of the old one. To do so, simply create an empty customization file:
touch ~/.modules-2
- Then, apply the changes shown in the #Rules section:
vi .bashrc
# or:
nano .bashrc
- Use a text editor of your choice, such as
nano
orvi
.
Configure in dedicated files
It is perhaps cleaner to perform the module selection in files dedicated for each CentOS release, so that you can better address possible incompatibilities. To migrate your existing configuration:
- Move your previous module selections into a conspicuously named but otherwise unused file, e.g.,
.modules-1.inactive
.
cd # Go to home directory
grep -A 1 module .bashrc > .modules-1.inactive
- Duplicate the file.
cp .modules-1.inactive .modules-2
- 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-2
# or:
nano .modules-2
- Apply the changes shown in the #Rules section.
- Edit
~/.bashrc
and remove all lines withmodule
commands.
vi .bashrc
- Test.
bash -l # open a sub-shell (option is lowercase L)
module list
exit # leave the sub-shell
Differentiate module selection by OS release
If you encounter difficulties with making your module selection work simultaneously for CentOS-5 and CentOS-6, use separate configurations instead.
- Re-activate the older module selection.
cd # Go to home directory
mv .modules-1.inactive .modules-1
- Clean up errant lines:
vi .modules-1
# or:
nano .modules-1
- Test – same as in previous section.