Iは、(すべてのノードがない NFSとg2.2xlarge
Amazon EC2インスタンスである)host47
にhost0
からなる48ノードのクラスタを作成しました。 https://ipyparallel.readthedocs.io/en/latest/process.htmlによると、コントローラhost0
とエンジン47台がhost1
〜host47
に作成されています。私はStarClusterプロジェクトからssh
ipyparallel
クラスタの構成のほとんどを複製しました(しかし、私が言ったように、NFSなし)。 クラスタが正常に動作しているように見えますが、モジュールの読み込みには時間がかかることがあります。それが終了するまで、例えば 、クラスタ上Ipyparallelモジュール負荷非常に遅い
import ipyparallel as ipp
client = ipp.Client('/path/to/ipcontroller-client.json',sshkey='mykey')
view = client[:]
view.block=True
with view.sync_imports():
import time
import numpy
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.regularizers import l1
from keras.optimizers import SGD
from subprocess import check_output
は30分以上かかります。 block=False
とview.wait()
に変更してもこれは変わりません。また、view.execute("import time; import numpy; import keras.models ...")
を使用しても役に立ちません。私は、keras
モジュールのロードがやや遅いことを知っていますが、ローカルマシンでは通常1分以内で完了します。私はpickle
とjson
(un)パッキングの両方を試みました。 同じクラスタを別の計算に使用すると、モジュールの読み込みが正常に機能することに言及する必要があります。私はロードされたモジュールがどこかにキャッシュされていると思います。しかし、インスタンスを終了して新しいインスタンスを作成し、新しいipyparallel
クラスタを構成すると、モジュール読み込みで同じ問題が発生します。
ipcontroller
ログを見ると、私はsync_imports
2016-08-25 12:12:02.310 [IPControllerApp] queue::client '\x00"_\x0b\x0b'
submitted request '46244cf0-ad0a-4748-a84c-8d3d69d8252c' to 0
に対応する要求のほとんどは、数分以内に完了し得ることを見つけることができます。しかし、それらのいくつかは約30分かかります。 ipcontroller
ログから派生した次のヒストグラムcomplete_time - submit_time
を参照してください。
私はつい最近のpythonを使用し始めていると私はこの問題は、ここで何ができるかわかりません。完全な時間と提出時間との間の最大時間差は、クラスタ・サイズとともに増加すると思われる。 可能性のある問題への指針は大歓迎です。
はところで: - 時々少し遅くなることがあります私は、Python 2.7.6と5.1.1 Ipyparallel