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

DIY HPC群集运行Jupyter/Python笔记本,python,jupyter-notebook,gpu,cluster-computing,hpc,Python,Jupyter Notebook,Gpu,Cluster Computing,Hpc,我最近将我的Python/Jupyter工作从macbook迁移到了一台重新升级的第8代HP机架式服务器(192GB DDR3 2 x 8C Xeon E5-2600),我从亚马逊以400美元购得该服务器。额外的CPU内核极大地提高了模型的拟合速度,特别是对于我经常使用的决策树集成。我现在正在考虑从那个时代(2010年代中期早期)购买更多服务器(双座或四座intel xeon E5,E7 v1/v2),并在我的公寓中将它们作为一个小型HPC集群连接起来。以下是我需要帮助决定的事项: 这是个坏主意

我最近将我的Python/Jupyter工作从macbook迁移到了一台重新升级的第8代HP机架式服务器(192GB DDR3 2 x 8C Xeon E5-2600),我从亚马逊以400美元购得该服务器。额外的CPU内核极大地提高了模型的拟合速度,特别是对于我经常使用的决策树集成。我现在正在考虑从那个时代(2010年代中期早期)购买更多服务器(双座或四座intel xeon E5,E7 v1/v2),并在我的公寓中将它们作为一个小型HPC集群连接起来。以下是我需要帮助决定的事项:

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

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

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

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

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

  • 多谢各位

  • Nvidia的
    rapids.ai
    在GPU上实现了相当多的sklearn。不管那是不是你用的部分,只有你能说

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

  • 您不需要交换机,除非延迟是一个严重的问题,它很少是

  • 完全无关

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


  • 嘿非常感谢。这很有帮助。我应该澄清,我不希望在生产中部署。我只是想加快我在jupyter的实验。因此,我不会在负载下连续运行机器(只是常规的交互式Jupyter工作)。此外,我可能在秋季能够访问学术HPC集群。但如果发生这种情况,很可能只适用于非互动性工作和通过能力面试后的工作。因此,我想为交互式Jupyter的东西提供中等的计算能力,同时在夏季获得一些“集群”体验。