Pekerjaan gagal saat menggunakan srun atau mpirun di slurm

Saya mencoba mengirimkan pekerjaan dengan slurm. Namun, pekerjaan gagal jika saya menggunakan srun atau mpirun. Namun, ini berjalan baik dengan mpiexec, meskipun hanya berjalan dengan satu proses meskipun banyak node dan banyak inti dialokasikan.

Perintah sebenarnya yang digunakan adalah:

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

Berikut ini adalah kesalahan yang saya dapatkan dengan 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

Kode dikompilasi dengan baik tetapi saya menghadapi masalah karena slurm. Bantuan apa pun dalam hal ini sangat kami hargai.

Sunting: Berikut adalah output untuk which mpirun, mpiexec, and ldd dari file yang dapat dieksekusi:

/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)

Ini skrip pekerjaan saya.


person SKPS    schedule 21.06.2020    source sumber
comment
Apakah stackoverflow.com/questions/33780992/ dapat membantu ?   -  person Ian Bush    schedule 21.06.2020
comment
Tidak juga, karena di sana, pengguna menggunakan tanda --mca dan mendapat kesalahan unrecognized argument mca. Dalam kasus saya, saya tidak menganggap pmi_args sebagai argumen dan tidak tahu dari mana asalnya.   -  person SKPS    schedule 22.06.2020
comment
di skrip batch Anda, tambahkan which mpirun, which mpiexec dan ldd /nfs/home/6/sanjeevis/dns/lb3d/src/lbe untuk mengetahui perpustakaan MPI mana yang digunakan dan oleh siapa.   -  person Gilles Gouaillardet    schedule 24.06.2020
comment
@francescalus: Terima kasih. Saya telah memperbarui skrip pekerjaan dan beberapa detail lainnya yang diminta oleh pengguna lain. Saya tidak mengetahui tentang konfigurasi PMI. Bagaimana saya bisa mendapatkan informasi ini?   -  person SKPS    schedule 24.06.2020
comment
@GillesGouaillardet: Memperbarui info dan skrip pekerjaan yang diperlukan.   -  person SKPS    schedule 24.06.2020
comment
Anda mencampurkan tiga implementasi MPI! mpirun berasal dari Open MPI, mpiexec kemungkinan merupakan MPICH bawaan dari Paraview, dan aplikasi Anda dibuat dengan Intel MPI. coba gunakan /nfs/apps/Compilers/Intel/ParallelStudio/2016.3.067/impi/5.1.3.210/bin/mpirun (atau /nfs/apps/Compilers/Intel/ParallelStudio/2016.3.067/impi/5.1.3.210/bin64/mpirun) sebagai gantinya.   -  person Gilles Gouaillardet    schedule 24.06.2020
comment
atau jika Anda ingin menggunakan srun, Anda harus export I_MPI_PMI_LIBRARY=/path/to/slurm/pmi/library/libpmi.so terlebih dahulu   -  person Gilles Gouaillardet    schedule 24.06.2020
comment
@GillesGouaillardet: Terima kasih banyak! Saya mengarahkan mpi ke versi yang berbeda dan sekarang berfungsi dengan baik. Saya menggunakan MPI default yang merupakan versi berbeda. Harus mencari tahu mengapa inkonsistensi muncul. Karena Anda telah membantu saya dengan detail yang lebih baik, saya dapat memberi Anda hadiah jika Anda mau.   -  person SKPS    schedule 24.06.2020
comment
Terima kasih, saya memposting komentar saya sebagai jawaban. Saya tidak paham dengan aturan bounty, dan jika memungkinkan, saya mengundang Anda untuk mempertimbangkan berbagi bounty dengan @denfromufa yang merupakan orang pertama yang memberikan petunjuk tentang akar permasalahannya.   -  person Gilles Gouaillardet    schedule 25.06.2020
comment
@GillesGouaillardet sebenarnya Ian Bush adalah orang pertama yang menunjukkan masalah di komentar pertama. Hanya saja SKPS tidak memperhatikan poin tersebut pada jawaban yang ditautkan dan saya menyadarinya setelah menjawab.   -  person denfromufa    schedule 25.06.2020
comment
Saya tidak mengeklik tautannya... mari pertimbangkan untuk memberikan bagian yang adil kepada semua orang!   -  person Gilles Gouaillardet    schedule 26.06.2020
comment
@denfromufa: Saya sudah membaca jawaban dari Ian Bush dan itu tidak membantu kasus ini. Silakan lihat tanggapan saya terhadap komentar Ian Bush.   -  person SKPS    schedule 26.06.2020
comment
@SKPS apakah Anda melihat ini di tautan Ian? Kasus tipikal dari tercampurnya beberapa implementasi MPI.   -  person denfromufa    schedule 26.06.2020
comment
@denfromufa: Terima kasih! Jawabannya cocok dengan masalah ini. Namun, saya merasa ini sedikit lebih halus di sini karena saya tidak memberikan tanda apa pun selama eksekusi tidak seperti di sana (mca). Jadi saya sebelumnya merasa lebih rumit di sini. Kesalahan pmi_args tampaknya umum tetapi tidak ditangani secara rinci. Jadi saya merasa Q&A ini akan membantu forum.   -  person SKPS    schedule 26.06.2020


Jawaban (2)


Akar permasalahannya adalah gabungan dari beberapa implementasi MPI yang tidak saling beroperasi:

  • mpirun berasal dari Open MPI
  • mpiexec kemungkinan adalah MPICH bawaan dari Paraview
  • aplikasi Anda dibuat dengan Intel MPI.

Coba gunakan /nfs/apps/Compilers/Intel/ParallelStudio/2016.3.067/impi/5.1.3.210/bin/mpirun (atau /nfs/apps/Compilers/Intel/ParallelStudio/2016.3.067/impi/5.1.3.210/bin64/mpirun) agar peluncurnya cocok dengan perpustakaan MPI Anda.

Jika Anda ingin menggunakan srun dengan Intel MPI, diperlukan langkah tambahan. Anda harus melakukannya terlebih dahulu

export I_MPI_PMI_LIBRARY=/path/to/slurm/pmi/library/libpmi.so
person Gilles Gouaillardet    schedule 25.06.2020

Masalah yang paling mungkin terjadi adalah program tersebut dikompilasi dengan satu implementasi MPI dan dipanggil dengan implementasi MPI lainnya. Pastikan semua variabel lingkungan MPI diatur dengan benar: OPAL_PREFIX, MPI_ROOT, PATH, dan LD_LIBRARY_PATH.

person denfromufa    schedule 24.06.2020