Speaker
Description
Continuous Integration (CI) is an indispensable part of modern software development. All major providers of software development platforms now offer an integrated range of resources for Continuous Integration, some of which are free to use. This offer is not sufficient for the requirements and use cases of some scientific software projects. There are scientific software projects which would like to take advantage of a large software development platform such as GitHub for the development of an open source software project and at the same time have access to the CI resources provided locally at an institution. This use case was implemented as part of HIFIS at HZDR and combines the GitHub platform with the locally available GitLab CI resources.
The presentation shows how this integration was implemented, which hurdles could be overcome, and at the same time addresses which difficulties exist. To this end, the talk goes into a practical use case, the alpaka C++ library and their specific CI implementation. The alpaka library (https://github.com/alpaka-group/alpaka) 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, through various compilers and SDKs. This results in a large set of supported software combinations that cannot be executed on the publicly available CI resources. With smart measures, the team makes use of the CI resources that have been made available and implements measures to handle the complexity and available resources.