0

有哪些工具可以对并行程序进行故障排除?

假设我有一个执行速度比预期差的代码(串行版本执行速度的 4 倍而不是理论上的 8 倍)。我怀疑原因要么是线程访问共享变量(比如共享向量的相邻元素)引起的锁定,要么是线程访问堆(我想这也是共享资源)引起的锁定。但是我不知道有什么工具可以检查线程睡眠过多、线程切换等可能是什么原因。例如,分析器会告诉我什么功能花了多少时间,也许有很多活动相关到线程管理,但不是线程的原因和状态是什么(或者我可能不知道如何很好地使用一个)。

我在 OS X 上使用 C++ 工作。

4

1 回答 1

2

以下内容可能感兴趣

吸血鬼——花钱

DTrace - 已安装在您的 Mac 上,提供您需要的工具,但远非开箱即用的解决方案

TAU

这些只是我想到的前三个工具,我相信一些更勤奋的谷歌搜索会出现更多。

您的最后评论也许我不知道如何使用一口井,这些工具通常需要做出重大承诺才能使用它们,以了解它们告诉您的内容并对您的程序进行适当的和性能增强的修改。

于 2013-02-20T09:47:12.563 回答