Managing software environments on HPC systems
Modules are a way to manage different software environments on HPC systems
Key Benefits: - Dynamic loading/unloading of software packages - Manage different versions and dependencies - Clean separation of environments - Avoid software conflicts
Without Modules: - Software conflicts and version issues - Complex PATH management - Inconsistent environments - Difficult reproducibility
Try it: Run module avail to see what software is available on Aire
Load the gcc module and verify it’s loaded:
Questions: - What happens if you don’t specify a version? - How does this affect reproducibility?
Answer: Without version specification, you get the default version, which may change over time!
Why? Default versions change when new software is installed, breaking reproducibility
Create hello_world.py:
Create job script python_test.sh:
Remember: Always test your scripts interactively before submitting jobs!
Benefits: - Popular software centrally installed - Optimized for HPC hardware - Professional maintenance - Avoids conflicts
Process: 1. Check if software exists: module avail software_name 2. If not available, submit a Research Computing Query 3. Include: software name, version, research justification
Submit requests through the Research Computing Help Form
Include in your request: - Software name and version - Brief justification for your research - Any specific requirements or dependencies - Timeline if urgent
Navigation: Home > Research IT > Research IT Query
For advanced users who need more control:
Use case: When you need software versions not available via modules
Use case: Complex software stacks, ensuring exact reproducibility
module purgegcc/14.2.0 not gcc#!/bin/bash
# Project setup script
# Author: Your Name
# Date: 2025-01-01
# Start with clean environment
module purge
# Load required modules with versions
module load gcc/14.2.0
module load python/3.13.0
module load cmake/3.24.2
# Verify modules loaded
echo "Loaded modules:"
module list
# Optional: activate conda environment
# conda activate myprojectShare module commands:
module avail pythonmodule listCreate a script that loads modules for your research:
Module not found:
Conflicts between modules:
Key Points: - Modules provide clean software environments - Always specify versions for reproducibility
- Use scripts to automate and document - Request new software through proper channels - Consider alternatives for special needs
Next: Learn how to run your software on compute nodes with job scheduling!
Now you can manage software environments!
Let’s learn about job scheduling and submission

HPC1: Introduction to High Performance Computing | University of Leeds