Skip to main content
QUICK REVIEW

[论文解读] Profiling parallel Mercury programs with ThreadScope

Paul Bone, Zoltán Somogyi|arXiv (Cornell University)|Sep 7, 2011
Parallel Computing and Optimization Techniques参考文献 10被引用 3
一句话总结

本文提出将原本专为并行Haskell程序设计的ThreadScope性能分析器适配至并行Mercury程序。通过扩展ThreadScope以捕获Mercury特有的指标,如调用序列计数(CSCs)、垃圾回收(GC)统计信息以及任务级性能数据,作者实现了对并行执行行为的详细可视化与分析,有助于应用开发者、运行时系统实现者以及自动并行化工具研究者。

ABSTRACT

The behavior of parallel programs is even harder to understand than the behavior of sequential programs. Parallel programs may suffer from any of the performance problems affecting sequential programs, as well as from several problems unique to parallel systems. Many of these problems are quite hard (or even practically impossible) to diagnose without help from specialized tools. We present a proposal for a tool for profiling the parallel execution of Mercury programs, a proposal whose implementation we have already started. This tool is an adaptation and extension of the ThreadScope profiler that was first built to help programmers visualize the execution of parallel Haskell programs.

研究动机与目标

  • 为解决并行Mercury程序中性能瓶颈诊断困难的问题,此类问题因并行特有因素(如任务开销与负载不均)而加剧。
  • 通过可视化与基于指标的性能分析,使应用开发者能够理解并优化其并行Mercury程序的行为。
  • 支持运行时系统实现者度量并改进底层行为,如工作线程响应性与缓存亲和性。
  • 通过提供真实程序执行中准确可测量的性能数据,协助自动并行化工具开发者校准成本-收益启发式规则。

提出的方法

  • 扩展ThreadScope性能分析器以收集Mercury特有的执行指标,包括调用序列计数(CSCs)、垃圾回收(GC)统计信息以及执行器与GC时间比。
  • 适配ThreadScope的可视化框架,以彩色时间线显示并行合取及其各个合取项,展示CPU使用情况与任务生命周期。
  • 增加交互式GUI功能,允许用户悬停于事件上并查询动态指标,如NANOSECS_PER_CALL、GC_STATS与MUTATOR_VS_GC_TIME。
  • 实现一项功能,列出所有并行合取的动态出现情况,并支持导航至其时间线表示。
  • 设计一种机器可读的输出格式,用于导出所有相关指标,以便用于自动并行化工具的调优。
  • 复用现有的ThreadScope基础设施,以最小化开发开销,同时确保可扩展性与与Mercury运行时语义的兼容性。

实验结果

研究问题

  • RQ1现有的函数式语言性能分析工具如何被适配以支持逻辑编程语言(如Mercury)特有的执行模型?
  • RQ2在依赖AND并行逻辑程序中,哪些特定性能指标对诊断问题最为关键?
  • RQ3ThreadScope的可视化与指标采集能力能否扩展以支持Mercury并行合取与任务调度的动态行为?
  • RQ4性能分析数据如何用于提升逻辑编程中自动并行化启发式规则的准确性?
  • RQ5从性能分析执行中可提取哪些关于运行时系统行为的洞察,如工作线程响应性与缓存局部性?

主要发现

  • 将ThreadScope适配至Mercury后,可实现对并行执行的可视化,其时间线反映CPU使用、任务创建与阻塞行为,与在Haskell中的使用方式类似。
  • 该系统成功捕获并暴露了关键性能指标,如NANOSECS_PER_CALL、GC_STATS与MUTATOR_VS_GC_TIME,这些指标对性能调优至关重要。
  • 交互式GUI功能允许用户按单个并行合取或其合取项级别查询动态指标,实现细粒度分析。
  • 该工具支持生成包含所有相关性能指标的机器可读输出文件,便于与自动并行化工具集成以实现校准。
  • 在研讨会召开时,作者已实现至少三分之一的提议指标,预计年底内完成全部支持。
  • 该方法表明,复用现有且经过验证的性能分析基础设施,可显著降低为复杂并行系统构建领域专用性能分析工具的成本。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。