Software Overview¶
On this Page
- What Software Options are available
- When to use each Software Options
- What Software Environments are available and what they are used for
Available Software¶
Some software has been made available system wide, other software can be user installed and managed.
For a list of currently available software checkout the List of installed software
Managing your own Software¶
| Feature / Tool | Lmod / Modules | conda / mamba | Apptainer | Spack | SBGrid | venv | renv |
|---|---|---|---|---|---|---|---|
| Language Support | Language-agnostic | Multi-language (Python, R, etc.) | Language-agnostic (container-based) | Multi-language (C, Fortran, Python) | Scientific tools (bio/chem/structural) | Python only | R only |
| Scope | Manages access to software | Packages + native/system dependencies | Full OS + environment | Source builds + dependency trees | Curated software suite | Python packages | R packages |
| Package Manager | N/A (env modules only) | conda, mamba |
None (uses definition files) | spack |
SBGrid client | pip |
renv |
| Reproducibility | Medium (depends on loaded modules) | High (environment.yml, lockfiles) |
Very high (frozen image) | High (via concretization + locks) | High (versioned environment) | Medium (requirements.txt) |
High (renv.lock) |
| Binary Packages | N/A | Yes (conda-forge, etc.) | Optional (user-defined or prebuilt) | Mostly built from source | Yes (precompiled) | From PyPI (wheels) | CRAN, Bioconductor |
| Non-language Deps | Managed by system/site admin | Built-in (e.g., OpenCV, HDF5, BLAS) | Fully included in image | Fully supported | Bundled per environment | Manual (via OS tools) | Manual or external |
| Custom Builds | No | Some | Yes (via definition file) | Yes (fully configurable) | No | No | No |
| Cross-Platform | Depends on cluster/system | Excellent (Windows/Linux/macOS) | Excellent (Linux-native) | Builds per target system | Linux/macOS | Good, minor issues | Excellent |
| HPC-Friendly | Yes (standard on clusters) | Yes | Yes (designed for HPC) | Yes (made for HPC) | Yes | Yes | Yes |
| Best Use Case | Shared software on HPC systems | Data science, ML, research computing | Portable workflows, pipelines on HPC | Custom scientific toolchains | Structural biology labs | Simple Python apps | R reproducibility & isolation |
| Complexity | Low for users, high for admins | Medium (lower with mamba) |
Medium (def files + CLI) | High (very flexible, steep learning curve) | Very low (plug-and-play) | Low | Low |
| Use Case | Recommended Tool(s) |
|---|---|
| Shared HPC environments | Lmod / modules |
| Python/R + system deps, easy setup | conda / mamba |
| Portable containers on HPC | Apptainer |
| Custom scientific software stacks | Spack |
| Ready-made scientific software (biology) | SBGrid |
| Lightweight, local Python projects | venv |
| Reproducible R projects | renv |
Lmod/Modules: Exposes pre-installed tools with module load; used on HPCs for easy switching between compilers and software versions.
conda/mamba: General-purpose, language-aware environment + dependency manager; mamba is a faster drop-in.
Apptainer: Build-and-run container system for non-root, secure app packaging on HPC.
Spack: HPC-focused package manager for custom builds, compiler/toolchain control, and dependency isolation.
SBGrid: Plug-and-play scientific software stack (mainly structural biology); not customizable.
venv: Built-in tool for isolating Python projects.
renv: Lightweight and reproducible environment manager for R workflows.
graph TD;
A["Using pre-installed software via HPC?"] -->|Yes| Lmod["Lmod / Environment Modules"]
A -->|No| B["Need your own Python, R, or native stack?"]
B -->|Yes| C[Use conda / mamba]
C --> D[Need portable, reproducible OS-level environment?]
D -->|Yes| Apptainer["Use Apptainer (containers)"]
D -->|No| E[Need custom toolchains or builds?]
E -->|Yes| Spack["Use Spack (custom builds)"]
E -->|No| F[Working in Python or R?]
F -->|R| Renv["Use renv (R projects)"]
F -->|Python| G[Pure Python project?]
G -->|Yes| Venv[Use venv]
G -->|No| C
Lmod --> Done1[✔ Done]
C --> Done2[✔ Done]
Apptainer --> Done3[✔ Done]
Spack --> Done4[✔ Done]
Renv --> Done5[✔ Done]
Venv --> Done6[✔ Done]