Jive reference manual
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
jem::mp Namespace Reference

This namespace provides support for building parallel message passing programs. More...

Namespaces

 mt
 
 uni
 

Classes

class  AbortException
 
class  BcastReader
 
class  BcastStream
 
class  Buffer
 
class  Context
 
class  Driver
 
class  DriverException
 
class  DriverFactory
 
class  GatherPrinter
 
class  GatherStream
 
class  InputChannel
 
class  MPException
 
class  MPIContext
 
class  MPIDriver
 
class  MTContext
 
class  MTDriver
 
class  OutputChannel
 
class  Port
 
class  RecvBuffer
 
class  Request
 
class  RequestList
 
class  SendBuffer
 
class  SimpleTask
 
class  SimpleTaskFactory
 
class  Status
 
class  StdDriverFactory
 
class  SyncTimer
 
class  Task
 
class  TaskFactory
 
class  UniContext
 
class  UniDriver
 
class  XPacket
 

Typedefs

typedef void(* TaskFunc) (const Ref< Context > &ctx, int argc, char **argv)
 
typedef util::Pair< int, int > IntPair
 
typedef util::Pair< double, int > DoubleInt
 

Enumerations

enum  Opcode {
  SUM,
  PROD,
  MIN,
  MAX,
  BOR,
  BAND,
  LOR,
  LAND
}
 
enum  { OPCODE_COUNT = LAND + 1 }
 
enum  Type {
  NO_TYPE,
  BYTE,
  CHAR,
  SHORT,
  INT,
  LINT,
  FLOAT,
  DOUBLE,
  INT_PAIR,
  DOUBLE_INT
}
 
enum  { TYPE_COUNT = DOUBLE_INT + 1 }
 

Functions

void sendRankError (const String &context, int rank, int procCount)
 
void recvRankError (const String &context, int rank, int procCount)
 
void sendTagError (const String &context, int tag)
 
void recvTagError (const String &context, int tag)
 
void swap (XPacket &lhs, XPacket &rhs)
 
void exchange (Context &ctx, Array< XPacket > &recvPackets, const Array< XPacket > &sendPackets)
 
const char * opcodeName (int op)
 
void startTasks (TaskFunc func, int argc, char **argv)
 
void startTasks (TaskFactory &factory, int argc, char **argv)
 
int sizeOf (Type t)
 
const char * typeName (int t)
 
Type getType (byte *)
 
Type getType (char *)
 
Type getType (short *)
 
Type getType (int *)
 
Type getType (lint *)
 
Type getType (float *)
 
Type getType (double *)
 
Type getType (IntPair *)
 
Type getType (DoubleInt *)
 
template<class T >
void send (Context &ctx, const T &val, int rank, int tag=DEFAULT_TAG)
 
template<class T >
void send (Context &ctx, const T *buf, idx_t len, int rank, int tag=DEFAULT_TAG)
 
template<class T >
void recv (Context &ctx, T &val, int rank, int tag=DEFAULT_TAG, Status *stat=0)
 
template<class T >
void recv (Context &ctx, T *buf, idx_t len, int rank, int tag=DEFAULT_TAG, Status *stat=0)
 
template<class T >
allreduce (Context &ctx, const T &val, Opcode op)
 
template<class T >
allmax (Context &ctx, const T &val)
 
template<class T >
allmin (Context &ctx, const T &val)
 
template<class T >
allsum (Context &ctx, const T &val)
 

Variables

static const int DEFAULT_TAG = 0
 
static const int ANY_TAG = -1
 
static const int ANY_SOURCE = -1
 
const Status EMPTY_STATUS
 
const int TYPE_SIZES [TYPE_COUNT]
 

Detailed Description

The namespace jem::mp exports a framework for building parallel message passing programs.

All classes and functions in this namespace can be found in the package jem.mp.

Typedef Documentation

typedef void(* jem::mp::TaskFunc) (const Ref< Context > &ctx, int argc, char **argv)
typedef util::Pair<int,int> jem::mp::IntPair
typedef util::Pair<double,int> jem::mp::DoubleInt

Enumeration Type Documentation

Enumerator
SUM 
PROD 
MIN 
MAX 
BOR 
BAND 
LOR 
LAND 
anonymous enum
Enumerator
OPCODE_COUNT 
Enumerator
NO_TYPE 
BYTE 
CHAR 
SHORT 
INT 
LINT 
FLOAT 
DOUBLE 
INT_PAIR 
DOUBLE_INT 
anonymous enum
Enumerator
TYPE_COUNT 

Function Documentation

void jem::mp::sendRankError ( const String context,
int  rank,
int  procCount 
)
void jem::mp::recvRankError ( const String context,
int  rank,
int  procCount 
)
void jem::mp::sendTagError ( const String context,
int  tag 
)
void jem::mp::recvTagError ( const String context,
int  tag 
)
void jem::mp::swap ( XPacket lhs,
XPacket rhs 
)
void jem::mp::exchange ( Context ctx,
Array< XPacket > &  recvPackets,
const Array< XPacket > &  sendPackets 
)
const char* jem::mp::opcodeName ( int  op)
void jem::mp::startTasks ( TaskFunc  func,
int  argc,
char **  argv 
)
void jem::mp::startTasks ( TaskFactory factory,
int  argc,
char **  argv 
)
int jem::mp::sizeOf ( Type  t)
const char* jem::mp::typeName ( int  t)
Type jem::mp::getType ( byte *  )
Type jem::mp::getType ( char *  )
Type jem::mp::getType ( short *  )
Type jem::mp::getType ( int *  )
Type jem::mp::getType ( lint *  )
Type jem::mp::getType ( float *  )
Type jem::mp::getType ( double *  )
Type jem::mp::getType ( IntPair )
Type jem::mp::getType ( DoubleInt )
template<class T >
void jem::mp::send ( Context ctx,
const T &  val,
int  rank,
int  tag = DEFAULT_TAG 
)
template<class T >
void jem::mp::send ( Context ctx,
const T *  buf,
idx_t  len,
int  rank,
int  tag = DEFAULT_TAG 
)
template<class T >
void jem::mp::recv ( Context ctx,
T &  val,
int  rank,
int  tag = DEFAULT_TAG,
Status stat = 0 
)
template<class T >
void jem::mp::recv ( Context ctx,
T *  buf,
idx_t  len,
int  rank,
int  tag = DEFAULT_TAG,
Status stat = 0 
)
template<class T >
T jem::mp::allreduce ( Context ctx,
const T &  val,
Opcode  op 
)
template<class T >
T jem::mp::allmax ( Context ctx,
const T &  val 
)
template<class T >
T jem::mp::allmin ( Context ctx,
const T &  val 
)
template<class T >
T jem::mp::allsum ( Context ctx,
const T &  val 
)

Variable Documentation

const int jem::mp::DEFAULT_TAG = 0
static
const int jem::mp::ANY_TAG = -1
static
const int jem::mp::ANY_SOURCE = -1
static
const Status jem::mp::EMPTY_STATUS
const int jem::mp::TYPE_SIZES[TYPE_COUNT]