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

JobA

int main()

{

    printf(Starting JobA\n);

    MPI::Init();

    printf(JobA Init done\n);

}

JobB

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