Hello,

FWIW: the reason you have to use PML_CALL() is by design. The MPI API has all the error checking stuff for ensuring that MPI_INIT completed, error checking of parameters, etc. We never invoke the top-level MPI API from elsewhere in the OMPI code base (except for from within ROMIO; we didn't want to wholesale changes to that package because it would make for extreme difficulty every time we imported a new version). There's fault tolerance reasons why it's not good to call back up to the top level MPI API, too.

ok, this is obvious. The PML_CALL() works, but the OpenIB problem (also discovered without component in a regular MPI program) makes them very slow and they fail with too many processes.

But I agree with Andrew; if this is init-level stuff that is not necessary to be exchanged on a per-communicator basis, then the modex is probably your best bet. Avoid using the RML directly if possible.

I'm now using OOB during module-init. When the OpenIB issue will be fixed, I'll try to switch back to PML_SEND(). The use of Modex would require an architectural change...

Thanks for your help!
Georg.

Reply via email to