Skip to content

Commit

Permalink
Doc: Make Norm communication asynchronous (#1221)
Browse files Browse the repository at this point in the history
  • Loading branch information
rasolca committed Dec 4, 2024
1 parent ec2c41d commit 38ec468
Show file tree
Hide file tree
Showing 7 changed files with 193 additions and 171 deletions.
56 changes: 29 additions & 27 deletions master/auxiliary_2norm_2api_8h_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -92,39 +92,41 @@
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">//</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;<a class="code" href="communicator__grid_8h.html">dlaf/communication/communicator_grid.h</a>&gt;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &lt;<a class="code" href="matrix_8h.html">dlaf/matrix/matrix.h</a>&gt;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &lt;<a class="code" href="types_8h.html">dlaf/types.h</a>&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">namespace </span>dlaf::auxiliary::internal {</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;pika/execution.hpp&gt;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &lt;<a class="code" href="communicator__grid_8h.html">dlaf/communication/communicator_grid.h</a>&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;<a class="code" href="matrix_8h.html">dlaf/matrix/matrix.h</a>&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;<a class="code" href="types_8h.html">dlaf/types.h</a>&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="keyword">template</span> &lt;Backend backend, Device device, <span class="keyword">class</span> T&gt;</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="structdlaf_1_1auxiliary_1_1internal_1_1_norm.html"> 19</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structdlaf_1_1auxiliary_1_1internal_1_1_norm.html">Norm</a> {};</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div>
<div class="foldopen" id="foldopen00022" data-start="{" data-end="};">
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="structdlaf_1_1auxiliary_1_1internal_1_1_norm_3_01_backend_1_1_m_c_00_01_device_1_1_c_p_u_00_01_t_01_4.html"> 22</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structdlaf_1_1auxiliary_1_1internal_1_1_norm.html">Norm</a>&lt;Backend::MC, Device::CPU, T&gt; {</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">static</span> dlaf::BaseType&lt;T&gt; max_L(<a class="code hl_class" href="classdlaf_1_1comm_1_1_communicator_grid.html">comm::CommunicatorGrid</a>&amp; comm_grid, <a class="code hl_class" href="classdlaf_1_1common_1_1_index2_d.html">comm::Index2D</a> rank,</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> Matrix&lt;const T, Device::CPU&gt;&amp; matrix);</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">static</span> dlaf::BaseType&lt;T&gt; max_G(<a class="code hl_class" href="classdlaf_1_1comm_1_1_communicator_grid.html">comm::CommunicatorGrid</a>&amp; comm_grid, <a class="code hl_class" href="classdlaf_1_1common_1_1_index2_d.html">comm::Index2D</a> rank,</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> Matrix&lt;const T, Device::CPU&gt;&amp; matrix);</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span>};</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="keyword">namespace </span>dlaf::auxiliary::internal {</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">template</span> &lt;Backend backend, Device device, <span class="keyword">class</span> T&gt;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="structdlaf_1_1auxiliary_1_1internal_1_1_norm.html"> 21</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structdlaf_1_1auxiliary_1_1internal_1_1_norm.html">Norm</a> {};</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div>
<div class="foldopen" id="foldopen00024" data-start="{" data-end="};">
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="structdlaf_1_1auxiliary_1_1internal_1_1_norm_3_01_backend_1_1_m_c_00_01_device_1_1_c_p_u_00_01_t_01_4.html"> 24</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structdlaf_1_1auxiliary_1_1internal_1_1_norm.html">Norm</a>&lt;Backend::MC, Device::CPU, T&gt; {</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">static</span> pika::execution::experimental::unique_any_sender&lt;dlaf::BaseType&lt;T&gt;&gt; max_L(</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_class" href="classdlaf_1_1comm_1_1_communicator_grid.html">comm::CommunicatorGrid</a>&amp; comm_grid, <a class="code hl_class" href="classdlaf_1_1common_1_1_index2_d.html">comm::Index2D</a> rank, Matrix&lt;const T, Device::CPU&gt;&amp; matrix);</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">static</span> pika::execution::experimental::unique_any_sender&lt;dlaf::BaseType&lt;T&gt;&gt; max_G(</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <a class="code hl_class" href="classdlaf_1_1comm_1_1_communicator_grid.html">comm::CommunicatorGrid</a>&amp; comm_grid, <a class="code hl_class" href="classdlaf_1_1common_1_1_index2_d.html">comm::Index2D</a> rank, Matrix&lt;const T, Device::CPU&gt;&amp; matrix);</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span>};</div>
</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment">// ETI</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#define DLAF_NORM_ETI(KWORD, DATATYPE) KWORD template struct Norm&lt;Backend::MC, Device::CPU, DATATYPE&gt;;</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span>DLAF_NORM_ETI(<span class="keyword">extern</span>, <span class="keywordtype">float</span>)</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>DLAF_NORM_ETI(<span class="keyword">extern</span>, <span class="keywordtype">double</span>)</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>DLAF_NORM_ETI(<span class="keyword">extern</span>, std::complex&lt;float&gt;)</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span>DLAF_NORM_ETI(<span class="keyword">extern</span>, std::complex&lt;double&gt;)</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span>}</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment">// ETI</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#define DLAF_NORM_ETI(KWORD, DATATYPE) KWORD template struct Norm&lt;Backend::MC, Device::CPU, DATATYPE&gt;;</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>DLAF_NORM_ETI(<span class="keyword">extern</span>, <span class="keywordtype">float</span>)</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span>DLAF_NORM_ETI(<span class="keyword">extern</span>, <span class="keywordtype">double</span>)</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span>DLAF_NORM_ETI(<span class="keyword">extern</span>, std::complex&lt;float&gt;)</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span>DLAF_NORM_ETI(<span class="keyword">extern</span>, std::complex&lt;double&gt;)</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>}</div>
<div class="ttc" id="aclassdlaf_1_1comm_1_1_communicator_grid_html"><div class="ttname"><a href="classdlaf_1_1comm_1_1_communicator_grid.html">dlaf::comm::CommunicatorGrid</a></div><div class="ttdef"><b>Definition</b> communicator_grid.h:37</div></div>
<div class="ttc" id="aclassdlaf_1_1common_1_1_index2_d_html"><div class="ttname"><a href="classdlaf_1_1common_1_1_index2_d.html">dlaf::common::Index2D&lt; IndexT_MPI, TAG_MPI &gt;</a></div></div>
<div class="ttc" id="acommunicator__grid_8h_html"><div class="ttname"><a href="communicator__grid_8h.html">communicator_grid.h</a></div></div>
<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div></div>
<div class="ttc" id="astructdlaf_1_1auxiliary_1_1internal_1_1_norm_html"><div class="ttname"><a href="structdlaf_1_1auxiliary_1_1internal_1_1_norm.html">dlaf::auxiliary::internal::Norm</a></div><div class="ttdef"><b>Definition</b> api.h:19</div></div>
<div class="ttc" id="astructdlaf_1_1auxiliary_1_1internal_1_1_norm_html"><div class="ttname"><a href="structdlaf_1_1auxiliary_1_1internal_1_1_norm.html">dlaf::auxiliary::internal::Norm</a></div><div class="ttdef"><b>Definition</b> api.h:21</div></div>
<div class="ttc" id="atypes_8h_html"><div class="ttname"><a href="types_8h.html">types.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
Expand Down
Loading

0 comments on commit 38ec468

Please sign in to comment.