如何在DASK中批量调度dask_jobqueue作业而不是并发调度?

时间:2019-05-15 13:30:40

标签: dask

通过阅读Dask-Jobqueue(https://jobqueue.dask.org/en/latest/)并通过在我们的SLURM集群上进行测试,看来当您设置cluster.scale(n)并创建client = Client(cluster)时,您的工作都没有可以启动,直到您所有n的工作都可以启动为止。

假设您要运行999个作业,并且群集中有100个节点或插槽;更糟糕的是,假设其他人共享集群,也许其中一些人的工作时间长。管理员有时需要对某些节点进行维护,因此他们可以添加和删除节点。您永远不知道您将获得多少并行性。您希望集群调度程序仅执行999个作业(以口齿不清,它们将通过sbatch提交),在任何可用节点上以任何顺序运行它们,将结果存储在共享目录中,并有一个依赖的作业(在s,这将是sbatch --dependency=)在完成所有999个作业之后处理共享目录。 DASK是否可以通过某种方式实现?

似乎是该体系结构的基本限制,所有作业都应并行运行,并且用户必须指定并行度。

1 个答案:

答案 0 :(得分:0)

您的理解不正确。正如您所要求的那样,Dask可以运行少于指定数量的作业。它将使用到达的任何资源。