[英]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.