Skip to content

Software on Perun

Perun provides a curated collection of pre-installed scientific software, libraries, and development tools for high-performance computing workloads. This page describes how to access available software, manage environments, and request additional applications.


Using Software Modules

Software on Perun is managed via the Environment Modules system, which allows users to dynamically configure their environment without modifying system settings.

Basic Commands

List available modules:

module avail

Load a module:

module load <module_name>

List currently loaded modules:

module list

Unload a module:

module unload <module_name>

Reset environment:

module purge

Tip

Use module spider <software_name> to search for available versions and module hierarchies.

For more details, see the Environment Modules guide.


Available Software

Perun provides software across multiple domains, including:

  • Computational chemistry and materials science
  • Bioinformatics and life sciences
  • Mathematics and data analysis
  • Machine learning and AI
  • Development tools and compilers

Note

Use module avail or module spider <software_name> to locate specific applications and versions.


Architecture-Specific Software Stacks

Perun provides two separate software stacks targeting different hardware architectures:

  • CPU stack (x86_64) – for standard compute nodes
  • GPU stack (ARM64 / NVIDIA Grace Hopper) – for GPU-enabled nodes

These stacks are not compatible and cannot be mixed.

Running on different architecture

Software compiled for one architecture will not run on the other.
You cannot use CPU modules on GPU nodes, nor GPU modules on CPU nodes.


Login Nodes Behavior

Login nodes are CPU-only (x86_64):

  • GPU hardware is not available
  • GPU applications cannot be executed
  • Only the CPU software stack is active by default

Accessing GPU Software Stack

To inspect available GPU software from a login node, switch the visible stack:

ssx set_gpu

This command only changes the module view, not the underlying hardware.

Note

Switching the stack does not grant access to GPUs. It only exposes the GPU-compiled modules.


Running GPU Applications

To run or compile GPU-enabled software, you must start a job on a GPU node:

srun --partition=gpu_short --export=ALL --nodes=1 --ntasks=72 --gres=gpu:1 --cpus-per-task=1 --time=12:00:00 --pty /bin/bash

Once inside the GPU allocation:

  • Load GPU-specific modules
  • Compile or run GPU applications normally

Key Rules

  • CPU stack → use on CPU nodes only
  • GPU stack → use on GPU nodes only
  • Login nodes → CPU stack only (no GPU execution)
  • Use ssx set_gpu only to inspect GPU modules from login

Failure to follow these rules will result in runtime errors or invalid binaries.

Requesting New Software

Before requesting new software, verify availability:

module avail

If the software is not present, submit a request via the Helpdesk.

Provide the following information:

  1. Software name
  2. Official website or source
  3. Software type (open-source or commercial)
  4. Required version
  5. Dependencies (if relevant)
  6. Installation instructions
  7. Validation or test procedure
  8. License details (if applicable)
  9. Preferred toolchain (e.g. foss/2025b, intel/2025a)
  10. Access restrictions (if required)

Warning

Licensed software requires valid authorization before installation.


Best Practices

  • Prefer modules over manual environment configuration
  • Load explicit versions when reproducibility is required
  • Use isolated environments:

  • venv

  • conda

  • Use containers for portability:

  • Singularity


Troubleshooting

If issues occur:

  • Verify module dependencies
  • Check application documentation (--help, man)
  • Validate workflows on small test jobs

Install path

Do not install software into system paths. Use user environments or request installation through support.