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

时间:2020-07-02 22:37:28

标签: python jupyter-notebook gpu cluster-computing hpc

我最近将Python / Jupyter的工作从Macbook迁移到了翻新的Gen 8 HP机架式服务器(192GB DDR3 2 x 8C Xeon E5-2600),我以400美元的价格从亚马逊下车了。额外的CPU内核极大地提高了我拟合模型的速度,尤其是对于我经常使用的决策树集成而言。我现在正在考虑购买那个时代(2010年代中期)的其他服务器(双插槽或四插槽Intel Xeon E5,E7 v1 / v2),并将它们连接为我公寓中的小型HPC集群。这是我需要确定的帮助:

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

  2. 假设(1)是正确的,并且CPU在短期内确实对我来说更好。如何构建集群并在其上运行Jupyter Notebook。是否像购买其他服务器一样简单。将其中一台服务器指定为头节点。通过以太网连接服务器。在两台机器上都安装Centos / Rocks。然后使用IPython Parallel(?)启动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 个答案:

答案 0 :(得分:1)

  1. Nvidia的rapids.ai在GPU上实现了相当多的sklearn。无论您使用的是那一部分,只有您可以说。

  2. 使用Jupiter笔记本进行生产是一个错误。

  3. 除非延迟是一个严重的问题,否则不需要切换。

  4. 完全无关。

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