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



我最近将我的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(这几乎是我唯一知道和使用的东西(。据我所知,GPU 上的模型训练目前还不是 sklearn 生态系统的一部分。我所有的代码都是用numpy/pandas/sklearn编写的。因此,将存在陡峭的学习曲线和向后兼容性问题。我错了吗?

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

  3. 假设 (2( 为真,或至少部分为真。我需要获得哪些其他硬件/软件?我需要以太网交换机吗?或者如果我只连接两台机器,就不需要了?还是我至少需要三台计算机来利用额外的 CPU 内核,因此需要一个交换机?我需要安装 Centos/Rocks 嗎?或者软件层是否有更好、更现代的替代方案。作为上下文,现在我在HP服务器上使用openSUSE,在操作系统和网络方面,我几乎是一个菜鸟。

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

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

谢谢。

  1. Nvidia的rapids.ai在GPU上实现了相当多的sklearn。这是否是你使用的部分,只有你能说。

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

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

  4. 完全无关紧要。

  5. 对于您正在考虑的那种旧硬件,您将面临非常高的电费。但更糟糕的是,由于您将拥有许多不那么新的机器,因此某些组件在任何给定时间发生故障的可能性很高,因此除非您寻求计算机维护的未来,否则这不是一个好主意。更好的主意是:在您的 macbook/现有集群上开发您的想法,然后租用 AWS 竞价型实例(或两个或三个(几天。更便宜,没有糊涂,没有大惊小怪。一切都很好。

最新更新