簡體   English   中英

mpirun不起作用並要求將TMPDIR變量更改為/ tmp

[英]mpirun doesnt work and ask to change TMPDIR variable to /tmp

我編譯了下一個代碼:

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


int main(int argc, char* argv[]) {
    int rank, size, len;
    char host[MPI_MAX_PROCESSOR_NAME];
    MPI_Init(&argc, &argv);
    MPI_Finalize();
    return 0;
}

我是這樣做的:

mpic++ -o test test.cpp

然后我試圖運行該文件:

mpirun -np 2 test

但是發生了錯誤:

PMIx檢測到一個臨時目錄名,導致Unix域套接字的路徑太長:

臨時目錄:/ var / folders / 12 / k2b2579s1yz2cfl8ppb1c6m80000gn / T / openmpi-sessions-501 @ MacBook-Air-Alexander-2_0 / 22793

嘗試將TMPDIR環境變量設置為指向較短的長度

所以我這樣做了:

export TMPDIR=/tmp

試圖再次運行: mpirun -np 2 test

但發生了另一個錯誤:

主要作業正常終止,但返回了1個進程

非零退出代碼按用戶指示,作業已中止

-------------------------------------------------- -----

mpirun檢測到一個或多個進程退出非零狀態,從而導致作業終止。 這樣做的第一個過程是:

流程名稱:[[22798,1],0]

退出代碼:1

請告訴我,我該怎么做才能運行這段代碼?

已經報告了初始錯誤,這被視為一項功能。 使用短路的TMPDIR是正確的。

您可能想嘗試在openmpi-mca-params.conf添加orte_tmpdir_base = /tmp ,看看它是否修復了您的問題(因此您不必在每個終端中設置TMPDIR

關於第二個問題,你很可能運行/usr/bin/test而不是你的測試程序,所以你可以簡單地mpirun -np 2 ./test或將你的測試程序重命名為不在你的PATH

暫無
暫無

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

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