gpt4 book ai didi

multithreading - 比较 CPU 速度可能的改进以提供业务硬件升级的理由

转载 作者:行者123 更新时间:2023-12-03 12:57:55 24 4
gpt4 key购买 nike

我有 c# 控制台应用程序,Monte Carlo 模拟完全受 CPU 限制,执行时间与可用的专用线程/内核数量成反比(我保持内核/线程之间的 1:1 比率)。

它目前每天运行:

AMD Opteron 275 @ 2.21 GHz(4 核)

该应用程序是使用 3 个线程的多线程,第 4 个线程用于另一个进程 Controller 应用程序。

需要 每天运行15小时。

我需要尽可能估计在配置有以下 CPU 的系统上运行相同的工作需要多长时间:

http://en.wikipedia.org/wiki/Intel_Nehalem_(microarchitecture)
2 x X5570
2 x X5540

并比较案例,我将使用可用线程对其进行重新编码。我想证明我们需要一个带有 2 个 x5570 CPU 的服务器而不是更便宜的 x5540(它们在单个主板上支持 2 个 CPU)。这应该为操作系统提供 8 个内核、16 个线程(我相信这就是 Nehalem 芯片的工作方式)。所以对于我的应用程序来说,蒙特卡罗模拟有 15 个线程。

任何想法如何做到这一点?是否有网站可以查看单线程基准测试所涉及的所有 3 个 CPU 的基准测试数据?然后我可以推断我的情况和线程数。如有必要,我可以访问当前系统以安装和运行基准测试。

请注意,该应用程序还决定了 future 3 个月内该应用程序的工作量 增加约20倍并且需要在 24 小时内完成。

非常感谢任何帮助。

也在这里发布了这个: http://www.passmark.com/forum/showthread.php?t=2308希望他们能更好地解释他们的基准测试 所以我可以有效地获得每个核心的分数,这会更有帮助 .

最佳答案

tomshardware.com 包含全面的 CPU 基准测试列表。但是......你不能只是将它们分开,你需要找到尽可能接近苹果与苹果的比较,你不会完全得到它,因为对你的工作量的指令组合可能取决于也可能不取决于。

我想请不要把它当作官方的,你需要有真实的数据,如果工作受 cpu 限制而不是高度矢量化,你可能处于 1.5x - 1.75x 单线程加速。

您还需要考虑到您是:
1) 使用 C# 和 CLR,除非您已采取措施防止它 GC 可能会启动并序列化您。
2) nehalems 具有超线程,因此您不会看到完美的 16 倍加速,更有可能看到 8 到 12 倍的加速,具体取决于您的代码的优化程度。不过在这里保持乐观(只是不要期望 16 倍)。
3) 我不知道你有多少争用,在 3 个线程上获得良好的缩放!= 在 16 个线程上获得良好的缩放,这里可能有龙(通常是)。

我会将计算这个信封为:

15 小时 * 3 个线程/1.5 x = 30 小时的 nehalem 单线程工作时间。

30/12 = 2.5 小时(最佳情况)

30/8 = 3.75 小时(最坏情况)

如果确实增加了 20 倍,则意味着并行运行时间:
2.5 小时 * 20 = 50 小时(最佳情况)

3.74 小时 * 20 = 75 小时(最坏情况)

你分析了多少,你能从应用程序中挤出 2 倍吗? 1 个服务器可能就足够了,但可能不会。

天哪,试试 .Net 4.0 或 .Net 3.5 CTP 中的任务并行库,它应该可以帮助解决此类问题。

-瑞克

关于multithreading - 比较 CPU 速度可能的改进以提供业务硬件升级的理由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1472949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com