の労働者の数を指定するには私は、例えば、モンテカルロの、実行してきましたが、いくつかの線形代数演算で、DASKは、ユーザ指定の設定を無効にしているようです、例えば:はどのように設定することができ、<a href="http://dask.pydata.org/en/latest/scheduler-overview.html#configuring-the-schedulers" rel="nofollow noreferrer">Dask documentation</a>が示すように、あなたがDask.arrayの労働者の数を指定したいと仮定しDask.array
import dask.array as da
import dask
from multiprocessing.pool import ThreadPool
dask.set_options(pool=ThreadPool(num_workers))
mat1 = da.random.random((size, size) chunks=chunk_size)
mat2 = da.random.random((size, size) chunks=chunk_size)
mat3 = mat1.dot(mat2)
mat3.compute()
私は小さなマトリクスサイズでそのプログラムを実行すると、それは明らかに使用しています労働者はnum_workers
のみですが私が行列のサイズを大きくすると、突然画像が示すように、ダースの労働者が生まれます。
したがって、num_workers
労働者のみを使用してDaskに問題を解決するにはどうすればよいですか?
スレッドBLASに対してnumpyをコンパイルしていますか?そうであれば、各作業員は自分の労働者を産んでいるかもしれません。 'pstree'は、産卵階層の理解を深めるのに役立ちます。 –
はい!私はIntelpythonを使用していますので、numpyはMKLにリンクしています。私は、MKLスレッドの数をhttp://stackoverflow.com/questions/28283112/using-mkl-set-num-threads-with-numpy#28293128に示すように制限し、問題は解消されました。どうもありがとうございました! –