Ok Brice,
thanks very much for your explanations. But I don't understand why a process inherits core bound of his threads according to your example:
>It worked because you never mixed it with single thread binding. If
you bind process X to >coreA and then thread Y of process X to coreB,
what you should now see with get_cpubind is >that process X is now
bound to cores A+B, thread Y to B, and all other threads to A.
Le 12/09/2011 14:17, Gabriele Fatigati a écrit :
> Mm, and why? In a hybrid code ( MPI + OpenMP), my idea is to bind aThe usual way to do that is to first bind the entire process to all
> single MPI process in one core, and his threads in other cores.
> Otherwise I have all threads that runs on a single core.
>
cores available to all its thread and then bind each thread to a single
core.
For instance, if doing Open MPI + OpenMP with one process per socket
* you pass --bind-to-socket on the mpirun/mpiexec command-line
* when the MPI process starts, the OpenMP runtime calls something like
get_cpubind to find out how many cores were given to it
* it creates the exact same number of OpenMP threads and bind one of
them on each core
Brice
_______________________________________________
hwloc-users mailing list
hwloc-users@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-users