> 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!