# 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