Le 29/06/2010 11:15, bgog...@osl.iu.edu a écrit :
> Author: bgoglin
> Date: 2010-06-29 05:15:57 EDT (Tue, 29 Jun 2010)
> New Revision: 2257
> URL: https://svn.open-mpi.org/trac/hwloc/changeset/2257
>
> Log:
> Add hwloc_get_distances() which returns a matrix of distances
> for the given type.
>   

Some notes about all this:
* The matrix that I keep inside the topology is ordered by os_indexes
since logical indexes may change later in the discovery (depending on
the matrix itself, when we group according to distances)
* I am recomputing the logically-ordered matrix on demand, but we could
also recompute it once at the end of the discovery
* The matrix is manipulated as a mix of unsigned[nbobjs*nbobjs] and
unsigned[nbobjs][nbobjs]. I don't the rules well enough to be sure it's
safe :)
* I only handle NUMA distances so far. No other type is supported while
the grouping code also computes the distance between groups of NUMA
nodes (or groups of groups). It's difficult to store matrices for random
types of objects since there could be multiple matrices for a single
type (different levels of NUMA groups, ...) and the depth of these might
vary later in the discovery (if we insert another level of group above
the current one, or some misc objects?). A good solution might be to
attach matrices to the topology using an identifier such as Type +
Type-specific depth (NUMANode, or Group#0, Group#1, L2Cache, ...). Needs
some work... Having such a unique level identifier might be good for
other reasons.
* I wonder if the current code works if the NUMA physical indexes are
non-contigous

Brice

Reply via email to