Skip to main content

Build Systems Course and Hackathon

Johan Hellsvik, PDC

In October this year, PDC hosted a combined build systems course and hackathon. The event was organised in collaboration with the EuroCC National Competence Centre Sweden (ENCCS), the CodeRefinery project, the CSC – IT Center for Science, Finland, and the Aalto Scientific Computing research infrastructure, Finland.

Modern computer hardware has developed towards heterogeneous architectures that combine the compute capabilities of multicore central processing units (CPUs) and graphics processing units (GPUs), non-uniform memory access (NUMA), and high speed network interconnects. On the one hand, this offers the prospect of extreme computing power, and, on the other hand, it definitely presents a challenge for developers and users of scientific software. To overcome the challenges of adapting existing code (or writing new code) to run efficiently on heterogeneous systems, it is important to be able to build and install programs and libraries of code on these systems. There are various tools and frameworks available to help with these tasks. The scope of the course was to provide an overview and hands-on experience of commonly used tools and frameworks for building scientific software on Linux-based computers, with an emphasis on code written in compiled languages.

The course part of the event ran over four half days with a curriculum featuring an introduction to compilers, linkers, and libraries, the GNU make and autotools, CMake, Spack, EasyBuild, and Singularity/Apptainer. In the exercise sessions, the participants got the chance to try out these tools for a variety of open source code programs. The hackathon was at first intended as an onsite event over three days, but was later rescheduled to become an online activity with one participating team, with which we are working to get a multiple- program workflow to be able to run in sync as multinode jobs on the Dardel supercomputer.