1
分散マルチプロセッシングワーカーでワーカーリソース(http://distributed.readthedocs.io/en/latest/resources.html)を定義すると、すべてのプロセスに対して定義されたリソースプールはありますか?分散ワーカーのワーカーリソースを除外します
例えば、労働者のホスト上で、私が実行しています:
dask-worker --nprocs 8 --resources HOST=1
を今、私はresources={"HOST":1}
を必要とするタスク(複数可)を提出した場合は、そのマシン上のプロセスの一つだけが、このタスクを実行します。この保証はありません特定の瞬間に?
私の例では、これらの作業者のうちの1人だけが特定のタスクを実行するようにする方法がありますか?依然としてnprocsを使用し、HOST:1という要件を定義すると、すべてのプロセスが同時に実行されます。一方、私がホストを必要とするならば:8人...どれも実行されませんか? 一般的な乳母のいない別のプロセスについては同じ質問があります。 – evilkonrex
リソースは、タスクが複数回実行されるのを制限するものではなく、どの作業者がどのタスクを実行できるかを制限します。上記の '--nprocs'を避ける例は完全に明示的でなければなりません。 '--nprocs'キーワードを避けることをお勧めします。 – MRocklin
私は、--nprocsを使用してから独自のプロセスマネージャを使用して、複数のプロセスを明示的に開始することにします。 もう少し詳しく説明しましょう。単一のホスト上のワーカープロセスが依然として特定のリソースを共有するという考え方です。したがって、ホスト上のすべてのリソースを必要とするタスクを実行すると、このホスト上の1人のワーカーだけが同時に実行できます。マルチスレッドワーカーでは簡単だと思いますが、複数のワーカープロセスに対してこのケースをサポートする機能はありますか? PS - われわれのワーカーコードにリソース同期を実装している可能性がありますが、複雑になります – evilkonrex