首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较CPU速度可能提高的业务硬件升级合理性

比较CPU速度可能提高的业务硬件升级合理性
EN

Stack Overflow用户
提问于 2009-09-24 16:58:11
回答 5查看 743关注 0票数 2

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

目前,它每天运行于:

AMDOpteron275@ 2.21 GHz (4核)

该应用程序是多线程使用3个线程,第四个线程是为另一个进程控制器应用程序。

每天运行15小时。

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

代码语言:javascript
运行
复制
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,希望他们能够更好地解释他们的基准测试,这样我就可以有效地获得每个核心的分数,这将是更有帮助的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 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

票数 0
EN

Stack Overflow用户

发布于 2009-09-24 18:38:58

您考虑过在库达中重新创建算法吗?它使用当今的GPU来增加像这样的10到100倍的计算量。这样的话,你只需要买一台肥硕的录像机。

票数 2
EN

Stack Overflow用户

发布于 2009-12-24 06:59:17

要找到一个能够根据您所描述的需求进行缩放的单盒服务器将是很困难的。我建议您看看Sun、CoolThreads或其他高线程计数服务器,即使它们的单个时钟速度较低。http://www.sun.com/servers/coolthreads/overview/performance.jsp

T5240支持128个线程:http://www.sun.com/servers/coolthreads/t5240/index.xml

如果数据集听起来那么大,内存和CPU缓存带宽可能是限制您的因素。从磁盘获取数据花费了多少时间?大幅度增加RAM大小和缓存会有帮助吗?

您可能想退一步,看看是否有不同的算法,可以提供相同或类似的解决方案,但计算较少。

听起来你花了很多时间来优化计算线程,但是每一次计算都对最终结果很重要吗?

有没有快捷计算的方法?

是否有办法找出对最终结果影响不大的项目,并跳过这些计算?

一个较低分辨率的模型可以用于早期迭代,并在累进迭代中添加细节吗?

我所熟悉的蒙特卡罗算法是不确定的,运行时间与样本的数量有关;是否有任何方法来优化抽样模型以限制检查项目的数量?

显然,我不知道您正在处理的是什么问题域或数据集,但是可能有另一种方法可以产生相同的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1472949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档