# HPC-UGent - INUITS - EasyBuild (Petr - 2022-10-05)
main contact @ HPC-UGent: Kenneth Hoste
## Tasks
Prep:
- create VSC account to access HPC-UGent infrastructure
- see 'UGent welkom' invite to create UGent (mini-)account
- see https://www.ugent.be/hpc/en/access/faq/access to create VSC account
- connect with VSC account
- use https://firewall.vscentrum.be to whitelist your IP
- then SSH into login.hpc.ugent.be
- or use web portal https://login.hpc.ugent.be
- watch introductory talk on HPC-UGent
- watch introductory talk on EasyBuild
- work through EasyBuild tutorial (incl. exercises)
- for example EasyBuild ISC'21 tutorial (recording available)
Primary tasks:
- help with tackling installation requests for scientific software on HPC-UGent Tier-2 and VSC Tier-1 clusters
- creating easyconfig files so software can be installed using EasyBuild
Secondary:
- extend EasyBuild documentation
- write up "how to" on creating easyconfig files for Python software
- help with porting EasyBuild documentation from .rst to MarkDown (.md) + mkdocs
- see https://github.com/easybuilders/easybuild/tree/develop/docs
- help with implementing missing features in EasyBuild
## Skills
- Linux (shell)
- Python
- Git + GitHub
- compilers (C++, ...)
- figuring out compiler errors and other installation problems
## Communication
- weekly sync meetings via https://jitsi.inuits.io/ugent (usually Tue at 10:00 CE(S)T)
- see also HackMD note @ https://hackmd.io/KtmDOX7bTFmdCi1Lqt0U2w
- #eb_inuits (private) channel in EasyBuild Slack
## Worfklow
- 1) pick an issue to work on from (see VSC Software Stack GitHub repository)
- focus on issues tagged with `site:ugent` or `site:t1_ugent_hortense`
- initially focus on issues tagged with `difficulty:easy`
- 2) start working on an easyconfig file (or multiple, if dependencies are required)
- 3) upload work-in-progress to a dedicated subdirectory in the GitHub repository, with appropriate name
- test easyconfig file(s) in your VSC account, on top of the centrally installed software
- in an interactive job (start with 'qsub -I')
- by preference use the 'slaking' cluster (no waiting time in queue)
- 4) run test case on installed to mimic how a user would use the software
- 5) iterate over 2+3+4 until easyconfigs are working as expected
- 6) when easyconfig file(s) are done, open a pull request (PR) to the central easybuild-easyconfigs repository
- see docs on GitHub integration in EasyBuild
- 7) process incoming comments and suggestions in PR, iterate until PR is merged
- 8) cleanup: remove subdirectory in VSC Software Stack GitHub repo + close issue when PR is merged
## Links
- HPC-UGent website: https://www.ugent.be/hpc
- Introduction to HPC-UGent: https://www.ugent.be/hpc/en/training/2022/introhpcugent
- EasyBuild website: https://easybuild.io
- EasyBuild documentation: https://docs.easybuild.io
- EasyBuild GitHub integration: https://docs.easybuild.io/en/latest/Integration_with_GitHub.html
- EasyBuild Slack: https://easybuild.io/join-slack
- EasyBuild tutorial: https://easybuild.io/tutorial
- "From EasyBuild to EESSI" presentation: https://www.youtube.com/watch?v=3J4cxfx6PoA (slides: https://users.ugent.be/~kehoste/From-EasyBuild-to-EESSI-2022-08-24.pdf)
- VSC Software Stack @ GitHub: https://github.com/vscentrum/vsc-software-stack
- old legacy (private) repository: https://github.com/hpcugent/eb_inuits