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

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

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

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

因此,到目前为止,我发现有助于提高速度的两个因素是更多内核和处理器的速度 (GHz)。如果处理器使用 turbo 来提高速度,那么它们似乎需要一个或两个未使用的内核来利用它。

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

答案1

“该程序是用 VB6 编写的,进行大量数据/数字运算,并且只使用一个核心”老式风格!这里有几件事你需要考虑。首先,大多数现代扩展对你没有多大帮助,所以你正在寻找纯粹的单线程速度。

“所以到目前为止,我发现有助于提高速度的两个因素是更多内核和处理器的速度(GHz)” GHZ,遗憾的是,如今它并不是速度的一个很好的指标。现代系统使用的架构差异很大,你最终可能会购买一个基于速​​度而性能较差的系统。虽然我意识到不重写程序可能有充分的理由,但使用现代语言、现代处理器功能以及对应用程序进行编程以利用并行处理(甚至可能是 GPGPU)会大规模地提高运行速度。

我可能会寻找一个可以比较单线程性能和成本的基准 -passmark 有一个它应该能帮助您做出明智的决定。我使用谷歌搜索来找到它 - 我使用了术语“单线程性能”。我注意到,价格最好的处理器似乎都是英特尔的。不要忘记在启用和不启用超线程的情况下测试应用程序,因为许多应用程序在超线程方面表现不佳。

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

为了更科学地看待实际上程序瓶颈,看看 xperf。我不熟悉它,所以我帮不上什么忙,但是有很多好的信息并应该能够帮助您在需要投入更多资源的地方开展工作。

答案2

你很幸运。因为你可以利用多核,这是最流行的 CPU 性能衡量标准之一,PassMark CPU 基准测试应该能做得很好。你可以选择性能最高的 CPUPassMark CPU 评级秒。

相关内容