I am trying to run parallel code which is designed in the following way: I launch multiple MPI processes where only one of them (master) calls matlab script which further calls mex function in which I want to set-up MPI communication with the rest of the processes launched at the beginning. However, I am getting a MPI runtime error:
It looks like MPI_INIT failed for some reason; your parallel process is
likely to abort. There are many reasons that a parallel process can
fail during MPI_INIT; some of which are due to configuration or environment
problems. This failure appears to be an internal failure; here's some
additional information (which may only be relevant to an Open MPI
developer):
ompi_mpi_init: ompi_rte_init failed
--> Returned "(null)" (-43) instead of "Success" (0)
Does anybody have experience with similar approach? Is it possible to use MEX function and MPI together? I am using openmpi-2.0.0 and R2014b
The Matlab/C/Mex code is here: https://github.com/goghino/matlabMpiC

 Akzeptierte Antwort

Juraj
Juraj am 12 Okt. 2016
Bearbeitet: Walter Roberson am 28 Okt. 2017

0 Stimmen

THIS APPROACH DOES NOT WORK!!!!!
The blocker is that a child cannot call MPI_Init() if its parent already called MPI_Init()
Fortunatly, there are some options (which I have not tried):-)
1) MPI_Comm_spawn matlab
master can MPI_Comm_spawn() matlab, and then matlab can merge the parent communicator, and communicate to master and slaves

Weitere Antworten (0)

Kategorien

Mehr zu Performance and Memory finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 29 Sep. 2016

Bearbeitet:

am 28 Okt. 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by