首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >任务工作者被困在SLURM队列中,直到主任务到达墙面时间才会开始

任务工作者被困在SLURM队列中,直到主任务到达墙面时间才会开始
EN

Stack Overflow用户
提问于 2021-09-13 11:16:44
回答 2查看 93关注 0票数 0

最近,我一直在尝试用Dask在一个使用SLURM调度器的HPC集群上做一些机器学习工作。重要的是,在这个集群上,SLURM被配置为每个作业24小时的硬墙时间限制。

最初,我只使用一个worker来运行代码,但是我的作业内存不足。我试图增加工作进程的数量(因此,也增加了请求节点的数量),但工作进程被困在SLURM队列中(原因是这种队列被标记为“优先级”)。与此同时,主人会跑起来,最后撞到墙上的时间,留下工人们在他们最终开始的时候死去。

考虑到问题可能是我请求了太多的SLURM作业,我尝试将工人压缩到一个单一的、多节点作业using a workaround I found on github中。然而,这些多节点作业遇到了同样的问题。

然后,我尝试与集群的IT支持团队取得联系。不幸的是,他们不太熟悉Dask,只能提供通用的指针。他们的主要建议是要么暂停主作业,直到工人准备好,要么每隔24小时启动新的主作业,直到工人可以离开队列。为了帮助实现这一点,他们引用了SLURM选项--begin和--dependency。令我非常恼火的是,我无法使用这两个建议中的任何一个找到解决方案。

因此,我想问一下,在Dask/SLURM环境中,是否有一种方法可以强制主程序在工作程序准备好之前不启动,或者启动一个能够“继承”另一个主程序之前创建的工作程序的主程序。

非常感谢您能提供的任何帮助。

EN

Stack Overflow用户

回答已采纳

发布于 2021-09-23 11:20:19

我的问题的答案看起来很简单。我们的SLURM配置使用backfill scheduler。因为我的Dask工作人员使用了最大可能的时间--时间(24小时),这意味着回填调度程序没有有效地工作。当我将运行脚本的时间降低到我认为工人运行完脚本所需的时间时,他们就离开了“队列地狱”!

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69161719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档