У меня есть несколько простых кодов, которые хорошо компилируются с помощью компилятора GNU. Затем я переключился на компилятор PGI. Но программа не удастся. Я собираю на десктопе процессор Xeon E5 с процессором 16 и двумя видеокартами, одну титановую и одну 1080.
Я тестировал со следующим простым привет миром,
#include <mpi.h>
#include <iostream>
using namespace std;
int main(int argc, char **argv){
int procid, numprocs;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &procid);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
cout << "hello world"<< endl;
MPI_Finalize();
return 0;
}
Ошибка следующая
[WorkStation:14395] [[INVALID],INVALID] ORTE_ERROR_LOG: A system-required executable either could not be found or was not executable by this user in file ../../../../../orte/mca/ess/singleton/ess_singleton_module.c at line 388
[WorkStation:14395] [[INVALID],INVALID] ORTE_ERROR_LOG: A system-required executable either could not be found or was not executable by this user in file ../../../../../orte/mca/ess/singleton/ess_singleton_module.c at line 166
--------------------------------------------------------------------------
Sorry! You were supposed to get help about:
orte_init:startup:internal-failure
But I couldn't open the help file:
/proj/pgi/linux86-64-llvm/2019/mpi/openmpi-3.1.3/share/openmpi/help-orte-runtime: No such file or directory. Sorry!
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Sorry! You were supposed to get help about:
mpi_init:startup:internal-failure
But I couldn't open the help file:
/proj/pgi/linux86-64-llvm/2019/mpi/openmpi-3.1.3/share/openmpi/help-mpi-runtime.txt: No such file or directory. Sorry!
--------------------------------------------------------------------------
*** An error occurred in MPI_Init
*** on a NULL communicator
*** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,
*** and potentially your MPI job)
[WorkStation:14395] Local abort before MPI_INIT completed completed successfully, but am not able to aggregate error messages, and not able to guarantee that all other processes were killed!
Результаты выполнения mpic ++:
/opt/pgi/linux86-64/2019/mpi/openmpi-3.1.3/bin/mpic++
Я попробовал то же самое на своем ноутбуке с такой же настройкой. Компилируется хорошо без проблем. Я начинаю задаваться вопросом, является ли причиной возникновения проблемы многопроцессорность. Поскольку у каждого GPU есть разные цели PGI, я попробовал оба -ta = tesla: cc70 и -ta = tesla: cc60. Ни то, ни другое не работает.
Я понятия не имею, как это отладить, если потребуется дополнительная информация, я могу добавить ее.