Node-level performance analysis of the structural mechanics solver b2000++pro
Please login to view abstract download link
Finite element methods build an essential pillar in modern engineering applications. However, simulating detailed models with numerous degrees of freedom is computationally demanding and limit the productivity in those applications. To employ highly resolved simulations and meet the time-to-solution expectations nevertheless, high-performance computing systems can be used. This study examines the node-level performance of the structural solver b2000++pro [1, 2], designed to solve problems related to structural mechanics in a wide range of application domains. Our investigation focuses on the performance of the solver at the node level on various high-performance computing architectures. The investigation reveals some opportunities for performance improvements in the highly flexible C++ code that utilizes Intels Threading Building Blocks [3] for shared memory parallelization and the (OpenMP [4] parallel) MUMPS direct solver to solve arising linear equation systems. For the considered applications, a run includes reading the mesh, generating a model representation, assembling the system matrix, and solving the corresponding linear equation systems. The assembly of the system matrix and the solution of the linear equation systems are the most time-consuming steps. This contribution further discusses options to close the performance gap and improve the time to solution of b2000++pro on the considered HPC systems. REFERENCES [1] SMR Documentation. https://www.smr.ch/newdoc/, [Online; accessed January 12, 2024]. [2] M. Petsch, D. Kohlgr¨uber, C. Leon Munoz and T. Rothermel: Integration of thestructural solver b2000++ in a multi-disciplinary process chain for aircraft design. In: DLRK 2020 (September 2020), https://elib.dlr.de/139438/. [3] Getting Started with Intel®Threading Building Blocks (Intel®TBB).https: //www.intel.com/content/www/us/en/developer/articles/guide/ get-started-with-tbb.html, [Online; accessed January 12, 2024]. [4] L. Dagum and M. Ramesh: OpenMP: an industry standard API for shared-memory programming. Computational Science Engineering, IEEE 5.1 (1998): 46-55.