Loading...

Project


Friedrich-Alexander-University (FAU)

Sustainable Performance Engineering

Sustainable Performance Engineering (FAU): Performance and scalability have always been central components of the FEATFLOW software, which has been methodically and algorithmically expanded over the years. To make FEATFLOW efficient for the upcoming generation of exascale computers, not only new scaling limits need to be overcome and hardware efficiencies achieved in the co-design of algorithms and implementations. The developments and implementations must simultaneously be sustainable and broadly usable with respect to the emerging significantly growing breadth in computer architectures. Challenges arise here in high degrees of scaling, heterogeneous and complex node architectures with deep memory hierarchies (including HBM memories also in the CPU area) and the growing breadth in the CPU processors (especially in the area of x86- and ARM-based systems), GPU processors (NVIDIA, AMD, Intel Ponte Vecchio) and heterogeneous, flexible concepts like the EPI. The project follows a co-design approach that can qualitatively or quantitatively evaluate the efficiency of alternatives in algorithms, data structures and implementations with respect to fundamental architectural features with performance models (e.g., using SIMD-like concepts or new memory hierarchies/technologies) and thus allows a targeted selection. For this reason, the project deliberately uses and possibly further develops analytical models (e.g., Roofline model [84] as well as ECM model [29, 41, 2]), which enable sustainable decisions in the co-design process. The machine-specific implementation of performance-critical steps is then carried out taking into account the performance model and with support from code generation technology [7, 21, 54, 18]. FAU is involved in several ongoing DFG and EU projects where targeted performance engineering is used, however the models differ as they must be specialized to the methods and architecture due to the co-design approach.