Multithreading 测量多线程应用程序的伸缩行为

Multithreading 测量多线程应用程序的伸缩行为,multithreading,performance,optimization,scaling,measurement,Multithreading,Performance,Optimization,Scaling,Measurement,我正在开发一个应用程序,它支持消费者/台式计算机上的许多核心MIMD架构。我目前担心应用程序的伸缩行为。它的设计是大规模并行的,可寻址下一代硬件。这实际上是我的问题。有人知道有什么软件可以在机器代码级别上模拟/仿真多核MIMD处理器,其核数超过16个吗?我已经实现了一个基于软件的线程调度程序,它能够通过简单的计时技术模拟多个处理器。 我很好奇,是否有任何软件可以在较低级别上进行这种模拟,最好是在汇编语言级别上进行模拟,以获得更好的结果。我想再次强调,我只对MIMD架构感兴趣。我知道OpenCL/

我正在开发一个应用程序,它支持消费者/台式计算机上的许多核心MIMD架构。我目前担心应用程序的伸缩行为。它的设计是大规模并行的,可寻址下一代硬件。这实际上是我的问题。有人知道有什么软件可以在机器代码级别上模拟/仿真多核MIMD处理器,其核数超过16个吗?我已经实现了一个基于软件的线程调度程序,它能够通过简单的计时技术模拟多个处理器。 我很好奇,是否有任何软件可以在较低级别上进行这种模拟,最好是在汇编语言级别上进行模拟,以获得更好的结果。我想再次强调,我只对MIMD架构感兴趣。我知道OpenCL/CUDA/GPGPU,但这不是我想要的


感谢您的帮助,并提前感谢您的回答。

您很少会找到能够针对非常狭窄的高性能角落的通用测试工具,原因很简单:通用对象的开销首先会挫败这一目标

这一点在并行主义中尤其如此,因为局部性和调度具有巨大的影响

所有这些都表明,我很震惊,您将不得不编写自己的测试工具来针对您的确切使用模式


这就是相关性所要付出的代价。

如果您是用C/C++编写应用程序,我可能会帮助您

创建了一个工具,它将采用任何C或C++代码,并在字节码级模拟其运行时行为,以发现并行化机会。该工具突出显示并行化机会,并显示并行任务的行为。 唯一不匹配的是,我们的工具还将提供重构方法,以实际实现并行化,而听起来您已经具备了这一点