DAGViz: a DAG visualization tool for analyzing task-parallel program traces

VPA '15 Pub Date : 2015-11-15 DOI:10.1145/2835238.2835241
An Huynh, D. Thain, M. Pericàs, K. Taura
{"title":"DAGViz: a DAG visualization tool for analyzing task-parallel program traces","authors":"An Huynh, D. Thain, M. Pericàs, K. Taura","doi":"10.1145/2835238.2835241","DOIUrl":null,"url":null,"abstract":"In task-based parallel programming, programmers can expose logical parallelism of their programs by creating fine-grained tasks at arbitrary places in their code. All other burdens in the parallel execution of these tasks such as thread management, task scheduling, and load balancing are handled automatically by runtime systems. This kind of parallel programming model has been conceived as a promising paradigm that brings intricate parallel programming techniques to a larger audience of programmers because of its high programmability. There have been many languages (e.g., OpenMP, Cilk Plus) and libraries (e.g, Intel TBB, Qthreads, MassiveThreads) supporting task parallelism. However, the nondeterministic nature of task parallel execution which hides runtime scheduling mechanisms from programmers has made it difficult for programmers to understand the cause of suboptimal performance of their programs. As an effort to tackle this problem, and also to clarify differences between task parallel runtime systems, we have developed a toolset that captures and visualizes the trace of an execution of a task parallel program in the form of a directed acyclic graph (DAG). A computation DAG of a task parallel program's run is extracted automatically by our lightweight portable wrapper around all five systems which incurs no intervention into the target systems' code. The DAG is stored in a file and then visualized to analyze performance. We leverage the hierarchical structure of the DAG to enhance the DAG file format and DAG visualization, and make them manageable even with a huge DAG of arbitrarily large numbers of nodes. This DAG visualization provides a task-centric view of the program, which is different from other popular visualizations such as thread-centric timeline visualization and code-centric hotspots analysis. Besides, DAGViz also provides an additional timeline visualization which is constructed by individual nodes of the DAG, and is useful in coordinating user attention to low-parallelism areas on the DAG. We demonstrate usefulness of our DAG visualizations in some case studies. We expect to build other kinds of effective visualizations based on this computation DAG in future work, and make DAGViz an effective tool supporting the process of analyzing task parallel performance and developing scheduling algorithms for task parallel runtime schedulers.","PeriodicalId":232423,"journal":{"name":"VPA '15","volume":"2000 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-11-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"26","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"VPA '15","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2835238.2835241","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 26

Abstract

In task-based parallel programming, programmers can expose logical parallelism of their programs by creating fine-grained tasks at arbitrary places in their code. All other burdens in the parallel execution of these tasks such as thread management, task scheduling, and load balancing are handled automatically by runtime systems. This kind of parallel programming model has been conceived as a promising paradigm that brings intricate parallel programming techniques to a larger audience of programmers because of its high programmability. There have been many languages (e.g., OpenMP, Cilk Plus) and libraries (e.g, Intel TBB, Qthreads, MassiveThreads) supporting task parallelism. However, the nondeterministic nature of task parallel execution which hides runtime scheduling mechanisms from programmers has made it difficult for programmers to understand the cause of suboptimal performance of their programs. As an effort to tackle this problem, and also to clarify differences between task parallel runtime systems, we have developed a toolset that captures and visualizes the trace of an execution of a task parallel program in the form of a directed acyclic graph (DAG). A computation DAG of a task parallel program's run is extracted automatically by our lightweight portable wrapper around all five systems which incurs no intervention into the target systems' code. The DAG is stored in a file and then visualized to analyze performance. We leverage the hierarchical structure of the DAG to enhance the DAG file format and DAG visualization, and make them manageable even with a huge DAG of arbitrarily large numbers of nodes. This DAG visualization provides a task-centric view of the program, which is different from other popular visualizations such as thread-centric timeline visualization and code-centric hotspots analysis. Besides, DAGViz also provides an additional timeline visualization which is constructed by individual nodes of the DAG, and is useful in coordinating user attention to low-parallelism areas on the DAG. We demonstrate usefulness of our DAG visualizations in some case studies. We expect to build other kinds of effective visualizations based on this computation DAG in future work, and make DAGViz an effective tool supporting the process of analyzing task parallel performance and developing scheduling algorithms for task parallel runtime schedulers.
DAGViz:用于分析任务并行程序跟踪的DAG可视化工具
在基于任务的并行编程中,程序员可以通过在代码中的任意位置创建细粒度任务来暴露程序的逻辑并行性。这些任务并行执行中的所有其他负担,如线程管理、任务调度和负载平衡,都由运行时系统自动处理。这种并行编程模型被认为是一种很有前途的范式,由于其高可编程性,它将复杂的并行编程技术带给了更多的程序员。已经有很多语言(比如OpenMP, Cilk Plus)和库(比如Intel TBB, Qthreads, MassiveThreads)支持任务并行。然而,任务并行执行的不确定性向程序员隐藏了运行时调度机制,这使得程序员很难理解其程序性能不理想的原因。为了解决这个问题,也为了澄清任务并行运行时系统之间的差异,我们开发了一个工具集,它以有向无环图(DAG)的形式捕获和可视化任务并行程序执行的跟踪。任务并行程序运行的计算DAG由我们轻量级的可移植包装器在所有五个系统周围自动提取,而不会对目标系统的代码进行干预。DAG存储在一个文件中,然后可视化以分析性能。我们利用DAG的层次结构来增强DAG文件格式和DAG可视化,并使它们即使在具有任意大量节点的巨大DAG下也可管理。这种DAG可视化提供了以任务为中心的程序视图,这与其他流行的可视化(如以线程为中心的时间轴可视化和以代码为中心的热点分析)不同。此外,DAGViz还提供了一个额外的时间线可视化,它由DAG的各个节点构建,在协调用户对DAG上低并行性区域的关注方面非常有用。我们在一些案例研究中展示了DAG可视化的有用性。我们希望在未来的工作中基于该计算DAG构建其他类型的有效可视化,并使DAGViz成为支持任务并行性能分析和为任务并行运行时调度器开发调度算法的有效工具。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信
小红书