簡體   English   中英

打開MPI虛擬計時器已過期

[英]Open MPI Virtual Timer Expired

我正在Gentoo 3.13上使用Open MPI 1.8,以通過服務器/客戶端概念管理從一個程序到另一個程序的數據傳輸。 服務器和客戶端都通過mpiexec作為單獨的進程啟動。 幾天后(這是很繁重的計算...),有時我會收到錯誤消息

mpiexec noticed that process rank 0 with PID 17213 on node XXX exited on signal 26 (Virtual timer expired).

不幸的是,該錯誤不能以可靠的方式再現,即該錯誤在程序流程中並不總是出現,也不總是出現在同一點。 我在其他計算機上也遇到了此錯誤。 我已經將問題追溯到ITIMER_VIRTUAL ,該問題在到期時會提供SIGVTALRM (請參閱例如http://man7.org/linux/man-pages/man2/setitimer.2.html )。 在手冊頁的BUGS部分中,它表示

在非常重的負載下,ITIMER_REAL計時器可能會在傳遞來自先前到期的信號之前到期。 在這種情況下,第二個信號將丟失。

我想知道ITIMER_VIRTUAL是否也可以使用類似的方法嗎? 有沒有人遇到類似的問題並且可以確認錯誤?

我能想到的唯一解決方法是調用setitimer(...)並嘗試自己操作計時器。 但是,我希望有另一種方法,因為我不能總是修改客戶端的源代碼。 有什么建議么?

由於尚未正式回答此問題,因此,我將代表Hristo(@HristoIliev:我希望您可以接受)。 正如我對問題的第一條評論中指出的那樣,Open MPI源代碼中沒有一個提示可能導致虛擬計時器到期。 確實,計時器問題與第三方庫有關,該第三方庫使代碼在無法預測的時間后崩潰(取決於計算機的當前負載)。

暫無
暫無

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

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