簡體   English   中英

簡單的MPI程序因大量進程而失敗

[英]Simple MPI program fail with large number of processes

這是我的代碼:

#include "mpi.h"
#include <stdio.h>

int main (int argc, char** argv) {

   int  numtasks, rank; 

   MPI_Init(&argc,&argv);

   MPI_Comm_size(MPI_COMM_WORLD,&numtasks);
   MPI_Comm_rank(MPI_COMM_WORLD,&rank);
   // the code fail with or without printf
   printf ("Number of tasks= %d My rank= %d\n", numtasks,rank);

   MPI_Barrier(MPI_COMM_WORLD);
   MPI_Finalize();
   return 0;
}

這就是我運行它和輸出的方式:

$ mpirun -n 160 ./mpi_example1
[proxy:0:0@ubuntu] send_cmd_downstream (./pm/pmiserv/pmip_pmi_v1.c:80): assert (!closed) failed
[proxy:0:0@ubuntu] fn_get (./pm/pmiserv/pmip_pmi_v1.c:349): error sending PMI response
[proxy:0:0@ubuntu] pmi_cb (./pm/pmiserv/pmip_cb.c:327): PMI handler returned error
[proxy:0:0@ubuntu] HYDT_dmxu_poll_wait_for_event (./tools/demux/demux_poll.c:77): callback returned error status
[proxy:0:0@ubuntu] main (./pm/pmiserv/pmip.c:226): demux engine error waiting for event
[mpiexec@ubuntu] control_cb (./pm/pmiserv/pmiserv_cb.c:215): assert (!closed) failed
[mpiexec@ubuntu] HYDT_dmxu_poll_wait_for_event (./tools/demux/demux_poll.c:77): callback returned error status
[mpiexec@ubuntu] HYD_pmci_wait_for_completion (./pm/pmiserv/pmiserv_pmci.c:181): error waiting for event
[mpiexec@ubuntu] main (./ui/mpich/mpiexec.c:405): process manager error waiting for completion

當我用-n 128或更低版本運行代碼時,它工作正常。 我還嘗試在32核x 8節點計算機上運行代碼,並且能夠運行-n 192,當我嘗試-n 224它失敗時......

有什么建議嗎? 謝謝。

問題可能與shell可能產生的最大進程數有關。 如何修改此設置取決於shell的類型和操作系統。 如果您使用的是cshell或tcshell,則可以使用公共行“limit”命令驗證當前設置。 更改設置可以在用戶級別或根級別進行(存在軟限制和硬限制)。

這不是一個明確的答案,但它的評論時間太長了。

我看了一下失敗斷言的來源。 代碼庫略有不同,但我認為它足夠接近。 你的錯誤說assert在第80行失敗了,在這里 ,斷言HYDU_ASSERT(!closed, status); 位於第82行。

違規電話位於第77行:

status = HYDU_sock_write(fd, cmd, strlen(cmd), &sent, &closed, HYDU_SOCK_COMM_MSGWAIT);

現在, HYDU_sock_write的代碼表示將設置closed標志,並且該函數將在中止操作

write(fd, (char *) buf + *sent, maxlen - *sent); @line 278因errno == ECONNRESET失敗。

現在這個 write文檔說: “[ECONNRESET]在未連接的套接字上嘗試寫入。”

你確定網絡工作正常嗎? 好像套接字斷開了。

暫無
暫無

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

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