Le 18/08/2011 11:48, PULVERAIL Sébastien a écrit :

I use logical ids, so I do this :

 

                hwloc_obj_t cpu = hwloc_get_obj_by_type(topology, HWLOC_OBJ_PU, i);

                int err = hwloc_set_cpubind(topology, cpu->cpuset, HWLOC_CPUBIND_THREAD);

 

Is it correct ?


Yes, it looks OK. This case is easy because cpu->cpuset contains a single bit (because it's a HWLOC_OBJ_PU), so there's no need to singlify it (which would have required to allocate a temporary copy with dup() before modifying with singlify).

Brice



--

Seb

 

De : hwloc-users-bounces@open-mpi.org [mailto:hwloc-users-bounces@open-mpi.org] De la part de Brice Goglin
Envoyé : jeudi 18 août 2011 10:25
À : Hardware locality user list
Objet : Re: [hwloc-users] Bind current thread to a specific cpu

 

Are you talking about logical ids (the one given by hwloc) or physical/OS ids (the one given by the OS and possibly in strange order) ? You should avoid using physical ids, but...

If logical, you can hwloc_get_obj_by_type() to get the corresponding object, then use its ->cpuset.

If physical, you just need a cpuset that contains the bit corresponding to this id. You can use hwloc_bitmap_only(set, <id>) to reset a (previously allocated) cpuset to nothing but this id.

Brice



Le 18/08/2011 10:10, PULVERAIL Sébastien a écrit :

Hi,

 

I’m looking for a function that allows to bind the current thread to a specific cpu given by its id.

 

I found the function hwloc_set_thread_cpubind to bind a thread to a cpuset.

I also found the function hwloc_bitmap_singlify to keep only one index in the cpuset.

But I didn’t found anything to only keep the cpu I need in my cpuset…


Is it possible ?

 

--

Seb

 

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

 

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