POP-Audit CalculiX: Erfolgreiche Performanceoptimierung und Korrektheitsanalyse

10.02.2021

Am Lehrstuhl für Hochleistungsrechnen werden Methodiken und Werkzeuge für die Leistungs- und Korrektheitsanalyse erforscht. Unter anderem im Rahmen des EU-Projekts POP2 werden diese zusammen mit dem IT Center zur Anwendung gebracht. Als Beispiel für diese Zusammenarbeit soll hier ein erfolgreicher Audit des Simulationsprogramms CalculiX vorgestellt werden. Dabei konnte durch Optimierung von I/O-Zugriffen und Lastimbalancen eine Laufzeitverbesserung um mehr als 30 Prozent erzielt werden. Zusätzlich konnte bei einer Korrektheitsanalyse ein Data Race identifiziert und behoben werden. 

 

CalculiX ist ein freies Simulationsprogramm, welches die Finite-Elemente- und die Finite-Volumen-Methode als numerische Verfahren zur Lösung verschiedener Simulationsprobleme implementiert. Konkret untersucht und optimiert wurde im Rahmen von POP hierbei die Ausführung einer Strömungssimulation, die die Strömungsgeschwindigkeit von Luft in einer Röhre (laminare Strömung) simuliert.

In einer ersten Korrektheitsanalyse der Ausführung konnte festgestellt werden, dass der Code ein Data Race enthält, welches zu nichtdeterministischen Berechnungen und daraus resultierenden Laufzeitschwankungen geführt hat. Im Rahmen der Analyse konnte das Data Race beseitigt werden. In der darauffolgenden Performanceanalyse des Codes konnte durch zwei Verbesserungen die Laufzeit des Codes um mehr als 30 Prozent verringert werden: Aufgrund der hohen Anzahl an schreibenden I/O-Zugriffen mit kleiner Datengröße, die insgesamt 40 Prozent der Gesamtlaufzeit ausmachten, konnte durch die Einführung eines Puffers die Laufzeit signifikant reduziert werden. Weiterhin stellte sich bei einer Analyse der Lastbalance heraus, dass wiederholt genau ein Thread beim Lösen der Gleichungssysteme deutlich länger läuft als alle anderen Threads. Durch die Verteilung dieser Arbeit auf andere Threads, deren Berechnungen schon abgeschlossen sind, können zur Verfügung stehende Ressourcen effizienter genutzt werden.

Eine detaillierte Beschreibung der Analyseergebnisse befindet sich im Blog des POP-Projekts (en).