在为IPython安装集群时,我面临着很大的问题。我觉得医生很复杂。
我的系统由以下几点组成:
我没有密码通过ssh linello@myserveripaddress
访问远程服务器。我认为这种情况对于许多进行科学计算的人来说是相当标准的。
我想实例化一个带有8个本地引擎和16个远程引擎(总引擎=24个)的IPython笔记本,利用它来进行一些令人尴尬的并行计算。
如果我用ipcluster start
启动ipython集群,然后启动一个IPython实例(其中实例化Client
类),我只得到8个本地客户端
In[1]: from IPython import parallel
In[2]: clients = parallel.Client()
In[3]: print clients.ids
Out[3]: [0,1,2,3,4,5,6,7]
这意味着只有本地引擎启动。因此,我修改了我的ipcluster_config.py
脚本如下:
c = get_config()
c.IPClusterEngines.engine_launcher_class = 'SSH'
c.LocalControllerLauncher.controller_args = ["--ip='myserverip'"]
c.SSHEngineSetLauncher.engines = {
'localhost': 4,
'tyler': 4,
'par': 4,
}
c.SSHEngineSetLauncher.engine_cmd = ['/ipengine']
myserverip
实际上是我的服务器ip 192.168.xxx.yyy
我真的不知道如何正确配置我的ipython配置文件,使其在我的ipython内核中有24个引擎。
发布于 2014-06-23 15:36:39
一开始我也觉得很困惑。我在某种程度上仍然这么做,但我想我有个案子看起来和你的相似。
唯一看上去缺少的东西就是告诉发动机控制器在哪里。Ip群集配置中有一个选项,如下所示:
c.SSHEngineLauncher.engine_args = ['--location=xxx.xxx.xxx.xxx']
其中xxx.xxx是运行控制器的机器的ip地址。我认为这可能是你的配置的问题。
我通常通过从提示符中运行ip集群来测试这类事情。关于这个问题,通常是相当明确的。我希望这能帮上忙。
而且,我通常不需要指定:
c.SSHEngineSetLauncher.engine_cmd = ['/ipengine']
https://stackoverflow.com/questions/24264454
复制相似问题