如何正确地实例化由本地和远程计算机组成的IPython群集
我在为IPython实例化集群时遇到了大问题。我觉得医生很复杂 我的系统由以下部件组成:如何正确地实例化由本地和远程计算机组成的IPython群集,python,ssh,parallel-processing,cluster-computing,ipython,Python,Ssh,Parallel Processing,Cluster Computing,Ipython,我在为IPython实例化集群时遇到了大问题。我觉得医生很复杂 我的系统由以下部件组成: 本地计算机,Ubuntu 12.04 x86_64,IPython 2.1,8核处理器 远程计算机,Ubuntu 12.04 x86_64,IPython 2.1,16核处理器,通过无密码SSH从本地计算机访问 我可以通过sshlinello@myserveripaddress。 我认为这种情况对于许多进行科学计算的人来说是相当标准的 我想举例说明一个IPython笔记本,它有8个本地引擎和16个远程引擎(
linello@myserveripaddress
。
我认为这种情况对于许多进行科学计算的人来说是相当标准的
我想举例说明一个IPython笔记本,它有8个本地引擎和16个远程引擎(=总共24个引擎),可以用来进行一些令人尴尬的并行计算
如果我用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
实际上是我的服务器ip192.168.xxx.yyy
我真的不知道如何正确配置我的ipython配置文件,使其在我的ipython内核中有24个引擎。我在开始时也发现这一点非常令人困惑。在某种程度上,我仍然是这样,但我想我有一个和你相似的案例 看起来唯一缺少的是告诉引擎控制器在哪里。ipcluster配置中有一个选项如下所示:
c.SSHEngineLauncher.engine_args = ['--location=xxx.xxx.xxx.xxx']
其中xxx.xxx.xxx.xxx是运行控制器的机器的ip地址。我认为这是你的配置可能存在的问题
我通常通过在提示符下运行ipcluster来测试这类事情。关于这个问题通常是相当明确的。我希望这有帮助
此外,我通常不需要指定:
c.SSHEngineSetLauncher.engine_cmd = ['/ipengine']