par::cell Namespace Reference

The generic implementation of cellular networks. More...


Classes

struct  activation_arg_t
union  adminRq_t
 A request that concerns a particular cell. More...
union  arg_t
struct  body_t
 par::cell cell bodies More...
struct  CellActivation_t
struct  cellRq_t
 Request that concern events for individual cells. More...
class  collector
 Used to collect the data of the cells on one processor. More...
struct  collector_arg_t
class  CollectorGeneric
 Generic base class for all collector classes. More...
struct  connector_t
 Cell Output Connectors. More...
struct  connectorTables_t
 Header of Table of Output Connectors. More...
union  connectRq_t
class  context_t
 par::cell context for a particular parXXL process. More...
struct  createRq_t
 Cell creation request. More...
struct  Ctx_t
class  DataKey
 Class of "complete data": cumulating data to collect and key of the data. More...
class  descriptor_t
 Describes a cell creation request. More...
struct  dlist_t
 Doubly linked list of cells. More...
struct  interaction_arg_t
struct  killRq_t
 Cell destruction request. More...
struct  linkBackRq_t
 Answer sent to an connector. More...
struct  linkGetRq_t
 Cell output information request issued by a connector. More...
struct  linkRq_t
 Cell output information request between different cells. More...
struct  LoadBalancing_t
 Typedef of Load Balancing informations and operations. More...
struct  mission_t
 mission of a par::cell process More...
struct  output_t
 Cell output. More...
struct  param_t
 This handles the initialization parameters of a cell. More...
struct  paramDesc_t
 Cell parameter descriptor. More...
struct  permutation_arg_t
struct  PermutInfo_t
 Typedef for par::cell permutations, to control cell execution order. More...
class  reductor
 Used to collect and reduce one data per processor. More...
struct  register_t
 Typedef of cell registration. More...
struct  Rq_t
 Baseclass for all par::cell requests. More...
union  RqBody_t
 cell request body More...
struct  stat_t
 Compresses the main information about the output of a cell into one word. More...
struct  sync_t
struct  system_t
 Handles the different call backs of an individual cell. More...
class  var_t
 The user may place arbitrary data at each cell. The only restriction is that their type must be derived from this. More...

Typedefs

typedef CollectorGeneric *(* CollCreatorFuncPt_t )(context_t *)
typedef connector_tconnector_p
 Datatype of pointers on connector_t objects.
typedef double elt_t
typedef uint16_t fint_t
 The unsigned integer type to handle table entries in the par::cell::funcTab that is defined by the application.
typedef void(* func_p )(body_t *bodyPt, context_t *contextPt)
 A function prototype for the four callbacks that are associated to a cell.
typedef void(* ifunc_p )(unsigned int icode, body_t *bodyPt, context_t *contextPt)
 An interaction function prototype for the interaction callbacks that are associated to a cell.
typedef func_p PhaseSignature [phaseAmount]
 A signature contains a par::cell::func_p for each runable phase of a cell.

Enumerations

enum  ActivKind_t { FORWARD, BACKWARD, ALTERNATE, PERMUTFORWARD }
 kind of cell activations More...
enum  ActivOrder_t { NEXTORDER = 0, PREVORDER }
 cell activation order More...
enum  debug_t { NODEBUG = 0, LOWDEBUG, MEDDEBUG, MAXDEBUG }
enum  kind_t {
  NOOUT = 0, DIRECTOUT, HYBRIDOUT1, HYBRIDOUT2,
  BUFFEREDOUT, UNDEFOUT = (SIZE_ONE<<kindBits)-1
}
 The communication kind of a cell output. More...
enum  missionName_t {
  NOP = 0, INIT, INITPERMUT, NETCELLCREATE,
  NETCELLPARAM, NETPUREBUFFCOMPUTATION, NETWITHH1COMPUTATION, NETCELLEVOLUTION,
  NETLINKEVOLUTION, NETHYBRIDOUTUPDATE, NETHYBRIDOUTUPDATEFORCE, NETBUFFEREDOUTUPDATE,
  NETNEWDEATH, NETNEWBIRTH, NETCOLLECTORGATHER, NETCOLLECTORRESET,
  NETCOLLECTORUNLINK, NETCOLLECTORSETPERSISTENCE, NETINTERACTION, RESETCOUNTERS,
  STOPCOUNTERS, NETSYNCCPU, NETSYNCSEND, NETSYNCCOMM,
  NETSYNCALL, NETCLEANUP, HALT
}
 Enumeration type of task missions. More...
enum  phase_t {
  phaseInit = 0, phaseRun, phaseTerm, phaseDead,
  phaseUndef = (SIZE_ONE<<PhaseBits)-1, phaseAmount = phaseTerm+1
}
 The different phases in the life cycle of a cell. More...
enum  RqKind_t {
  NORQ, CREATERQ, KILLRQ, LINKGETRQ,
  LINKBACKRQ
}
 kind of a request More...
enum  state_t { stateAlive = 0, stateDead, stateUnknown = (SIZE_ONE<<StateBits)-1 }
 par::cell cell state More...

Functions

int check_permut_size (size_t TabSize)
connector_t const connectorNULL (registerNULL)
 Definition of 'NULL' connector: unconnected and containning the NULL registration.
char const * GetOptstring (char const *optpairs[], unsigned num)
int main (context_t *contextPt)
int main (context_t *contextPt, int argc)
int main (context_t *contextPt, int argc, char **argv)
int main (context_t *contextPt, int argc, char **argv, char **env)
static const size_t NB_H1_SUBSTEP (2)
static const size_t NB_H1OLD_SUBSTEP (1)
 Typedef of Cell Activation parameters.
register_t const & NullReg (void)
void PrintOpts (char const *optpairs[], unsigned num, char const *header)
void usage ()

Variables

func_p const cellFuncTab [] = { NULL }
 Basic table of cell function ptr, defined and initialized by the application.
size_t const CELLHASHTABSIZE = 2048
ifunc_p const cellIFuncTab [] = { NULL }
 Basic table of cell interaction function ptr, defined and initialized by the application.
CollCreatorFuncPt_t const collCreatorFuncTab [] = { NULL }
Ctx_t const CtxNULL = { NULL, 0, 0, 0 }
fint_t const FINT_MAX = UINT16_MAX
static size_t const kindBits = 3
 How many bits do we need to encode par::cell::kind_t.
mission_t const missionNULL = { NOP }
size_t const NBHYBRID1STEPDEFAULT = 2
 Default value of bybrid1 steps per cycles (minimal value to converge).
size_t const OUTCONNHTABSIZE = 2048
 Default size of the Hash Table of connectors (indexed from the registration of the cell they are connected to).
static size_t const PhaseBits = 3
 How many bits do we need to encode par::cell::phase_t.
register_t const registerNULL = {0, cntrl::nobody, cntrl::nobody}
 The constant to compare and initialize by default.
Rq_t const RqNULL = { NORQ }
 The default request.
static size_t const sizeBits = (sizeof(size_t)*8)-kindBits
 How many bits remain to encode the size of an values.
static size_t const sizeMax = (SIZE_ONE<<sizeBits)-1
 The maximum size of the values of any cell.
static size_t const StateBits = 2
 How many bits do we need to encode par::cell::state_t.
stat_t const statNULL = { UNDEFOUT, 0 }


Detailed Description

The generic implementation of cellular networks.

If you are looking for specific networks such as multidimensional grids, have a look into par::cellnet, instead.


Typedef Documentation

Definition at line 36 of file par_cell_collector.h.

Datatype of pointers on connector_t objects.

Definition at line 160 of file par_cell_connector.h.

Definition at line 37 of file par_cell_output.h.

typedef uint16_t par::cell::fint_t

The unsigned integer type to handle table entries in the par::cell::funcTab that is defined by the application.

The maximum value of this type is given by par::cell::FINT_MAX.

Definition at line 74 of file par_cell_system.h.

typedef void(* par::cell::func_p)(body_t *bodyPt, context_t *contextPt)

A function prototype for the four callbacks that are associated to a cell.

Parameters:
bodyPt gives the local information for this cell
contextPt gives the global environment.

Definition at line 37 of file par_cell_system.h.

typedef void(* par::cell::ifunc_p)(unsigned int icode, body_t *bodyPt, context_t *contextPt)

An interaction function prototype for the interaction callbacks that are associated to a cell.

Parameters:
code of the interaction required.
bodyPt gives the local information for this cell.
contextPt gives the global environment.

Definition at line 46 of file par_cell_system.h.

typedef func_p par::cell::PhaseSignature[phaseAmount]

A signature contains a par::cell::func_p for each runable phase of a cell.

Definition at line 98 of file par_cell_system.h.


Enumeration Type Documentation

kind of cell activations

Enumerator:
FORWARD 
  • Activation straightforward
BACKWARD 
  • Activation with reverse order of the hash table run
ALTERNATE 
  • Activation alterned (first->last or last->first)
PERMUTFORWARD 
  • Activation following scheme of a permutation table

Definition at line 70 of file par_cell_mission.h.

cell activation order

Enumerator:
NEXTORDER  Following 'next' pointers.
PREVORDER  Following 'previous' pointers.

Definition at line 81 of file par_cell_mission.h.

Enumerator:
NODEBUG  Absolutely no debug actions.
LOWDEBUG  Low debug actions.
MEDDEBUG  Medium debug actions.
MAXDEBUG  Maximum debug actions.

Definition at line 41 of file par_cell_context.h.

The communication kind of a cell output.

Note that this type is supposed to have no more than par::cell::kindBits significant bits.

Enumerator:
NOOUT 
DIRECTOUT 
HYBRIDOUT1 
HYBRIDOUT2 
BUFFEREDOUT 
UNDEFOUT 

Definition at line 49 of file par_cell_output.h.

Enumeration type of task missions.

Enumerator:
NOP 
  • For debuging ...
INIT 
  • Task: make some local init
INITPERMUT 
  • Task: init their local permut table
NETCELLCREATE 
  • Task: create their part of cell net
NETCELLPARAM 
  • Task: propagate and store the cell parameters
NETPUREBUFFCOMPUTATION 
  • Task: run computation functions of the cells (cdr only buff cells)
NETWITHH1COMPUTATION 
  • Task: run computation functions of the cells (cdr buff and h1 cells)
NETCELLEVOLUTION 
  • Task: accomplish cell evolution request destined to them
NETLINKEVOLUTION 
  • Task: accomplish link evolution request destined to them
NETHYBRIDOUTUPDATE 
  • Task: reset the refresh flags of their buffered cell output
NETHYBRIDOUTUPDATEFORCE 
  • Task: force propagation of their hybrid cell output
NETBUFFEREDOUTUPDATE 
  • Task: propage their pure-buffered cell output
NETNEWDEATH 
  • Task: run the new_death() function of their cells
NETNEWBIRTH 
  • Task: run the new_birth() function of their cells
NETCOLLECTORGATHER 
  • Task: collect data associated to a specified collector
NETCOLLECTORRESET 
  • Task: reset a collector: resize to 0 its datastructures
NETCOLLECTORUNLINK 
  • Task: unlink a collector: reset to 0 and remove its stack
NETCOLLECTORSETPERSISTENCE 
  • Task: set the persistence flag of a collector
NETINTERACTION 
  • Tasl: run the interaction function of each cell
RESETCOUNTERS 
  • Task: reset the counters for benchmarking
STOPCOUNTERS 
  • Task: stop the counters for benchmarking
NETSYNCCPU 
  • Task: synchronize the proc. on the end of all cpu op.
NETSYNCSEND 
  • Task: synchronize the proc. on the end of all 'send'
NETSYNCCOMM 
  • Task: synchronize the proc. on the end of all comms
NETSYNCALL 
  • Task: synchronize the proc. on the end of cpu and comm ops.
NETCLEANUP 
  • Task: cleanup temporary buffers needed during install or run
HALT 
  • Task: terminate

Definition at line 36 of file par_cell_mission.h.

The different phases in the life cycle of a cell.

Only phaseInit to phaseTerm will correspond to a executable cell function.

Enumerator:
phaseInit 
phaseRun 
phaseTerm 
phaseDead 
phaseUndef 
phaseAmount 

Definition at line 87 of file par_cell_system.h.

kind of a request

Enumerator:
NORQ 
CREATERQ 
KILLRQ 
LINKGETRQ 
LINKBACKRQ 

Definition at line 31 of file par_cell_request.h.

par::cell cell state

State of a cell as seen from the perspective of connection.

This type is supposed to have at most StateBits significant bits.

Enumerator:
stateAlive 
stateDead 
stateUnknown 

Definition at line 49 of file par_cell_connector.h.


Function Documentation

int par::cell::check_permut_size ( size_t  TabSize  ) 

Definition at line 122 of file par_cell_init.cc.

connector_t const par::cell::connectorNULL ( registerNULL   ) 

Definition of 'NULL' connector: unconnected and containning the NULL registration.

char const* par::cell::GetOptstring ( char const *  optpairs[],
unsigned  num 
)

static const size_t par::cell::NB_H1_SUBSTEP (  )  [static]

static const size_t par::cell::NB_H1OLD_SUBSTEP (  )  [static]

Typedef of Cell Activation parameters.

register_t const& par::cell::NullReg ( void   )  [inline]

Definition at line 83 of file par_cell_register.h.

void par::cell::PrintOpts ( char const *  optpairs[],
unsigned  num,
char const *  header 
)

void par::cell::usage (  ) 


Variable Documentation

Basic table of cell function ptr, defined and initialized by the application.

This global variable must be initialized at compile time. It has the const attribute, so it is read-only.

The maximum size of this table is given by par::cell::FINT_MAX.

Definition at line 21 of file par_cell_dummyFuncTab.cc.

Definition at line 28 of file par_cell_register.h.

Basic table of cell interaction function ptr, defined and initialized by the application.

This global variable must be initialized at compile time. It has the const attribute, so it is read-only.

The maximum size of this table is given by par::cell::FINT_MAX.

Definition at line 21 of file par_cell_dummyIFuncTab.cc.

Definition at line 24 of file par_cell_dummyCreatorFuncTab.cc.

Ctx_t const par::cell::CtxNULL = { NULL, 0, 0, 0 }

Definition at line 108 of file par_cell_context.h.

fint_t const par::cell::FINT_MAX = UINT16_MAX

Definition at line 75 of file par_cell_system.h.

size_t const par::cell::kindBits = 3 [static]

How many bits do we need to encode par::cell::kind_t.

Definition at line 41 of file par_cell_output.h.

Definition at line 130 of file par_cell_mission.h.

Default value of bybrid1 steps per cycles (minimal value to converge).

Definition at line 64 of file par_cell_connector.h.

Default size of the Hash Table of connectors (indexed from the registration of the cell they are connected to).

Size of the H-table of connector

Definition at line 59 of file par_cell_connector.h.

size_t const par::cell::PhaseBits = 3 [static]

How many bits do we need to encode par::cell::phase_t.

Definition at line 79 of file par_cell_system.h.

The constant to compare and initialize by default.

Definition at line 80 of file par_cell_register.h.

Rq_t const par::cell::RqNULL = { NORQ }

The default request.

Definition at line 52 of file par_cell_request.h.

size_t const par::cell::sizeBits = (sizeof(size_t)*8)-kindBits [static]

How many bits remain to encode the size of an values.

Definition at line 60 of file par_cell_output.h.

size_t const par::cell::sizeMax = (SIZE_ONE<<sizeBits)-1 [static]

The maximum size of the values of any cell.

Definition at line 64 of file par_cell_output.h.

size_t const par::cell::StateBits = 2 [static]

How many bits do we need to encode par::cell::state_t.

Definition at line 38 of file par_cell_connector.h.

stat_t const par::cell::statNULL = { UNDEFOUT, 0 }

Definition at line 74 of file par_cell_output.h.


Generated on Tue Oct 13 22:04:02 2009 for parXXL by  doxygen 1.5.8