POP Audit CalculiX: Successful Performance Optimization and Correctness Checking
At the chair for high-performance computing, research on methods and tools for performance and correctness checking is done. In the context of the EU project POP2, those methods and tools are applied at real user codes in collaboration with the IT Center. As an example for this collaboration, a successful audit of the simulation program CalculiX is presented here: By optimizing I/O accesses and load balances, a performance improvement of more than 30 percent could be achieved. In addition, a data race was identified and fixed.
CalculiX is an open-source simulation program implementing the finite element method and the finite volume method as numerical framework to solve different simulation problems. In the POP audit, a fluid simulation of air through a tube was analyzed.
An initial correctness check of the execution revealed a data race in the code leading to nondeterministic results and load imbalances. In the context of the POP audit, the data race was fixed. In the following performance analyses of the code, two major changes improved the runtime of the code about more than 30 percent: Due to the high number of written I/O accesses with small chunk size, which accounted for 40 percent of the total runtime, the utilization of a buffer for these accesses could reduce the runtime significantly. A further analysis of the load balance showed that multiple times one thread runs significantly longer than other threads when solving the equation systems. Distributing this work to other idling threads could improve the resource utiliziation and therefore the total runtime of the execution.
A detailed description of the analysis results is available in the blog of the POP project.