I have openmpi installed and running, but have a need to run non mpi programs (3rd party software for which I don’t have the source) together with mpi programs.

Have managed to simplify the problem down to the following


int main()


    printf(Starting JobA\n);


    printf(JobA Init done\n);



Int main()


    printf(Starting JobB\n);


And running with

mpirun -mca btl tcp,self,sm -np 1 -host lyre JobA  : -np 1 -host lyre JobB

The output is the two messages Starting …” message and then hangs.

It would appear that the MPI::Init() is waiting for all Ranks to call MPI::Init() before continuing.

Please note the above works as expected if we run either two JobAs or two JobBs. Only have a problem if there is a mixture of JobAs and JobBs.

Is there a way around this problem?

Thanks in advance Neville