DIY HPC 集群到 运行 Jupyter/Python 笔记本

DIY HPC cluster to run Jupyter/Python notebooks

我最近将我的 Python / Jupyter 工作从 macbook 迁移到翻新的 Gen 8 HP 机架式服务器(192GB DDR3 2 x 8C Xeon E5-2600),我以 400 美元的价格从亚马逊购买了它。额外的 CPU 核心显着提高了拟合模型的速度,特别是对于我经常使用的决策树集成。我现在正在考虑购买那个时代(2010 年代初至中期)的额外服务器(双路或四路英特尔至强 E5、E7 v1/v2)并将它们连接起来作为我公寓中的小型 HPC 集群。这是我需要帮助决定的:

  1. 这是个坏主意吗?我最好还是买一个 GPU(比如 gtx 1080)。我不愿意走 GPU 路线的原因是我倾向于非常依赖 sklearn(这几乎是我唯一知道和使用的东西)。据我了解,gpus 上的模型训练目前不是 sklearn 生态系统的一部分。我所有的代码都是用 numpy/pandas/sklearn 写的。因此,将会存在陡峭的学习曲线和向后兼容性问题。我错了吗?

  2. 假设 (1) 为真并且 CPUs 在短期内确实对我更好。如何在其上构建集群和 运行 Jupyter notebooks。是否像购买额外的服务器一样简单。将其中一台服务器指定为头节点。通过以太网连接服务器。在两台机器上安装 Centos / Rocks。并使用 IPython Parallel (?).

    启动 Jupyter 服务器
  3. 假设 (2) 为真,或至少部分为真。我还需要什么其他硬件/软件?我需要以太网交换机吗?或者如果我只连接两台机器,就没有必要了吗?还是我至少需要三台机器才能利用额外的 CPU 核心,因此需要一个交换机?我需要安装 Centos / Rocks 吗?或者是否有更好、更现代的软件层替代方案。就上下文而言,我现在在 HP 服务器上使用 openSUSE,在操作系统和网络方面我几乎是个新手。

  4. 我的硬件应该有多均匀?我可以在机器上混合和匹配不同的频率 CPUs 和内存吗?例如,一台机器有 1600 MHz DDR3 内存,另一台机器有 1333 MHz DDR3 内存?或者使用 2.9 GHz E5-2600v1 和 2.6 GHz E5-2600v2 CPUs?

  5. 我应该担心电量吗? IE。我可以安全地将三台机架式服务器插入我公寓的同一个配电盘吗?我知道有一个插座,如果我插入吹风机,灯就会熄灭。所以我应该避免那个 :) 说真的,我如何 运行 2-3 台多 CPU 机器在负载下并避免使断路器跳闸?

谢谢。

  1. Nvidia 的 rapids.ai 在 gpus 上实现了相当多的 sklearn。那是不是你用的部分,只有你自己说了算。

  2. 众所周知,使用 Jupiter 笔记本进行生产是一个错误。

  3. 除非延迟是一个严重的问题,否则您不需要切换,这种情况很少见。

  4. 完全不相关。

  5. 对于您正在考虑的那种旧硬件,您的电费会非常高。但更糟糕的是,由于您将拥有许多不太新的机器,因此某些组件在任何给定时间发生故障的可能性很高,因此除非您希望在计算机维护方面有前途,否则这不是一个好主意。更好的想法是:在您的 macbook/existing 集群上发展您的想法,然后租用一个 AWS spot 实例(或两个或三个)几天。更便宜,没有混乱,没有大惊小怪。一切正常。