Oscar
HomeServicesDocumentation
  • Overview
  • Quickstart
  • Getting Started
  • System Hardware
  • Account Information
  • Short "How to" Videos
  • Quick Reference
    • Common Acronyms and Terms
    • Managing Modules
    • Common Linux Commands
  • Getting Help
    • ❓FAQ
  • Citing CCV
  • CCV Account Information
  • Student Accounts
  • Offboarding
  • Connecting to Oscar
    • SSH (Terminal)
      • SSH Key Login (Passwordless SSH)
        • Mac/Linux/Windows(PowerShell)
        • Windows(PuTTY)
      • SSH Configuration File
      • X-Forwarding
      • SSH Agent Forwarding
        • Mac/Linux
        • Windows (PuTTY)
      • Arbiter2
    • Open OnDemand
      • Using File Explorer on OOD
      • Web-based Terminal App
      • Interactive Apps on OOD
      • Using Python or Conda environments in the Jupyter App
      • Using RStudio
      • Desktop App (VNC)
    • SMB (Local Mount)
    • Remote IDE (VS Code)
      • From Non-compliant Networks (2-FA)
      • Setup virtual environment and debugger
  • Managing files
    • Oscar's Filesystem
    • Transferring Files to and from Oscar
    • Transferring Files between Oscar and Campus File Storage (Replicated and Non-Replicated)
    • Resolving quota issues
      • Understanding Disk Quotas
    • Inspecting Disk Usage (Ncdu)
    • Restoring Deleted Files
    • Best Practices for I/O
    • Version Control
  • Submitting jobs
    • Running Jobs
    • Slurm Partitions
    • Interactive Jobs
    • Batch Jobs
    • Managing Jobs
    • Job Arrays
    • MPI Jobs
    • Condo/Priority Jobs
    • Dependent Jobs
    • Associations & Quality of Service (QOS)
  • GPU Computing
    • GPUs on Oscar
      • Grace Hopper GH200 GPUs
      • H100 NVL Tensor Core GPUs
      • Ampere Architecture GPUs
    • Submitting GPU Jobs
    • Intro to CUDA
    • Compiling CUDA
    • Installing Frameworks (PyTorch, TensorFlow, Jax)
      • Installing JAX
      • Installing TensorFlow
    • Mixing MPI and CUDA
  • Large Memory Computing
    • Large Memory Nodes on Oscar
  • Software
    • Software on Oscar
    • Using Modules
    • Migration of MPI Apps to Slurm 22.05.7
    • Python on Oscar
    • Python in batch jobs
    • Installing Python Packages
    • Installing R Packages
    • Using CCMake
    • Intro to Parallel Programming
    • Anaconda
    • Conda and Mamba
    • DMTCP
    • Screen
    • VASP
    • Gaussian
    • IDL
    • MPI4PY
  • Jupyter Notebooks/Labs
    • Jupyter Notebooks on Oscar
    • Jupyter Labs on Oscar
    • Tunneling into Jupyter with Windows
  • Debugging
    • Arm Forge
      • Configuring Remote Launch
      • Setting Job Submission Settings
  • MATLAB
    • Matlab GUI
    • Matlab Batch Jobs
    • Improving Performance and Memory Management
    • Parallel Matlab
  • Visualization 🕶
    • ParaView Remote Rendering
  • Singularity Containers
    • Intro to Apptainer
    • Building Images
    • Running Images
    • Accessing Oscar Filesystem
      • Example Container (TensorFlow)
    • Singularity Tips and Tricks
  • Installing Software Packages Locally
    • Installing your own version of Quantum Espresso
    • Installing your own version of Qmcpack
  • dbGaP
    • dbGaP Architecture
    • dbGaP Data Transfers
    • dbGaP Job Submission
  • RHEL9 Migration
    • RHEL-9 Migration
    • LMOD - New Module System
    • Module Changes
    • Testing Jupyter Notebooks on RHEL9 mini-cluster
  • Large Language Models
    • Ollama
Powered by GitBook
On this page
  • LMOD - Hierarchical Module System
  • Module commands:
  • Summary

Was this helpful?

Export as PDF
  1. RHEL9 Migration

LMOD - New Module System

PreviousRHEL-9 MigrationNextModule Changes

Last updated 1 year ago

Was this helpful?

Advanced users can skip to the at the bottom of this page

These are the major changes after the January 2024 maintenance

  1. New Module System (LMOD): All software modules have been reinstalled. Version names for all modules will be slightly different. The output from commands like "module avail" and "module load" will be different.

  2. New Operating System: The operating system is upgraded to RHEL 9.2

  3. MPI programs are compiled with HPCX MPI, the new industry standard

  4. Python packages will not be installed as modules; users can install these packages in their home directories -> Users have better control based upon their specific requirements

  5. Python2 is not longer available as a system-installed program

Users need to make the following changes:

  • Job Scripts:

    • Module names

    • Order of loading is important for MPI applications. Load the MPI module first.

  • Application changes:

    • User-installed applications may need to be reinstalled, if they do not work correctly.

    • Python and Conda environments, R packages may need to be reinstalled.

      • Use python -m venv instead of virtualenv for Python environments

LMOD - Hierarchical Module System

The older module system has a flat structure. This meant that all the modules and their versions were available for you to load. The compiler version and MPI version required for a particular module were indicated, either as a suffix to the version number, or as a message after loading the module.

LMOD is hierarchical. The schematic below shows that the three different types of modules available to you after logging in.

  1. Core: Softwares that are precompiled binaries or compiled with system compiler (GCC 11.3.0)

  2. Compiler: Versions of compilers like GCC, Intel

  3. MPI: MPI implementations

As shown in the schematic, Core, compiler and mpi modules are available by default. You can see the list of these modules by running the command module avail

To load the modules compiled with MPI, you need to load the corresponding MPI modules first. For example, Gromacs module is not available until you load the hpcx-mpi module.

Module commands:

To load a module, you need to run the command module load <name> . You can see all the available LMOD subcommands by running module --help. Here are some of the useful commands.

Unlike Pymodules, LMOD will load the dependencies for a package automatically.

Command
Shorter command

module list

ml

Lists all modules that are currently loaded in your software environment.

module avail <string>

ml av <string>

List available modules that contain "<string>"

module load <name>

ml <name>

Adds a module to your current environment. If you load using just the name of a module, you will get the default version. To load a specific version, load the module using its full name with the version: "module load fftw/2.1.5"

module unload <name>

Removes a module from your current environment.

module purge

Unloads ALL modules

module show <name>

show the commands in the module file

module spider <name>

Lists all possible versions of <name>. This includes modules that are NOT core modules.

Summary

  • LMOD is hierarchical. By default, core, compiler and mpi modules are available.

  • Modules compiled with a different compiler are NOT available unless you load that compiler.

  • To load modules compiled with MPI, load the MPI module first.

  • Run module spider <string> to find all possible module name and versions

  • Run module --help to see all available subcommands.

You may refer to for new module names corresponding to older Oscar modules.

this table
summary