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 个进程
非零退出代码每个用户方向,作业已中止
-------------------------------------------- ----------
mpi运行 检测到一个或多个进程以非零状态退出,从而导致
要终止的作业。这样做的第一个过程是:
进程名称:[[22798,1],0]
退出代码:1
请告诉我,我应该如何处理 运行 这段代码?
初始错误已被报告,这被视为一项功能。
像您一样使用短路 TMPDIR
是正确的。
您可能想尝试添加
orte_tmpdir_base = /tmp
在你的 openmpi-mca-params.conf
中看看它是否解决了你的问题
(因此您不必在每个终端中设置 TMPDIR
)
关于第二个问题,你很可能运行 /usr/bin/test
而不是你的测试程序,所以你可以简单地
mpirun -np 2 ./test
或者将您的测试程序重命名为 PATH
中没有的名称
我编译了下一段代码:
#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 个进程
非零退出代码每个用户方向,作业已中止
-------------------------------------------- ----------
mpi运行 检测到一个或多个进程以非零状态退出,从而导致 要终止的作业。这样做的第一个过程是:
进程名称:[[22798,1],0]
退出代码:1
请告诉我,我应该如何处理 运行 这段代码?
初始错误已被报告,这被视为一项功能。
像您一样使用短路 TMPDIR
是正确的。
您可能想尝试添加
orte_tmpdir_base = /tmp
在你的 openmpi-mca-params.conf
中看看它是否解决了你的问题
(因此您不必在每个终端中设置 TMPDIR
)
关于第二个问题,你很可能运行 /usr/bin/test
而不是你的测试程序,所以你可以简单地
mpirun -np 2 ./test
或者将您的测试程序重命名为 PATH