This two-part talk will present the proposed direction for asynchrony in C++ (see reading material below) and user experiences based on the proposed model at the Swiss National Supercomputing Centre (CSCS).
Mikael Simberg will talk about the P2300 proposal `std::execution`, which introduces senders, receivers, and schedulers as a generic base for asynchrony in C++. The pika library has an implementation of a subset of P2300 with the goal to guide and gain experience with the proposed features. pika provides schedulers for execution on CPU thread pools, and the CUDA and HIP runtimes, as well as sender adaptors for use with asynchronous MPI.
Raffaele Solcà will present DLA-Future, a distributed linear algebra library based on pika and also developed at CSCS, which uses the functionalities described in the first part of the talk. In particular he will talk about the advantages and disadvantages of the of the task- based approach, the implementation challenges, ranging from dependency tracking to memory usage, and how they have been solved. Finally an overview of the performance of the implemented algorithms will be discussed and compared with the state-of-the-art libraries.
Raffaele Solcà is a computational scientist at CSCS (Swiss National Supercomputing Center). He has a PhD in Physics from ETH Zurich. He's leading the DLA-Future library development which goal is to provide a GPU enabled distributed eigensolver based on the Pika library. His interests are in linear algebra, in particular in GPU implementations, as well as in performance modelling of the HPL benchmark on new node architectures.
Mikael Simberg is a scientific software developer focused on parallel programming models in C++. He has a master's degree in operations research and computer science from Aalto University in Finland. Since graduating he has worked in industry and academia. Mikael works since 2017 as a scientific software developer at the Swiss National Supercomputing Centre (CSCS) where he contributes to the pika library, an implementation of existing and proposed C++ standards for concurrency and parallelism.