426 lines
30 KiB
HTML
Executable File
426 lines
30 KiB
HTML
Executable File
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
|
<title>MPI On Cell (Documentation): Point-to-Point Communication</title>
|
|
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
|
|
<link href="../../tabs.css" rel="stylesheet" type="text/css">
|
|
</head><body>
|
|
<!-- Generated by Doxygen 1.5.6 -->
|
|
<div class="navigation" id="top">
|
|
<div class="tabs">
|
|
<ul>
|
|
<li><a href="../../main.html"><span>Main Page</span></a></li>
|
|
<li><a href="../../modules.html"><span>Modules</span></a></li>
|
|
<li><a href="../../annotated.html"><span>Data Structures</span></a></li>
|
|
<li><a href="../../files.html"><span>Files</span></a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="contents">
|
|
<h1>Point-to-Point Communication<br>
|
|
<small>
|
|
[<a class="el" href="../../dc/dc0/group__internal__main.html">Developer Documentation</a>]</small>
|
|
</h1>
|
|
<p>
|
|
<div class="dynheader">
|
|
Collaboration diagram for Point-to-Point Communication:</div>
|
|
<div class="dynsection">
|
|
<center><table><tr><td><img src="../../d8/d88/group__internal__p2p__main.png" border="0" alt="" usemap="#d8/d87/d8_2d88_2group____internal____p2p____main_map">
|
|
<map name="d8/d87/d8_2d88_2group____internal____p2p____main_map">
|
|
<area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html" title="Functions wrapping DMA-Transfers." alt="" coords="484,5,636,32"><area shape="rect" href="../../de/db4/group__internal__p2p__blocking.html" title="Internals about blocking Point-to-Point Communication." alt="" coords="477,56,643,83"><area shape="rect" href="../../d7/d41/group__internal__p2p__imm.html" title="Internals about non-blocking communication." alt="" coords="464,107,656,133"><area shape="rect" href="../../dc/dc0/group__internal__main.html" title="This section deals with the internal design and functionality." alt="" coords="5,56,173,83"></map></td></tr></table></center>
|
|
</div>
|
|
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
|
Internals about Point-to-Point Communication.
|
|
<p>
|
|
|
|
<p>
|
|
<table border="0" cellpadding="0" cellspacing="0">
|
|
<tr><td></td></tr>
|
|
<tr><td colspan="2"><br><h2>Modules</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/de2/group__internal__p2p__dma.html">DMA-Helper Functions</a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Functions wrapping DMA-Transfers. <br></td></tr>
|
|
|
|
<p>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/db4/group__internal__p2p__blocking.html">Blocking Communication</a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internals about blocking Point-to-Point Communication. <br></td></tr>
|
|
|
|
<p>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d41/group__internal__p2p__imm.html">Non-Blocking Communication</a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internals about non-blocking communication. <br></td></tr>
|
|
|
|
<p>
|
|
<tr><td colspan="2"><br><h2>Internal shared functions</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/group__internal__p2p__main.html#g8980da77fa506e9a6d503c8c6eba68e2">IMOC_get_entry</a> (int source, int tag, <a class="el" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767">MOC_Comm</a> comm, int isSpecial, <a class="el" href="../../dd/d7a/structMOC__Status__struct.html">MOC_Status</a> *status)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the next valid message-envelope from "source" with specified "tag" and "comm". <a href="#g8980da77fa506e9a6d503c8c6eba68e2"></a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/group__internal__p2p__main.html#g2a948cdecce651ae6cc1b0c0ddb1b750">IMOC_getFreeEntry</a> (<a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a> *pqueue, uint8_t tag, <a class="el" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767">MOC_Comm</a> comm, int isSpecial, int *index)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get next free entry in message-queue (a local copy of the message-queue has to be used). <a href="#g2a948cdecce651ae6cc1b0c0ddb1b750"></a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/group__internal__p2p__main.html#g409bdbea503611cf04829413d15830df">IMOC_getFreeMID</a> (int *mid)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get free message-ID. <a href="#g409bdbea503611cf04829413d15830df"></a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/group__internal__p2p__main.html#g8675f9552168f2dd8926cad5ac00be69">IMOC_waitForMessageCompletion</a> (uint8_t mid)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Wait till message with message-ID mid has been received. <a href="#g8675f9552168f2dd8926cad5ac00be69"></a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/group__internal__p2p__main.html#g2e74930cd8e161a131b90f2f1081037a">IMOC_testForMessageCompletion</a> (uint8_t mid, uint8_t *status)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Tests if message with message-ID mid has been received. <a href="#g2e74930cd8e161a131b90f2f1081037a"></a><br></td></tr>
|
|
<tr><td colspan="2"><br><h2>Internal constants</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/group__internal__p2p__main.html#ge9f5f9bdfa51d7683fbe312d4a667afd">MEMCPY_GET_TRESHOLD</a> 156</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Defines a treshold, when to use memcpy and when to use DMA in a get-operation on the PPU. <a href="#ge9f5f9bdfa51d7683fbe312d4a667afd"></a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/group__internal__p2p__main.html#g928a3b77f3303eca97315e8133c2f634">MEMCPY_PUT_TRESHOLD</a> 2210</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Defines a treshold, when to use memcpy and when to use DMA in a put-operation on the PPU. <a href="#g928a3b77f3303eca97315e8133c2f634"></a><br></td></tr>
|
|
</table>
|
|
<hr><h2>Define Documentation</h2>
|
|
<a class="anchor" name="ge9f5f9bdfa51d7683fbe312d4a667afd"></a><!-- doxytag: member="imoc.h::MEMCPY_GET_TRESHOLD" ref="ge9f5f9bdfa51d7683fbe312d4a667afd" args="" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MEMCPY_GET_TRESHOLD 156 </td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Defines a treshold, when to use memcpy and when to use DMA in a get-operation on the PPU.
|
|
<p>
|
|
|
|
<p>Definition at line <a class="el" href="../../d4/d9b/imoc_8h-source.html#l00049">49</a> of file <a class="el" href="../../d4/d9b/imoc_8h-source.html">imoc.h</a>.</p>
|
|
|
|
<p>Referenced by <a class="el" href="../../dc/d5d/moc__barrier__ppu_8c-source.html#l00011">MOC_Barrier()</a>, <a class="el" href="../../d2/db6/moc__bsend__ppu_8c-source.html#l00010">MOC_Bsend()</a>, <a class="el" href="../../df/df8/moc__issend__ppu_8c-source.html#l00010">MOC_ISsend()</a>, and <a class="el" href="../../d4/db6/moc__ssend__ppu_8c-source.html#l00010">MOC_Ssend()</a>.</p>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="g928a3b77f3303eca97315e8133c2f634"></a><!-- doxytag: member="imoc.h::MEMCPY_PUT_TRESHOLD" ref="g928a3b77f3303eca97315e8133c2f634" args="" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MEMCPY_PUT_TRESHOLD 2210 </td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Defines a treshold, when to use memcpy and when to use DMA in a put-operation on the PPU.
|
|
<p>
|
|
|
|
<p>Definition at line <a class="el" href="../../d4/d9b/imoc_8h-source.html#l00055">55</a> of file <a class="el" href="../../d4/d9b/imoc_8h-source.html">imoc.h</a>.</p>
|
|
|
|
</div>
|
|
</div><p>
|
|
<hr><h2>Function Documentation</h2>
|
|
<a class="anchor" name="g8980da77fa506e9a6d503c8c6eba68e2"></a><!-- doxytag: member="imoc.h::IMOC_get_entry" ref="g8980da77fa506e9a6d503c8c6eba68e2" args="(int source, int tag, MOC_Comm comm, int isSpecial, MOC_Status *status)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a>* IMOC_get_entry </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"> <em>source</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"> <em>tag</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767">MOC_Comm</a> </td>
|
|
<td class="paramname"> <em>comm</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"> <em>isSpecial</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="../../dd/d7a/structMOC__Status__struct.html">MOC_Status</a> * </td>
|
|
<td class="paramname"> <em>status</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Get the next valid message-envelope from "source" with specified "tag" and "comm".
|
|
<p>
|
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>source</em> </td><td><b>in</b> rank of sending node </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>tag</em> </td><td><b>in</b> message-tag </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>comm</em> </td><td><b>in</b> message-communicator </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>isSpecial</em> </td><td><b>in</b> true to return special-message </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>status</em> </td><td><b>inout</b> MOC_status-instance to add some information (e.g. source by MOC_ANY_SOURCE) </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the appropriate message-queue-entry. </dd></dl>
|
|
|
|
<p>Definition at line <a class="el" href="../../de/dbb/imoc__get__entry_8c-source.html#l00013">13</a> of file <a class="el" href="../../de/dbb/imoc__get__entry_8c-source.html">imoc_get_entry.c</a>.</p>
|
|
|
|
<p>References <a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b">moc_message_envelope_struct::bits</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00033">moc_node_handle_ppu_struct::comm_size</a>, <a class="el" href="../../d6/d2c/imoc__core_8h-source.html#l00080">moc_message_envelope_struct::communicator</a>, <a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html#38288113f9b7adee1e444850112ff807">moc_message_envelope_struct::flags</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00026">IMOC_LOCAL_QUEUE</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00035">moc_node_handle_ppu_struct::message_queue_base</a>, <a class="el" href="../../d7/de1/moc_8h-source.html#l00028">MOC_ANY_SOURCE</a>, <a class="el" href="../../d7/de1/moc_8h-source.html#l00013">MOC_ANY_TAG</a>, <a class="el" href="../../d7/de1/moc_8h-source.html#l00227">MOC_Status_struct::MOC_SOURCE</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00052">node_handle</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00034">moc_node_handle_ppu_struct::queue_size</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00032">moc_node_handle_ppu_struct::rank</a>, and <a class="el" href="../../d6/d2c/imoc__core_8h-source.html#l00079">moc_message_envelope_struct::tag</a>.</p>
|
|
|
|
<p>Referenced by <a class="el" href="../../dc/d5d/moc__barrier__ppu_8c-source.html#l00011">MOC_Barrier()</a>, <a class="el" href="../../da/d3c/moc__iprobe_8c-source.html#l00005">MOC_Iprobe()</a>, <a class="el" href="../../d6/d74/moc__probe_8c-source.html#l00004">MOC_Probe()</a>, and <a class="el" href="../../d8/dbc/moc__recv__ppu_8c-source.html#l00011">MOC_Recv()</a>.</p>
|
|
|
|
<p>
|
|
<div class="dynheader">
|
|
Here is the caller graph for this function:</div>
|
|
<div class="dynsection">
|
|
<p><center><img src="../../d8/d88/group__internal__p2p__main_g8980da77fa506e9a6d503c8c6eba68e2_icgraph.png" border="0" usemap="#d8/d88/group__internal__p2p__main_g8980da77fa506e9a6d503c8c6eba68e2_icgraph_map" alt=""></center>
|
|
<map name="d8/d88/group__internal__p2p__main_g8980da77fa506e9a6d503c8c6eba68e2_icgraph_map">
|
|
<area shape="rect" href="../../db/dc2/group__broadcast.html#g110b00d5a4d9f970ddf8e9bd4c2d8834" title="Blocks the caller until all processes in the communicator have called it; that is..." alt="" coords="171,5,267,32"><area shape="rect" href="../../d0/d64/group__p2p__main.html#g0bc7e537cd866537357a01a12a115a84" title="Tests if a message is available and returns information without actually receiving..." alt="" coords="172,56,265,83"><area shape="rect" href="../../d0/d64/group__p2p__main.html#g39ceb4e6f08da2cd3dac3e93bb6e3ee1" title="Waits till a message is received and returns information without actually receiving..." alt="" coords="173,107,264,133"><area shape="rect" href="../../d0/d64/group__p2p__main.html#g30c532510cffd36acd1b9b0b3edb3832" title="Performs a blocking standard mode receive operation." alt="" coords="176,157,261,184"></map>
|
|
</div>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="g2a948cdecce651ae6cc1b0c0ddb1b750"></a><!-- doxytag: member="imoc.h::IMOC_getFreeEntry" ref="g2a948cdecce651ae6cc1b0c0ddb1b750" args="(moc_message_envelope_t *pqueue, uint8_t tag, MOC_Comm comm, int isSpecial, int *index)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int IMOC_getFreeEntry </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a> * </td>
|
|
<td class="paramname"> <em>pqueue</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"> <em>tag</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767">MOC_Comm</a> </td>
|
|
<td class="paramname"> <em>comm</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"> <em>isSpecial</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int * </td>
|
|
<td class="paramname"> <em>index</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Get next free entry in message-queue (a local copy of the message-queue has to be used).
|
|
<p>
|
|
To ensure correct ordering message-tag and -comm and -type has to be specified.<p>
|
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>pqueue</em> </td><td><b>in</b> pointer to local copy of remote message-queue </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>tag</em> </td><td><b>in</b> message-tag </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>comm</em> </td><td><b>in</b> message-communicator </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>isSpecial</em> </td><td><b>in</b> true if message should be a special message </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>index</em> </td><td><b>out</b> index of free entry </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 when success otherwise error-code </dd></dl>
|
|
|
|
<p>Definition at line <a class="el" href="../../d1/d2a/imoc__get__free__entry_8c-source.html#l00009">9</a> of file <a class="el" href="../../d1/d2a/imoc__get__free__entry_8c-source.html">imoc_get_free_entry.c</a>.</p>
|
|
|
|
<p>References <a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b">moc_message_envelope_struct::bits</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00065">MOC_ERR_MESSAGE_EXHAUSTED</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00052">node_handle</a>, and <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00034">moc_node_handle_ppu_struct::queue_size</a>.</p>
|
|
|
|
<p>Referenced by <a class="el" href="../../dc/d5d/moc__barrier__ppu_8c-source.html#l00011">MOC_Barrier()</a>, <a class="el" href="../../d2/db6/moc__bsend__ppu_8c-source.html#l00010">MOC_Bsend()</a>, <a class="el" href="../../df/df8/moc__issend__ppu_8c-source.html#l00010">MOC_ISsend()</a>, and <a class="el" href="../../d4/db6/moc__ssend__ppu_8c-source.html#l00010">MOC_Ssend()</a>.</p>
|
|
|
|
<p>
|
|
<div class="dynheader">
|
|
Here is the caller graph for this function:</div>
|
|
<div class="dynsection">
|
|
<p><center><img src="../../d8/d88/group__internal__p2p__main_g2a948cdecce651ae6cc1b0c0ddb1b750_icgraph.png" border="0" usemap="#d8/d88/group__internal__p2p__main_g2a948cdecce651ae6cc1b0c0ddb1b750_icgraph_map" alt=""></center>
|
|
<map name="d8/d88/group__internal__p2p__main_g2a948cdecce651ae6cc1b0c0ddb1b750_icgraph_map">
|
|
<area shape="rect" href="../../db/dc2/group__broadcast.html#g110b00d5a4d9f970ddf8e9bd4c2d8834" title="Blocks the caller until all processes in the communicator have called it; that is..." alt="" coords="191,5,287,32"><area shape="rect" href="../../de/d84/group__p2p__buffered.html#g307bf844e1416c7c021e4a3468209d0b" title="Performs a blocking buffered mode send operation." alt="" coords="191,56,287,83"><area shape="rect" href="../../d7/d62/group__p2p__imm.html#gc148ff9b9bee69164139425a7df53697" title="Performs a non-blocking synchronous mode send operation." alt="" coords="189,107,288,133"><area shape="rect" href="../../d5/dc2/group__p2p__synch.html#g46cb2ff2b5a0601165978598932d6120" title="Performs a blocking synchronous mode send operation." alt="" coords="191,157,287,184"></map>
|
|
</div>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="g409bdbea503611cf04829413d15830df"></a><!-- doxytag: member="imoc.h::IMOC_getFreeMID" ref="g409bdbea503611cf04829413d15830df" args="(int *mid)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int IMOC_getFreeMID </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int * </td>
|
|
<td class="paramname"> <em>mid</em> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Get free message-ID.
|
|
<p>
|
|
<dl class="note" compact><dt><b>Note:</b></dt><dd>Message-ID is index of message-status-array</dd></dl>
|
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>mid</em> </td><td><b>out</b> free message-ID </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl compact><dt><b>Return values:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em> </td><td>No error; MPI routine completed successfully. </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_MESSAGE_EXHAUSTED</em> </td><td>No further messages possible. </td></tr>
|
|
</table>
|
|
</dl>
|
|
|
|
<p>Definition at line <a class="el" href="../../dd/d18/imoc__get__free__mid_8c-source.html#l00009">9</a> of file <a class="el" href="../../dd/d18/imoc__get__free__mid_8c-source.html">imoc_get_free_mid.c</a>.</p>
|
|
|
|
<p>References <a class="el" href="../../dd/df5/structmoc__message__status__struct.html#c0bdc214525521d58f12c72874de0512">moc_message_status_struct::bits</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00033">moc_node_handle_ppu_struct::comm_size</a>, <a class="el" href="../../dd/df5/structmoc__message__status__struct.html#086c0d449d25774d43512b6f7fdab8ed">moc_message_status_struct::flags</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00065">MOC_ERR_MESSAGE_EXHAUSTED</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00052">node_handle</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00034">moc_node_handle_ppu_struct::queue_size</a>, and <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00036">moc_node_handle_ppu_struct::status_array_base</a>.</p>
|
|
|
|
<p>Referenced by <a class="el" href="../../d2/db6/moc__bsend__ppu_8c-source.html#l00010">MOC_Bsend()</a>, <a class="el" href="../../df/df8/moc__issend__ppu_8c-source.html#l00010">MOC_ISsend()</a>, and <a class="el" href="../../d4/db6/moc__ssend__ppu_8c-source.html#l00010">MOC_Ssend()</a>.</p>
|
|
|
|
<p>
|
|
<div class="dynheader">
|
|
Here is the caller graph for this function:</div>
|
|
<div class="dynsection">
|
|
<p><center><img src="../../d8/d88/group__internal__p2p__main_g409bdbea503611cf04829413d15830df_icgraph.png" border="0" usemap="#d8/d88/group__internal__p2p__main_g409bdbea503611cf04829413d15830df_icgraph_map" alt=""></center>
|
|
<map name="d8/d88/group__internal__p2p__main_g409bdbea503611cf04829413d15830df_icgraph_map">
|
|
<area shape="rect" href="../../de/d84/group__p2p__buffered.html#g307bf844e1416c7c021e4a3468209d0b" title="Performs a blocking buffered mode send operation." alt="" coords="183,5,279,32"><area shape="rect" href="../../d7/d62/group__p2p__imm.html#gc148ff9b9bee69164139425a7df53697" title="Performs a non-blocking synchronous mode send operation." alt="" coords="181,56,280,83"><area shape="rect" href="../../d5/dc2/group__p2p__synch.html#g46cb2ff2b5a0601165978598932d6120" title="Performs a blocking synchronous mode send operation." alt="" coords="183,107,279,133"></map>
|
|
</div>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="g2e74930cd8e161a131b90f2f1081037a"></a><!-- doxytag: member="imoc.h::IMOC_testForMessageCompletion" ref="g2e74930cd8e161a131b90f2f1081037a" args="(uint8_t mid, uint8_t *status)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int IMOC_testForMessageCompletion </td>
|
|
<td>(</td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"> <em>mid</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint8_t * </td>
|
|
<td class="paramname"> <em>status</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Tests if message with message-ID mid has been received.
|
|
<p>
|
|
Tests if message-status-flag 'outstanding' is 0.<p>
|
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>mid</em> </td><td><b>in</b> message-ID </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>status</em> </td><td><b>out</b> status of message </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl compact><dt><b>Return values:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em> </td><td>No error; MPI routine completed successfully. </td></tr>
|
|
</table>
|
|
</dl>
|
|
|
|
<p>Definition at line <a class="el" href="../../dd/d1f/imoc__test__message_8c-source.html#l00009">9</a> of file <a class="el" href="../../dd/d1f/imoc__test__message_8c-source.html">imoc_test_message.c</a>.</p>
|
|
|
|
<p>References <a class="el" href="../../dd/df5/structmoc__message__status__struct.html#c0bdc214525521d58f12c72874de0512">moc_message_status_struct::bits</a>, <a class="el" href="../../dd/df5/structmoc__message__status__struct.html#086c0d449d25774d43512b6f7fdab8ed">moc_message_status_struct::flags</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00052">node_handle</a>, and <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00036">moc_node_handle_ppu_struct::status_array_base</a>.</p>
|
|
|
|
<p>Referenced by <a class="el" href="../../d7/d24/moc__test_8c-source.html#l00013">MOC_Test()</a>.</p>
|
|
|
|
<p>
|
|
<div class="dynheader">
|
|
Here is the caller graph for this function:</div>
|
|
<div class="dynsection">
|
|
<p><center><img src="../../d8/d88/group__internal__p2p__main_g2e74930cd8e161a131b90f2f1081037a_icgraph.png" border="0" usemap="#d8/d88/group__internal__p2p__main_g2e74930cd8e161a131b90f2f1081037a_icgraph_map" alt=""></center>
|
|
<map name="d8/d88/group__internal__p2p__main_g2e74930cd8e161a131b90f2f1081037a_icgraph_map">
|
|
<area shape="rect" href="../../d7/d62/group__p2p__imm.html#g5ee1f1c1275717d2dc78d6058ff81e9e" title="Tests, if a non-blocking communication has been completed." alt="" coords="275,5,357,32"></map>
|
|
</div>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="g8675f9552168f2dd8926cad5ac00be69"></a><!-- doxytag: member="imoc.h::IMOC_waitForMessageCompletion" ref="g8675f9552168f2dd8926cad5ac00be69" args="(uint8_t mid)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int IMOC_waitForMessageCompletion </td>
|
|
<td>(</td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"> <em>mid</em> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Wait till message with message-ID mid has been received.
|
|
<p>
|
|
Waits till message-status-flag 'outstanding' is 0.<p>
|
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>mid</em> </td><td><b>in</b> message-ID </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 when success otherwise error-code </dd></dl>
|
|
|
|
<p>Definition at line <a class="el" href="../../d2/dd3/imoc__wait__message_8c-source.html#l00009">9</a> of file <a class="el" href="../../d2/dd3/imoc__wait__message_8c-source.html">imoc_wait_message.c</a>.</p>
|
|
|
|
<p>References <a class="el" href="../../dd/df5/structmoc__message__status__struct.html#c0bdc214525521d58f12c72874de0512">moc_message_status_struct::bits</a>, <a class="el" href="../../dd/df5/structmoc__message__status__struct.html#086c0d449d25774d43512b6f7fdab8ed">moc_message_status_struct::flags</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00052">node_handle</a>, and <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00036">moc_node_handle_ppu_struct::status_array_base</a>.</p>
|
|
|
|
<p>Referenced by <a class="el" href="../../d4/db6/moc__ssend__ppu_8c-source.html#l00010">MOC_Ssend()</a>, and <a class="el" href="../../de/d33/moc__wait_8c-source.html#l00011">MOC_Wait()</a>.</p>
|
|
|
|
<p>
|
|
<div class="dynheader">
|
|
Here is the caller graph for this function:</div>
|
|
<div class="dynsection">
|
|
<p><center><img src="../../d8/d88/group__internal__p2p__main_g8675f9552168f2dd8926cad5ac00be69_icgraph.png" border="0" usemap="#d8/d88/group__internal__p2p__main_g8675f9552168f2dd8926cad5ac00be69_icgraph_map" alt=""></center>
|
|
<map name="d8/d88/group__internal__p2p__main_g8675f9552168f2dd8926cad5ac00be69_icgraph_map">
|
|
<area shape="rect" href="../../d5/dc2/group__p2p__synch.html#g46cb2ff2b5a0601165978598932d6120" title="Performs a blocking synchronous mode send operation." alt="" coords="275,5,371,32"><area shape="rect" href="../../d7/d62/group__p2p__imm.html#g68043e4a0893fdc25c67f87bae1015a6" title="Wait till a non-blocking communication has been completed." alt="" coords="280,56,365,83"><area shape="rect" href="../../db/dc2/group__broadcast.html#gfd25e9a19a1ad4032fdf3703531167d6" title="Broadcasts a message from the process with rank "root" to all other processes..." alt="" coords="420,56,511,83"></map>
|
|
</div>
|
|
|
|
</div>
|
|
</div><p>
|
|
</div>
|
|
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:51:09 2009 for MPI On Cell (Documentation) by
|
|
<a href="http://www.doxygen.org/index.html">
|
|
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
|
|
</body>
|
|
</html>
|