dask - 如何在 DASK 中批量调度 dask_jobqueue 作业而不是并发?
问题描述
通过阅读 Dask-Jobqueue ( https://jobqueue.dask.org/en/latest/ ),并在我们的 SLURM 集群上进行测试,似乎当您设置cluster.scale(n)
和创建时client = Client(cluster)
,您的任何工作都无法开始,直到你所有n
的工作都可以开始了。
假设您有 999 个作业要运行,以及一个有 100 个节点或插槽的集群;更糟糕的是,假设其他人共享集群,并且可能其中一些人有长期运行的工作。管理员有时需要对某些节点进行维护,因此他们会添加和删除节点。你永远不知道你能得到多少并行度。您希望集群调度程序简单地处理 999 个作业(在 slurm 中,这些将sbatch
通过sbatch --dependency=
) 在所有 999 个作业完成后处理共享目录。DASK 能以某种方式做到这一点吗?
这似乎是架构的一个基本限制,即所有作业都应该并行运行,并且用户必须指定并行度。
解决方案
你的理解不正确。Dask 可以运行少于指定数量的作业,正如您所要求的那样。它将使用到达的任何资源。
推荐阅读
- docker - Docker compose 在脚本下载文件之前
- xml - 元素“workOrder”:没有可用于验证根的匹配全局声明
- ssl - 将 .cer 转换为 .pem 返回错误“无法加载证书”
- python-2.7 - 在 python 中使用 urllib 库清除缓存
- python - python结构:设置环境变量
- jquery - Jquery 和 Bootstrap 4 - 用于调整大小和滚动顶部的导航栏转换
- r - ggplot 将截止 abline 添加到堆叠的条形图,其中条件:达到阈值
- cassandra - cassandra 节点上的数据大小不均匀
- javascript - 更改 formlyConfig 以允许重新选择一个空选项
- php - centos上的500内部服务器错误