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

 채택된 답변

Juraj
Juraj 2016년 10월 12일
편집: Walter Roberson 2017년 10월 28일

0 개 추천

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Performance and Memory에 대해 자세히 알아보기

질문:

2016년 9월 29일

편집:

2017년 10월 28일

Community Treasure Hunt

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

Start Hunting!

Translated by