延迟从笔记本启动IPython群集
我们的SGE群集设置要求控制器和发动机启动之间存在延迟。如果没有此延迟,则某些服务器使用“old”延迟从笔记本启动IPython群集,python,ipython,ipython-notebook,Python,Ipython,Ipython Notebook,我们的SGE群集设置要求控制器和发动机启动之间存在延迟。如果没有此延迟,则某些服务器使用“old”ipcontroller client.json文件,并尝试连接到以前的(未运行的)控制器。这是一个NFS“功能”,因此为了补救,我在ipcluster_config.py文件中设置了c.IPClusterStart.delay=30,一切正常。控制器提交给SGE,有足够的时间启动并写入其json文件,然后引擎可以正确启动到新运行的控制器。但是,我也希望能够从笔记本电脑启动集群。不幸的是,似乎没有使
ipcontroller client.json
文件,并尝试连接到以前的(未运行的)控制器。这是一个NFS“功能”,因此为了补救,我在ipcluster_config.py文件中设置了c.IPClusterStart.delay=30
,一切正常。控制器提交给SGE,有足够的时间启动并写入其json文件,然后引擎可以正确启动到新运行的控制器。但是,我也希望能够从笔记本电脑启动集群。不幸的是,似乎没有使用此超时,控制器和引擎同时启动(如watch qstat
所示),一些引擎连接(因为从json文件中获取新设置),而一些引擎没有连接(因为NFS)
我在笔记本上运行了一段时间,发现它正在使用sge_控制器
和sge_引擎
脚本(当您按下开始键时由笔记本创建)来启动这些过程
我想知道是否有任何方法可以在这里实现延迟。它以正确的方式启动控制器和引擎(SGE),因此我知道它正在读取ipcluster\u config.py
我在谷歌上搜索过这个网站,运气不好。希望有人能对这种行为的深层次运作提供一些线索
谢谢,
克里斯好吧,这对OP来说可能太晚了,但希望它能帮助一些人 如果是超时问题,只需将
c.EngineFactory.timeout
和c.IPEngineApp.wait\u url\u file
设置为更大的时间
如果这是由于第一次运行后出现故障,则可能是由于安全文件延迟,应使用iPython.utils.path.get_security_文件
从相关iPython配置文件中删除这些文件(ipcontroller engine.json
和ipcontroller client.json
),以获取完整路径。为了使这一过程自动化并减轻痛苦,可以将此删除步骤附加到同一配置文件的ipcluster\u config.py
开头
仅这些更改就足以让集群轻松地与笔记本一起运行
如果这两种方法都不能解决问题,那么还有一些其他的想法()。我找到了一些目前似乎有效的方法,但我仍然认为它应该能够在每个集群的基础上进行配置。在
lib/python2.7/site packages/IPython/frontend/html/notebook/clustermanager.py
中,我将delay=CFloat(1,config=True,…)
更改为delay=CFloat(30,config=True,…)
。集群现在如上所述启动,控制器和引擎之间有30段延迟。