2025-01-21 12:02:02 +01:00

6.5 KiB

title, keywords, last_updated, sidebar, permalink
title keywords last_updated sidebar permalink
PSI Modules Pmodules, software, stable, unstable, deprecated, overlay, overlays, release stage, module, package, packages, library, libraries 07 September 2022 merlin7_sidebar /merlin7/pmodules.html

PSI Environment Modules

On top of the operating system stack we provide different software using the PSI developed PModule system.

PModules is the official supported way and each package is deployed by a specific expert. Usually, in PModules software which is used by many people will be found.

If you miss any package/versions or a software with a specific missing feature, contact us. We will study if is feasible or not to install it.

Module Release Stages

To ensure proper software lifecycle management, PModules uses three release stages: unstable, stable, and deprecated.

  1. Unstable Release Stage:

    • Contains experimental or under-development software versions.
    • Not visible to users by default. Use explicitly:
    module use unstable
    
    • Software is promoted to stable after validation.
  2. Stable Release Stage:

    • Default stage, containing fully tested and supported software versions.
    • Recommended for all production workloads.
  3. Deprecated Release Stage:

    • Contains software versions that are outdated or discontinued.
    • These versions are hidden by default but can be explicitly accessed:
    module use deprecated
    
    • Deprecated software can still be loaded directly without additional configuration to ensure user transparency.

PModules commands

Below is listed a summary of common module commands:

module use                       # show all available PModule Software Groups as well as Release Stages
module avail                     # to see the list of available software packages provided via pmodules
module use unstable              # to get access to a set of packages not fully tested by the community
module load <package>/<version>  # to load specific software package with a specific version
module search <string>           # to search for a specific software package and its dependencies.
module list                      # to list which software is loaded in your environment
module purge                     # unload all loaded packages and cleanup the environment

Please refer to the external PSI Modules document for detailed information about the module command.

module use/unuse

Without any parameter, use lists all available PModule Software Groups and Release Stages.

module use

When followed by a parameter, use/unuse invokes/uninvokes a PModule Software Group or Release Stage.

module use EM         # Invokes the 'EM' software group
module unuse EM       # Uninvokes the 'EM' software group
module use unstable   # Invokes the 'unstable' Release stable
module unuse unstable # Uninvokes the 'unstable' Release stable

module avail

This option lists all available PModule Software Groups and their packages.

Please run module avail --help for further listing options.

This is used to search for software packages. By default, if no Release Stage or Software Group is specified in the options of the module search command, it will search from the already invoked Software Groups and Release Stages. Direct package dependencies will be also showed.

🔥 [caubet_m@login001:~]# module search openmpi

Module        Rel.stage  Group        Overlay      Requires
--------------------------------------------------------------------------------
openmpi/4.1.6 stable     Compiler     Alps         gcc/12.3.0
openmpi/4.1.6 stable     Compiler     Alps         gcc/13.3.0
openmpi/4.1.6 stable     Compiler     Alps         gcc/14.2.0
openmpi/4.1.6 stable     Compiler     Alps         intelcc/22.2
openmpi/5.0.5 stable     Compiler     Alps         gcc/8.5.0
openmpi/5.0.5 stable     Compiler     Alps         gcc/12.3.0
openmpi/5.0.5 stable     Compiler     Alps         gcc/14.2.0
openmpi/5.0.5 stable     Compiler     Alps         intelcc/22.2

Please run module search --help for further search options.

module load/unload

This loads/unloads specific software packages. Packages might have direct dependencies that need to be loaded first. Other dependencies will be automatically loaded.

In the example below, the openmpi/5.0.5 package will be loaded, however gcc/14.2.0 must be loaded as well as this is a strict dependency. Direct dependencies must be loaded in advance. Users can load multiple packages one by one or at once. This can be useful for instance when loading a package with direct dependencies.

# Single line
module load gcc/14.2.0 openmpi/5.0.5

# Multiple line
module load gcc/14.2.0
module load openmpi/5.0.5

module purge

This command is an alternative to module unload, which can be used to unload all loaded module files.

module purge

Requesting New PModules Packages

The PModules system is designed to accommodate the diverse software needs of Merlin7 users. Below are guidelines for requesting new software or versions to be added to PModules.

Requesting Missing Software

If a specific software package is not available in PModules and there is interest from multiple users:

  • Contact Support: Let us know about the software, and we will assess its feasibility for deployment.
  • Deployment Timeline: Adding new software to PModules typically takes a few days, depending on complexity and compatibility.
  • User Involvement: If you are interested in maintaining the software package, please inform us. Collaborative maintenance helps ensure timely updates and support.

Requesting a Missing Version

If the currently available versions of a package do not meet your requirements:

  • New Versions: Requests for newer versions are generally supported, especially if there is interest from multiple users.
  • Intermediate Versions: Installation of intermediate versions (e.g., versions between the current stable and deprecated versions) can be considered if there is a strong justification, such as specific features or compatibility requirements.

General Notes

  • New packages or versions are prioritized based on their relevance and usage.
  • For any request, providing detailed information about the required software or version (e.g., name, version, features) will help expedite the process.