Pipit: Scripting the analysis of parallel execution traces

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Bhatele, Abhinav, Dhakal, Rakrish, Movsesyan, Alexander, Ranjan, Aditya K., Cankur, Onur
Format: Preprint
Published: 2023
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866911876239065088
author Bhatele, Abhinav
Dhakal, Rakrish
Movsesyan, Alexander
Ranjan, Aditya K.
Cankur, Onur
author_facet Bhatele, Abhinav
Dhakal, Rakrish
Movsesyan, Alexander
Ranjan, Aditya K.
Cankur, Onur
contents Performance analysis is a critical step in the oft-repeated, iterative process of performance tuning of parallel programs. Per-process, per-thread traces (detailed logs of events with timestamps) enable in-depth analysis of parallel program execution to identify different kinds of performance issues. Often times, trace collection tools provide a graphical tool to analyze the trace output. However, these GUI-based tools only support specific file formats, are challenging to scale to large trace sizes, limit data exploration to the implemented graphical views, and do not support automated comparisons of two or more datasets. In this paper, we present a programmatic approach to analyzing parallel execution traces by leveraging pandas, a powerful Python-based data analysis library. We have developed a Python library, Pipit, on top of pandas that can read traces in different file formats (OTF2, HPCToolkit, Projections, Nsight Systems, etc.) and provides a uniform data structure in the form of a pandas DataFrame. Pipit provides operations to aggregate, filter, and transform the events in a trace to present the data in different ways. We also provide several functions to quickly and easily identify performance issues in parallel executions. More importantly, the API is easily extensible to support custom analyses by different end users.
format Preprint
id arxiv_https___arxiv_org_abs_2306_11177
institution arXiv
publishDate 2023
record_format arxiv
spellingShingle Pipit: Scripting the analysis of parallel execution traces
Bhatele, Abhinav
Dhakal, Rakrish
Movsesyan, Alexander
Ranjan, Aditya K.
Cankur, Onur
Distributed, Parallel, and Cluster Computing
Performance
Performance analysis is a critical step in the oft-repeated, iterative process of performance tuning of parallel programs. Per-process, per-thread traces (detailed logs of events with timestamps) enable in-depth analysis of parallel program execution to identify different kinds of performance issues. Often times, trace collection tools provide a graphical tool to analyze the trace output. However, these GUI-based tools only support specific file formats, are challenging to scale to large trace sizes, limit data exploration to the implemented graphical views, and do not support automated comparisons of two or more datasets. In this paper, we present a programmatic approach to analyzing parallel execution traces by leveraging pandas, a powerful Python-based data analysis library. We have developed a Python library, Pipit, on top of pandas that can read traces in different file formats (OTF2, HPCToolkit, Projections, Nsight Systems, etc.) and provides a uniform data structure in the form of a pandas DataFrame. Pipit provides operations to aggregate, filter, and transform the events in a trace to present the data in different ways. We also provide several functions to quickly and easily identify performance issues in parallel executions. More importantly, the API is easily extensible to support custom analyses by different end users.
title Pipit: Scripting the analysis of parallel execution traces
topic Distributed, Parallel, and Cluster Computing
Performance
url https://arxiv.org/abs/2306.11177