Open MPI logo

Hardware Locality Development Mailing List Archives

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

Subject: Re: [hwloc-devel] roadmap
From: Brice Goglin (Brice.Goglin_at_[hidden])
Date: 2010-09-22 08:09:27

Le 22/09/2010 13:36, Jeff Squyres a écrit :
> On Sep 22, 2010, at 4:38 AM, Brice Goglin wrote:
>> There are still some problems to solve in the membind branch:
>> * Some OS bind the process too when you bind memory. I see the following
>> solutions:
>> + Add a flag such as HWLOC_MEMBIND_EVEN_IF_FAR_FROM_PROCESS so that
>> the user can explicitly refuse memory binding if it may break process
>> binding
>> + Drop hwloc_set_membind on these OSes and add a
>> hwloc_set_cpumembind() to bind both
>> + Make both process and memory binding do nothing if the STRICT flag
>> is given. But I'd rather not play too much with this flag.
>> + Drop support for memory binding on these OS.
>> + Drop these OS.
> What OS's are you specifically referring to?

IIRC, it was AIX and Solaris.

> How about adding a query function that says what will happen for hwloc_set_membind()

I like it, we can put this in the output of hwloc_topology_get_support.

I wonder if there are some other cases where the STRICT flag could be
dropped in favor of such an informative stuff.

> Just curious -- on these OS's, what happens if you:
> - bind proc to A
> - bind memory to B (which then also re-binds proc to B)
> - re-bind proc to A
> Is the memory binding then lost?

I'll let Samuel comment on this.

>> * cpuset and nodeset structures are the same, they are both manipulated
>> with hwloc_cpuset_foo functions. So maybe rename into hwloc_set_t and
>> hwloc_set_foo functions. With #define and aliases to not break API/ABIs.
> I'm in favor of this -- it would end the overloading of the term "cpuset" between hwloc and cpuset.

hwloc_set_*? hwloc_objset* ? Anything better?

hwloc_set_* might not be the best since we would have a hwloc_set_set()
function to set one bit :)

By the way, hwloc_cpuset_cpu() and hwloc_cpuset_all_but_cpu() should be
renamed too. hwloc_set_onlyone() and hwloc_set_allbutone() maybe?