Performance Analysis of BoSSS Solver Package
Introduction
The Bounded Support Spectral Solver (BoSSS) is developed as a flexible solver package to enable research in (mostly) fluid dynamics. Although the performance characteristics are known at a highlevel, the actual behavioral properties of the compute kernels have not yet been investigated.
In this project, we approach the BoSSS solver library with a structured, performance-engineering workflow. Initially, the investigation is limited to the already identified, most important regions of the code. Our goal is to understand the behavior of these regions, the main influencing factors for the observed behavior and develop potential improvements to speed up the computation. As the solver is implemented in C# our research also briefly evaluates the availability and applicability of performance analysis tools for managed languages and compare that to established performance profilers from the HPC community.
Methods
The application of the typical HPC performance analysis tools did reveal insight into the behavior of the native code parts. However, the managed-code parts, i.e., the C# regions were not sufficiently covered. We applied manual instrumentation to capture more information about the runtime behvaior of the C# code parts.
Results
We found that the application of the MUMPS solver with its current settings is the major limitation of the BoSSS application in our test case. Thus, in a next step we will analyze the influence of the different parameter settings applicable to the MUMPS solver, and investigate which tuning potential is available for the given scenarios.