Open MPI logo

Hardware Locality Users' Mailing List Archives

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

Subject: Re: [hwloc-users] hwloc on systems with more than 64 cpus?
From: Brice Goglin (Brice.Goglin_at_[hidden])
Date: 2010-05-17 01:37:58


On 17/05/2010 00:23, Jirka Hladky wrote:
>
> Hi Brice,
>
> thanks a lot for the clarification!
>
> I got access to 64 cores system and you are indeed right! There is
> however an issue that taskset does not support 0x80000000,0x0 format.
>
> taskset 0x80000000,0x0 sleep 100
>
> failed to parse CPU mask 0x80000000,0x0
>
> However,
>
> taskset 0x8000000000000000 sleep 100
>
> works fine:-)
>
> Can I suggest an enhancement to hwloc to support taskset format?
> taskset is currently standard utility to set CPU affinity. Some
> colleagues of mine don't want to switch to hwloc-bind yet, so
> supporting taskset format would be great. You can certainly get around
> with
>
> hwloc-calc --proclist --physical 0x80000000,0x0
>
> but it will make unnecessarily complex.
>
> Could you either add new option --cpuset-taskset-compatible or perhaps
> change --cpuset output from 0x80000000,0x0
>
> to 0x8000000000000000 ?
>
>

What does taskset format look like when you want the 128th CPUs ? Does
it change if you switch from a 32bits architecture to a 64bits
architecture ?

We have chosen the aforementioned cpuset string format so that it does
not depend on the architecture. It makes XML files re-usable from one
machine to another for instance (which is exactly the main point of
exporting XML files, by the way).

If we want to support taskset format, I think adding an option to lstopo
wouldn't be enough since some people might want the same option in
hwloc-distrib or hwloc-calc. So we'd end up adding a new API function.
And then somebody else will ask for support for another external tool
and we'd add another dedicated API.

The real question is: why do you still want to use taskset ? hwloc-bind
should do everything taskset does, and it also support cpusets as
"node:2.proc:1" or "proc:23-35".

Brice