Dask作业队列为什么使用进程会导致取消作业?

2024-07-04 13:38:58 发布

您现在位置:Python中文网/ 问答频道 /正文

主要问题

我在Slurm超级计算机上使用Dask Jobequeue。我的工作负载包括线程(即numpy)和python工作负载的混合,因此我认为线程和进程的平衡对于我的部署(这是默认行为)是最好的。但是,为了运行作业,我需要使用以下基本配置:

cluster = SLURMCluster(cores=20,
                    processes=1,
                    memory="60GB",
                    walltime='12:00:00',
                    ...
                    )
cluster.adapt(minimum=0, maximum=20)
client = Client(cluster)

这是完全线程化的。这些任务所花费的时间似乎比我天真地预期的要长(其中很大一部分是大量的文件读/写)。切换到纯流程,即

cluster = SLURMCluster(cores=20,
                    processes=20,
                    memory="60GB",
                    walltime='12:00:00',
                    ...
                    )

结果是slurm作业在启动时会立即被slurm杀死,其输出如下:

slurmstepd: error: *** JOB 11116133 ON nid00201 CANCELLED AT 2021-04-29T17:23:25 ***

选择平衡配置(即默认配置)

cluster = SLURMCluster(cores=20,
                    memory="60GB",
                    walltime='12:00:00',
                    ...
                    )

导致一种奇怪的中间行为。任务将在接近完成时运行(即900/1000个工作任务),然后一些工人将被杀死,进度将下降到400/1000个任务

你有什么想法吗

一些额外的上下文

在这台特定的机器上,系统管理员告诉我,对于多核(非MPI,例如python多处理),应该使用

srun -n 1 -c 20 python ...

否则,进程将在单个内核上运行。所以在我的集群配置中

cluster = SLURMCluster(
    ...
    python='srun -n 1 -c 20 python',
    ...
)

我的猜测是,使用dask线程/进程之间的差异应该会影响这一点,因为我们仍然希望将所有20个内核分配给该作业

此外,我需要加载一个模块,该模块使许多编译工具可用,但不幸的是还更改了PYTHONPATH。我(根本不是理想的)解决方法是:

cluster = SLURMCluster(
    ...
    env_extra=[
        'module load mymodule',
        'unset PYTHONPATH',
        'source /home/$(whoami)/.bashrc',
        'conda activate mycondaenv'
    ],
    ...
)

这似乎成功地确保了上面调用的python与我用来启动dask作业的mycondaenv环境相同

编辑:

更新

按照@SultanOrazbayev的建议,我查看了失败作业ID的Slurm作业信息。它们都导致:

slurm_load_jobs error: Invalid job id specified

此外,我发现使用cluster.scale而不是cluster.adapt会导致工作的成功运行。也许这里的问题是adapt是如何试图扩大就业数量的


Tags: 进程作业error线程内核coresslurmprocesses
1条回答
网友
1楼 · 发布于 2024-07-04 13:38:58

一个可能的原因是由于不兼容的资源请求而取消了作业。解决此问题的最简单方法是检查print(cluster.job_script())并将其显示给系统管理员

或者,检查集群上的错误日志。运行scontrol show jobid 1234(其中1234是作业id)应该会向您指出取消的原因和相关日志

相关问题 更多 >

    热门问题