Open MPI logo

Hardware Locality Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Hardware Locality Development mailing list

Subject: Re: [hwloc-devel] merging plugins?
From: Brice Goglin (Brice.Goglin_at_[hidden])
Date: 2012-09-25 04:17:35


Le 25/09/2012 09:49, Samuel Thibault a écrit :
> One thing which can be confusing for the user is that core_linux goes
> to the core os list while core_libpci goes to the additional list. It
> would probably be better to use a different class name. I actually don't
> currently understand what classes are used for.

The class name was initially used to distinguish between normal (core)
plugins and xml backends. It may be possible to completely remove it now
that component struct have a type, I'll check.

We have the "core_xml" component (generic xml support) and "xml_libxml"
+ "xml_nolibxml" backends behind that. I am fine with removing the
"core_" prefix, but I wonder if we should keep the "xml_" prefix for the
latter.

We should hide xml backends/plugins as much as possible in the doc, we
have old env variables to deal with those, no need to tell people that
the way it works changed internally.

> "expensive" was just an example of what makes loading it by default a
> bad idea. We can't invent a thorough list of such things, so I'd say
> plugins could rather just enable a "default_load" flag or not

Works for me.

>> And a syntax such as pci,^servet to select manually.
> Why a ^?

This was for Jeff :)
When you specify which components to use in OMPI, you pass a
comma-separated list, and ^ is a negation.

>> There's currently no way to prevent two PCI backends to be used
>> simultaneously. Might use another flag so that only the first one
>> (libpci) or a specific one (env var) is enabled.
> Well, perhaps we should rather define well-known names which act as
> exclusion points and document them. I.e. what is currently called
> "core os" should perhaps actually be an "os" exclusion point, while
> core_libpci would use the "pci" exclusion point, and another pci
> detection plugin would use the same exclusion point. Priorities can then
> be used among plugins of the same exclusion point to sort out which one
> should be used.
>
> Actually, the current core os plugins should perhaps be split into a
> "bind" exclusion point and a "cpu" exclusion point. One issue I had with
> linuxx86 is that I need the part that provides binding functions, but
> not the part which provides the cpu detection. And it will be the same
> in other OSes. Also, loading another plugin for "bind" operations can
> make sense.
>

I can easily extend the current code to move pci components out of the
additional list, make a dedicated list and pick one based on
priority/envvar.

I need to look deeper to see if the bind stuff can be made similar.

Brice