Environment management

Especially in HPC environments, the system is clogged with applications and libraries that cannot be all included at the same time into an environment path in a mantainable way. A way to include only a necessary portion of paths is via the lmod utility:

lmod (Environmental module system)

lmod provides a convenient way to dynamically change a user's environment through modulefiles.


A modulefile contains the necessary information to allow a user to run a particular application or provide access to a particular library. This includes easily adding or removing directories to the PATH environment variable.

  • Modulefiles for applications modify the user's path to make access easy.
  • Modulefiles for Library packages provide environment variables that specify where the library and header files can be found.

Usage

Check which modules are loaded into the system:

module list

Check which module are available to the system:

module avail

To get an overview of the environment modifications, run:

module show <module_name>

Adding modulefile

To write a custom loadable environment you can add a modulefile. These file must be present on MODULE_PATH following:

touch $MODULE_PATH/<modulefile_name>.lua

The content of the modulefile you state should look similar to:

help([[
For detailed instructions, go to:
   https://...

]])
whatis("Version: 5.0.1")
whatis("Keywords: System, Utility")
whatis("URL: http://content.allinea.com/downloads/userguide.pdf")
whatis("Description: Parallel, graphical, symbolic debugger")

setenv(       "DDTPATH",        "/opt/apps/ddt/5.0.1/bin")
prepend_path( "PATH",           "/opt/apps/ddt/5.0.1/bin")
prepend_path( "LD_LIBRARY_PATH","/opt/apps/ddt/5.0.1/lib")

Loadable with:

module load <modulefile_name>