我正在尝试更好地编写多线程应用程序,例如提出正确的算法,以便线程不会相互阻塞,并且在需要的地方在线程之间进行正确的同步。这将在 C/Linux 中。
谁能推荐一个我可以编写的简单应用程序,它可以清楚地展示在多核 CPU 中作为多线程与单线程运行时性能/吞吐量的提高。
谢谢。
我正在尝试更好地编写多线程应用程序,例如提出正确的算法,以便线程不会相互阻塞,并且在需要的地方在线程之间进行正确的同步。这将在 C/Linux 中。
谁能推荐一个我可以编写的简单应用程序,它可以清楚地展示在多核 CPU 中作为多线程与单线程运行时性能/吞吐量的提高。
谢谢。
矩阵乘法是一个相当好的起点。它是可并行化的,并且还需要对归约步骤进行一些同步。
如果您想要提高技能,英特尔线程挑战赛会提供有趣的谜题。这是一个示例问题:
http://software.intel.com/en-us/contests/threading-challenge-students-2011/codecontest.php
您可以在多个线程中加载图像并执行一些简单的像素操作。例如从 RGB 转换为 HSV,或类似的东西......
这将很简单,但与实际实践非常吻合。
独立计算将为您提供多线程的最佳收益。对于多线程性能的简单演示,只需进行几次简单的计算(例如,找到第 N 个斐波那契数)。是不是太简单了?