<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>MPQC: The Group Library</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.9 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li class="current"><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> </div> <div class="contents"> <h1><a class="anchor" name="group">The Group Library </a></h1>The group library provides three mechanisms for parallel execution and communication.<p> These are:<p> <ul> <li> <a class="el" href="group.html#messagepassing">Message Passing</a> </li> <li> <a class="el" href="group.html#distmemory">Distributed Shared Memory</a> </li> <li> <a class="el" href="group.html#multithreading">Multi-Threading</a> </li> </ul> <h2><a class="anchor" name="messagepassing"> Message Passing</a></h2> The MessageGrp class is the ancestor for classes that provide the passing of messages between processes. There are three important specializations of this class:<p> <dl> <dt>ProcMessageGrp</dt> <dd>Provides a dummy MessageGrp for single processor case.<p> </dd> <dt>MPIMessageGrp</dt> <dd>Implements MessageGrp using the Message Passing Interface (MPI) library.<p> </dd> <dt>ShmMessageGrp</dt> <dd>Implements MessageGrp using SysV Interprocess communication.<p> </dd> </dl> <p> Due to the widespread acceptance of MPI and the large number of features that it supports, the MessageGrp specialization may one day be eliminated.<h2><a class="anchor" name="distmemory"> Distributed Shared Memory</a></h2> The MemoryGrp class is the ancestor for classes that permit access to the memory in different processes, possible on difference machines. There are two important specializations of this class:<p> <dl> <dt>ProcMemoryGrp</dt> <dd>Provides a dummy MemoryGrp for single processor case.<p> </dd> <dt>MTMPIMemoryGrp</dt> <dd>This works reliably and efficiently, however, requires POSIX threads and a thread-safe MPI implementation.<p> </dd> <dt>ARMCIMemoryGrp</dt> <dd>This message group uses the Aggregate Remote Copy Interface (ARMCI). This exploits the RDMA capabilities of interconnects such as Myrinet and InfiniBand.<p> </dd> </dl> <h2><a class="anchor" name="multithreading"> Multi-Threading</a></h2> The ThreadGrp class is the ancestor of classes that provide multiple-threads within a single address space. There are two important specializations of this class:<p> <dl> <dt>ProcThreadGrp</dt> <dd>Provides a dummy ThreadGrp for the single thread case.<p> </dd> <dt>PthreadThreadGrp</dt> <dd>This is a ThreadGrp that uses POSIX threads.<p> </dd> </dl> </div> <hr> <address> <small> Generated at Wed Oct 14 14:12:12 2009 for <a href="http://www.mpqc.org">MPQC</a> 2.3.1 using the documentation package <a href="http://www.doxygen.org">Doxygen</a> 1.5.9. </small> </address> </body> </html>