2017-04-19 6 views
2

multiprocessingバックエンドで使用するとプログレスバーが美しく動作しますが、distributedスケジューラをバックエンドとして使用する場合は、まったく動作しません。Dask ProgressBarは分散バックエンドでは機能しません

方法はありますか?または別の解決策ですか? distributedパッケージにはいくつかの進行状況バーがありますが、それらはすべて先物リストを必要とします。

答えて

1

主な相違点は、マルチスレッド/処理では、結果が制御スレッドにパイプされて戻されますが、分散では、(ローカルマシン上にあっても)クラスタ上で非同期に計算されます。以前

with ProgressBar(): 
    out = collection.compute() 

ようなコードを持っていた場合 は今、あなたは

from dask.distributed import progress 
out = c.compute(collection) # c is the client 
progress(out) 

を行うことができますし、あなたの結果を収集する:分散スケジューラはまたでグラフィカルなダッシュボードを利用できるようにすることをout.result()またはc.gather(out)

注意をhttp://yourhost:8787、例えば、ステータス/を参照してください。そこには、あなたの仕事が進歩バーをまったく呼び出す必要なしに実行されるのが見えます。

関連する問題