Hands on Software Seminar | Simeon Ehrig | 2023-03-30
Channel: CASUS.science
Date: 04/04/2023

TITLE: Automatic Testing of a Library – more than a simple job: experience talk about testing the alpaka library on the HZDR GitLab CI by Simeon Ehrig, Helmholtz-Zentrum Dresden-Rossendorf (HZDR)

ABSTRACT:
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.

LICENSE:
CC BY-SA 4.0

CASUS – Center for Advanced Systems Understanding
Helmholtz-Zentrum Dresden-Rossendorf e.V. (HZDR)
Untermarkt 20
D-02826 Görlitz