ipython3 parallel でsshを使ったクラスタを作成
準備
クラスタを作成
ipython clusterのプロファイルを作成
ipython profile create --parallel --profile=ssh
作成したプロファイルまで移動
cd IPYTHON_DIR/profile_ssh/ e.g. cd ~/.config/ipython/profile_ssh/
ipcluster_config.pyを編集
c = get_config() c.IPClusterEngines.engine_launcher_class = 'SSH' c.LocalControllerLauncher.controller_args = ["--ip='*'"] c.SSHEngineSetLauncher.engines = { "host1":4, "host2":4, "host3":4, "host4":4, } c.SSHEngineSetLauncher.engine_cmd = ['ipengine3'] # ipython3でクラスタを作成せるときマニュアルが2を対象としたものが多いため、ここを忘れがち
scpで他のホストの同じディレクトリにprofile_sshを手動でコピーする。
これにより、ipython3でクラスタを作成することができました。
あとは動作を確認してみます
ipcluster3 start --profile=ssh 2015-12-15 23:02:55.661 [IPClusterStart] Starting ipcluster with [daemon=False] ...... 2015-12-15 23:03:29.019 [IPClusterStart] Engines appear to have started successfully
感想
ipython2のマニュアルを見ていたためc.SSHEngineSetLauncher.engine_cmd = ['ipengine3']
を設定するということに気づくのが遅れてたいへん手間取ってしまったのがとてもつらかった。