如何分析线程负载平衡?

时间:2012-09-03 22:53:19

标签: c linux multithreading profiling multicore

我需要查看多线程程序的负载均衡特性。是否有任何工具可以向我提供信息,例如情节这个?例如,我需要一些简单的东西来为我提供每个核心的信息,但不是英特尔VTune等等......如此臃肿甚至看起来都很痛苦。

4 个答案:

答案 0 :(得分:3)

看一下Linux Trace Toolkit - next generation,您也可以使用Gnu gprof它不性感,但它可以做到这一点:)

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

EDIT2:Oprofile也可以提供帮助

答案 1 :(得分:2)

我只是触及了AMD CodeAnalyst的功能表面,但到目前为止我所发现的是令人印象深刻的,特别是所有的性能计数器,并将它们纳入详细的图片。至于每线程分析,我主要编写大量并行应用程序,这些应用程序在专用内核上运行很长一段时间,可能不适合你的东西。

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

给它一个旋转!

答案 2 :(得分:0)

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

不幸的是,官方维基不包含太多信息。但您可以查看this page以获取有关如何使用perf。

中包含的不同工具的更多信息

答案 3 :(得分:0)

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

  

ps -AL -o lwp,fname,psr | grep ammp

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

我希望你觉得有用。