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