【问题标题】:parallel ipython/ipcluster through head node通过头节点并行 ipython/ipcluster
【发布时间】:2011-03-03 21:46:33
【问题描述】:

我想在远程计算机集群上使用ipython 的并行功能。只有头节点可以从外部访问。我已经设置了 ssh 密钥,以便我可以连接到头节点,例如ssh head 并且从那里我也可以在不输入密码的情况下通过 ssh 进入任何节点,例如ssh node3。所以我基本上可以通过以下方式在节点上运行任何命令:

ssh head ssh node3 command

现在我真正想做的是能够在我自己的计算机上通过 ipython 在集群上运行作业。设置要在 ipcluster 中使用的主机的方法是:

send_furl = True
engines = { 'host1.example.com' : 2,
            'host2.example.com' : 5,
            'host3.example.com' : 1,
            'host4.example.com' : 8 }

但是由于我只有头节点的主机名,我认为我不能这样做。一种选择是在头节点上设置我们的 ssh 隧道,但在我的情况下我不能这样做,因为这需要打开足够的端口来容纳所有节点(事实并非如此)。有其他选择吗?

【问题讨论】:

    标签: parallel-processing ipython


    【解决方案1】:

    我通过 PBS 队列在 NERSC 集群上使用 ipcluster:

    http://ipython.org/ipython-doc/stable/parallel/parallel_process.html#using-ipcluster-in-pbs-mode

    总之,您提交运行 mpiexec ipengine 的作业(在登录节点上启动 ipcontroller 之后)。您的集群上有 PBS 吗?

    这在 ipython .10 中运行良好,现在在 .11 alpha 中被破坏。

    【讨论】:

      【解决方案2】:

      我会在主服务器上设置一个VPN 服务器,并在我的本地计算机上使用 VPN 客户端连接到该服务器。一旦建立,虚拟专用网络将允许所有从属设备看起来好像它们与我的本地计算机在同一个 LAN 上(在“虚拟”网络接口上,在“虚拟”子网中),并且应该是可能的ssh 给他们。

      您可以建立 VPN over SSH(“ssh 隧道”,正如您所提到的);其他选项是OpenVPNIPsec

      我不明白您所说的“这需要打开足够的端口以容纳所有节点”是什么意思。您将需要:(i) 主设备上的一个入站端口,以提供 VPN/隧道,(ii) 每个从设备上的入站 SSH,可从主设备访问,(iii) 每个从设备上的另一个入站端口,主设备通过该端口驱动IPython 引擎。在任何设置中都不需要 (ii) 和 (iii) 吗?所以我们添加的只是 (i)。

      【讨论】:

        猜你喜欢
        • 2014-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-21
        • 1970-01-01
        • 2015-06-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多