我正在尝试使用高度异步通信模式优化 MPI 应用程序。每个等级都有一个要计算的事物列表,如果输入或输出位于不同的等级上,则根据需要发送消息。此外,每个 rank 都是线程化的(目前有一个通信线程和 5 个工作线程)。
我已经在代码的不同性能关键部分周围使用计时器对代码进行了检测,这为我提供了每个线程的 (start,end,type) 三元组列表。以明显的方式绘制,以时间作为水平轴,等级和线程作为垂直轴,颜色表示每个线程当前正在做什么,我得到这样的图像,具有 16 个等级,每个等级有 6 个线程:
我的问题是:可视化这些数据的其他方法可能有助于确定性能问题?在分析异步应用程序时,有没有人喜欢他们使用的绘图类型?
该数据集的局限性在于它不知道数据流结构,但我想在尝试收集更复杂的东西之前尽可能多地了解它。
未压缩的图像在这里,以防有人想四处看看(它无法通过正常路线上传)。不幸的是,即使我相信它是有效的,Firefox 也不接受它,可能是因为它太大了。