Hi PGI Users!
When I try to run a simple code using the OpenMPI bundled with PGI installer (18.4 community edition) without mpiexec I got the following error:
./test_F08
[bandera:01209] [[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 458
[bandera:01209] [[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/2018/mpi/openmpi-2.1.2/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/2018/mpi/openmpi-2.1.2/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)
[bandera:1209] 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!
I do not get this error using other compilers (gcc, Intel) and OpenMPI.
When I use mpiexec the program runs ok.
My workflow (Cmake) expects that simple MPI programs can be executed without mpiexec in order to properly set up the appropriate libraries.
Here is an example code, it works with intel + OpenMPI with and without mpiexec, but it fails with PGI and the bundled OpenMPI without mpiexec:
program main
use mpi_f08
implicit none
integer :: rank, size, len
character(len=MPI_MAX_LIBRARY_VERSION_STRING) :: version
call MPI_INIT()
call MPI_COMM_RANK(MPI_COMM_WORLD, rank)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size)
call MPI_GET_LIBRARY_VERSION(version, len)
print *, "rank:", rank
print *, "size:",size
print *, "version: "//version
print *, ' No Errors'
call MPI_FINALIZE()
end
Is there a way to run simple MPI programs with PGI without using mpiexec?
Thank you very much for your help,
Best regards,
Hector