mpirun не работает и просит изменить переменную TMPDIR на /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
Скажите мне, пожалуйста, что я должен сделать, чтобы запустить этот код?
1 ответ:
Начальная ошибка уже была зарегистрирована, и это рассматривается как особенность. использование короткого замыкания
TMPDIR
, как вы это сделали, правильно.Возможно, вы захотите попробовать добавить
orte_tmpdir_base = /tmp
в вашемopenmpi-mca-params.conf
и посмотреть, исправляет ли он вашу проблему (так что вам не придется устанавливатьTMPDIR
в каждом терминале)Что касается второй проблемы, то вы, скорее всего, используете
/usr/bin/test
вместо своей тестовой программы, поэтому вы можете простоmpirun -np 2 ./test
или переименуйте вашу тестовую программу во что-то, чего нет в вашемPATH