Update docs
This commit is contained in:
@ -12,7 +12,7 @@ This document describes generic information of how to load and run ANSYS softwar
|
||||
|
||||
## ANSYS software in Pmodules
|
||||
|
||||
The ANSYS software can be loaded through **[PModules](/merlin7/using-modules.html)**.
|
||||
The ANSYS software can be loaded through **[PModules](/merlin7/pmodules.html)**.
|
||||
|
||||
The default ANSYS versions are loaded from the central PModules repository.
|
||||
|
||||
|
64
pages/merlin7/05-Software-Support/cray-module.env.md
Normal file
64
pages/merlin7/05-Software-Support/cray-module.env.md
Normal file
@ -0,0 +1,64 @@
|
||||
---
|
||||
title: Cray Programming Environment
|
||||
#tags:
|
||||
keywords: cray, module
|
||||
last_updated: 24 Mai 2023
|
||||
summary: "This document describes how to use the Cray Programming Environment on Merlin7."
|
||||
sidebar: merlin7_sidebar
|
||||
permalink: /merlin7/cray-module-env.html
|
||||
---
|
||||
|
||||
## Loading the Cray module
|
||||
|
||||
The Cray Programming Environment, with Cray's compilers and MPI, is not loaded by default.
|
||||
|
||||
To load it, one has to run the following command:
|
||||
|
||||
```bash
|
||||
module load cray
|
||||
```
|
||||
|
||||
The Cray Programming Environment will load all the necessary dependencies. In example:
|
||||
|
||||
```bash
|
||||
🔥 [caubet_m@login001:~]# module list
|
||||
Currently Loaded Modules:
|
||||
1) craype-x86-rome 2) libfabric/1.15.2.0
|
||||
3) craype-network-ofi
|
||||
4) xpmem/2.9.6-1.1_20240510205610__g087dc11fc19d 5) PrgEnv-cray/8.5.0
|
||||
6) cce/17.0.0 7) cray-libsci/23.12.5
|
||||
8) cray-mpich/8.1.28 9) craype/2.7.30
|
||||
10) perftools-base/23.12.0 11) cpe/23.12
|
||||
12) cray/23.12
|
||||
```
|
||||
|
||||
You will notice an unfamiliar `PrgEnv-cray/8.5.0` that was loaded. This is a meta-module that Cray provides to simplify the switch of compilers and their associated dependencies and libraries,
|
||||
as a whole called Programming Environment. In the Cray Programming Environment, there are 4 key modules.
|
||||
|
||||
* `cray-libsci` is a collection of numerical routines tuned for performance on Cray systems.
|
||||
* `libfabric` is an important low-level library that allows you to take advantage of the high performance Slingshot network.
|
||||
* `cray-mpich` is a CUDA-aware MPI implementation, optimized for Cray systems.
|
||||
* `cce` is the compiler from Cray. C/C++ compilers are based on Clang/LLVM while Fortran supports Fortran 2018 standard. More info: https://user.cscs.ch/computing/compilation/cray/
|
||||
|
||||
You can switch between different programming environments. You can check the available module with the `module avail` command, as follows:
|
||||
|
||||
```bash
|
||||
🔥 [caubet_m@login001:~]# module avail PrgEnv
|
||||
--------------------- /opt/cray/pe/lmod/modulefiles/core ---------------------
|
||||
|
||||
PrgEnv-cray/8.5.0 PrgEnv-gnu/8.5.0
|
||||
PrgEnv-nvhpc/8.5.0 PrgEnv-nvidia/8.5.0
|
||||
```
|
||||
## Switching compiler suites
|
||||
|
||||
Compiler suites can be exchanged with PrgEnv (Programming Environments) provided by HPE-Cray. The wrappers call the correct compiler with appropriate options to build
|
||||
and link applications with relevant libraries, as required by the loaded modules (only dynamic linking is supported) and therefore should replace direct calls to compiler
|
||||
drivers in Makefiles and build scripts.
|
||||
|
||||
To swap the the compiler suite from the default Cray to GNU compiler, one can run the following.
|
||||
|
||||
```bash
|
||||
🔥 [caubet_m@login001:~]# module swap PrgEnv-cray/8.5.0 PrgEnv-gnu/8.5.0
|
||||
|
||||
Lmod is automatically replacing "cce/17.0.0" with "gcc-native/12.3".
|
||||
```
|
@ -19,7 +19,7 @@ The Merlin cluster supports OpenMPI versions across three distinct stages: stabl
|
||||
#### Stable
|
||||
|
||||
Versions in the `stable` stage are fully functional, thoroughly tested, and officially supported by the Merlin administrators.
|
||||
These versions are available via [Pmodules](/merlin7/using-modules.html) and [Spack](/merlin7/spack.html), ensuring compatibility and reliability for production use.
|
||||
These versions are available via [Pmodules](/merlin7/pmodules.html) and [Spack](/merlin7/spack.html), ensuring compatibility and reliability for production use.
|
||||
|
||||
#### Unstable
|
||||
|
||||
@ -71,7 +71,7 @@ specific pmix plugin versions available: pmix_v5,pmix_v4,pmix_v3,pmix_v2
|
||||
```
|
||||
Important Notes:
|
||||
* For OpenMPI, always use `pmix` by specifying the appropriate version (`pmix_$version`).
|
||||
When loading an OpenMPI module (via [Pmodules](/merlin7/using-modules.html) or [Spack](/merlin7/spack.html)), the corresponding PMIx version will be automatically loaded.
|
||||
When loading an OpenMPI module (via [Pmodules](/merlin7/pmodules.html) or [Spack](/merlin7/spack.html)), the corresponding PMIx version will be automatically loaded.
|
||||
* Users do not need to manually manage PMIx compatibility.
|
||||
|
||||
{{site.data.alerts.warning}}
|
||||
|
153
pages/merlin7/05-Software-Support/pmodules.md
Normal file
153
pages/merlin7/05-Software-Support/pmodules.md
Normal file
@ -0,0 +1,153 @@
|
||||
---
|
||||
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.
|
18
pages/merlin7/05-Software-Support/spack.md
Normal file
18
pages/merlin7/05-Software-Support/spack.md
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
title: Spack
|
||||
keywords: spack, python, software, compile
|
||||
summary: "Spack the HPC package manager documentation"
|
||||
sidebar: merlin7_sidebar
|
||||
toc: false
|
||||
permalink: /merlin7/spack.html
|
||||
---
|
||||
|
||||
For Merlin7 the *package manager for supercomputing* [Spack](https://spack.io/) is available. It is meant to compliment the existing PModules
|
||||
solution, giving users the opertunity to manage their own software environments.
|
||||
|
||||
Documentation for how to use Spack on Merlin7 is provided [here](https://gitlab.psi.ch/lsm-hpce/spack-psi/-/blob/main/README.md).
|
||||
|
||||
## The Spack PSI packages
|
||||
|
||||
An initial collection of packages (and Spack reciepes) are located at **[Spack PSI](https://gitlab.psi.ch/lsm-hpce/spack-psi)**, users can directly use these
|
||||
through calls like `spack add ...`.
|
Reference in New Issue
Block a user