我是 Dask 新手。我目前正在由 SLURM 管理的 HPC 中工作,其中包含一些计算节点(执行作业的节点)和登录节点(我通过 SSH 访问该节点以发送 SLURM 作业)。我正在寻找定义我的工作流程,将我的任务从不同节点分配到不同的 CPU。
我的第一次尝试包括一个脚本:
然后,我按照以下步骤在登录节点中执行脚本:
此工作流程成功完成了我的任务,但有一些限制:
我的问题:是否有更常见或更好的方法来管理像这样的 HPC 系统上的 Dask 任务,同时避免这些问题? 例如,如何保持 Dask 调度程序和仪表板独立于脚本执行运行?
感谢您的指导! 我也在Dask论坛
提出了这个问题如 Dask Discourse Forum 上的回答。
对于集群关闭后的 Dahsboard 信息,您可以使用 performance_report 上下文管理器。
另一种解决方案是使用一个脚本来启动 Dask 集群,并使用另一个脚本向其提交作业。您可以将调度程序信息保存到 json 文件中,以将其共享给另一个进程。 对于长时间运行的流程,常见的工作流程是提交一个“主”作业,该作业将创建 Scheduler 和客户端,并通过 SLURMCluster 为 Workers 提交其他作业。你也可以看看dask-mpi。