Mm, i'm not sure. Suppose this:

$pragma omp parallel num_thread(1)
{
hwloc_set_cpubind(*topology, set,  HWLOC_CPUBIND_THREAD | HWLOC_CPUBIND_STRICT |   HWLOC_CPUBIND_NOMEMBIND);
}

is equivalent to?

$pragma omp parallel num_thread(1)
{
hwloc_set_cpubind(*topology, set,  HWLOC_CPUBIND_THREAD);
hwloc_set_cpubind(*topology, set, HWLOC_CPUBIND_STRICT);
hwloc_set_cpubind(*topology, set, HWLOC_CPUBIND_NOMEMBIND);

}


You said HWLOC_CPUBIND_STRICT bind process and memory. Why also the memory? It should strictly design which CPU will assigned to a process/thread, or does more?

2011/8/2 Samuel Thibault <samuel.thibault@inria.fr>
Gabriele Fatigati, le Tue 02 Aug 2011 16:23:12 +0200, a écrit :
> hwloc_set_cpubind(*topology, set,  HWLOC_CPUBIND_THREAD | HWLOC_CPUBIND_STRICT
> |   HWLOC_CPUBIND_NOMEMBIND);
>
> is it possible do multiple call to hwloc_set_cpubind passing each flag per
> time? 
>
> hwloc_set_cpubind(*topology, set,  HWLOC_CPUBIND_THREAD);
> hwloc_set_cpubind(*topology, set, HWLOC_CPUBIND_STRICT);
> hwloc_set_cpubind(*topology, set, HWLOC_CPUBIND_NOMEMBIND);
>
> or only the last have effect?

Err, it will simply do the three operations, i.e. first bind the current
thread and memory, then strictly bind the whole process and memory, and
eventually bind the process but not memory (but it will still bound
since it was by the second call).

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



--
Ing. Gabriele Fatigati

Parallel programmer

CINECA Systems & Tecnologies Department

Supercomputing Group

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

www.cineca.it                    Tel:   +39 051 6171722

g.fatigati [AT] cineca.it