簡體   English   中英

在 slurm 中使用 srun 或 mpirun 時作業失敗

[英]Job fails while using srun or mpirun in slurm

我正在嘗試用 slurm 提交一份工作。 但是,如果我使用srunmpirun ,作業會失敗。 但是,它與mpiexec一起運行良好,盡管盡管分配了多個節點和多個內核,但它只運行一個進程。

實際使用的命令是:

srun /nfs/home/6/sanjeevis/dns/lb3d/src/lbe -f input-default

以下是我使用srun/mpirun得到的錯誤:

[mpiexec@n1581] match_arg (utils/args/args.c:163): unrecognized argument pmi_args
[mpiexec@n1581] HYDU_parse_array (utils/args/args.c:178): argument matching returned error
[mpiexec@n1581] parse_args (ui/mpich/utils.c:1642): error parsing input array
[mpiexec@n1581] HYD_uii_mpx_get_parameters (ui/mpich/utils.c:1694): unable to parse user arguments

代碼編譯得很好,但我通過 slurm 面臨問題。 對此的任何幫助表示贊賞。

編輯:以下是可執行文件的which mpirun, mpiexec, and ldd的 output:

/nfs/apps/MPI/openmpi/3.1.3/gnu/6.5.0/cuda/9.0/bin/mpirun
/nfs/apps/ParaView/5.8/binary/bin/mpiexec
        linux-vdso.so.1 =>  (0x00007fff78255000)
        libmpi.so.12 => /nfs/apps/Compilers/Intel/ParallelStudio/2016.3.067/impi/5.1.3.210/intel64/lib/release_mt/libmpi.so.12 (0x00002ae6cb57d000)
        libz.so.1 => /nfs/apps/Libraries/zlib/1.2.11/system/lib/libz.so.1 (0x00002ae6cbd4c000)
        libmpifort.so.12 => /nfs/apps/Compilers/Intel/ParallelStudio/2016.3.067/impi/5.1.3.210/intel64/lib/libmpifort.so.12 (0x00002ae6cbf67000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00002ae6cc315000)
        librt.so.1 => /lib64/librt.so.1 (0x00002ae6cc519000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ae6cc721000)
        libm.so.6 => /lib64/libm.so.6 (0x00002ae6cc93e000)
        libc.so.6 => /lib64/libc.so.6 (0x00002ae6ccc40000)
        libgcc_s.so.1 => /nfs/apps/Compilers/GNU/6.5.0/lib64/libgcc_s.so.1 (0x00002ae6cd003000)
        /lib64/ld-linux-x86-64.so.2 (0x0000558ea723a000)

這是我的工作腳本

根本原因是幾種不互操作的 MPI 實現的混合:

  • mpirun來自 Open MPI
  • mpiexec可能是 Paraview 的內置 MPICH
  • 您的應用是使用英特爾 MPI 構建的。

嘗試使用/nfs/apps/Compilers/Intel/ParallelStudio/2016.3.067/impi/5.1.3.210/bin/mpirun (或/nfs/apps/Compilers/Intel/ParallelStudio/2016.3.067/impi/5.1.3.210/bin64/mpirun ) 而是這樣啟動器將匹配您的 MPI 庫。

如果您想將srun與英特爾 MPI 一起使用,則需要一個額外的步驟。 你首先需要

export I_MPI_PMI_LIBRARY=/path/to/slurm/pmi/library/libpmi.so

最可能的問題是程序是用一個 MPI 實現編譯並用另一個 MPI 實現調用的。 確保正確設置所有 MPI 環境變量:OPAL_PREFIX、MPI_ROOT、PATH 和 LD_LIBRARY_PATH。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM