Mm,

there is something wrong. I'm using two thread, the first one is bound on HWLOC_OBJ_PU number 2, the second one on  HWLOC_OBJ_PU number 10,

and 

hwloc_get_last_cpu_location() give me the same CPU index for each thread..

( machine is not SMT).

But from linux "top" command I see CPU 2 and 10 working, so bind has worked well.

2011/8/10 Samuel Thibault <samuel.thibault@inria.fr>
Gabriele Fatigati, le Wed 10 Aug 2011 15:41:19 +0200, a écrit :
> hwloc_cpuset_t set = hwloc_bitmap_alloc();
>
> int return_value = hwloc_get_last_cpu_location(topology, set,
>  HWLOC_CPUBIND_THREAD);
>
> printf( " bitmap_string: %s \n", bitmap_string[0]);
>
> give me:
>
> 0x00000800
>
> converted in binary:
>
> 100000000000
>
> So, CPU 0 I suppose,

Do you mean linear 0 or physical 0?

cpusets are always physical, 0x800 means CPU with physical number 11.

Samuel
_______________________________________________
hwloc-users mailing list
hwloc-users@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-users



--
Ing. Gabriele Fatigati

HPC specialist

SuperComputing Applications and Innovation Department

Via Magnanelli 6/3, Casalecchio di Reno (BO) Italy

www.cineca.it                    Tel:   +39 051 6171722

g.fatigati [AT] cineca.it