---
# System prepended metadata

title: Getting Scientific Software Installed VSC training

---

# Getting Scientific Software Installed VSC training

-------------------------------------------------------------------------------------------

# Questions (20251103)

## Central software stack

- Will modules be affected (or dissapear) with the migration to Rocky9? If yes, are there some modules planned to be reinstalled?
- how to choose the module version?

## EESSI

- Is LIMA still the best workaround for using eessi on macOs?
- admin access to use EESSI, install software
- EESSI @ KUL?
- If you dont module purge, will EESSI modules interact with VSC modules?
- Should software requests still happen the traditional way for HPC-UGent clusters?
- more (bioinformatics) software in EESSI to make it easier to jump from Tier-2 to Tier-1

## Using containers

- How to run tblite example with Apptainer?
- Where can container images be stored other than DockerHub?

## conda & co

- Reasons for discouraging of conda on VSC cluster?
- Building conda packages from source

## pip + venv

- Should recommend uv?
- Is it possible in the environment to load  any type of modules, or only python packages?
- Is it possible to activate the enivronments using an interactive session e.g. Jupyter Notebook or Rstudie?
    - https://docs.vscentrum.be/compute/portal/ondemand/jupyterlab.html#virtual-environments-for-python
- Does vsc-venv import packages from (Lmod) modules?
- Does this work with job scripts?

## R, Julia

- When I tried using RStudio (OnDemand app) with RLibs on VSC_DATA, RStudio kept crashing. Is the “RProject way” the only way to work in RStudio and RLibs on VSC_DATA (and not VSC_HOME)? Could you explain how RStudio relates to R on the HPC? (Sorry if there is documentation that already answers this, I could not find it.)
- If installing R packages in environment, how do we share it with colleagues? (A: Copy the folder, or use project/VO directory)

## Software compilation

- Difference between CMake and Ninja (A: CMake configures, Ninja builds; Ninja is a drop-in replacement for GNU make)
- Do we have to re-compile if we want to use it on a different node?

## Building containers

- Could the wrapper scripts be used with bind mounts?
- Once such conda-type image is created, can it be modified dynamically afterwards to conda install extra packages for example? Or is it read-only?
- What if your tool in your container needs another CUDA version than your host, is that possible in any way? (A: ranges of compatibility between CUDA versions, depends on code)
- Is (re)building a container reproducible? (A: depends on the definition file, keeping/distributing the image is the most reproducible)
- How can a container or an App inside the container run across multiple nodes using SLURM? Should slurm be defined and slurmd be installed inside the sif file? (A: no Slurm required in containers, install MPI in container or bind-mount host MPI; perhaps also --container Slurm option) 

## EasyBuild + Spack

- can you use spack on top of the installed modules, such that centrally installed modules (by EasyBuild, for example) are used when resolving dependencies? (A: yes, spack has support for external packages, _theoretically_)
- Is there a difference between using EasyBuild as a module and installing EasyBuild with pip? A: control, customization, but no specific advantage)


-------------------------------------------------------------------------------------------

## Sync meeting 20251023 (15:00)

- Catering OK
    - @Sam: pass dietary restrictions
- registration hands-on session fo Thu 6 Nov
    - UGent: coming soon
    - VUB: open office style
    - UA: ?
    - KUL: link to registration form will be sent to participants
- on-site directions to room for training? => Sam
    - will be available on site
    - name of room? floor?
- access control at Belpaire building? => Sam
    - no access control on visitors floor
- demo script for tblite: https://github.com/EESSI/eessi-demo/tree/main/tblite
- performance test for tblite?
- add demo scripts to https://github.com/vscentrum/gssi-training

## Sync meeting 20251017 (13:00-15:00)

attending: Kenneth, Steven, Maxime, Robin, Sam, Alex, Cintia

- review complete draft of presentation
    - https://docs.google.com/presentation/d/1NSR0BDCOtn75IDv9mP5wFj20abrSWs3sB0AA0i20Pek
    - clean up formatting
        - @Alex/Cintia: on Fri 24 Oct 2025
- practical aspects
    - send email with practical information to all registered attendees
    - when?
        - a couple of days before -> Wed 29 Oct'25?
    - who takes care of it? => Alex
        - Kenneth provides Excel sheet with registrations on 23 or 24 Oct to Alex & co
    - mention hands-on session (incl. links with more info per site)
        - UGent: 
        - UA: 
        - VUB: 
        - KUL: 
    - in-person vs online
    - catering => Sam
        - coffee at 9am
        - lunch at 12:00
        - coffee break at 2.30pm
    - recording via Teams
        - speaker in view via spare laptop => VUB
            - with webcam => Sam
        - backup with separate smartphone => Alex
    - on-site directions to room for training? => Sam
    - access control at Belpaire building? => Sam
        - do we need to share list of in-person attendees up front?
    - GitHub repo @ https://github.com/vscentrum/gssi-training
    - changing laptops per speaker => because of hands-on
        - share Teams on large screen
        - let each speaker share their screen in Teams
        - relies heavily on the WiFi
- hands-on session on Thu 6 Nov
    - registration?
        - @UGent:
            - 2h slots (am + 2x pm)
            - send invite to everyone from UGent who registered
            - week before (Thu 23 or Fri 24 Oct)
        - @VUB: without registration, only in afternoon
        - @UA: unclear, TBD
        - @KUL: probably with registration, TBD
- update on registrations (Kenneth)
    - 23 in-person (9 seats left)
        - KUL: 3 (incl. 1 via GMail)
        - UA: 3 (+Franky)
        - UGent: 11
        - UHasselt: 1
        - VUB: 3
        - other: 1 (INBO)
    - 55 virtual
        - KUL: 13
        - UA: 2
        - UGent: 29
        - UHasselt: 1
        - VUB: 5
        - other: 5
    - VSC staff organising this training does not need to register
        - 8/40 seats reserved for VSC staff
- one more sync meeting?
    - Thu 23 Oct'25 15:00 CEST

## Sync meeting 20250926

attending: Kenneth, Maxime, Robin, Cintia, Lara, Alex

- review slides + feedback
    - detailed agenda: https://hackmd.io/53rv-_D9STCwVGS4pm8VKg?view
    - add "homework" slide with exercises for every section
- update on registrations (Kenneth)
    - Lara can also access registrations in `event.ugent.be`
    - VSC staff organising this training does not need to register
        - 8 seats reserved for us
    - 11 in-person (21 seats left)
        - KUL: 1
        - UA: 1 (+Franky)
        - UGent: 6
        - UHasselt: 0
        - VUB: 2
        - other: 0
    - 36 virtual
        - KUL: 4
        - UA: 2
        - UGent: 24
        - UHasselt: 1
        - VUB: 3
        - other: 2
- practical aspects
    - for Mon 3 Nov
    - for hands-on session Thu 6 Nov
        - registration (per site separately)
        - 30min/1h time slots to let attendees select
        - max 3-5 people per time slot?
- email with practical information [Alex]
    - send on Thu/Fri 30-31 Oct
    - details on venue, start, agenda, prerequisites (?), ask to inform us if they can't attend (in-person)
    - for online attendees: Teams meeting invite
    - **who can take care of this?** (Kenneth on leave)
        - => Alex
- logistics
    - make sure there's coffee at 9am (Sam)

## Sync meeting 20250828

attending: Kenneth, Lara, Sam, Alex, Cintia, Maxime, Steven, Robin

- date(s) & venue
    - Mon 3 Nov'25 @ FWO (room booked via Sam)
        - Belpaire building, room with 40 people max.
            - (Sam) catering (coffee, lunch)
        - hands-on session
            - Thu 6 Nov @ UGent (Multimediazaal)
            - (TBD) @ KUL [Steven not available Fri 7]
            - Thu 6 Nov @ VUB
            - (TBD) @ UA
    - right after school holiday week (Herfstvakantie), not ideal in terms of (last-minute) preparation
    - clash with EOSC Symposium (https://eosc.eu/eosc-symposium-2025/#programme)
        - but program on Tue 4 Nov is more interesting than Mon 3 Nov, so not a big issue
- set date&venue in stone, announce + open registration?
    - registration via event.ugent.be => OK (Kenneth/Lara)
    - registration capped at 32 (to leave seats for VSC staff)
    - info
        - in-person vs online
        - allow indicating interest for hands-on during registration
        - VSC account
        - name/affiliation/email
        - goal for this training
        - level of experience
    - announce via mailing list of VSC sites + inform GJB+Rafal to add to VSC website
- detailed agenda being fleshed out in https://hackmd.io/53rv-_D9STCwVGS4pm8VKg?view
    - "homework" assignment at end of each section
- example software package to use in hands-on demos?
    - manual installation, container, Spack+EB, etc.
    - should be quick, not a lot of dependencies, etc.
    - STREAM? HPL? some Python package?
    - tblite: https://pypi.org/project/tblite
        - supported in Spack/EasyBuild/conda
        - easy to "pip install" thanks to pre-built wheels in PyPI?
- next steps
    - (Kenneth) open registration early Sept
        - check with Rafal+GJB first
    - start working on slides: https://docs.google.com/presentation/d/1NSR0BDCOtn75IDv9mP5wFj20abrSWs3sB0AA0i20Pek/edit?slide=id.g24a30fc37c1_10_0#slide=id.g24a30fc37c1_10_0
        - Kenneth will flesh out structure
    - next meetings:
        - Fri 26 Sept'25 10:00-12:00 CEST
            - (before meeting) step through prepared slides, give feedback
            - discuss status of slides
        - Fri 17 Oct'25 13:00-14:00 CEST
            - finalise presentation + practical details

## Sync meeting 20250703

*(during VSC Central Software Installations meeting)*

- no room available at FWO for Mon 20 Oct
    - organise presentation session at each VSC site?
        - option 3
    - find alternative location at one of the VSC sites?
        - option 2: UAntwerp City Campus
            - week of 20 Oct + 3/17 Nov
            - ~40 people minimum
    - option 1: find alternative date at FWO (big room, 40 people)
        - week of 3-7 Nov (clash with KUL HPC intro)
        - week of 17-21 Nov (SC'25 week)
        - Sam to reply to FWO, someone else to follow up
- detailed agenda
    - WIP via https://vscdocumentationbeta.readthedocs.io/compute/software/index.html + https://github.com/lexming/VscDocumentation/tree/software/source/compute/software
- preparing contents
    - set up pairing session to prepare contents per session
        - person assigned speaker is responsible for planning with sparring partner
    - aim to have docs ready for overall review by mid Sept
    - set up table of contents ASAP
        - via https://hackmd.io/53rv-_D9STCwVGS4pm8VKg
        - each speaker+sparring partner per section
- hands-on session
    - optional, one at each VSC site
    - short time slots, max 4 people per 30min slot
    - make goal of this session clear: help with practical problems, give suggestions, push in right direction, hands-on help
    - setting expectations will be important
        - bring your own problem
    - keep registration open until day before hands-on session
    - require/recommend that people follow session on Monday first
    - high-level question in registration form
        - what software?
        - which software installation mechanism are you using?
        - what have you tried?
        - which problems did you encounter?
- next meeting (on training session)
    - Thu 28 Aug 09:00 CEST
        - goal:
            - table of contents + bullet-point slides per session
            - have pairing session scheduled/ongoing

---

## Sync meeting 20250606

attending: Kenneth, Lara, Maxime, Robin, Sam

### Agenda

- see also notes of last VSC Software meeting: https://github.com/vscentrum/vsc-software-stack/blob/vsc/meeting-notes/2025/2025-05-08.md
- agree on dates
    - best option: Mon 20 Oct + Thu 23 Oct 2025 (OK'ed by GJB)
        - Mon 20 Oct (full day): presentations w/ remote participation
            - large physical location: at FWO?
                - => (Sam) check with Caroline if top room is free
                - => (Kenneth) talk to Rafal for recording & technical support + promotion
            - all speakers in same room?
            - physical attendance of users
                - max. attendance? 50/60? => Sam asks Caroline
            - tables? (not required)
        - Thu 23 Oct (half or full day): at each VSC site
            - work with slots, organised per topic?
            - 2-4 people to provide hands-on help
            - max. 20 attendees per slot?
            - let each VSC site decide on details of practical organisation, book room, etc.
        - save the date
            - via page @ vscentrum.be (via Rafal)
            - direct contact with local users for hands-on session
        - open registration mid Sept'25
- practical: set up Google Slides deck + structure for VSC docs 
    - https://docs.google.com/presentation/d/1NSR0BDCOtn75IDv9mP5wFj20abrSWs3sB0AA0i20Pek
    - goal is to update https://docs.vscentrum.be/compute/software/index.html
    - dedicated separate site w/ MkDocs? (no need to)
    - flesh things out via https://vscdocumentationbeta.readthedocs.io/compute/software/index.html
        - dedicated `software` branch in https://github.com/lexming/VscDocumentation
        - MarkDown or RST, up to person who writes those pages
        - Alex will add initial structure
- rework schedule (hands-on session on separate day)
- split up work to prepare sections
- focus
    - taxonomy of tools: what's out there, how can they be used, pros/cons, use cases, required expertise, hands-on demos

### Draft schedule

#### 09:30-10:00 Welcome 

#### 10:00-10:10 Introduction [speaker: Kenneth, sparring: Alex]

- general points: goal of the training, agenda, practical org, ...
- CPU vs GPU
- CPU-specific builds, $VSC_* environment variables
- use vs install vs compile (from source)
    - use: central modules, EESSI, containers
    - basic install: conda+mamba+pixi, language pkg mgrs (Python venv/R/Julia/Rust+cargo)
    - expert install: manual build, build own container images, EasyBuild, Spack

#### 10:10-10:30 Central modules [speaker: Kenneth, sparring: Alex]

- basics of environment modules, Lmod, why we use them, ...
- incl. hands-on demo (5min)

#### 10:30-11:00 EESSI [speaker: Lara, sparring: Sam]

- VM in AWS with `sudo` for hands-on demo of native installation
- single-node without CernVM-FS: access via container vs cvmfsexec

#### 11:00-11:30 Containers (using) [speaker: Sam, sparring: Kenneth]

- performance, trust/security
- GPU use case

#### 11:30-12:00 Conda+mamba+pixi [speaker: Maxime, sparring: Alex]

- start creation of conda env first, then talk
- can't be combined with modules
- issue with reproducibility of conda envs

#### 12:00-13:00 lunch break

#### 13:00-13:30 Language package managers: Python [speaker: Steven, sparring: Robin]

- Python virtual environments, pip/venv/uv
- vsc-venv

#### 13:30-14:00 Language package managers: R/Julia/Rust/Java [speaker: Alex, sparring: Kenneth]

 also R/Julia/etc. (15m + 15m hands-on)

- combo with modules
- simple Python/R/Julia example for hands-on exercise (pick one)

#### 14:00-14:30 Manual installation [speaker: Alex, sparring: Robin]

- `cmake` + `make` example
- constraints: which CPU you're targetting, link to OS, all manual steps (harder to reproduce)
- `build-env` modules
- compilers (GCC/LLVM/Intel/NVHPC/...), toolchains (MPI/BLAS/LAPACK/...), CMake, Makefile, environment ($PATH, ...)
- required dependencies
- from scratch vs on top of modules
- CPU-specific builds
- link to other VSC trainings

#### 14:30-15:00 Coffee break

#### 15:00 building containers [speaker: Sam, sparring: Robin]

#### 15:30 EasyBuild+Spack [speaker: Kenneth, sparring: Steven]

- combo with existing modules
- using existing an easyconfig

#### 16:00-16:15 Creating patch files ??? [Kenneth]

#### 16:15-17:00 Q&A

### Next meeting

- to be planned via VSC Slack

-------------------------------------------------------------------------------------------

## Kickoff meeting 20250130

- scope: overview of tools (conda, containers, Python venv, R, EasyBuild, Spack, EESSI), discuss the pros & cons of each, give some recommendations;

- hands-on hackathon: get your software installed in your VSC account;

- full-day?

- when?

### Notes

- lots of room with docs @ https://docs.vscentrum.be/software/index.html 
- https://www.vscentrum.be/_files/ugd/5446c2_ce37458f4a1b438d8ab1d8269350b680.pdf as a base
    - extra levels: EESSI, containers, using EasyBuild, ...
- try to find common recommendations across VSC sites
    - w.r.t. conda recommended usage
    - making EESSI available
- clearly highlight stuff that's specific to VSC systems

### Agenda

#### 10:00-00:15 General points (15m talk)

#### 10:15-00:45 Central modules (10m talk + 20m hands-on)

#### 10:45-01:15 Using EESSI (15m talk + 15m hands-on)

- access via container/cvmfsexec

#### 11:15-01:30 coffee break

#### 11:30-02:00 Using existing container images (15m + 15m)

- performance, trust/security
- GPU use case

#### 12:00-12:30 lunch break

#### 13:00-13:00 Conda (15m + 15m) [Alex]

- start creation of conda env first, then talk
- can't be combined with modules
- issue with reproducibility of conda envs

#### 13:00-13:30 Python virtual environments, also R/Julia/etc. (15m + 15m hands-on)

- combo with modules
- simple Python/R/Julia example for hands-on exercise (pick one)

#### 13:30-13:45 EasyBuild (talk + hands-on demo)

- combo with existing modules
- using existing an easyconfig

#### 13:45-14:00 Manual installation (talk + hands-on demo)

- `cmake` + `make` example
- constraints: which CPU you're targetting, link to OS, all manual steps (harder to reproduce)
- `build-env` modules

#### 14:00-14:15 Creating container images (talk + hands-on demo)

#### 14:15-14:30 Native installation of EESSI (talk + hands-on demo)

- VM in AWS with `sudo` for hands-on demo

#### 14:30-14:45 Creating patch files

#### 14:45-15:00 coffee break

#### 15:00-18:00 hands-on session: bring your own software! (3h)


### Next steps

- set up HackMD pages for each of the section + assign to someone
- general example: something on top of PyTorch
- target: early Sept'25?
- next sync meeting: week of 24-28 Feb?
    - Mon 24 Feb'25
    - Wed 26 Feb'25