OMNeT++ Parallel Simulation Support  5.0
Parallel simulation support

Description

Parallel simulation support has a layered architecture, with the following layers:

  1. Communications layer, represented by cParsimCommunications. This encapsulates all details of message passing between parts of a program that executes in parallel, and hides details of the communications library (MPI, PVM, ...). Subclasses implemented here are cMPICommunications, cNamedPipeCommunications, cFileCommunications.
  2. Partition layer, represented by cParsimPartition. This encapsulates the task of distributing the simulation model over several partitions, and handles messaging between these partitions. It relies on layer 1 for this.
  3. Synchronization layer, represented by cParsimSynchronizer. It encapsulates the different parallel simulation algorithms like the conservative null message algorithm. This layer heavily cooperates with the message scheduler of the simulation.

See corresponding classes for more information.

Classes

class  cAdvancedLinkDelayLookahead
 Lookahead calculation based on inter-partition link delays only. More...
 
class  cFileCommunications
 Implementation of the communications layer which works via files. Every message is created as a file in a communications directory. More...
 
class  cFileCommBuffer
 Communication buffer that packs data in a text representation into a memory buffer. More...
 
class  cIdealSimulationProtocol
 Implements the Ideal Simulation Protocol, described in the paper "Performance Evaluation of Conservative Algoritms in Parallel Simulation Languages" by Bagrodia et al. More...
 
class  cISPEventLogger
 Implements phase one for the Ideal Simulation Protocol (ISP), namely, creating the log of "external" events. That log will be used as by the ISP synchromization mechanism (cIdealSimulationProtocol). More...
 
class  cLinkDelayLookahead
 Lookahead calculation based on inter-partition link delays only. More...
 
class  cMemCommBuffer
 Communication buffer that packs data into a memory buffer without any transformation. More...
 
class  cNamedPipeCommunications
 Implementation of the communications layer which uses named pipes. Pipes are created at initialization time, and are used throughout the whole simulation. More...
 
class  cNMPLookahead
 Base class of lookahead calculations for cNullMessageProtocol which implements the "null message algorithm". More...
 
class  cNoSynchronization
 "Dummy" implementation – just pass messages between partitions, without any synchronization. Of course incausalities may occur which terminate the simulation with error, so this class is only useful as a base "template" for implementing "real" synchronization protocols. More...
 
class  cNullMessageProtocol
 Implements the "null message algorithm". Lookahead calculation is encapsulated into a separate object, subclassed from cNMPLookahead. More...
 
class  cParsimPartition
 Represents one partition in a parallel simulation. Knows about partitions and the links between this partition and its neighbours. More...
 
class  cParsimProtocolBase
 Contains utility functions for implementing parallel simulation protocols. More...
 
class  cParsimSynchronizer
 Abstract base class for parallel simulation algorithms. Subclasses implement the "null message algorithm" and others. More...
 
class  cPlaceholderModule
 In distributed parallel simulation, modules of the network are distributed across partitions. More...
 
class  cProxyGate
 A gate that belongs to a cross-partition link and represents the remote gate on the local partition. cProxyGate's belong to cPlaceholderModule objects, which represent a "remote" module in the local partition. More...
 
class  cReceivedException
 Represents an exception that has been received from other partitions. More...
 
class  cReceivedTerminationException
 Represents a termination exception that has been received from other partitions. More...