On Apr 10, 2018, at 9:03 AM, Michael Di Domenico <mdidomeni...@gmail.com> wrote:
>> We've actually been arguing about exactly how to do this for quite a while.  
>> It's complicated (I can explain further, if you care).  :-\
> i have no doubt its complicated.  i'm not overly interested in the
> detail, but others i'm sure might be.  

The crux of the issue is that there can be/are multiple ways to reach the same 
underlying transport via Open MPI.  E.g., you can use InfiniBand via the openib 
BTL, the UCX PML, the Yalla PML, the hcoll collectives, ...etc.  This results 
in a challenging UI issue: how do you have a simple yet flexible UI that allows 
users to choose *which* way they want to reach a given underlying transport, 
and for which cases?

We have the "mca" run-time parameters, and it's quite flexible.  But it's not 
simple for end users, especially if you don't know Open MPI's myriad of 
underlying framework and component names.

> but my users will complain and ask questions.

Understood / agreed.

> achieving a single build binary where i can disable the
> interconnects/libraries at runtime would be HIGHLY beneficial to me
> (perhaps others as well).  it cuts my build version combinations from
> like 12 to 4 (or less), that's a huge reduction in labour/maintenance.
> which also means i can upgrade openmpi quicker and stay more up to
> date.


>> That being said, I think we *do* have a workaround that might be good enough 
>> for you: disable those warnings about plugins not being able to be opened:
>> mpirun --mca mca_component_show_load_errors 0 ...
> disabled this: mca_base_component_repository_open: unable to open
> mca_oob_ud: libibverbs.so.1
> but not this: pmix_mca_base_component_repository_open: unable to open
> mca_pnet_opa: libpsm2.so.2

Ahh, missed that one.

Short version: set the environment variable 
PMIX_MCA_mca_component_show_load_errors=0, too.

More detail:

We actually embed the PMIx library in Open MPI.  PMIx was derived from some of 
the core guts of Open MPI (including the MCA parameter/run-time variable 
system), so it has its own MCA params.  They propagate *slightly* differently 
then OMPI (for reasons that aren't interesting here), so you can't use "--mca 
foo bar" to set them on the mpirun command line.  But you can set an env 
variable, like I showed above, and it should do the trick for you.

But this raises an interesting point: we should be automatically setting this 
PMIX variable for you based on Open MPI's mca_component_show_load_errors' 
value.  I filed https://github.com/open-mpi/ompi/pull/5049 to get this into a 
future release.

Jeff Squyres

users mailing list

Reply via email to