GAPP:一个检测并行Linux应用中串行化瓶颈的快速分析器
GAPP: A Fast Profiler for Detecting Serialization Bottlenecks in Parallel Linux Applications
摘要:
我们提出了一个并行分析工具,GAPP,它可以识别并行Linux应用程序中的串行化瓶颈所产生的负载不平衡或争用共享资源。它的工作原理是使用扩展的Berkeley Packet Filter(eBPF)框架管理的内核探测器跟踪内核上下文切换事件。因此,开销非常低(所研究的应用程序的平均运行时间开销为4%),该工具不需要程序插装,并且适用于各种串行化瓶颈。我们使用Parsec3.0基准套件和两个大型开源项目:MySQL和Nektar++(一个光谱/hp元素框架)来评估GAPP。我们表明,GAPP是能够揭示广泛的与性能相关的问题,例如所产生的同步原语,忙等待循环,内存操作,线程不平衡和资源竞争。
英文摘要:
We present a parallel profiling tool, GAPP, that identifies serialization bottlenecks in parallel Linux applications arising from load imbalance or contention for shared resources . It works by tracing kernel context switch events using kernel probes managed by the extended Berkeley Packet Filter (eBPF) framework. The overhead is thus extremely low (an average 4% run time overhead for the applications explored), the tool requires no program instrumentation and works for a variety of serialization bottlenecks. We evaluate GAPP using the Parsec3.0 benchmark suite and two large open-source projects: MySQL and Nektar++ (a spectral/hp element framework). We show that GAPP is able to reveal a wide range of bottleneck-related performance issues, for example arising from synchronization primitives, busy-wait loops, memory operations, thread imbalance and resource contention.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。