小白 發問時間: 電腦與網際網路程式設計 · 1 0 年前

MPI的錯誤訊息??

大大們有沒有人有遇過這問題,

當我在MPI環境下complier過後成功,然後執行之後出來一個訊息

killed by signal 6

有時是數字6或是9、11、12

這是啥意思阿????會的幫幫我

1 個解答

評分
  • 1 0 年前
    最佳解答

    我忘了,而且手邊目前沒有可跑 MPI 的東東。但確定是下列 2 個裡的一個:1. 第幾號機器。(應該不是這個)2. 第幾次 MPI 有動作。(印象中是這個)您試一下。加油。最好的方式,如下:0. 先在一台機器上跑,模擬機器數也是 1。  成功了,再試 不只一台的。1. 在您的 send, recv 的 Tag 用不同的 數字。  第一組 send recv 用 1,第二組 send recv 用 2,...2. 用二分法,插入 printf("說明這是哪");  找到在哪後,改成 printf("相關變數s", 變數, 變數, ...);另外要注意:0. 不好的 cluster 機,時間不同。  就算是時間相同,傳信息時不能避勉的 delay也會造成時間不同!  所以,任何要取時間的東東,都由某一台耶,再傳去其它台!  有樣東東要注意:srand(time(0))的做法,是用時間!!!  所以,每台出來的亂數可能一樣,可能不一樣!!1. MPI 的非新手常出的問題中,會出現您那 killed by signal x 的錯誤的,通常是 pointer 不對。  最糟的是,在我用過的 MPI 的 compiler 上,不少次是前面的 pointer 跑了, error 出現在後面!  我所說的這東東和一般 serio 的program 的狀況不太一樣!  一般的 serio 也有這問題;但 MPI 的有很大的不同。  您要是出現那錯誤,真的找不到原因,記得去前面找一下有沒有 run out pointer 的問題。加油!

    • 登入以對解答發表意見
還有問題?馬上發問,尋求解答。