Skip to content

hierarchical_mns

Implementation of an example hierarchical module naming scheme.

Authors:

  • Kenneth Hoste (Ghent University)
  • Markus Geimer (Forschungszentrum Juelich GmbH)

HierarchicalMNS

Bases: ModuleNamingScheme

Class implementing an example hierarchical module naming scheme.

det_full_module_name(ec)

Determine full module name, relative to the top of the module path. Examples: Core/GCC/4.8.3, Compiler/GCC/4.8.3/OpenMPI/1.6.5, MPI/GCC/4.8.3/OpenMPI/1.6.5/HPL/2.1

det_full_version(ec)

Determine full version, taking into account version prefix/suffix.

det_init_modulepaths(ec)

Determine list of initial module paths (i.e. top of the hierarchy).

det_modpath_extensions(ec)

Determine module path extensions, if any. Examples: Compiler/GCC/4.8.3 (for GCC/4.8.3 module), MPI/GCC/4.8.3/OpenMPI/1.6.5 (for OpenMPI/1.6.5 module)

det_module_subdir(ec)

Determine module subdirectory, relative to the top of the module path. This determines the separation between module names exposed to users, and what's part of the $MODULEPATH. Examples: Core, Compiler/GCC/4.8.3, MPI/GCC/4.8.3/OpenMPI/1.6.5

Determine list of paths in which symlinks to module files must be created.

det_short_module_name(ec)

Determine short module name, i.e. the name under which modules will be exposed to users. Examples: GCC/4.8.3, OpenMPI/1.6.5, OpenBLAS/0.2.9, HPL/2.1, Python/2.7.5

det_toolchain_compilers_name_version(tc_comps)

Determine toolchain compiler tag, for given list of compilers.

expand_toolchain_load(ec=None)

Determine whether load statements for a toolchain should be expanded to load statements for its dependencies. This is useful when toolchains are not exposed to users.

requires_toolchain_details()

Determine whether toolchain details are required by this module naming scheme, e.g. whether one of det_toolchain_* functions are relied upon.