On Sunday 08 July 2007 08:22:04 pm Neville Clark wrote: > 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. This is correct. You cannot run both mpi and non-mpi processes like this together. The best you can do is run mpirun twice.
Hope this helps, Tim > > 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