Usage Experiences of Performance Tools for Modern C$$++$$ Code Analysis and Optimization

2021 
Due to the need for scalability and readability in software, the ever-increasing number of performance-critical and large-scale applications nowadays have been implemented in C++. This encourages the wide usage of the Standard Template Library (STL) or C++ libraries (for example Eigen) for linear algebra, whose underlying implementations are fully encapsulated. Therefore, the performance analysis and optimization of modern C++ applications (either sequential or parallel) encounters challenges. In this paper, we aim to analyze and address this challenge by applying two different performance analysis tools of Cray Performance Analysis Tool(CrayPat)/Apprentice2 and Extrae/Paraver to practical use cases on a Cray XC40 system. The output profiling data is fully discussed to pinpoint the performance bottlenecks and the parallel scaling issues. The solutions to the performance problems are further given and (roughly) evaluated. Our experience is generic enough to be adopted to analyze different applications via the use of other tools.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    16
    References
    0
    Citations
    NaN
    KQI
    []