Initial commit.

This commit is contained in:
2017-10-26 19:57:24 +02:00
commit 9ce8b5485d
1090 changed files with 47036 additions and 0 deletions
@@ -0,0 +1,150 @@
<!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): Implementation Information</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&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Implementation Information<br>
<small>
[<a class="el" href="../../de/d1b/group__environment__main.html">Environmental Management</a>]</small>
</h1>
<p>
<div class="dynheader">
Collaboration diagram for Implementation Information:</div>
<div class="dynsection">
<center><table><tr><td><img src="../../d8/d8f/group__environment__information.png" border="0" alt="" usemap="#d6/daa/d8_2d8f_2group____environment____information_map">
<map name="d6/daa/d8_2d8f_2group____environment____information_map">
<area shape="rect" href="../../de/d1b/group__environment__main.html" title="This chapter discusses routines for getting and, where appropriate, setting various..." alt="" coords="5,5,187,32"></map></td></tr></table></center>
</div>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Functions to return some information about the execution environment and the MOC-implementation.
<p>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g872c24341022407f606e48c7987f1d40"></a><!-- doxytag: member="environment_information::MOC_VERSION" ref="g872c24341022407f606e48c7987f1d40" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d8f/group__environment__information.html#g872c24341022407f606e48c7987f1d40">MOC_VERSION</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Major version-number of this MOC-Implementation. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd51bfe8de83ee5b0dad9f61c855ae666"></a><!-- doxytag: member="environment_information::MOC_SUBVERSION" ref="gd51bfe8de83ee5b0dad9f61c855ae666" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d8f/group__environment__information.html#gd51bfe8de83ee5b0dad9f61c855ae666">MOC_SUBVERSION</a>&nbsp;&nbsp;&nbsp;9</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Minor version-number of this MOC-Implementation. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g58f559d6df810dbe1c633b3d68e9624f"></a><!-- doxytag: member="environment_information::MOC_MAX_PROCESSOR_NAME" ref="g58f559d6df810dbe1c633b3d68e9624f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d8f/group__environment__information.html#g58f559d6df810dbe1c633b3d68e9624f">MOC_MAX_PROCESSOR_NAME</a>&nbsp;&nbsp;&nbsp;4</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The maximum length of the string returned by MOC_Get_processor_name. <br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d8f/group__environment__information.html#gf69e7617a61a2eaa2783e718f2df5270">MOC_Get_processor_name</a> (char *name, int *resultlen)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the name of the processor. <a href="#gf69e7617a61a2eaa2783e718f2df5270"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d8f/group__environment__information.html#g9a54df3ad074f8fc91abddf7666474ea">MOC_Get_version</a> (int *version, int *subversion)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the major and minor version of this MOC-implementation. <a href="#g9a54df3ad074f8fc91abddf7666474ea"></a><br></td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gf69e7617a61a2eaa2783e718f2df5270"></a><!-- doxytag: member="moc.h::MOC_Get_processor_name" ref="gf69e7617a61a2eaa2783e718f2df5270" args="(char *name, int *resultlen)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Get_processor_name </td>
<td>(</td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>resultlen</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the name of the processor.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>This function returns "SPU" if the calling process is running on a SPU otherwise it's running on the "PPU".</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>name</em>&nbsp;</td><td><b>out</b> Specifies the processor-type the calling process is runnning on </td></tr>
<tr><td valign="top"></td><td valign="top"><em>resultlen</em>&nbsp;</td><td><b>out</b> Length (in characters) of the name </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>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g9a54df3ad074f8fc91abddf7666474ea"></a><!-- doxytag: member="moc.h::MOC_Get_version" ref="g9a54df3ad074f8fc91abddf7666474ea" args="(int *version, int *subversion)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Get_version </td>
<td>(</td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>version</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>subversion</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the major and minor version of this MOC-implementation.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Can be called before MOC_Init and after MOC_Finalize.</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>version</em>&nbsp;</td><td><b>out</b> Major version of this MOC-implementation </td></tr>
<tr><td valign="top"></td><td valign="top"><em>subversion</em>&nbsp;</td><td><b>out</b> Minor version of this MOC-implementation </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>&nbsp;</td><td>Function returned successfully </td></tr>
</table>
</dl>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:48:17 2009 for MPI On Cell (Documentation) by&nbsp;
<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>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

@@ -0,0 +1,381 @@
<!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): Startup &amp; Shutdown</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&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Startup &amp; Shutdown<br>
<small>
[<a class="el" href="../../de/d1b/group__environment__main.html">Environmental Management</a>]</small>
</h1>
<p>
<div class="dynheader">
Collaboration diagram for Startup &amp; Shutdown:</div>
<div class="dynsection">
<center><table><tr><td><img src="../../d8/d9a/group__environment__startup.png" border="0" alt="" usemap="#df/df9/d8_2d9a_2group____environment____startup_map">
<map name="df/df9/d8_2d9a_2group____environment____startup_map">
<area shape="rect" href="../../de/d1b/group__environment__main.html" title="This chapter discusses routines for getting and, where appropriate, setting various..." alt="" coords="5,5,187,32"></map></td></tr></table></center>
</div>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Functions to start and terminate the MOC-execution environment.
<p>
To be able to communicate with other processes every MOC-process needs to setup his MOC-Environment before any MOC-function can be called (there are some exceptions though).<p>
The PPU-process has a special role, because he is the one who starts the SPU-processes. SPU-processes can be added to the MOC-environment by calling <a class="el" href="../../d8/d9a/group__environment__startup.html#geea5b7c117adae78e954f0959fe0c447">MOC_Add_spu_thread</a> with the appropriate SPU-thread-handle (This implementation only supports the embedded binary concept where the SPU-binary is embedded into the PPU-binary and accessed via a handle). The order of calling determines the rank of the SPU-processes. To get the number of total and available SPUs the functions <a class="el" href="../../d8/d9a/group__environment__startup.html#g66028682d3c25b76e25ca57655d47625">MOC_Get_avail_spu_count</a> and <a class="el" href="../../d8/d9a/group__environment__startup.html#g58c038d9978a55d6f346102dfef9acc7">MOC_Get_max_spu_count</a> can be used.<p>
The buffer-size and the size of the message-queues can be set before calling <a class="el" href="../../d8/d9a/group__environment__startup.html#g4d96c98b95bd1a0f6ed8c1e5e6f6c873">MOC_Init</a> on the PPU using <a class="el" href="../../d8/d9a/group__environment__startup.html#g0ac2f7a8d9b93b8da0408a5307f0c925">MOC_Set_buffer_size</a> and <a class="el" href="../../d8/d9a/group__environment__startup.html#g3e83e7a629951e6788a682aad654baf8">MOC_Set_queue_size</a>.<p>
MOC_Init only returns after all processes have called this function and have set up their environment.<p>
If the MOC-environment isn't needed anymore, <a class="el" href="../../d8/d9a/group__environment__startup.html#g0fd366b8b49db32818786c773c4919b8">MOC_Finalize</a> should be called by all MOC-processes. MOC_Finalize only returns after all MOC-processes have called this functions and have shutdown their environments.
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>PPU &amp; SPU</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g0fd366b8b49db32818786c773c4919b8">MOC_Finalize</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Terminates MPI execution environment. <a href="#g0fd366b8b49db32818786c773c4919b8"></a><br></td></tr>
<tr><td colspan="2"><br><h2>PPU-only</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g66028682d3c25b76e25ca57655d47625">MOC_Get_avail_spu_count</a> (int *count)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of available SPUs. <a href="#g66028682d3c25b76e25ca57655d47625"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g58c038d9978a55d6f346102dfef9acc7">MOC_Get_max_spu_count</a> (int *count)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of SPUs. <a href="#g58c038d9978a55d6f346102dfef9acc7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#geea5b7c117adae78e954f0959fe0c447">MOC_Add_spu_thread</a> (spe_program_handle_t *phandle, void *argp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a SPU-Thread. <a href="#geea5b7c117adae78e954f0959fe0c447"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g0ac2f7a8d9b93b8da0408a5307f0c925">MOC_Set_buffer_size</a> (uint32_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the size of the buffer used for buffered communication. <a href="#g0ac2f7a8d9b93b8da0408a5307f0c925"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g3e83e7a629951e6788a682aad654baf8">MOC_Set_queue_size</a> (uint8_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the size of the message-queues. <a href="#g3e83e7a629951e6788a682aad654baf8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g9a59090c9d03e89f019e8276d4013c72">MOC_Init</a> (int *argc, char ***argv)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the MPI execution environment. <a href="#g9a59090c9d03e89f019e8276d4013c72"></a><br></td></tr>
<tr><td colspan="2"><br><h2>SPU-only</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g4d96c98b95bd1a0f6ed8c1e5e6f6c873">MOC_Init</a> (unsigned long long argp, int length, void *buffer)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the MPI execution environment. <a href="#g4d96c98b95bd1a0f6ed8c1e5e6f6c873"></a><br></td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="geea5b7c117adae78e954f0959fe0c447"></a><!-- doxytag: member="moc.h::MOC_Add_spu_thread" ref="geea5b7c117adae78e954f0959fe0c447" args="(spe_program_handle_t *phandle, void *argp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Add_spu_thread </td>
<td>(</td>
<td class="paramtype">spe_program_handle_t *&nbsp;</td>
<td class="paramname"> <em>phandle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>argp</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Adds a SPU-Thread.
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>PPU-only</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Must be called before calling <a class="el" href="../../d8/d9a/group__environment__startup.html#g4d96c98b95bd1a0f6ed8c1e5e6f6c873">MOC_Init</a><p>
The order of executions defines the order of the ranks of the SPU-Threads</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>phandle</em>&nbsp;</td><td><b>in</b> Handle of the SPE-Program </td></tr>
<tr><td valign="top"></td><td valign="top"><em>argp</em>&nbsp;</td><td><b>in</b> Pointer to some user-defined information in the main-memory </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>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_BUFFER_OVERFLOW</em>&nbsp;</td><td>A Buffer-Overflow occured. Mosst likely you tried to add more SPU-threads than defined by MOC_SPU_THREAD_MAX. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_INTERN</em>&nbsp;</td><td>Internal Error </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g0fd366b8b49db32818786c773c4919b8"></a><!-- doxytag: member="moc.h::MOC_Finalize" ref="g0fd366b8b49db32818786c773c4919b8" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Finalize </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Terminates MPI execution environment.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>All processes must call this routine before exiting.</dd></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>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g66028682d3c25b76e25ca57655d47625"></a><!-- doxytag: member="moc.h::MOC_Get_avail_spu_count" ref="g66028682d3c25b76e25ca57655d47625" args="(int *count)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Get_avail_spu_count </td>
<td>(</td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>count</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the number of available SPUs.
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>PPU-only</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Must be called before <a class="el" href="../../d8/d9a/group__environment__startup.html#g4d96c98b95bd1a0f6ed8c1e5e6f6c873">MOC_Init</a><p>
This function should return the count of free SPUs. But this doesn't really works. To get the available SPU-count the function spe_cpu_info_get() from libspe2 with SPE_COUNT_USABLE_SPES-flag is used. However this function can only detect if a SPU-thread is used by the calling function. There seems to be no means to detect SPU-thread used by other applications.</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>count</em>&nbsp;</td><td><b>out</b> number of available SPUs </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>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>error-code </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g58c038d9978a55d6f346102dfef9acc7"></a><!-- doxytag: member="moc.h::MOC_Get_max_spu_count" ref="g58c038d9978a55d6f346102dfef9acc7" args="(int *count)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Get_max_spu_count </td>
<td>(</td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>count</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the number of SPUs.
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>PPU-only</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Must be called before <a class="el" href="../../d8/d9a/group__environment__startup.html#g4d96c98b95bd1a0f6ed8c1e5e6f6c873">MOC_Init</a></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>count</em>&nbsp;</td><td><b>out</b> SPU-count </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>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>error-code </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g4d96c98b95bd1a0f6ed8c1e5e6f6c873"></a><!-- doxytag: member="moc.h::MOC_Init" ref="g4d96c98b95bd1a0f6ed8c1e5e6f6c873" args="(unsigned long long argp, int length, void *buffer)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Init </td>
<td>(</td>
<td class="paramtype">unsigned long long&nbsp;</td>
<td class="paramname"> <em>argp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>buffer</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initialize the MPI execution environment.
<p>
<a class="anchor" name="moc_init_spu"></a><p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>SPU-only function</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>All processes must call this routine before executing any MOC-routine.</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>argp</em>&nbsp;</td><td><b>in</b> Pointer to user-defined information in the main-memory </td></tr>
<tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td><b>in</b> Length of the user-defined information in bytes </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td><b>out</b> Buffer into which the user-defined information should be copied </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>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_NO_MEMORY</em>&nbsp;</td><td>Insufficient Memory. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_INTERN</em>&nbsp;</td><td>Internal Error </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g9a59090c9d03e89f019e8276d4013c72"></a><!-- doxytag: member="moc.h::MOC_Init" ref="g9a59090c9d03e89f019e8276d4013c72" args="(int *argc, char ***argv)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Init </td>
<td>(</td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ***&nbsp;</td>
<td class="paramname"> <em>argv</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initialize the MPI execution environment.
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>PPU-only function</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>All processes must call this routine before executing any MOC-routine.</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>argc</em>&nbsp;</td><td><b>in</b> Pointer to the number of arguments </td></tr>
<tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td><b>in</b> Pointer to the argument vector </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>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_NO_MEMORY</em>&nbsp;</td><td>Insufficient Memory. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_INTERN</em>&nbsp;</td><td>Internal Error </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g0ac2f7a8d9b93b8da0408a5307f0c925"></a><!-- doxytag: member="moc.h::MOC_Set_buffer_size" ref="g0ac2f7a8d9b93b8da0408a5307f0c925" args="(uint32_t size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Set_buffer_size </td>
<td>(</td>
<td class="paramtype">uint32_t&nbsp;</td>
<td class="paramname"> <em>size</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the size of the buffer used for buffered communication.
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>PPU-only</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Must be called before <a class="el" href="../../d8/d9a/group__environment__startup.html#g4d96c98b95bd1a0f6ed8c1e5e6f6c873">MOC_Init</a></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>size</em>&nbsp;</td><td>buffer-size </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if success, otherwise error-code </dd></dl>
</div>
</div><p>
<a class="anchor" name="g3e83e7a629951e6788a682aad654baf8"></a><!-- doxytag: member="moc.h::MOC_Set_queue_size" ref="g3e83e7a629951e6788a682aad654baf8" args="(uint8_t size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Set_queue_size </td>
<td>(</td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>size</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the size of the message-queues.
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>PPU-only</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Must be called before <a class="el" href="../../d8/d9a/group__environment__startup.html#g4d96c98b95bd1a0f6ed8c1e5e6f6c873">MOC_Init</a></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>size</em>&nbsp;</td><td>queue-size </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if success, otherwise error-code </dd></dl>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:48:17 2009 for MPI On Cell (Documentation) by&nbsp;
<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>
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

@@ -0,0 +1,270 @@
<!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): Error-Handling</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&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Error-Handling<br>
<small>
[<a class="el" href="../../de/d1b/group__environment__main.html">Environmental Management</a>]</small>
</h1>
<p>
<div class="dynheader">
Collaboration diagram for Error-Handling:</div>
<div class="dynsection">
<center><table><tr><td><img src="../../d8/da1/group__environment__error.png" border="0" alt="" usemap="#d1/dc5/d8_2da1_2group____environment____error_map">
<map name="d1/dc5/d8_2da1_2group____environment____error_map">
<area shape="rect" href="../../de/d1b/group__environment__main.html" title="This chapter discusses routines for getting and, where appropriate, setting various..." alt="" coords="5,5,187,32"></map></td></tr></table></center>
</div>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This section describes how errors are handled.
<p>
Every function should return an integer if possible. This integer should be MOC_SUCCESS if the operation teminated successfully otherwise an error-code telling the reason of the error is returned.<p>
Every function should return an integer if possible. This integer should be MOC_SUCCESS if the operation teminated successfully otherwise an error-code telling the reason of the error is returned.<p>
For more information see Chapter 7.2 of the MPI 1.3 Standard.
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>MPI_ERROR-CLASSES</h2></td></tr>
<tr><td colspan="2">Error-classes defined by the MPI-standard.<p>
Every error-code returned by a MOC-function should belong to an error-class or be an error-class itself. This enables implementation-independend error-handling.<p>
Value-range: 0 = MOC_SUCCESS &lt; MOC_ERR_... &lt;= MOC_ERR_LASTCODE <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8a73ed6676bcf0c0607d98482ca1aca4"></a><!-- doxytag: member="environment_error::MOC_SUCCESS" ref="g8a73ed6676bcf0c0607d98482ca1aca4" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g8a73ed6676bcf0c0607d98482ca1aca4">MOC_SUCCESS</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">No error. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gec3f466bf958e93fc3792674d00bfa06"></a><!-- doxytag: member="environment_error::MOC_ERR_BUFFER" ref="gec3f466bf958e93fc3792674d00bfa06" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gec3f466bf958e93fc3792674d00bfa06">MOC_ERR_BUFFER</a>&nbsp;&nbsp;&nbsp;1000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid buffer pointer. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5adca254d3feab57a4786c17b90d91c4"></a><!-- doxytag: member="environment_error::MOC_ERR_COUNT" ref="g5adca254d3feab57a4786c17b90d91c4" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g5adca254d3feab57a4786c17b90d91c4">MOC_ERR_COUNT</a>&nbsp;&nbsp;&nbsp;2000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid count argument. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge1052e542cdd8d265d99d2950936ba8e"></a><!-- doxytag: member="environment_error::MOC_ERR_TYPE" ref="ge1052e542cdd8d265d99d2950936ba8e" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#ge1052e542cdd8d265d99d2950936ba8e">MOC_ERR_TYPE</a>&nbsp;&nbsp;&nbsp;3000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid datatype argument. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4dda6446879941989962c0fbdf4ba0e5"></a><!-- doxytag: member="environment_error::MOC_ERR_TAG" ref="g4dda6446879941989962c0fbdf4ba0e5" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g4dda6446879941989962c0fbdf4ba0e5">MOC_ERR_TAG</a>&nbsp;&nbsp;&nbsp;4000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid tag argument. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc1e776c0e7cb8c97391dd6ac476295a1"></a><!-- doxytag: member="environment_error::MOC_ERR_COMM" ref="gc1e776c0e7cb8c97391dd6ac476295a1" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gc1e776c0e7cb8c97391dd6ac476295a1">MOC_ERR_COMM</a>&nbsp;&nbsp;&nbsp;5000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid communicator. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g88202a7ec7634ce5634b0ead0368c802"></a><!-- doxytag: member="environment_error::MOC_ERR_RANK" ref="g88202a7ec7634ce5634b0ead0368c802" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g88202a7ec7634ce5634b0ead0368c802">MOC_ERR_RANK</a>&nbsp;&nbsp;&nbsp;6000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid rank. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0f3215c59df79197899fc28f7e9499c8"></a><!-- doxytag: member="environment_error::MOC_ERR_REQUEST" ref="g0f3215c59df79197899fc28f7e9499c8" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g0f3215c59df79197899fc28f7e9499c8">MOC_ERR_REQUEST</a>&nbsp;&nbsp;&nbsp;7000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid request (handle). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5ea365a8f03f9c490adb267ae677157c"></a><!-- doxytag: member="environment_error::MOC_ERR_ROOT" ref="g5ea365a8f03f9c490adb267ae677157c" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g5ea365a8f03f9c490adb267ae677157c">MOC_ERR_ROOT</a>&nbsp;&nbsp;&nbsp;8000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid root. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9dadfbad2e34895bfe793e87ef476807"></a><!-- doxytag: member="environment_error::MOC_ERR_GROUP" ref="g9dadfbad2e34895bfe793e87ef476807" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g9dadfbad2e34895bfe793e87ef476807">MOC_ERR_GROUP</a>&nbsp;&nbsp;&nbsp;9000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid group. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g37e46a78874b2078225de0260f4666a8"></a><!-- doxytag: member="environment_error::MOC_ERR_OP" ref="g37e46a78874b2078225de0260f4666a8" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g37e46a78874b2078225de0260f4666a8">MOC_ERR_OP</a>&nbsp;&nbsp;&nbsp;10000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid operation. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g36581c314c20ec3f8286a61784b41bd9"></a><!-- doxytag: member="environment_error::MOC_ERR_TOPOLOGY" ref="g36581c314c20ec3f8286a61784b41bd9" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g36581c314c20ec3f8286a61784b41bd9">MOC_ERR_TOPOLOGY</a>&nbsp;&nbsp;&nbsp;11000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid topology. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g91dd648378f64ca3dff7af4750c79608"></a><!-- doxytag: member="environment_error::MOC_ERR_DIMS" ref="g91dd648378f64ca3dff7af4750c79608" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g91dd648378f64ca3dff7af4750c79608">MOC_ERR_DIMS</a>&nbsp;&nbsp;&nbsp;12000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid dimension argument. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g734aa5985b6d809690f10979ff44785c"></a><!-- doxytag: member="environment_error::MOC_ERR_ARG" ref="g734aa5985b6d809690f10979ff44785c" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g734aa5985b6d809690f10979ff44785c">MOC_ERR_ARG</a>&nbsp;&nbsp;&nbsp;13000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid argument of some other kind. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge00d9070a65099e436eb470ecb45ce35"></a><!-- doxytag: member="environment_error::MOC_ERR_UNKNOWN" ref="ge00d9070a65099e436eb470ecb45ce35" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#ge00d9070a65099e436eb470ecb45ce35">MOC_ERR_UNKNOWN</a>&nbsp;&nbsp;&nbsp;14000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unknown error. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g333d5841713c32c0ecf1cc85f0077744"></a><!-- doxytag: member="environment_error::MOC_ERR_TRUNCATE" ref="g333d5841713c32c0ecf1cc85f0077744" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g333d5841713c32c0ecf1cc85f0077744">MOC_ERR_TRUNCATE</a>&nbsp;&nbsp;&nbsp;15000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Message truncated on receive. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf1353d5719f5e14d8d89d72801e40144"></a><!-- doxytag: member="environment_error::MOC_ERR_OTHER" ref="gf1353d5719f5e14d8d89d72801e40144" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gf1353d5719f5e14d8d89d72801e40144">MOC_ERR_OTHER</a>&nbsp;&nbsp;&nbsp;16000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Known error not in this list. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g05b3a70831c823a59014c4853a76ca7e"></a><!-- doxytag: member="environment_error::MOC_ERR_INTERN" ref="g05b3a70831c823a59014c4853a76ca7e" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g05b3a70831c823a59014c4853a76ca7e">MOC_ERR_INTERN</a>&nbsp;&nbsp;&nbsp;17000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal MOC (implementation) error. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g941c5327e6430023994f32d25584059e"></a><!-- doxytag: member="environment_error::MOC_ERR_IN_STATUS" ref="g941c5327e6430023994f32d25584059e" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g941c5327e6430023994f32d25584059e">MOC_ERR_IN_STATUS</a>&nbsp;&nbsp;&nbsp;18000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Error code is in status. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g878ba1491199d12b999e1cb24020ddba"></a><!-- doxytag: member="environment_error::MOC_ERR_PENDING" ref="g878ba1491199d12b999e1cb24020ddba" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g878ba1491199d12b999e1cb24020ddba">MOC_ERR_PENDING</a>&nbsp;&nbsp;&nbsp;19000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pending request. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf902162b08ca55cd57455ee66e8e73d7"></a><!-- doxytag: member="environment_error::MOC_ERR_LASTCODE" ref="gf902162b08ca55cd57455ee66e8e73d7" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gf902162b08ca55cd57455ee66e8e73d7">MOC_ERR_LASTCODE</a>&nbsp;&nbsp;&nbsp;20000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Last error code. <br></td></tr>
<tr><td colspan="2"><br><h2>MOC-Error-Codes</h2></td></tr>
<tr><td colspan="2">Implementation dependent Error-Codes. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb5f8a2dbcd2a4b257dcedd8f08ab6367"></a><!-- doxytag: member="environment_error::MOC_ERR_NOT_IMPLEMENTED" ref="gb5f8a2dbcd2a4b257dcedd8f08ab6367" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gb5f8a2dbcd2a4b257dcedd8f08ab6367">MOC_ERR_NOT_IMPLEMENTED</a>&nbsp;&nbsp;&nbsp;17001</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Function not implemented. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb41314dc085e915eab769ff2a2958061"></a><!-- doxytag: member="environment_error::MOC_ERR_BUFFER_OVERFLOW" ref="gb41314dc085e915eab769ff2a2958061" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gb41314dc085e915eab769ff2a2958061">MOC_ERR_BUFFER_OVERFLOW</a>&nbsp;&nbsp;&nbsp;17002</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal Buffer Overflow. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gfd59894aba31d32eeff506d8df838089"></a><!-- doxytag: member="environment_error::MOC_ERR_NO_MEMORY" ref="gfd59894aba31d32eeff506d8df838089" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gfd59894aba31d32eeff506d8df838089">MOC_ERR_NO_MEMORY</a>&nbsp;&nbsp;&nbsp;17003</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Insufficient Memory. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb3b13f443f9a869ef4200334eb8792d0"></a><!-- doxytag: member="environment_error::MOC_ERR_NO_BUFFER" ref="gb3b13f443f9a869ef4200334eb8792d0" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gb3b13f443f9a869ef4200334eb8792d0">MOC_ERR_NO_BUFFER</a>&nbsp;&nbsp;&nbsp;17004</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Insufficient Buffer-Space. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5a536510d86dbad4f4bacf1dc3f08c47"></a><!-- doxytag: member="environment_error::MOC_ERR_MESSAGE_EXHAUSTED" ref="g5a536510d86dbad4f4bacf1dc3f08c47" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g5a536510d86dbad4f4bacf1dc3f08c47">MOC_ERR_MESSAGE_EXHAUSTED</a>&nbsp;&nbsp;&nbsp;17005</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">No further messages possible. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8dd6c4666118378bdd3cb6cfeaeea5b1"></a><!-- doxytag: member="environment_error::MOC_ERR_BAD_ALIGNMENT" ref="g8dd6c4666118378bdd3cb6cfeaeea5b1" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g8dd6c4666118378bdd3cb6cfeaeea5b1">MOC_ERR_BAD_ALIGNMENT</a>&nbsp;&nbsp;&nbsp;16001</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Base-Adress of Buffer isn't 16-byte aligned. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9200eb7b0bf9f5605bc92943fee2cbdd"></a><!-- doxytag: member="environment_error::MOC_ERR_BAD_SIZE" ref="g9200eb7b0bf9f5605bc92943fee2cbdd" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g9200eb7b0bf9f5605bc92943fee2cbdd">MOC_ERR_BAD_SIZE</a>&nbsp;&nbsp;&nbsp;16002</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bad Size (probably no multiple of 16). <br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4f071cd9d3fc73bd6e4542a9abbb1610"></a><!-- doxytag: member="environment_error::MOC_MAX_ERROR_STRING" ref="g4f071cd9d3fc73bd6e4542a9abbb1610" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g4f071cd9d3fc73bd6e4542a9abbb1610">MOC_MAX_ERROR_STRING</a>&nbsp;&nbsp;&nbsp;255</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maximal length of error-text. <br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#ge79331149c12155246d206d5bb7a7729">MOC_Error_string</a> (int errorcode, char *string, int *resultlen)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns an error-text for a given error code. <a href="#ge79331149c12155246d206d5bb7a7729"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g46d1823f8eb05511d5b98ecdeafa33b2">MOC_Error_class</a> (int errorcode, int *errorclass)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts an error code into an error class. <a href="#g46d1823f8eb05511d5b98ecdeafa33b2"></a><br></td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g46d1823f8eb05511d5b98ecdeafa33b2"></a><!-- doxytag: member="moc.h::MOC_Error_class" ref="g46d1823f8eb05511d5b98ecdeafa33b2" args="(int errorcode, int *errorclass)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Error_class </td>
<td>(</td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>errorcode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>errorclass</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Converts an error code into an error class.
<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>errorcode</em>&nbsp;</td><td><b>in</b> Error code returned by an MPI routine </td></tr>
<tr><td valign="top"></td><td valign="top"><em>errorclass</em>&nbsp;</td><td><b>out</b> Error class associated with errorcode </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>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_COMM</em>&nbsp;</td><td>Invalid argument. Most likely an error-code out of range. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="ge79331149c12155246d206d5bb7a7729"></a><!-- doxytag: member="moc.h::MOC_Error_string" ref="ge79331149c12155246d206d5bb7a7729" args="(int errorcode, char *string, int *resultlen)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Error_string </td>
<td>(</td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>errorcode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>resultlen</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns an error-text for a given error code.
<p>
The error-text is already terminated by '\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>errorcode</em>&nbsp;</td><td><b>in</b> Error code returned by an MPI routine </td></tr>
<tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td><b>out</b> Text that corresponds to the errorcode </td></tr>
<tr><td valign="top"></td><td valign="top"><em>resultlen</em>&nbsp;</td><td><b>out</b> Length of string </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>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_ARG</em>&nbsp;</td><td>Invalid argument. Most likely an error-code out of range. </td></tr>
</table>
</dl>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:48:18 2009 for MPI On Cell (Documentation) by&nbsp;
<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>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

@@ -0,0 +1,97 @@
<!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): Timers and Synchronization</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&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Timers and Synchronization<br>
<small>
[<a class="el" href="../../de/d1b/group__environment__main.html">Environmental Management</a>]</small>
</h1>
<p>
<div class="dynheader">
Collaboration diagram for Timers and Synchronization:</div>
<div class="dynsection">
<center><table><tr><td><img src="../../d8/da6/group__environment__timer.png" border="0" alt="" usemap="#d0/d16/d8_2da6_2group____environment____timer_map">
<map name="d0/d16/d8_2da6_2group____environment____timer_map">
<area shape="rect" href="../../de/d1b/group__environment__main.html" title="This chapter discusses routines for getting and, where appropriate, setting various..." alt="" coords="5,5,187,32"></map></td></tr></table></center>
</div>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Functions to measure time.
<p>
On the PPU gettimeofday from time.h is used. On the SPU either also gettimeofday or the spu-timer-library is used depending on the configuration during compilation of the MOC-library. When gettimeofday is used on the SPU the time is global in the MOC-environment with the disadvantage that the SPU-threads get their times from the PPU using DMA causing inaccuracy and delays.
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da6/group__environment__timer.html#g415b17505f06a12f26c6aa735d00158f">MOC_Wtime</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a floating-point number of seconds, representing elapsed wall-clock time since some time in the past. <a href="#g415b17505f06a12f26c6aa735d00158f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da6/group__environment__timer.html#gc846a7a21aeafdc5e960e91cb7d602be">MOC_Wtick</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the resolution of Moc_Wtime in seconds. <a href="#gc846a7a21aeafdc5e960e91cb7d602be"></a><br></td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gc846a7a21aeafdc5e960e91cb7d602be"></a><!-- doxytag: member="moc.h::MOC_Wtick" ref="gc846a7a21aeafdc5e960e91cb7d602be" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double MOC_Wtick </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the resolution of Moc_Wtime in seconds.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>resolution in seconds. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g415b17505f06a12f26c6aa735d00158f"></a><!-- doxytag: member="moc.h::MOC_Wtime" ref="g415b17505f06a12f26c6aa735d00158f" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double MOC_Wtime </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns a floating-point number of seconds, representing elapsed wall-clock time since some time in the past.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>wall-clock time in seconds. </dd></dl>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:48:18 2009 for MPI On Cell (Documentation) by&nbsp;
<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>
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB