📄 55.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> body { font-family: Verdana, Arial, Helvetica, sans-serif;} a.at-term { font-style: italic; } </style> <title>Collective Communication</title> <meta name="Generator" content="ATutor"> <meta name="Keywords" content=""></head><body> <p>In addition to the basic send and receive routines, the MPI standard defines a set of <em><a href="../glossary.html#Collective+communication" target="body" class="at-term">collective communication</a></em> routines that allow data to be sent/collected to groups of processors.</p>
<!--<br>
<blockquote>
<h3>Collective Communication</h3>
</blockquote>
<blockquote>
<blockquote>Communication involving a group of processes</blockquote>
</blockquote>-->
While much of the functionality can be accomplished with the basic send and receive routines, the collective routines provide an efficient method from a source code standpoint as well as the potential for efficient performance. Since the interface to the collective routines is standardized and the
implementation is left up to the vendor, the MPI installations are likely optimized for the hardware.</p>
<p>Some examples of collective communication routines provided by MPI:</p>
<ul>
<li>
Broadcast, scatter, gather (data distribution)</li>
<li>
Global sum, global maximum, etc. (collective operations)</li>
<li>
Barrier synchronization</li>
</ul>
<p>In the previous example problems, we learned how to use the logic of the programming language to control which processes would call the send and receive routines. In a given run, only one process from the communicator called the send or receive. With collective communications, the routines are called by all of the processes in the communicator.</p>
<p>Also with collective communication routines, the argument list is different from that for the point-to-point communication calls. While many of the reasons are beyond the scope of this short review, collective routines do not utilize tags and only the root process is identified in the argument list.</p>
<h3>Characteristics of Collective Communication</h3>
<ul>
<li>
Collective communication will not interfere with point-to-point communication
and vice versa</li>
<li>
All processes must call the collective routine</li>
<li>
Synchronization not guaranteed (except for barrier)</li>
<li>
No tags</li>
<li>
Receive buffers must be exactly the right size</li>
</ul></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -