2016-02-12 67 views
0

我是相當新的計算機科學(化學背景),但我寫的是在C.使用MPI我每次編譯我的代碼,我得到的各種錯誤,例如代碼,理解的MPI錯誤

rank 0 in job 1 cems_54844 caused collective abort of all ranks 
    exit status of rank 0: killed by signal 9 

在過去一週裏發生過類似的錯誤,我真的可以利用一些幫助來實現某種方式來了解更多關於這個問題的信息。

以下page是關於MPI中的錯誤處理。不幸的是我對計算機科學知之甚少,無法理解這個討論。

有了這個,我希望有人願意給我一個關於處理MPI錯誤的速成課程,並且可能會在關聯討論中爲我介紹一些更多的東西(對於外行)。

我不是在問一個關於「你會爲我寫代碼」的問題,我要求提供有關如何理解MPI錯誤的概念性建議。

+0

定義這是一個關於編程。與計算機科學無關。 – Gilles

+1

請提供有關您正在使用的系統的信息,尤其是哪些MPI實施,應用程序,批處理系統等以及更多錯誤消息。這樣我們可以提供特定的幫助。注意:'signal 9'是[SIGKILL](https://en.wikipedia.org/wiki/Unix_signal),可能只是潛在原因的影響。 – Zulan

+0

具體問題是http://stackoverflow.com/q/14061927/620382 – Zulan

回答

-1

程序員可以以多種形式呈現錯誤信息。通常他們會將錯誤列表定義爲一個數字(或者更常見的是按照某種順序將數字分配給標籤的枚舉)。

你需要找出的第一件事是「錯誤9」代表什麼。

一個簡單的谷歌搜索會引導你到幾個頁面列出錯誤代碼的各種枚舉,但大多數只是告訴你的文字不是數字。你可以假設枚舉從零開始計數直到達到9,但這可能不完全準確。與您正在查看的列表相比,該軟件的不同版本可能會將其他錯誤代碼添加到枚舉中,因此您需要查看正在運行的特定軟件和版本的代碼。但是.... 我發現Microsoft's MPI errors錯誤列表列出了這一點:

MPI_ERR_OP = 9

或無效操作。你的程序試圖做一個未定義的指令。

有效指令在這裏for Microsoft's version

+1

的重複信號9最有可能與MPI錯誤代碼無關。它很可能只是'SIGKILL'。 – Zulan

+0

你對情況的分析是完全錯誤的。錯誤信息清楚地表明「** **信號9 **導致**死亡**」。這不是一個MPI錯誤代碼;這是一個外部傳遞或內部升級的Unix'KILL'信號(強制進程終止),很可能是前者,並且很可能是由於該進程超出了資源限制。 –