154 lines
6.5 KiB
Markdown
154 lines
6.5 KiB
Markdown
---
|
|
title: PSI Modules
|
|
#tags:
|
|
keywords: Pmodules, software, stable, unstable, deprecated, overlay, overlays, release stage, module, package, packages, library, libraries
|
|
last_updated: 07 September 2022
|
|
#summary: ""
|
|
sidebar: merlin7_sidebar
|
|
permalink: /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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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](https://pmodules.gitpages.psi.ch/chap3.html) document** for
|
|
detailed information about the `module` command.
|
|
|
|
### module use/unuse
|
|
|
|
Without any parameter, `use` **lists** all available PModule **Software Groups and Release Stages**.
|
|
|
|
```bash
|
|
module use
|
|
```
|
|
|
|
When followed by a parameter, `use`/`unuse` invokes/uninvokes a PModule **Software Group** or **Release Stage**.
|
|
|
|
```bash
|
|
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.
|
|
|
|
### module search
|
|
|
|
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.
|
|
|
|
```bash
|
|
🔥 [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.
|
|
|
|
```bash
|
|
# 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.
|
|
|
|
```bash
|
|
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](/merlin7/contact.html):** 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.
|