1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Hardware Locality (hwloc): hwloc_distances_s Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Hardware Locality (hwloc)<span id="projectnumber"> 2.12.2</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
<div class="headertitle"><div class="title">hwloc_distances_s Struct Reference<div class="ingroups"><a class="el" href="a00188.html">Retrieve distances between objects</a></div></div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="a00107_source.html">distances.h</a>></code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:a4ca2af858cebbce7324ec49903d09474" id="r_a4ca2af858cebbce7324ec49903d09474"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#a4ca2af858cebbce7324ec49903d09474">nbobjs</a></td></tr>
<tr class="separator:a4ca2af858cebbce7324ec49903d09474"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af1e78b2d628d191fa6cae3fbfe891078" id="r_af1e78b2d628d191fa6cae3fbfe891078"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00165.html#ga79b8ab56877ef99ac59b833203391c7d">hwloc_obj_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#af1e78b2d628d191fa6cae3fbfe891078">objs</a></td></tr>
<tr class="separator:af1e78b2d628d191fa6cae3fbfe891078"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aef9c83cf467da1b1fa4c36493febb3b5" id="r_aef9c83cf467da1b1fa4c36493febb3b5"><td class="memItemLeft" align="right" valign="top">unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#aef9c83cf467da1b1fa4c36493febb3b5">kind</a></td></tr>
<tr class="separator:aef9c83cf467da1b1fa4c36493febb3b5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae43e19b2c743de05c93d71a30beaca75" id="r_ae43e19b2c743de05c93d71a30beaca75"><td class="memItemLeft" align="right" valign="top">hwloc_uint64_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00292.html#ae43e19b2c743de05c93d71a30beaca75">values</a></td></tr>
<tr class="separator:ae43e19b2c743de05c93d71a30beaca75"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Matrix of distances between a set of objects. </p>
<p>The most common matrix contains latencies between NUMA nodes (as reported in the System Locality Distance Information Table (SLIT) in the ACPI specification), which may or may not be physically accurate. It corresponds to the latency for accessing the memory of one node from a core in another node. The corresponding kind is <a class="el" href="a00188.html#ggab1bb10d3adb85b52cdc6fe5a7f74f108afd6a3503fbc8f7c1a31235373cefc4c6" title="Distance values are similar to latencies between objects. Values are smaller for closer objects,...">HWLOC_DISTANCES_KIND_MEANS_LATENCY</a> | <a class="el" href="a00188.html#ggab1bb10d3adb85b52cdc6fe5a7f74f108a0148d7f9be833a04f5a55455437c227b" title="These distances were provided by the user.">HWLOC_DISTANCES_KIND_FROM_USER</a>. The name of this distances structure is "NUMALatency".</p>
<p>The matrix may also contain bandwidths between random sets of objects, possibly provided by the user, as specified in the <code>kind</code> attribute. Others common distance structures include and "XGMIBandwidth", "XGMIHops", "XeLinkBandwidth" and "NVLinkBandwidth".</p>
<p>Pointers <code>objs</code> and <code>values</code> should not be replaced, reallocated, freed, etc. However callers are allowed to modify <code>kind</code> as well as the contents of <code>objs</code> and <code>values</code> arrays. For instance, if there is a single NUMA node per Package, <a class="el" href="a00180.html#gab5df3ad1e8565ea0c2cf06412f6f6233" title="Return an object of a different type with same locality.">hwloc_get_obj_with_same_locality()</a> may be used to convert between them and replace NUMA nodes in the <code>objs</code> array with the corresponding Packages. See also <a class="el" href="a00188.html#gabcadd041f3072999d68f2d94e38670f7" title="Apply a transformation to a distances structure.">hwloc_distances_transform()</a> for applying some transformations to the structure. </p>
</div><h2 class="groupheader">Field Documentation</h2>
<a id="aef9c83cf467da1b1fa4c36493febb3b5" name="aef9c83cf467da1b1fa4c36493febb3b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef9c83cf467da1b1fa4c36493febb3b5">◆ </a></span>kind</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned long hwloc_distances_s::kind</td>
</tr>
</table>
</div><div class="memdoc">
<p>OR'ed set of <a class="el" href="a00188.html#gab1bb10d3adb85b52cdc6fe5a7f74f108" title="Kinds of distance matrices.">hwloc_distances_kind_e</a>. </p>
</div>
</div>
<a id="a4ca2af858cebbce7324ec49903d09474" name="a4ca2af858cebbce7324ec49903d09474"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ca2af858cebbce7324ec49903d09474">◆ </a></span>nbobjs</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned hwloc_distances_s::nbobjs</td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of objects described by the distance matrix. </p>
</div>
</div>
<a id="af1e78b2d628d191fa6cae3fbfe891078" name="af1e78b2d628d191fa6cae3fbfe891078"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1e78b2d628d191fa6cae3fbfe891078">◆ </a></span>objs</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00165.html#ga79b8ab56877ef99ac59b833203391c7d">hwloc_obj_t</a>* hwloc_distances_s::objs</td>
</tr>
</table>
</div><div class="memdoc">
<p>Array of objects described by the distance matrix. These objects are not in any particular order, see <a class="el" href="a00189.html#gaef9d6bb018286de69f8ac023129805aa" title="Find the index of an object in a distances structure.">hwloc_distances_obj_index()</a> and <a class="el" href="a00189.html#ga29b891f8737ce5b35495240d977ac2c2" title="Find the values between two objects in a distance matrices.">hwloc_distances_obj_pair_values()</a> for easy ways to find objects in this array and their corresponding values. </p>
</div>
</div>
<a id="ae43e19b2c743de05c93d71a30beaca75" name="ae43e19b2c743de05c93d71a30beaca75"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae43e19b2c743de05c93d71a30beaca75">◆ </a></span>values</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">hwloc_uint64_t* hwloc_distances_s::values</td>
</tr>
</table>
</div><div class="memdoc">
<p>Matrix of distances between objects, stored as a one-dimension array. </p>
<p>Distance from i-th to j-th object is stored in slot i*nbobjs+j. The meaning of the value depends on the <code>kind</code> attribute. </p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="a00107_source.html">distances.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>
|