为了加速需要大量处理器能力和内核的程序,我应该注意什么?


4

我想构建一个系统,以便尽快运行一个特定的专用程序(目前我的笔记本电脑上运行I5处理器可能需要长达50个小时)。

该程序是用VB6编写的,执行大量数据/数字运算,并且只使用一个核心。但是,有一个批处理文件,我可以在其中打开尽可能多的程序实例,然后批处理文件将结果信息整理回来,好像它只是一次运行(我知道大锤的方法)。

因此,迄今为止我发现的有助于提高速度的两件事就是核心和处理器的速度(GHz)。如果处理器使用turbo来提高速度,那么它们似乎需要一个或两个未使用的内核才能使用它。

我不想要服务器,那么在设计/指定系统时我应该寻找什么(在计算机中)呢?


1
您的问题将作为购物推荐关闭,但您非常接近成为有效的问题。请将您的问题改为“ 我应该在计算机中寻找什么才能做到这一点 ”而不是当前的“ 我应该用什么计算机来做这件事 ”。作为一个网站,我们希望在6个月内仍然有效的问题和答案。如果我们告诉您要购买什么,由于计算机可能甚至不再销售,因此信息在短短几个月内就没用了。如果我们告诉您要查找的内容,该信息将保持相关性。
Scott Chamberlain

5
查找其他程序,VB6是您的瓶颈。已经完成了测试,使用.NET VB或C#可以使你的速度提高50%。
Logman 2013年

我喜欢。但我只是用户,看起来它将在C#中重写,但这可能需要几年时间......
Rodney

VB6是一种解释型语言AFAIK,因此与C相比,数字运算任务的运行速度非常慢。是否可以重写或是否有替代产品可以执行相同的操作并且也可以使用多个线程?
马特H

Rodney,在这种情况下,寻找一个内核更少但时钟速度更快的CPU。英特尔CPU非常擅长数字运算。
马特H

Answers:


2

“该程序是用VB6编写的,做了很多数据/数字处理,只使用一个核心”Oldschool风格!这里有一些你想要考虑的事情。首先,大多数现代扩展都不会给你带来太多好处,所以你正在寻找纯粹的单线程速度。

“所以到目前为止我发现的两件事情,即帮助速度更多的内核,以及处理器的速度(Ghz)”GHZ,遗憾的是,这些日子并不是速度的一个很好的指标。现代系统使用的体系结构大相径庭,您最终可能会购买一个执行速度较慢的系统。虽然我意识到可能有充分的理由不重写程序,使用现代语言,现代处理器功能,并编程应用程序以利用并行处理(或甚至可能是GPGPU)将大大提高您运行的速度在。

我可能会寻找一个能够针对成本执行单线程性能的基准测试 - passmark有一个,它可以帮助您做出明智的决定。我使用谷歌搜索找到它 - 我使用术语'单线程性能; 我注意到价格最好的处理器似乎都是英特尔。不要忘记在启用和不启用超线程的情况下测试应用程序,因为许多应用程序对HT没有那么好。

我考虑的另一种方法是一系列更小,更便宜的计算机,这些计算机的成本可能低于更昂贵的系统,因为这项任务似乎是“平凡的并行化”。您甚至可能想尝试使用amazon EC2卸载并进行计算,然后在您自己的桌面上重新组合它。根据每个程序实例的运行时间,您甚至可以使用免费套餐执行此操作。

有关实际瓶颈程序的更科学的观点,请查看xperf。我对它不熟悉,所以我在那里帮不了多少,但那里有很多好的信息,应该帮助你在需要投入更多资源的地方工作。


我添加了一个工具,它可以帮助你确切地解决瓶颈问题 - 它叫做xperf或windows性能工具包。要求其在您的特定情况下使用的问题,因为我个人没有使用它,它会帮助你发现可能是有趣的,正是在那里你在任何时候瓶颈。
Journeyman Geek

0

你很幸运 因为你可以利用多核心,这是最常用的CPU性能指标之一,所以PassMark CPU Benchmark应该做得很好。您可以选择具有最高PassMark CPU等级CPU

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.