Le 08/05/2012 14:33, Hendryk Bockelmann a écrit :
> Hello,
>
> I just ran into trouble using hwloc_get_last_cpu_location on our
> POWER6 cluster with AIX6.1
> My plan is to find out if the binding of the job-scheduler was correct
> for MPI-tasks and OpenMP-threads. This is what I want to use:
>
> support = hwloc_topology_get_support(topology);
> ret = hwloc_get_cpubind(topology, set, HWLOC_CPUBIND_THREAD);
> if (support->cpubind->get_thisthread_cpubind) {
>   hwloc_bitmap_asprintf(&str, set);
>   printf("--> cpuset (thread %d) is %s \n",omp_get_thread_num(),str);
> }
> if (support->cpubind->get_thisthread_last_cpu_location) {
>   ret = hwloc_set_cpubind(topology, set, HWLOC_CPUBIND_THREAD);
>   last = hwloc_bitmap_alloc();
>   ret = hwloc_get_last_cpu_location(topology,last,HWLOC_CPUBIND_THREAD);
>   hwloc_bitmap_asprintf(&str, last);
>   printf("--> cpu_loca (thread %d) is %s \n",omp_get_thread_num(),str);
> }
>
> this is what I found in src/tests/hwloc_get_last_cpu_location.c
>
> Running this on my local linux machine gives e.g.:
>
> --> cpuset (thread 1) is 0x00000005
> --> cpuset (thread 0) is 0x00000005
> --> cpu_loca (thread 0) is 0x00000004
> --> cpu_loca (thread 1) is 0x00000001
>
> hence, (support->cpubind->get_thisthread_cpubind) and
> (support->cpubind->get_thisthread_last_cpu_location) are both true
>
> but on the AIX cluster I just get:
>
> --> cpuset (thread 0) is 0x00000003
> --> cpuset (thread 1) is 0x00000003
>
> hence, (support->cpubind->get_thisthread_last_cpu_location) is false.
> Now the question is whether this is related to my install of
> hwloc-1.4.1 or a general problem on AIX?

Hello,
get_last_cpu_location is currently not implemented on AIX. There's a
TODO in the code saying that we should use AIX "mycpu". The main problem
with hwloc on AIX is that none of us has access to a AIX machine anymore.
Brice

Reply via email to