I有c#控制台应用程序,蒙特卡罗模拟完全限制了CPU,执行时间与可用的专用线程/核的数量成反比(我在内核/线程之间保持1:1的比率)。
目前,它每天运行于:
AMDOpteron275@ 2.21 GHz (4核)
该应用程序是多线程使用3个线程,第四个线程是为另一个进程控制器应用程序。
每天运行15小时。
我需要尽可能地估计相同的工作在配置了以下CPU的系统上运行需要多长时间:
http://en.wikipedia.org/wiki/Intel_Nehalem_(microarchitecture)
2 x X5570
2 x X5540
比较这些情况,我将使用可用的线程对其进行重新编码。我想说明一下,我们需要一个服务器,它需要一个2×x5570 CPUs,而不是更便宜的x5540 (它们在一个主板上支持2个cpus )。这将为操作系统提供8个内核,16个线程(我相信Nehalem芯片就是这样工作的)。因此,对于我的应用程序,这是15个线程的蒙特卡罗模拟。
有什么办法吗?有没有一个网站,我可以看到所有3个CPUS的基准测试数据涉及到一个单一线程基准测试?然后,我可以对我的情况和线程数进行推断。如果有必要,我可以访问当前的系统来安装和运行基准。
值得注意的是,在未来3个月内,该应用程序的工作量也将由业务决定,将增加约20倍的,并需要在24小时内完成。
任何帮助都很感激。
还在这里发布了以下内容:http://www.passmark.com/forum/showthread.php?t=2308,希望他们能够更好地解释他们的基准测试,这样我就可以有效地获得每个核心的分数,这将是更有帮助的。
发布于 2009-09-25 03:17:02
tomshardware.com包含一个完整的CPU基准测试列表。然而..。你不能仅仅把它们分开,你需要找到尽可能接近苹果和苹果的比较,而且你不会完全得到它,因为你的工作量上的指令组合可能取决于也可能不取决于。
我想请不要认为这是正式的,你需要有真正的数据,你可能在1.5x-1.75x单线程加速比,如果工作是cpu绑定,而不是高度矢量化。
您还需要考虑到: 1)使用C#和CLR,除非您已经采取步骤防止它,GC可能会启动并序列化您。2) nehalems有超线程,因此您不会看到完美的16倍加速比,更可能会看到8到12倍的加速比,这取决于代码的优化程度。不过,在这里要保持乐观(只是不要期望16倍)。3)我不知道您有多少争用,在3个线程上得到了很好的缩放!=在16个线程上进行了良好的缩放,这里可能有龙(通常是这样)。
我会把这封信写成:
15小时*3线程/ 1.5 x= nehalem上的单线程工作时间30小时。
30 / 12 = 2.5小时(最佳情况)
30 /8= 3.75小时(最坏情况)
如果确实增加20倍,则意味着并行运行时: 2.5小时*20= 50小时(最佳情况)
3.74小时* 20 = 75小时(最坏的情况)
你已经描述了多少,你能挤出2倍的应用程序吗?一个服务器可能已经足够了,但很可能不会。
看在上帝的份上,试试.Net 4.0中的任务并行库或.Net 3.5CTP,它应该有助于这类事情。
-Rick
https://stackoverflow.com/questions/1472949
复制相似问题