【问题标题】:IPython Notebook with remote ipyparallel Controller带有远程 ipyparallel 控制器的 IPython Notebook
【发布时间】:2016-11-25 15:51:53
【问题描述】:

我目前正在尝试使用 ipyparallel 库在我拥有的一组服务器上设置一个远程集群。我想如果我在所有 ipcontrollers、ipengines 和 notebook 之间共享 $IPYTHONDIR,那么一切都可以连接并正常工作,但我当前的设置并非如此。

我想要完成的是,ipcontroller 和 ipengines 坐在我的集群上,等待 jupyter notebook 连接到控制器并将其用于集群计算资源。

目前我无法让我的笔记本连接到我的控制器,即使所有端口都打开,服务器可以直接访问,并且 IPYTHONDIR 是共享的。

当我打开笔记本并转到集群选项卡时,我看到了我的并行配置文件,但它没有启动。这很奇怪,因为 ipcontroller 和 ipengines 已经启动并等待来自笔记本的连接。

这归结为:

  • 是否可以在与 ipcontroller 不同的服务器上运行 notebook?
  • 如果上述情况可行,为什么我无法让笔记本连接到集群,而当我在配置文件上单击“开始”时,它只是创建了一个本地集群。

谢谢!

【问题讨论】:

    标签: python ipython ipython-parallel


    【解决方案1】:

    是的,如果笔记本内核与 ipcontroller 在同一台服务器上运行,这是可能的。笔记本本身可以从任何浏览器中显示。我经常使用该功能。

    我这样做的方法是在服务器上提供一个 ipython 配置文件。在我的情况下,它是一个 Windows 服务器,并且配置文件设置在 c:\users\<user>\.ipython\ 下。在这种情况下,配置文件文件夹称为profile_my32bitcluster,当我创建客户端时,我指定要使用的配置文件:

    from ipyparallel import Client
    
    rc = Client(profile='my32bitcluster')
    dview = rc[:]
    
    # Test it by pushing out a dataframe across some engines, modifying it
    # and returning the modified dataframes...
    df = pd.DataFrame(data={'x':[1,2,3,4,5], 'y':[1,4,9,16,25]})
    
    dview.push({'df':df})
    
    def myfunc(x):
        import sys
        import os
        import pandas as pd
        global df
        df['z'] = df['x'] * x
        return df
    
    results = dview.map_sync(myfunc, [2,3,4])
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      • 1970-01-01
      • 2016-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      相关资源
      最近更新 更多