Files
2017-10-26 19:57:24 +02:00

41 lines
3.1 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): Restrictions of the Cell-Architecture</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 class="navpath"><a class="el" href="main.html">MPI On Cell</a>
</div>
</div>
<div class="contents">
<h1><a class="anchor" name="restrictions">Restrictions of the Cell-Architecture </a></h1><dl class="user" compact><dt><b></b></dt><dd></dd></dl>
<h2><a class="anchor" name="res_arch">
CBE Architecture</a></h2>
There are some restriction caused by the CBE architecture. Programming a SPU can be compared to programming a microcontroller: <ul>
<li><b>Small</b> <b>local-store</b> <b>of</b> <b>SPUs:</b> Only 256 KByte of local-store are available on a SPU which is moreover shared by data and instructions. Because of this a economic stewardship of available resources is needed. </li>
<li><b>No</b> <b>underlying</b> <b>OS:</b> The operation system is running on the PPU, but not on the SPUs. Although the OS also manages the SPUs, there are some things which are missing or have to be done in a very performance decreasing and complex way. E.g. there is no support for several threads on one SPU (unless you program it yourself) and most of the system-calls are delegated to the PPU. </li>
<li><b>Limited</b> <b>I/O-Capabilities</b>: File-operations are only possible on the PPU. So if you want to store data of an SPU into a file, you have to send it to the PPU who then stores the data into a file. Main-memory is managed by the PPU and the SPUs can only read from or write into the main-memory. Allocation of main-memory has to be done by the PPU.</li>
</ul>
<dl class="user" compact><dt><b></b></dt><dd></dd></dl>
<h2><a class="anchor" name="res_alignment">
Memory-Alignment</a></h2>
All Buffers used in send- or receive-functions have to be aligned at a 16-byte boundary (for better performance a 128-byte alignment is recommended). This restriction cannot be circumvented.<p>
<dl class="user" compact><dt><b></b></dt><dd></dd></dl>
<h2><a class="anchor" name="res_size">
Transfer-Size</a></h2>
DMA-calls only transfer data in chunks of 16 bytes. Send-receive operations and DMA-get-operations provided by this library hide this restriction by the use of intermediate buffers. But you should keep this restriction in mind because to gain maximum performance the size of data to be transfered should be a multiple of 16 bytes. </div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:48:16 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>