งานล้มเหลวขณะใช้ srun หรือ mpirun ใน slurm

ฉันกำลังพยายามส่งงานกับสเลม อย่างไรก็ตาม งานจะล้มเหลวหากฉันใช้ srun หรือ mpirun อย่างไรก็ตาม มันทำงานได้ดีด้วย 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

โค้ดคอมไพล์ได้ดี แต่ฉันกำลังประสบปัญหาผ่านสเลม ความช่วยเหลือใด ๆ เกี่ยวกับเรื่องนี้ได้รับการชื่นชม

แก้ไข: นี่คือผลลัพธ์สำหรับ which mpirun, mpiexec, and ldd ของไฟล์ปฏิบัติการ:

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

นี่คือสคริปต์งานของฉัน


person SKPS    schedule 21.06.2020    source แหล่งที่มา
comment
stackoverflow.com/questions/33780992/ มีความช่วยเหลือใดๆ หรือไม่ ?   -  person Ian Bush    schedule 21.06.2020
comment
ไม่จริง เนื่องจากที่นั่น ผู้ใช้ใช้แฟล็ก --mca และได้รับข้อผิดพลาด unrecognized argument mca ในกรณีของฉัน ฉันไม่ผ่าน pmi_args เป็นอาร์กิวเมนต์ และไม่รู้ว่ามันมาจากไหน   -  person SKPS    schedule 22.06.2020
comment
ในสคริปต์ชุดงานของคุณ ให้เพิ่ม which mpirun, which mpiexec และ ldd /nfs/home/6/sanjeevis/dns/lb3d/src/lbe เพื่อดูว่าไลบรารี MPI ใดถูกใช้และโดยใคร   -  person Gilles Gouaillardet    schedule 24.06.2020
comment
@francescalus: ขอบคุณ ฉันได้อัปเดตสคริปต์งานและรายละเอียดเพิ่มเติมเล็กน้อยที่ผู้ใช้รายอื่นร้องขอ ฉันไม่ทราบเกี่ยวกับการกำหนดค่า PMI ฉันจะรับข้อมูลนี้ได้อย่างไร?   -  person SKPS    schedule 24.06.2020
comment
@GillesGouaillardet: อัปเดตข้อมูลและสคริปต์งานที่จำเป็น   -  person SKPS    schedule 24.06.2020
comment
คุณกำลังผสมการใช้งาน MPI สามแบบเข้าด้วยกัน! mpirun มาจาก Open MPI, mpiexec น่าจะเป็น MPICH ในตัวจาก Paraview และแอปของคุณสร้างด้วย Intel 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) แทน   -  person Gilles Gouaillardet    schedule 24.06.2020
comment
หรือถ้าคุณต้องการใช้ srun คุณต้อง export I_MPI_PMI_LIBRARY=/path/to/slurm/pmi/library/libpmi.so ก่อน   -  person Gilles Gouaillardet    schedule 24.06.2020
comment
@GillesGouaillardet: ขอบคุณมาก! ฉันชี้ mpi ไปที่เวอร์ชันอื่นและตอนนี้ก็ใช้ได้ดีแล้ว ฉันใช้ MPI เริ่มต้นซึ่งเป็นเวอร์ชันอื่น ต้องคิดว่าเหตุใดความไม่สอดคล้องกันจึงเกิดขึ้น เนื่องจากคุณได้ช่วยฉันในเรื่องรายละเอียดปลีกย่อย ฉันสามารถให้ค่าหัวแก่คุณได้ถ้าคุณต้องการ   -  person SKPS    schedule 24.06.2020
comment
ขอบคุณ ฉันโพสต์ความคิดเห็นของฉันเป็นคำตอบ ฉันไม่คุ้นเคยกับกฎของค่าหัว และหากเป็นไปได้ ฉันขอเชิญชวนให้คุณพิจารณาแบ่งปันค่าหัวกับ @denfromufa ซึ่งเป็นคนแรกที่ให้คำแนะนำเกี่ยวกับสาเหตุที่แท้จริง   -  person Gilles Gouaillardet    schedule 25.06.2020
comment
@GillesGouaillardet จริง ๆ แล้ว Ian Bush เป็นคนแรกที่ชี้ปัญหาในความคิดเห็นแรก เป็นเพียง SKPS ไม่ได้สังเกตเห็นจุดนั้นในคำตอบที่เชื่อมโยงและฉันสังเกตเห็นหลังจากตอบแล้ว   -  person denfromufa    schedule 25.06.2020
comment
ฉันไม่ได้คลิกลิงก์ ... ลองพิจารณาแบ่งส่วนแบ่งที่ยุติธรรมให้ทุกคนดูสิ!   -  person Gilles Gouaillardet    schedule 26.06.2020
comment
@denfromufa: ฉันได้อ่านคำตอบจาก Ian Bush แล้วและมันไม่ได้ช่วยในกรณีนี้ โปรดดูคำตอบของฉันต่อความคิดเห็นของ Ian Bush   -  person SKPS    schedule 26.06.2020
comment
@SKPS คุณเห็นสิ่งนี้ในลิงก์ของ Ian หรือไม่ กรณีทั่วไปของการใช้ MPI หลายรายการผสมกัน   -  person denfromufa    schedule 26.06.2020
comment
@denfromufa: ขอบคุณ! คำตอบตรงกับปัญหานี้ อย่างไรก็ตาม ฉันรู้สึกว่าที่นี่ซับซ้อนกว่านี้เล็กน้อย เนื่องจากฉันไม่ได้ส่งแฟล็กใด ๆ ระหว่างการดำเนินการไม่เหมือนที่นั่น (mca) ก่อนหน้านี้ฉันรู้สึกว่ามันซับซ้อนกว่าที่นี่ ข้อผิดพลาด pmi_args ดูเหมือนเป็นเรื่องปกติแต่ไม่ได้แก้ไขโดยละเอียด ฉันจึงรู้สึกว่าการถามตอบนี้จะช่วยฟอรัมได้   -  person SKPS    schedule 26.06.2020


คำตอบ (2)


สาเหตุที่แท้จริงคือการผสมผสานระหว่างการใช้งาน MPI หลายรายการที่ไม่ได้ทำงานระหว่างกัน :

  • mpirun มาจาก Open MPI
  • mpiexec น่าจะเป็น MPICH ในตัวจาก Paraview
  • แอปของคุณสร้างด้วย Intel 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) แทน เพื่อให้ Launcher ตรงกับไลบรารี MPI ของคุณ

หากคุณต้องการใช้ srun กับ Intel MPI จำเป็นต้องมีขั้นตอนเพิ่มเติม ก่อนอื่นคุณต้อง

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

ปัญหาที่เป็นไปได้มากที่สุดคือโปรแกรมถูกคอมไพล์ด้วยการใช้งาน MPI หนึ่งครั้ง และถูกเรียกใช้ด้วยการใช้งาน MPI อื่น ตรวจสอบให้แน่ใจว่าตัวแปรสภาพแวดล้อม MPI ทั้งหมดได้รับการตั้งค่าอย่างถูกต้อง: OPAL_PREFIX, MPI_ROOT, PATH และ LD_LIBRARY_PATH

person denfromufa    schedule 24.06.2020