Use of Modules for Accessing Multiple Versions of Software
BC Project: FY06-17
Date of Policy: 20 Mar 2008
Last Updated: 02 Apr 2012
All participating centers are required to install and use the MODULES package to support
multiple versions of compilers, associated libraries, and shared application packages
(Abaqus, Accelyrs, ANSYS, CFD++, Cobalt, Ensight, ACFD, GASP, GAUSSIAN, LS-Dyna, MATLAB,
and TotalView) on the unclassified resources. Compliance is determined by centers ensuring
that the module
command is in the user's path and that system modulefiles
are in place for the shared applications supported by each center.
For information on standard module naming convention and directory structure, please see BC policy FY11-04, Common Modules Environment.
In cases where the modulefiles for applications depend on other modulefiles (an application may require compiler and library modulefiles to be loaded), or a conflict exists with a currently loaded modulefile (some modulefiles cannot coexist with other modulefiles), these dependencies and/or conflicts should be checked. A reasonable default modulefile may be loaded if the dependency is not met, a modulefile may by unloaded if a conflict exists, or a message may be displayed to the user indicating the dependencies and/or conflicts. In the event that loading a modulefile changes the module environment (by loading, unloading, or swapping modulefiles), the modulefile making these changes MUST inform the user of all changes via a terminal notification (a simple echo will generally accomplish this).
An additional modulefile, OPT-OUT
, at AFRL and MHPCC will remove the
common-link directories from the associated *PATH environment variables. Users will then
need to load individual modulefiles to add the application specific directories to the
*PATH environment variables.