Не могу запустить простую программу MPI

Я недавно установил Cluster Studio от Intel и тестировал IMPI. Когда я пытаюсь запустить простую программу Hello World, используя mpirunпроцесс длится вечно, и я должен закончить его сам. Я использовал следующий код:

#include <mpi.h>
#include <iostream>

#include <stdlib.h>

int main(int argc, char *argv[]) {
MPI::Init(argc, argv);

int rank = MPI::COMM_WORLD.Get_rank();
int size = MPI::COMM_WORLD.Get_size();

std::cout << "Returned: " << system("sleep 2") << " ";
std::cout << "Hello World! I am " << rank << " of " << size <<
std::endl;

MPI::Finalize();
return (0);
}

Я скомпилировал это с mpiicpc main.cpp -o main,
Это вывод, когда я добавил -show опция:

icpc main.cpp -o main -I/opt/intel/impi/4.1.1.036/intel64/include -L/opt/intel/impi/4.1.1.036/intel64/lib -Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker /opt/intel/impi/4.1.1.036/intel64/lib -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/4.1 -lmpigc4 -lmpigf -lmpi -lmpigi -ldl -lrt -lpthread

Я запустил исполняемый файл с mpirun -np 4 main,

Дополнительная информация:

$which mpirun
/opt/intel/impi/4.1.1.036/intel64/bin/mpirun

$mpiicpc --version
icpc (ICC) 14.0.0 20130728

ОБНОВИТЬ:
Я также попытался скомпилировать его с помощью g++ вместо icpc, Неудачно. Я предполагаю, что есть проблема со временем выполнения MPI, но я не могу найти это. Отладка не сработала. Я думаю, что программа не инициализируется в первую очередь.

0

Решение

Если кому-то все еще интересно, я узнаю, что не так. Согласно этому ссылка на сайт, В отличие от некоторых других реализаций MPI, Intel MPI Library uses a Multi-Purpose Daemon (MPD) job startup mechanism. To run programs compiled with mpicc (or related) commands, you must first set up MPD daemons. Итак, я выполнил шаги, описанные в ссылке, выполнил mpdbootкоманда, и вуаля, это работает, наконец.

0

Другие решения


По вопросам рекламы [email protected]