我在市场上寻找一种主要用于贝叶斯/MCMC 分析的新系统(可能是笔记本电脑)。如果我有无限的资金,我显然会购买非常高端的硬件并完成它。不幸的是,这是现实世界,我不得不让我的预算捉襟见肘。我正在寻找有关我应该获得的系统类型的建议,特别是在处理器和 RAM 量方面。请注意,我不是在寻找有关 RAM 和处理器的具体建议。我正在寻找有关如何在财务上优先考虑计算硬件的各个方面的一般指导。我对 PC 或 Mac 很好。如果相关,我的大部分计算将涉及运行 R 和/或 C。
现代统计计算硬件的当前“标准”是什么?
提供具体建议有点困难,尤其是在不了解您的预算和目标的情况下。然而:
现在可以对……几乎任何东西进行大量数据分析。如果您计划进行大量检验、方差分析或回归建模,我认为您将很难找到一个太慢的系统,即使具有相对较大的数据集(数万个观察值)。
然而,有些技术更耗电。自举或其他排列/重采样测试需要相当多的数学知识,就像 MCMC 之类的东西一样。调整和评估机器学习方法也可以消耗尽可能多的周期,特别是如果您非常小心(例如,用于查找超参数的嵌套交叉验证)。
在大多数情况下,拥有一台高端计算机不会使以前难以解决的问题变得容易处理,但是能够更快地调整一些代码并看到结果,这将对您的生产力/生活质量产生重大影响。
磁盘空间对我来说很少成为问题,因此我建议您将资金集中在 RAM 和 CPU 上。
显然,更多更快的 RAM 总是更好,如果您的所有数据和中间计算都适合内存(如果它们适合处理器的缓存则更好),这是一个巨大的胜利。您可以尝试计算您的 RAM 需求,但我注意到 RAM 价格往往会出现非线性变化:1 GB 是 2 GB 价格的两倍,是 4 GB 价格的两倍。 ..但是 64 GB 比 2x32 GB 贵得多。另外,RAM 相当便宜且易于升级,特别是如果您的主板上有一些额外的插槽,所以我会在肘部之前购买。
CPU 在速度、缓存和内核数量方面各不相同。显然,这里也越多越好。速度和缓存大小不需要任何技巧来利用,但是您从大量内核中获得很多的能力取决于您的编程能力和分析类型。Matlab 和 Revolution R 使并行化可并行计算变得更加容易,但如果您使用 C 语言工作,这主要是您的责任。
同样,GPU 上的计算也变得越来越流行,因为如果你在做一些大规模的并行计算,(一些)GPU 可以非常快。如果你走这条路,选择 GPU 与选择 CPU 一样麻烦(核心数、速度、内存量)。但是,有几个相互竞争的标准(主要是 OpenGL 或 CUDA)。如果您/您的图书馆使用 CUDA,那么您需要获得 NVIDIA 卡;OpenCL 有更多选择。作为一个实用的说明,由于高端显卡对于正常的办公室使用来说有点不典型,你应该给你的 IT 或采购部门一个提示,这样他们就不会认为你试图在公司一角钱上建立一个游戏装备(严重地!)。另外,请注意 1) 这将需要您做一些工作,并且 2) 它不是一个窗格——在 GPU 上移动数据和从 GPU 上移动数据是非常缓慢的!
如果您的代码或数据位于网络上,那么快速以太网卡可能会很好。我以前在某个地方工作过,主目录和数据都是由(本地)文件服务器提供的,从 100 Mb 切换到千兆以太网确实大大减少了我等待大型数据集加载的时间。如果你走这条路,你还需要确保你和文件服务器之间的一切都升级了。如果您的所有数据都在本地,SSD 可以提供类似的加速。
最后,我建议不要让自己疯狂寻找最佳机器。如果您发现自己陷入困境,您可以随时在 EC2 或其他东西上租用时间。