首页 > 解决方案 > SLURM:在多个节点上运行一项作业?(使用 python 作业库)

问题描述

我正在尝试在由 SLURM 管理的集群上运行我的 python 程序(我是新手)。我使用 python joblib 在我的程序中并行化一些 for 循环。有没有办法在多个节点上运行我的工作(仅包含我的程序,因此只有一个任务),以便它可以访问比仅在一个节点中更多的 CPU?

编辑:在之后(但当然是从我的 sbatch 文件中调用 mpriun),它会在最后排名的进程之前引发错误:

    Traceback (most recent call last):
  File "arisMPI.py", line 4, in <module>
    comm.Barrier()
  File "mpi4py/MPI/Comm.pyx", line 567, in mpi4py.MPI.Comm.Barrier
mpi4py.MPI.Exception: Unknown error class, error stack:
PMPI_Barrier(289).....................: MPI_Barrier(comm=MPI_COMM_WORLD) failed
PMPI_Barrier(275).....................: 
MPIR_Barrier_impl(175)................: 
MPIR_Barrier_intra_auto(110)..........: 
MPIR_Barrier_intra_dissemination(49)..: 
MPIDU_Complete_posted_with_error(1137): Process failed
Traceback (most recent call last):
  File "arisMPI.py", line 4, in <module>
    comm.Barrier()
  File "mpi4py/MPI/Comm.pyx", line 567, in mpi4py.MPI.Comm.Barrier
mpi4py.MPI.Exception: Unknown error class, error stack:
PMPI_Barrier(289).....................: MPI_Barrier(comm=MPI_COMM_WORLD) failed
PMPI_Barrier(275).....................: 
MPIR_Barrier_impl(175)................: 
MPIR_Barrier_intra_auto(110)..........: 
MPIR_Barrier_intra_dissemination(49)..: 
MPIDU_Complete_posted_with_error(1137): Process failed

你碰巧知道那可能是什么吗?仅在一个节点上运行时不会发生这种情况。我用谷歌搜索但找不到明确的答案,只有遇到同样问题的其他人。

编辑:问题是 mpi4py 链接到的 MPI 与我集群中的 MPI 不同。在 mpi4py 安装期间卸载 mpi4py 并设置正确的 mpicc 路径解决了这个问题。

标签: pythonslurmjoblib

解决方案


推荐阅读