Cargando…

Timemory: Modular Performance Analysis for HPC

HPC has undergone a significant transition toward heterogeneous architectures. This transition has introduced several issues in code migration to support multiple frameworks for targeting the various architectures. In order to cope with these challenges, projects such as Kokkos and LLVM create abstr...

Descripción completa

Detalles Bibliográficos
Autores principales: Madsen, Jonathan R., Awan, Muaaz G., Brunie, Hugo, Deslippe, Jack, Gayatri, Rahul, Oliker, Leonid, Wang, Yunsong, Yang, Charlene, Williams, Samuel
Formato: Online Artículo Texto
Lenguaje:English
Publicado: 2020
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7295383/
http://dx.doi.org/10.1007/978-3-030-50743-5_22
_version_ 1783546638274396160
author Madsen, Jonathan R.
Awan, Muaaz G.
Brunie, Hugo
Deslippe, Jack
Gayatri, Rahul
Oliker, Leonid
Wang, Yunsong
Yang, Charlene
Williams, Samuel
author_facet Madsen, Jonathan R.
Awan, Muaaz G.
Brunie, Hugo
Deslippe, Jack
Gayatri, Rahul
Oliker, Leonid
Wang, Yunsong
Yang, Charlene
Williams, Samuel
author_sort Madsen, Jonathan R.
collection PubMed
description HPC has undergone a significant transition toward heterogeneous architectures. This transition has introduced several issues in code migration to support multiple frameworks for targeting the various architectures. In order to cope with these challenges, projects such as Kokkos and LLVM create abstractions which map a generic front-end API to the backend that supports the targeted architecture. This paper presents a complementary framework for performance measurement and analysis. Several performance measurement and analysis tools in existence provide their capabilities through various methods but the common theme among these tools are prohibitive limitations in terms of user-level extensions. For this reason, software developers commonly have to learn multiple tools and valuable analysis methods, such as the roofline model, are frequently required to be generated manually. The timemory framework provides complete modularity for performance measurement and analysis and eliminates all restrictions on user-level extensions. The timemory framework also provides a highly-efficient and intuitive method for handling multiple tools/measurements (i.e., “components”) concurrently. The intersection of these characteristics provide ample evidence that timemory can serve as the common interface for existing performance measurement and analysis tools. Timemory components are developed in C++ but includes multi-language support for C, Fortran, and Python codes. Numerous components are provided by the library itself – including, but not limited to, timers, memory usage, hardware counters, and FLOP and instruction roofline models. Additionally, analysis of the intrinsic overhead demonstrates superior performance in comparison with popular tools.
format Online
Article
Text
id pubmed-7295383
institution National Center for Biotechnology Information
language English
publishDate 2020
record_format MEDLINE/PubMed
spelling pubmed-72953832020-06-16 Timemory: Modular Performance Analysis for HPC Madsen, Jonathan R. Awan, Muaaz G. Brunie, Hugo Deslippe, Jack Gayatri, Rahul Oliker, Leonid Wang, Yunsong Yang, Charlene Williams, Samuel High Performance Computing Article HPC has undergone a significant transition toward heterogeneous architectures. This transition has introduced several issues in code migration to support multiple frameworks for targeting the various architectures. In order to cope with these challenges, projects such as Kokkos and LLVM create abstractions which map a generic front-end API to the backend that supports the targeted architecture. This paper presents a complementary framework for performance measurement and analysis. Several performance measurement and analysis tools in existence provide their capabilities through various methods but the common theme among these tools are prohibitive limitations in terms of user-level extensions. For this reason, software developers commonly have to learn multiple tools and valuable analysis methods, such as the roofline model, are frequently required to be generated manually. The timemory framework provides complete modularity for performance measurement and analysis and eliminates all restrictions on user-level extensions. The timemory framework also provides a highly-efficient and intuitive method for handling multiple tools/measurements (i.e., “components”) concurrently. The intersection of these characteristics provide ample evidence that timemory can serve as the common interface for existing performance measurement and analysis tools. Timemory components are developed in C++ but includes multi-language support for C, Fortran, and Python codes. Numerous components are provided by the library itself – including, but not limited to, timers, memory usage, hardware counters, and FLOP and instruction roofline models. Additionally, analysis of the intrinsic overhead demonstrates superior performance in comparison with popular tools. 2020-05-22 /pmc/articles/PMC7295383/ http://dx.doi.org/10.1007/978-3-030-50743-5_22 Text en © Springer Nature Switzerland AG 2020 This article is made available via the PMC Open Access Subset for unrestricted research re-use and secondary analysis in any form or by any means with acknowledgement of the original source. These permissions are granted for the duration of the World Health Organization (WHO) declaration of COVID-19 as a global pandemic.
spellingShingle Article
Madsen, Jonathan R.
Awan, Muaaz G.
Brunie, Hugo
Deslippe, Jack
Gayatri, Rahul
Oliker, Leonid
Wang, Yunsong
Yang, Charlene
Williams, Samuel
Timemory: Modular Performance Analysis for HPC
title Timemory: Modular Performance Analysis for HPC
title_full Timemory: Modular Performance Analysis for HPC
title_fullStr Timemory: Modular Performance Analysis for HPC
title_full_unstemmed Timemory: Modular Performance Analysis for HPC
title_short Timemory: Modular Performance Analysis for HPC
title_sort timemory: modular performance analysis for hpc
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7295383/
http://dx.doi.org/10.1007/978-3-030-50743-5_22
work_keys_str_mv AT madsenjonathanr timemorymodularperformanceanalysisforhpc
AT awanmuaazg timemorymodularperformanceanalysisforhpc
AT bruniehugo timemorymodularperformanceanalysisforhpc
AT deslippejack timemorymodularperformanceanalysisforhpc
AT gayatrirahul timemorymodularperformanceanalysisforhpc
AT olikerleonid timemorymodularperformanceanalysisforhpc
AT wangyunsong timemorymodularperformanceanalysisforhpc
AT yangcharlene timemorymodularperformanceanalysisforhpc
AT williamssamuel timemorymodularperformanceanalysisforhpc