我有一个非常特殊的程序,需要让它尽可能快地运行。我希望购买一台超快的 PC 来运行它。该程序已经编写为使用多核,在 N 核机器上,它的运行速度几乎快 N 倍。该程序几乎将所有时间都花在执行整数运算上,没有磁盘访问,IO 也很少,所以我根本不关心图形或硬盘性能。
我对液体冷却和超频之类的东西感到不安,并怀疑由此获得的一点额外速度是相当不划算的(请随意说服我)。从我目前有限的知识来看,我怀疑我能做的最好的事情就是找到一些可以容纳两个英特尔四核处理器的主板?——尽管我不知道是谁制造的。
我经常注意到,当尝试使用速度异常快的 PC 时,超过某个水平后,每单位处理能力的价格开始几乎呈指数增长...所以我想我追求的是速度尽可能快但又不会性价比太低的东西。
请指教,
编辑:该程序是我自己编写的(因此如果需要可以修改)。它使用多个线程。它在 Windows 上运行。我确实有一个文本界面 Linux 版本,但那只是最后的手段。我的预算大约为 2500 美元。
答案1
我不知道你的预算是多少,所以不要因为我提出这个建议而责怪我。
如果你非常有钱,你可以尝试看看刀片服务器。这些东西有时每个刀片上最多有 4 个四核(甚至可能是像 i7 那样的超线程)处理器。然后你可以堆叠每个刀片以相互协作。
当然,这与超级计算机类型有关。
如果你仔细寻找,我相信你可以找到 4 处理器主板。甚至可能是 i7。
http://www.newegg.com/Product/Product.aspx?Item=N82E16813151204R是四核主板的示例。
答案2
有许多参数会影响 PC 的性能。硬件和软件必须协同工作才能获得最佳性能。例如,如果您正在进行大量实时图形工作,则建议使用一两块非常好的视频卡。如果您只是进行数字运算,则不一定需要显卡(您可以使用远程 shell 设置和维护系统吗?)。
因此,您需要分析您的软件正在做什么以及哪些组件对系统性能影响最大。
该方法与优化软件相同,只是优化的是系统。
- 衡量您的表现并分析瓶颈在哪里(导致其他一切速度变慢的部分)。
- 增加瓶颈的规范(更快的 CPU、更多的 RAM、更快的硬盘等)。
- 重复。
您的软件能否在多台 PC 上扩展?一种可能的解决方案是获取大量非常便宜且速度缓慢的 PC,并将它们连接在一起,形成超级并行虚拟多核 PC。
答案3
服务器产品线提供六核 CPU。但是,如果您的预算有限,那么通过迁移到 Linux 您将获得更大的收益 - 这将允许使用所有可用的内核、内存等。移植工作量可能比您需要的高端 Windows 版本的许可要少。
我假设,由于您非常注重性能,您已经在使用一种完全编译的语言(例如,不是.NET),至少对于应用程序的性能关键部分而言。
答案4
当前的 Mac Pro 可以运行 Mac OS X、Windows 或 Linux,并且可以购买两个具有超线程的四核 Nehalem 处理器,总共提供 16 个虚拟核心。详情请参阅 www.apple.com/macpro。