每个工人有多少dask工作

每个工人有多少dask工作,dask,dask-distributed,dask-delayed,Dask,Dask Distributed,Dask Delayed,如果我启动一个包含N个工作进程的dask集群,然后使用cluster.compute提交N个以上的作业,dask是尝试同时运行所有作业(通过在每个工作进程上调度多个作业),还是作业排队并按顺序运行 我最近这样做的经验似乎暗示了后者。每个作业都非常占用内存,提交的作业比工作人员多,这会导致所有作业由于内存问题而崩溃 有没有办法强制dask一次只能在一个工作线程上运行一个作业,并对其他作业排队?默认行为由集群大小设置。如果辅助线程数大于4,dask将尝试猜测每个辅助线程中要使用的线程数。如果要更改此

如果我启动一个包含N个工作进程的dask集群,然后使用
cluster.compute
提交N个以上的作业,dask是尝试同时运行所有作业(通过在每个工作进程上调度多个作业),还是作业排队并按顺序运行

我最近这样做的经验似乎暗示了后者。每个作业都非常占用内存,提交的作业比工作人员多,这会导致所有作业由于内存问题而崩溃


有没有办法强制dask一次只能在一个工作线程上运行一个作业,并对其他作业排队?

默认行为由集群大小设置。如果辅助线程数大于4,dask将尝试猜测每个辅助线程中要使用的线程数。如果要更改此行为,可以在创建集群时使用
threads\u per\u worker
关键字参数更改每个worker的线程数:

cluster=LocalCluster(线程数/worker=1)
客户端=客户端(群集)
cluster.compute(…)
如果使用,则需要将每个辅助线程的线程数作为参数传递给:

cluster=SSHCluster(worker\u options={“nthreads”:1})
客户端=客户端(群集)
cluster.compute(…)

请参阅ssh群集的更新答案