2

我需要查看我的多线程程序的负载平衡特性。是否有任何工具可以为我提供信息,例如绘制这个?例如,我需要一些简单的东西,可以为我提供每个内核的信息,但不是英特尔 VTune 之类的......

4

4 回答 4

3

看看Linux Trace Toolkit - next generation,你也可以使用Gnu gprof它,它并不性感,但它可以完成这项工作 :)

编辑:您可以gprof在线程环境中使用:Using gprof with pthreads

EDIT2:Oprofile也可能有帮助

于 2012-09-04T00:08:27.833 回答
2

我只触及了 AMD 的 CodeAnalyst 功能的皮毛,但到目前为止我发现的东西令人印象深刻,尤其是所有的性能计数器,并将它们纳入详细的图片中。至于每线程分析,我主要编写在专用内核上长时间运行的大规模并行应用程序,这可能不适用于您的东西。

就其自身的 CPU 需求而言,它显得相当吝啬。我不知道它是否会在英特尔 CPU 上进行配置。有一个Linux版本。

试一试!

于 2012-09-27T07:02:20.017 回答
0

您还可以使用perfLinux 内核中支持性能计数器的官方实现。除了读取性能计数器之外,它还允许访问其他一些指标,例如上下文切换、CPU 迁移、页面错误等。

不幸的是,官方 wiki 没有包含太多信息。但是您可以查看此页面以获取有关如何使用 perf 中包含的不同工具的更多信息。

于 2012-09-04T07:35:46.727 回答
0

对于研究主题,我使用了以下命令:

ps -AL -o lwp,fname,psr | grep 安培

正在研究的应用程序是ammp,它使用与内核相同数量的线程。该命令返回每个线程所在的核心。多次执行此命令,您将看到给定线程如何通过内核以及负载平衡算法如何工作。

我希望你觉得有用。

于 2012-09-17T15:13:58.437 回答