Performance Comparison and Regression for XDEM Multi-Physics Application

Project reference: 2220
XDEM is a multi-physics framework for the simulation of granular material (Discrete Element Method) coupled with a fluid (Computational Fluid Dynamics) and running on High Performance Computing platforms. The XDEM software is in continuous development and requires frequent assessment of the performance to track and evaluate the impact of the code changes on the performance of the simulation.
With this project, we aim to develop a set of tools to simplify the performance comparison of independent executions and the detection of performance regression. The analysis will rely on the high-level performance metrics (available in XDEM) that describe the time spent in the different parts of the code (corresponding to the different phases and physics modules). The performance comparison tool will be designed to highlight, with graphic plots and simple analysis, the parts of code that are the most impacted by changes.
Different types of performance comparisons could be considered:
– between different versions of the software → detection of performance regression;
– between different levels of parallelization → strong scalability analysis;
– between different problem sizes → code complexity characterization;
– between different problem sizes and levels of parallelization → weak scalability analysis;
– and more generally between any varying parameters.
A second part of the project is to implement a set of scripts to run selected XDEM simulations on the HPC platform of the University of Luxembourg and automatize the detection of performance regressions using the analysis tools developed previously.

High-level performance metrics are collected during the execution of an XDEM simulations and can be leveraged to compare performances and detect performance regressions due to changes in the code.

Biomass furnace simulation with XDEM
Project Mentor: Dr. Xavier Besseron
Project Co-mentor: Dr. Sébastien Varrette and Dr. Emmanuel Kieffer
Site Co-ordinator: Dr. Ezhilmathi Krishnasamy
Learning Outcomes:
– Simply performance analysis of an HPC application (comparison, weak and strong scalability, etc.)
– Execution and automatization of jobs on an HPC cluster
Student Prerequisites (compulsory):
– Linux environment and shell scripting (bash)
– Performance analysis for parallel applications (e.g. strong/weak scalability)
Student Prerequisites (desirable):
– Data processing and plotting (ideally with R, tidyverse and ggplot2)
– Job schedulers and resource managers for HPC clusters (ideally SLURM)
Training Materials:
– Presentation of XDEM https://luxdem.uni.lu/software/index.html
– Data analysis with R tidyverse https://r4ds.had.co.nz/introduction.html
– Data visualization with ggplot2 https://ggplot2-book.org/introduction.html
– Using Uni.lu HPC platform https://ulhpc-tutorials.readthedocs.io/en/latest/
Workplan:
W1: Training week
W2: Performance dataset examples, introduction to Uni.lu HPC platform
W3-4: Performance analysis with dataset examples
W5-6: Script for performance regression on Uni.lu HPC platform
W8: Report
Final Product Description:
– Set of R scripts for comparative analysis of XDEM performance
– Set of bash scripts of the automatic performance regression analysis of XDEM on the HPC cluster of the University of Luxembourg
Adapting the Project: Increasing the Difficulty:
– More complex performance analysis, including more type comparisons
– Performance comparison with more than two versions of the code
Adapting the Project: Decreasing the Difficulty:
– Reduce the number of performance analysis (e.g. only the comparison between versions)
– Skip the script for execution on the HPC platform
Resources:
– Example performance dataset → provided by the mentor
– Access to Uni.lu HPC platform → provided via the site coordinator
– Acess to XDEM source code → provided by the mentor
Organisation:
ULux-University of Luxembourg
Leave a Reply