CASUS Hands-on Software Seminar, Simeon Ehrig, Helmholtz-Zentrum Dresden-Rossendorf (HZDR)

Abstract of the talk// The alpaka library is a C++ abstraction library for accelerator development. It allows to write code once and run it on different accelerators/processor types like CPUs, GPUs and FPGAs. Therefore, it supports a wide range of processor manufacturers such as Intel (x86 CPU, GPU), AMD (x86 CPU, GPU), Nvidia (experimental ARM CPU, GPU), Cavium (ARM CPU) etc. through various compilers and SDKs. In addition, alpaka supports various operating systems such as Linux, macOS and Windows and depends on the Boost library. This results in a large set of supported software combinations. A full test of all combinations would take days on an HPC cluster, which is not feasible for the agile development cycle used in alpaka. Therefore, solutions to reduce the number of test jobs and to keep the test coverage as good as possible are needed.

The talk will cover different techniques Simeon and his team use to manage the high test complexity of alpaka on the HZDR GitLab CI. The various techniques allow for high automation of testing and are intended to reduce the maintenance effort and time required to add new test cases. Key technologies include the GitLab CI Job Generator, pair wise testing, mirroring of GitHub projects on GitLab CI, and deployment of pre-built Docker containers to the environment.

The talk expects the audience to have at least one simple project set up with an automated testing pipeline e.g. via GitLab CI. Take a look how to get started as well as a modification of the Getting Started example for your own project.

Simeon will be talking live in Görlitz. However, as the event is organized in a hybrid format that includes a videoconferencing tool by Zoom Inc., people interested in the topic have the chance to also join the seminar remotely. Please register until 28 March 23 via to receive the login details.