带远程ipyparallel Con的IPython笔记本电脑

2024-06-16 10:51:09 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我试图实现的是,ipcontroller和ipengines坐在我的集群上,等待jupyter笔记本连接到控制器并将其用于集群计算资源。在

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

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

这可以归结为:

  • 是否可以在不同于ipcontroller的服务器上运行笔记本?在
  • 如果以上是可能的,为什么我不能让笔记本电脑连接到集群,而是当我点击概要文件上的start时,它只是生成一个本地集群。在

谢谢!在


Tags: 端口服务器远程集群笔记本jupyter控制器笔记本电脑
1条回答
网友
1楼 · 发布于 2024-06-16 10:51:09

是的,如果笔记本内核运行在与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])

我希望这有帮助。在

相关问题 更多 >