Converse

Collaboration diagram for Converse:
Converse--a parallel portability layer. More...


Files

file  convcore.c
 converse main core

Modules

 Converse Machine Layer
 Common structures for all implementations of the machine layer

The machine layer of Converse consist of few common files to all architectures, shown in this module, which are:


 ConverseScheduler
 The portion of Converse responsible for scheduling the execution of incoming messages.

Data Structures

struct  CLA
 This little list of CLA's holds the argument descriptions until it's safe to print them--it's needed because the net- versions don't have printf until they're pretty well started. More...
struct  GroupDef
struct  MultiMsg
struct  CmiTmpBuf_t
struct  CmiMultipleSendHeader
struct  cmi_cpu_idlerec
void CmiTimerInit ()

Typedefs

typedef unsigned long mmulong

Enumerations

enum  { CmiReductionID_globalOffset = 0, CmiReductionID_requestOffset = 1, CmiReductionID_dynamicOffset = 2, CmiReductionID_multiplier = 3 }

Functions

 CpvExtern (int, _traceCoreOn)
void CcdModuleInit (char **)
void CmiMemoryInit (char **)
void CldModuleInit (char **)
 CpvStaticDeclare (int, CmiMainHandlerIDP)
 CpvDeclare (mmulong, MemoryUsage)
 CpvDeclare (mmulong, HiWaterMark)
 CpvDeclare (mmulong, ReportedHiWaterMark)
 CpvDeclare (int, AllocCount)
 CpvDeclare (int, BlocksAllocated)
 CpvDeclare (int, expIOFlushFlag)
 CpvDeclare (char *, explicitIOBuffer)
 CpvDeclare (int, expIOBufferSize)
void * CmiGetNonLocalNodeQ ()
 CpvDeclare (void *, CsdSchedQueue)
 CpvDeclare (void *, CsdPrefetchQueue)
 CsvDeclare (void *, CsdNodeQueue)
 CsvDeclare (CmiNodeLock, CsdNodeQueueLock)
 CpvDeclare (int, CsdStopFlag)
 CpvDeclare (int, CsdLocalCounter)
void * CMI_VMI_CmiAlloc (int size)
void CMI_VMI_CmiFree (void *ptr)
void * elan_CmiAlloc (int size)
void * infi_CmiAlloc (int size)
void infi_CmiFree (void *ptr)
void infi_freeMultipleSend (void *ptr)
void infi_unregAndFreeMeta (void *ch)
 CpvDeclare (void *, CkGridObject)
 CpvDeclare (void *, CsdGridQueue)
static void CmiAddCLA (const char *arg, const char *param, const char *desc)
 Add this CLA.
static void CmiPrintCLAs (void)
 Print out the stored list of CLA's.
void CmiArgInit (char **argv)
 Determines if command-line usage information should be printed-- that is, if a "-?", "-h", or "--help" flag is present.
int CmiArgGivingUsage (void)
 Return 1 if we're currently printing command-line usage information.
void CmiArgGroup (const char *parentName, const char *groupName)
 Identifies the module that accepts the following command-line parameters.
int CmiGetArgc (char **argv)
 Count the number of non-NULL arguments in list.
char ** CmiCopyArgs (char **argv)
 Return a new, heap-allocated copy of the argv array.
void CmiDeleteArgs (char **argv, int k)
 Delete the first k argument from the given list, shifting all other arguments down by k spaces.
int CmiGetArgStringDesc (char **argv, const char *arg, char **optDest, const char *desc)
 Find the given argment and string option in argv.
int CmiGetArgString (char **argv, const char *arg, char **optDest)
int CmiGetArgDoubleDesc (char **argv, const char *arg, double *optDest, const char *desc)
 Find the given argument and floating-point option in argv.
int CmiGetArgDouble (char **argv, const char *arg, double *optDest)
int CmiGetArgIntDesc (char **argv, const char *arg, int *optDest, const char *desc)
 Find the given argument and integer option in argv.
int CmiGetArgInt (char **argv, const char *arg, int *optDest)
int CmiGetArgFlagDesc (char **argv, const char *arg, const char *desc)
 Find the given argument in argv.
int CmiGetArgFlag (char **argv, const char *arg)
static char * _implTrimParenthesis (char *str, int trimname)
static const char * _implGetBacktraceSys (const char *name)
void CmiBacktracePrint (void **retPtrs, int nLevels)
 Print out the names of these function pointers.
void CmiPrintStackTrace (int nSkip)
int CmiIsFortranLibraryCall ()
 CpvDeclare (int, CstatsMaxChareQueueLength)
 CpvDeclare (int, CstatsMaxForChareQueueLength)
 CpvDeclare (int, CstatsMaxFixedChareQueueLength)
 CpvStaticDeclare (int, CstatPrintQueueStatsFlag)
 CpvStaticDeclare (int, CstatPrintMemStatsFlag)
void CstatsInit (char **argv)
int CstatMemory (int i)
int CstatPrintQueueStats ()
int CstatPrintMemStats ()
 CpvDeclare (CmiHandlerInfo *, CmiHandlerTable)
 CpvStaticDeclare (int, CmiHandlerCount)
 CpvStaticDeclare (int, CmiHandlerLocal)
 CpvStaticDeclare (int, CmiHandlerGlobal)
 CpvDeclare (int, CmiHandlerMax)
static void CmiExtendHandlerTable (int atLeastLen)
void CmiNumberHandler (int n, CmiHandler h)
void CmiNumberHandlerEx (int n, CmiHandlerEx h, void *userPtr)
int CmiRegisterHandler (CmiHandler h)
int CmiRegisterHandlerEx (CmiHandlerEx h, void *userPtr)
int CmiRegisterHandlerLocal (CmiHandler h)
int CmiRegisterHandlerGlobal (CmiHandler h)
static void _cmiZeroHandler (void *msg)
static void CmiHandlerInit ()
 CpvStaticDeclare (double, clocktick)
 CpvStaticDeclare (int, inittime_wallclock)
 CpvStaticDeclare (int, inittime_virtual)
int CmiTimerIsSynchronized ()
double CmiWallTimer ()
double CmiCpuTimer ()
double CmiTimer ()
 CpvStaticDeclare (double, inittime_virtual)
static double readMHz (void)
 CpvStaticDeclare (double, inittime_walltime)
double CmiStartTimer (void)
static unsigned long long BGLTimebase (void)
static unsigned long long BGPTimebase (void)
 CpvStaticDeclare (double, inittime_wallclock)
 CpvStaticDeclare (long long, inittime_wallclock)
int CmiLongSendQueue (int forNode, int longerThanBytes)
 Return 1 if our outgoing message queue for this node is longer than this many bytes.
void CmiSignal (int sig1, int sig2, int sig3, void(*handler)())
void CmiSyncVectorSend (int destPE, int n, int *sizes, char **msgs)
CmiCommHandle CmiASyncVectorSend (int destPE, int n, int *sizes, char **msgs)
void CmiSyncVectorSendAndFree (int destPE, int n, int *sizes, char **msgs)
 CpvStaticDeclare (int, CmiReductionMessageHandler)
 CpvStaticDeclare (int, CmiReductionDynamicRequestHandler)
 CpvStaticDeclare (CmiReduction **, _reduce_info)
 CpvStaticDeclare (int, _reduce_info_size)
 CpvStaticDeclare (CmiUInt2, _reduce_seqID_global)
 CpvStaticDeclare (CmiUInt2, _reduce_seqID_request)
 CpvStaticDeclare (CmiUInt2, _reduce_seqID_dynamic)
CmiReductionCmiGetReductionCreate (int id, short int numChildren)
CmiReductionCmiGetReduction (int id)
void CmiClearReduction (int id)
CmiReductionCmiGetNextReduction (short int numChildren)
CmiReductionID CmiGetGlobalReduction ()
CmiReductionID CmiGetDynamicReduction ()
void CmiReductionHandleDynamicRequest (char *msg)
void CmiGetDynamicReductionRemote (int handlerIdx, int pe, int dataSize, void *data)
void CmiSendReduce (CmiReduction *red)
void * CmiReduceMergeFn_random (int *size, void *data, void **remote, int n)
static void CmiGlobalReduce (void *msg, int size, CmiReduceMergeFn mergeFn, CmiReduction *red)
static void CmiGlobalReduceStruct (void *data, CmiReducePupFn pupFn, CmiReduceMergeFn mergeFn, CmiHandler dest, CmiReduceDeleteFn deleteFn, CmiReduction *red)
void CmiReduce (void *msg, int size, CmiReduceMergeFn mergeFn)
void CmiReduceStruct (void *data, CmiReducePupFn pupFn, CmiReduceMergeFn mergeFn, CmiHandler dest, CmiReduceDeleteFn deleteFn)
void CmiReduceID (void *msg, int size, CmiReduceMergeFn mergeFn, CmiReductionID id)
void CmiReduceStructID (void *data, CmiReducePupFn pupFn, CmiReduceMergeFn mergeFn, CmiHandler dest, CmiReduceDeleteFn deleteFn, CmiReductionID id)
void CmiListReduce (int npes, int *pes, void *msg, int size, CmiReduceMergeFn mergeFn, CmiReductionID id)
void CmiListReduceStruct (int npes, int *pes, void *data, CmiReducePupFn pupFn, CmiReduceMergeFn mergeFn, CmiHandler dest, CmiReduceDeleteFn deleteFn, CmiReductionID id)
void CmiGroupReduce (CmiGroup grp, void *msg, int size, CmiReduceMergeFn mergeFn, CmiReductionID id)
void CmiGroupReduceStruct (CmiGroup grp, void *data, CmiReducePupFn pupFn, CmiReduceMergeFn mergeFn, CmiHandler dest, CmiReduceDeleteFn deleteFn, CmiReductionID id)
void CmiNodeReduce (void *data, int size, CmiReduceMergeFn mergeFn, int redID, int numChildren, int parent)
void CmiNodeReduce (void *data, int size, void *(*mergeFn)(void *, void **, int), int redID)
void CmiNodeReduce (void *data, int size, void *(*mergeFn)(void *, void **, int), int numChildren, int parent)
void CmiNodeReduce (void *data, int size, void *(*mergeFn)(void *, void **, int))
void CmiNodeReduceStruct (void *data, CmiReducePupFn pupFn, CmiReduceMergeFn mergeFn, CmiHandler dest, CmiReduceDeleteFn deleteFn)
void CmiHandleReductionMessage (void *msg)
void CmiReductionsInit ()
 CpvStaticDeclare (int, CmiGroupHandlerIndex)
 CpvStaticDeclare (int, CmiGroupCounter)
 CpvStaticDeclare (GroupDef *, CmiGroupTable)
void CmiGroupHandler (GroupDef def)
CmiGroup CmiEstablishGroup (int npes, int *pes)
void CmiLookupGroup (CmiGroup grp, int *npes, int **pes)
void CmiGroupInit ()
void CmiSyncListSendFn (int npes, int *pes, int len, char *msg)
CmiCommHandle CmiAsyncListSendFn (int npes, int *pes, int len, char *msg)
void CmiFreeListSendFn (int npes, int *pes, int len, char *msg)
 CpvDeclare (int, CmiMulticastHandlerIndex)
void CmiMulticastDeliver (MultiMsg msg)
void CmiMulticastHandler (MultiMsg msg)
void CmiSyncMulticastFn (CmiGroup grp, int len, char *msg)
void CmiFreeMulticastFn (CmiGroup grp, int len, char *msg)
CmiCommHandle CmiAsyncMulticastFn (CmiGroup grp, int len, char *msg)
void CmiMulticastInit ()
void * arena_malloc (int size)
void arena_free (void *blockPtr)
void * CmiAlloc (int size)
 Allocate `size` bytes of memory usable as a message buffer.
static void * CmiAllocFindEnclosing (void *blk)
 Follow the header links out to the most enclosing block.
void CmiReference (void *blk)
 Increment the reference count for this block's owner.
int CmiSize (void *blk)
 Return the size of the user portion of this block.
void CmiFree (void *blk)
 Decrement the reference count for this block.
 CpvDeclare (CmiTmpBuf_t, CmiTmpBuf)
static void CmiTmpSetup (CmiTmpBuf_t *b)
void * CmiTmpAlloc (int size)
void CmiTmpFree (void *t)
void CmiTmpInit (char **argv)
void CmiMkdir (const char *dirName)
static int roundUpSize (unsigned int s)
static int paddingSize (unsigned int s)
static void _CmiMultipleSend (unsigned int destPE, int len, int sizes[], char *msgComps[], int immed)
void CmiMultipleSend (unsigned int destPE, int len, int sizes[], char *msgComps[])
void CmiMultipleIsend (unsigned int destPE, int len, int sizes[], char *msgComps[])
static void CmiMultiMsgHandler (char *msgWhole)
void CmiInitMultipleSend (void)
int HypercubeGetBcastDestinations (int mype, int total_pes, int k, int *dest_pes)
 CpvDeclare (int, CmiImmediateMsgHandlerIdx)
static void CmiImmediateMsgHandler (char *msg)
void CmiInitImmediateMsg (void)
static void on_timeout (cmi_cpu_idlerec *rec, double curWallTime)
static void on_idle (cmi_cpu_idlerec *rec, double curWallTime)
static void on_busy (cmi_cpu_idlerec *rec, double curWallTime)
static void CIdleTimeoutInit (char **argv)
void CrnInit (void)
void CmiIsomallocInit (char **argv)
void CmiIOInit (char **argv)
static void CmiProcessPriority (char **argv)
void CommunicationServerInit ()
static int testEndian (void)
int CmiEndianness ()
void ConverseCommonInit (char **argv)
 Main Converse initialization routine.
void ConverseCommonExit (void)
void register_accel_spe_funcs (void)
void CmiInitCell ()
void CmiPrintf (const char *format,...)
void CmiError (const char *format,...)
void __cmi_assert (const char *expr, const char *file, int line)
char * CmiCopyMsg (char *msg, int len)
unsigned char computeCheckSum (unsigned char *data, int len)
unsigned int CmiLog2 (unsigned int val)

Variables

CmiSwitchToPEFnPtr CmiSwitchToPE
int cur_restart_phase = 1
static int CsdLocalMax = CSD_LOCAL_MAX_DEFAULT
pthread_mutex_t prefetchLock
CmiNodeLock smp_mutex
static int usageChecked = 0
static int printUsage = 0
static const char * CLAformatString = "%20s %10s %s\n"
static int CLAlistLen = 0
static int CLAlistMax = 0
static CLACLAlist = NULL
static double inittime_wallclock = 0
static double lastT = -1.0
double _cpu_speed_factor
static double clocktick
int _immediateLock = 0
int _immediateFlag = 0
int BgOutOfCoreFlag = 0
int BgInOutOfCoreMode = 0

Detailed Description

Converse--a parallel portability layer.

Converse is the lowest level inside the Charm++ hierarchy. It stands on top of the machine layer, and it provides all the common functionality across platforms.

One converse program is running on every processor (or node in the smp version). it manages the message transmission, and the memory allocation. Charm++, which is on top of Converse, uses its functionality for interprocess *communication.

In order to maintain multiple independent objects inside a single user space program, it uses a personalized version of threads, which can be executed, suspended, and migrated across processors.

It provides a scheduler for message delivery: methods can be registered to the scheduler, and then messages allocated through CmiAlloc can be sent to the correspondent method in a remote processor. This is done through the converse header (which has few common fields, but is architecture dependent).


Typedef Documentation

typedef unsigned long mmulong

Definition at line 145 of file convcore.c.


Enumeration Type Documentation

anonymous enum

Enumerator:
CmiReductionID_globalOffset 
CmiReductionID_requestOffset 
CmiReductionID_dynamicOffset 
CmiReductionID_multiplier 

Definition at line 1924 of file convcore.c.


Function Documentation

CpvExtern ( int  ,
_traceCoreOn   
)

void CcdModuleInit ( char **   ) 

void CmiMemoryInit ( char **  argv  ) 

Definition at line 529 of file memory.c.

References CmiOutOfMemoryInit(), and meta_init().

Referenced by ConverseCommonInit().

void CldModuleInit ( char **   ) 

CpvStaticDeclare ( int  ,
CmiMainHandlerIDP   
)

CpvDeclare ( mmulong  ,
MemoryUsage   
)

CpvDeclare ( mmulong  ,
HiWaterMark   
)

CpvDeclare ( mmulong  ,
ReportedHiWaterMark   
)

CpvDeclare ( int  ,
AllocCount   
)

CpvDeclare ( int  ,
BlocksAllocated   
)

CpvDeclare ( int  ,
expIOFlushFlag   
)

CpvDeclare ( char *  ,
explicitIOBuffer   
)

CpvDeclare ( int  ,
expIOBufferSize   
)

void* CmiGetNonLocalNodeQ (  ) 

CpvDeclare ( void *  ,
CsdSchedQueue   
)

CpvDeclare ( void *  ,
CsdPrefetchQueue   
)

CsvDeclare ( void *  ,
CsdNodeQueue   
)

Referenced by KillOnAllSigs().

CsvDeclare ( CmiNodeLock  ,
CsdNodeQueueLock   
)

CpvDeclare ( int  ,
CsdStopFlag   
)

CpvDeclare ( int  ,
CsdLocalCounter   
)

void* CMI_VMI_CmiAlloc ( int  size  ) 

Definition at line 4240 of file machine.c.

Referenced by CmiAlloc().

void CMI_VMI_CmiFree ( void *  ptr  ) 

Definition at line 4294 of file machine.c.

Referenced by CmiFree().

void* elan_CmiAlloc ( int  size  ) 

Definition at line 1406 of file machine.c.

References malloc_nomigrate(), PCQueueEmpty(), and PCQueuePop().

Referenced by CmiAlloc().

void * infi_CmiAlloc ( int  size  ) 

Definition at line 2480 of file machine-ibverbs.c.

References CmiMemLock(), CmiMemUnlock(), getInfiCmiChunk(), and getInfiCmiChunkThread().

Referenced by CmiAlloc().

void infi_CmiFree ( void *  ptr  ) 

this is a part of a received mult message it will be freed correctly later

Definition at line 2577 of file machine-ibverbs.c.

References CmiMemLock(), CmiMemUnlock(), CmiMyRank(), infiCmiChunkPool::count, free(), infi_CmiFreeDirect(), size, and infiCmiChunkPool::startBuf.

Referenced by CmiFree().

void infi_freeMultipleSend ( void *  ptr  ) 

void infi_unregAndFreeMeta ( void *  ch  ) 

Definition at line 399 of file machine-ibverbs.c.

References free().

Referenced by infi_freeMultipleSend().

CpvDeclare ( void *  ,
CkGridObject   
)

CpvDeclare ( void *  ,
CsdGridQueue   
)

static void CmiAddCLA ( const char *  arg,
const char *  param,
const char *  desc 
) [static]

static void CmiPrintCLAs ( void   )  [static]

Print out the stored list of CLA's.

Definition at line 256 of file convcore.c.

References CLA::arg, c, CLAformatString, CmiMyPe(), CmiPrintf(), CLA::desc, and CLA::param.

Referenced by CmiArgInit().

void CmiArgInit ( char **  argv  ) 

Determines if command-line usage information should be printed-- that is, if a "-?", "-h", or "--help" flag is present.

Must be called after printf is setup.

Definition at line 272 of file convcore.c.

References CmiMyPe(), CmiPrintCLAs(), and free().

Referenced by ConverseCommonInit().

int CmiArgGivingUsage ( void   ) 

Return 1 if we're currently printing command-line usage information.

Definition at line 294 of file convcore.c.

References CmiMyPe().

Referenced by CmiArgGroup(), cpd_memory_single_pup(), and status().

void CmiArgGroup ( const char *  parentName,
const char *  groupName 
)

Identifies the module that accepts the following command-line parameters.

Definition at line 299 of file convcore.c.

References CmiArgGivingUsage(), and CmiPrintf().

Referenced by _initCharm(), _loadbalancerInit(), bgMain(), meta_init(), POSEreadCmdLine(), and traceCommonInit().

int CmiGetArgc ( char **  argv  ) 

Count the number of non-NULL arguments in list.

Definition at line 307 of file convcore.c.

Referenced by _initCharm(), AMPI_Init(), bgMain(), CkGetArgc(), CmiCallMain(), CmiCopyArgs(), CommunicationServer(), ConverseInit(), ConverseRunPE(), KillOnAllSigs(), and threadInit().

char** CmiCopyArgs ( char **  argv  ) 

Return a new, heap-allocated copy of the argv array.

Definition at line 316 of file convcore.c.

References CmiGetArgc(), and malloc().

Referenced by CmiInitPE(), CommunicationServer(), ConverseInit(), ConverseRunPE(), KillOnAllSigs(), PUPfunctionpointer(), workThreadInfo::run(), and threadInit().

void CmiDeleteArgs ( char **  argv,
int  k 
)

Delete the first k argument from the given list, shifting all other arguments down by k spaces.

e.g., argv=={"a","b","c","d",NULL}, k==3 modifies argv={"d",NULL,"c","d",NULL}

Definition at line 331 of file convcore.c.

Referenced by CmiGetArgFlagDesc(), CmiGetArgIntDesc(), and CmiGetArgStringDesc().

int CmiGetArgStringDesc ( char **  argv,
const char *  arg,
char **  optDest,
const char *  desc 
)

Find the given argment and string option in argv.

If the argument is present, set the string option and delete both from argv. If not present, return NULL. e.g., arg=="-name" returns "bob" from argv=={"a.out","foo","-name","bob","bar"}, and sets argv={"a.out","foo","bar"};

Definition at line 345 of file convcore.c.

References CmiAbort(), CmiAddCLA(), and CmiDeleteArgs().

Referenced by _loadbalancerInit(), _parseCommandLineOpts(), bgMain(), CcsInit(), CkMessageWatcherInit(), CldGraphModuleInit(), CmiGetArgDoubleDesc(), CmiGetArgString(), CmiInitCPUAffinity(), LV3D0_ProcInit(), TCharm::procInit(), traceCommonInit(), and TraceCounter::traceInit().

int CmiGetArgString ( char **  argv,
const char *  arg,
char **  optDest 
)

int CmiGetArgDoubleDesc ( char **  argv,
const char *  arg,
double *  optDest,
const char *  desc 
)

Find the given argument and floating-point option in argv.

Remove it and return 1; or return 0.

Definition at line 366 of file convcore.c.

References CmiAddCLA(), and CmiGetArgStringDesc().

Referenced by _loadbalancerInit(), bgMain(), CmiGetArgDouble(), TraceSimple::TraceSimple(), TraceSummary::TraceSummary(), and TraceTau::TraceTau().

int CmiGetArgDouble ( char **  argv,
const char *  arg,
double *  optDest 
)

Definition at line 373 of file convcore.c.

References CmiGetArgDoubleDesc().

int CmiGetArgIntDesc ( char **  argv,
const char *  arg,
int optDest,
const char *  desc 
)

Find the given argument and integer option in argv.

If the argument is present, parse and set the numeric option, delete both from argv, and return 1. If not present, return 0. e.g., arg=="-pack" matches argv=={...,"-pack","27",...}, argv=={...,"-pack0xf8",...}, and argv=={...,"-pack=0777",...}; but not argv=={...,"-packsize",...}.

Definition at line 384 of file convcore.c.

Referenced by _loadbalancerInit(), _parseCommandLineOpts(), bgMain(), calculateNodeSizeAndRank(), CcsInit(), CIdleTimeoutInit(), CmiGetArgInt(), CmiInitCPUAffinity(), CmiIOInit(), CmiProcessPriority(), CmiSendMessagePxshm(), CsdInit(), CthBaseInit(), extract_args(), initQd(), KillOnAllSigs(), meta_init(), POSEreadCmdLine(), TCharm::procInit(), TCHARM_Get_num_chunks(), TraceMemory::TraceMemory(), TraceProjections::TraceProjections(), TraceSimple::TraceSimple(), TraceSummary::TraceSummary(), and TraceTau::TraceTau().

int CmiGetArgInt ( char **  argv,
const char *  arg,
int optDest 
)

int CmiGetArgFlagDesc ( char **  argv,
const char *  arg,
const char *  desc 
)

int CmiGetArgFlag ( char **  argv,
const char *  arg 
)

static char* _implTrimParenthesis ( char *  str,
int  trimname 
) [static]

Definition at line 457 of file convcore.c.

Referenced by CmiBacktracePrint(), and CmiIsFortranLibraryCall().

static const char* _implGetBacktraceSys ( const char *  name  )  [static]

Definition at line 480 of file convcore.c.

Referenced by CmiBacktracePrint().

void CmiBacktracePrint ( void **  retPtrs,
int  nLevels 
)

Print out the names of these function pointers.

Definition at line 493 of file convcore.c.

References _implGetBacktraceSys(), _implTrimParenthesis(), CmiBacktraceLookup(), CmiMyPe(), CmiPrintf(), free(), and print().

Referenced by CmiPrintStackTrace(), printSlot(), and slotAbort().

void CmiPrintStackTrace ( int  nSkip  ) 

int CmiIsFortranLibraryCall (  ) 

Definition at line 529 of file convcore.c.

References _implTrimParenthesis(), CmiBacktraceLookup(), CmiBacktraceRecord(), and free().

Referenced by meta_malloc(), and meta_memalign().

CpvDeclare ( int  ,
CstatsMaxChareQueueLength   
)

CpvDeclare ( int  ,
CstatsMaxForChareQueueLength   
)

CpvDeclare ( int  ,
CstatsMaxFixedChareQueueLength   
)

CpvStaticDeclare ( int  ,
CstatPrintQueueStatsFlag   
)

CpvStaticDeclare ( int  ,
CstatPrintMemStatsFlag   
)

void CstatsInit ( char **  argv  ) 

Definition at line 569 of file convcore.c.

References CmiGetArgFlagDesc().

Referenced by ConverseCommonInit().

int CstatMemory ( int  i  ) 

Definition at line 606 of file convcore.c.

int CstatPrintQueueStats (  ) 

Definition at line 612 of file convcore.c.

int CstatPrintMemStats (  ) 

Definition at line 617 of file convcore.c.

CpvDeclare ( CmiHandlerInfo ,
CmiHandlerTable   
)

CpvStaticDeclare ( int  ,
CmiHandlerCount   
)

CpvStaticDeclare ( int  ,
CmiHandlerLocal   
)

CpvStaticDeclare ( int  ,
CmiHandlerGlobal   
)

CpvDeclare ( int  ,
CmiHandlerMax   
)

static void CmiExtendHandlerTable ( int  atLeastLen  )  [static]

Definition at line 634 of file convcore.c.

References bytes, free(), malloc(), and max().

Referenced by CmiNumberHandler(), and CmiNumberHandlerEx().

void CmiNumberHandler ( int  n,
CmiHandler  h 
)

void CmiNumberHandlerEx ( int  n,
CmiHandlerEx  h,
void *  userPtr 
)

Definition at line 657 of file convcore.c.

References CmiExtendHandlerTable(), CmiHandlerInfo::hdlr, and CmiHandlerInfo::userPtr.

Referenced by CmiRegisterHandlerEx().

int CmiRegisterHandler ( CmiHandler  h  ) 

int CmiRegisterHandlerEx ( CmiHandlerEx  h,
void *  userPtr 
)

Definition at line 678 of file convcore.c.

References CmiNumberHandlerEx().

int CmiRegisterHandlerLocal ( CmiHandler  h  ) 

Definition at line 687 of file convcore.c.

References CmiNumberHandler().

int CmiRegisterHandlerGlobal ( CmiHandler  h  ) 

Definition at line 696 of file convcore.c.

References CmiError(), CmiMyPe(), and CmiNumberHandler().

static void _cmiZeroHandler ( void *  msg  )  [static]

Definition at line 708 of file convcore.c.

References CmiAbort().

Referenced by CmiHandlerInit().

static void CmiHandlerInit (  )  [static]

Definition at line 712 of file convcore.c.

References _cmiZeroHandler(), and CmiRegisterHandler().

Referenced by ConverseCommonInit().

CpvStaticDeclare ( double  ,
clocktick   
)

CpvStaticDeclare ( int  ,
inittime_wallclock   
)

CpvStaticDeclare ( int  ,
inittime_virtual   
)

int CmiTimerIsSynchronized (  ) 

Definition at line 743 of file convcore.c.

Referenced by CmiTimerInit().

void CmiTimerInit ( void   ) 

Definition at line 748 of file convcore.c.

Referenced by CmiInitPE(), ConverseCommonInit(), ConverseInit(), and threadInit().

double CmiWallTimer ( void   ) 

Definition at line 759 of file convcore.c.

Referenced by _bufferedTicketHandler(), _checkpointRequestHandler(), _ckAckEvac(), _ckEvacBcast(), _initCharm(), _initHandler(), _localMessageCopyHandler(), _messageLoggingInit(), _processTicketRequest(), _receiveLocationHandler(), _receiveMigrationNoticeAckHandler(), _recvCheckpointHandler(), _recvRestartCheckpointHandler(), _resendMessagesHandler(), _restartHandler(), _ticketHandler(), _updateHomeAckHandler(), CkElementEvacuate::addLocation(), TraceControlPoints::beginExecute(), TraceControlPoints::beginIdle(), TraceSummary::beginPack(), TraceSummary::beginUnpack(), BgAdjustTimeLineByIndex(), bgCorrectionFunc(), BgGetTime(), bgMain(), BgNodeInitialize(), BgShutdown(), BroadcastShutdown(), sim::Cancel(), opt::CancelSpawn(), CcdCallBacks(), CcdCallFnAfterOnPE(), CcdModuleInit(), CcdRaiseCondition(), CcsRecvResponse(), CcsSendRequestGeneric(), CkCheckpointMgr::Checkpoint(), CkClearAllArrayElements(), CkDecideEvacPe(), CkEvacuatedElement(), CkMemCheckPT::CkMemCheckPT(), CkMlogRestart(), CldAskLoadHandler(), CldBalance(), CldBeginIdle(), CldStillIdle(), CmiFreeSendFn(), CmiReleaseSentMessages(), CmiSendMessagePxshm(), CmiSendMessageSysvshm(), sim::Commit(), CommunicationServer(), CommunicationServerSysvshm(), PathHistory::createPath(), CkThresholdTimer::done_(), TraceControlPoints::endExecute(), TraceControlPoints::endIdle(), TraceSummary::endPack(), TraceProjectionsBOC::endTimeReduction(), TraceSummary::endUnpack(), PythonObject::execute(), PythonObject::executeThread(), CkReductionMgr::finishReduction(), FTN_NAME(), getUsage(), heartbeatHandlerFunc(), TraceControlPoints::idleRatio(), informLocationHome(), initUsage(), killLocal(), KillOnAllSigs(), OneTimeMulticastStrategy::localMulticast(), ChareMlogData::next_ticket(), ChareMlogData::nextSN(), POSE_busy_wait(), POSE_init(), POSE_startTimer(), pose::prepExit(), processAllBufferedMsgs(), processReceivedTN(), PumpMsgs(), PumpMsgsBlocking(), readKillFile(), OneTimeMulticastStrategy::remoteMulticast(), TraceControlPoints::resetTimings(), retryTicketRequest(), opt::Rollback(), workThreadInfo::run(), commThreadInfo::run(), CkCheckpointMgr::SendRestartCB(), TraceProjectionsBOC::shutdownAnalysis(), CkThresholdTimer::start_(), startLoadBalancingMlog(), startMlogCheckpoint(), sim::Step(), adapt4::Step(), adapt3::Step(), localStat::SwitchTimer(), localStat::TimerStart(), localStat::TimerStop(), and CkDiskCheckPTInfo::updateBuffer().

double CmiCpuTimer ( void   ) 

Definition at line 770 of file convcore.c.

Referenced by CmiTimer(), FTN_NAME(), and LDProcessorSpeed().

double CmiTimer ( void   ) 

Definition at line 782 of file convcore.c.

Referenced by CmiCpuTimer(), pollSendCq(), sendCheckpointData(), and startMlogCheckpoint().

CpvStaticDeclare ( double  ,
inittime_virtual   
)

static double readMHz ( void   )  [static]

Definition at line 860 of file convcore.c.

References CmiAbort(), CmiLock(), CmiUnlock(), and s.

CpvStaticDeclare ( double  ,
inittime_walltime   
)

double CmiStartTimer ( void   ) 

Definition at line 888 of file convcore.c.

Referenced by traceCommonInit().

static unsigned long long BGLTimebase ( void   )  [inline, static]

Definition at line 940 of file convcore.c.

static unsigned long long BGPTimebase ( void   )  [inline, static]

Definition at line 1017 of file convcore.c.

CpvStaticDeclare ( double  ,
inittime_wallclock   
)

CpvStaticDeclare ( long  long,
inittime_wallclock   
)

int CmiLongSendQueue ( int  forNode,
int  longerThanBytes 
)

Return 1 if our outgoing message queue for this node is longer than this many bytes.

Definition at line 1246 of file convcore.c.

Referenced by LV3D0_ClientManager_toMaster::progress().

void CmiSignal ( int  sig1,
int  sig2,
int  sig3,
void(*)()  handler 
)

Definition at line 1253 of file convcore.c.

References handler().

Referenced by KillOnAllSigs().

void CmiSyncVectorSend ( int  destPE,
int  n,
int sizes,
char **  msgs 
)

CmiCommHandle CmiASyncVectorSend ( int  destPE,
int  n,
int sizes,
char **  msgs 
)

Definition at line 1858 of file convcore.c.

References CmiSyncVectorSend().

void CmiSyncVectorSendAndFree ( int  destPE,
int  n,
int sizes,
char **  msgs 
)

Definition at line 1863 of file convcore.c.

References CmiFree(), and CmiSyncVectorSend().

Referenced by GraphRouter::sendMessages().

CpvStaticDeclare ( int  ,
CmiReductionMessageHandler   
)

CpvStaticDeclare ( int  ,
CmiReductionDynamicRequestHandler   
)

CpvStaticDeclare ( CmiReduction **  ,
_reduce_info   
)

CpvStaticDeclare ( int  ,
_reduce_info_size   
)

CpvStaticDeclare ( CmiUInt2  ,
_reduce_seqID_global   
)

CpvStaticDeclare ( CmiUInt2  ,
_reduce_seqID_request   
)

CpvStaticDeclare ( CmiUInt2  ,
_reduce_seqID_dynamic   
)

CmiReduction* CmiGetReductionCreate ( int  id,
short int  numChildren 
)

CmiReduction* CmiGetReduction ( int  id  ) 

Definition at line 1959 of file convcore.c.

References CmiGetReductionCreate().

Referenced by CmiHandleReductionMessage().

void CmiClearReduction ( int  id  ) 

Definition at line 1963 of file convcore.c.

References free().

Referenced by CmiSendReduce().

CmiReduction* CmiGetNextReduction ( short int  numChildren  ) 

CmiReductionID CmiGetGlobalReduction (  ) 

Definition at line 1976 of file convcore.c.

References CmiReductionID_multiplier.

Referenced by CcsSetMergeFn().

CmiReductionID CmiGetDynamicReduction (  ) 

Definition at line 1980 of file convcore.c.

References CmiAbort(), CmiMyPe(), and CmiReductionID_multiplier.

Referenced by CmiReductionHandleDynamicRequest().

void CmiReductionHandleDynamicRequest ( char *  msg  ) 

void CmiGetDynamicReductionRemote ( int  handlerIdx,
int  pe,
int  dataSize,
void *  data 
)

void CmiSendReduce ( CmiReduction red  ) 

void* CmiReduceMergeFn_random ( int size,
void *  data,
void **  remote,
int  n 
)

Definition at line 2055 of file convcore.c.

Referenced by CpdCharmInit(), and CpdSearchLeaks().

static void CmiGlobalReduce ( void *  msg,
int  size,
CmiReduceMergeFn  mergeFn,
CmiReduction red 
) [static]

static void CmiGlobalReduceStruct ( void *  data,
CmiReducePupFn  pupFn,
CmiReduceMergeFn  mergeFn,
CmiHandler  dest,
CmiReduceDeleteFn  deleteFn,
CmiReduction red 
) [static]

void CmiReduce ( void *  msg,
int  size,
CmiReduceMergeFn  mergeFn 
)

Definition at line 2090 of file convcore.c.

References CmiGetNextReduction(), CmiGlobalReduce(), CmiMyPe(), and CmiNumSpanTreeChildren().

Referenced by CcsReply(), and CpdSearchLeaks().

void CmiReduceStruct ( void *  data,
CmiReducePupFn  pupFn,
CmiReduceMergeFn  mergeFn,
CmiHandler  dest,
CmiReduceDeleteFn  deleteFn 
)

void CmiReduceID ( void *  msg,
int  size,
CmiReduceMergeFn  mergeFn,
CmiReductionID  id 
)

void CmiReduceStructID ( void *  data,
CmiReducePupFn  pupFn,
CmiReduceMergeFn  mergeFn,
CmiHandler  dest,
CmiReduceDeleteFn  deleteFn,
CmiReductionID  id 
)

void CmiListReduce ( int  npes,
int pes,
void *  msg,
int  size,
CmiReduceMergeFn  mergeFn,
CmiReductionID  id 
)

void CmiListReduceStruct ( int  npes,
int pes,
void *  data,
CmiReducePupFn  pupFn,
CmiReduceMergeFn  mergeFn,
CmiHandler  dest,
CmiReduceDeleteFn  deleteFn,
CmiReductionID  id 
)

void CmiGroupReduce ( CmiGroup  grp,
void *  msg,
int  size,
CmiReduceMergeFn  mergeFn,
CmiReductionID  id 
)

Definition at line 2163 of file convcore.c.

References CmiListReduce(), and CmiLookupGroup().

void CmiGroupReduceStruct ( CmiGroup  grp,
void *  data,
CmiReducePupFn  pupFn,
CmiReduceMergeFn  mergeFn,
CmiHandler  dest,
CmiReduceDeleteFn  deleteFn,
CmiReductionID  id 
)

Definition at line 2169 of file convcore.c.

References CmiListReduceStruct(), and CmiLookupGroup().

void CmiNodeReduce ( void *  data,
int  size,
CmiReduceMergeFn  mergeFn,
int  redID,
int  numChildren,
int  parent 
)

Definition at line 2177 of file convcore.c.

References CmiAbort().

Referenced by CmiNodeReduce().

void CmiNodeReduce ( void *  data,
int  size,
void *(*)(void *, void **, int mergeFn,
int  redID 
)

void CmiNodeReduce ( void *  data,
int  size,
void *(*)(void *, void **, int mergeFn,
int  numChildren,
int  parent 
)

Definition at line 2196 of file convcore.c.

References CmiNodeReduce().

void CmiNodeReduce ( void *  data,
int  size,
void *(*)(void *, void **, int mergeFn 
)

void CmiNodeReduceStruct ( void *  data,
CmiReducePupFn  pupFn,
CmiReduceMergeFn  mergeFn,
CmiHandler  dest,
CmiReduceDeleteFn  deleteFn 
)

Definition at line 2205 of file convcore.c.

References CmiAbort().

void CmiHandleReductionMessage ( void *  msg  ) 

void CmiReductionsInit (  ) 

CpvStaticDeclare ( int  ,
CmiGroupHandlerIndex   
)

CpvStaticDeclare ( int  ,
CmiGroupCounter   
)

CpvStaticDeclare ( GroupDef ,
CmiGroupTable   
)

void CmiGroupHandler ( GroupDef  def  ) 

Definition at line 2279 of file convcore.c.

References GroupDef::core, and GroupDef::group.

Referenced by CmiGroupInit().

CmiGroup CmiEstablishGroup ( int  npes,
int pes 
)

void CmiLookupGroup ( CmiGroup  grp,
int npes,
int **  pes 
)

void CmiGroupInit (  ) 

Definition at line 2323 of file convcore.c.

References calloc(), CmiAbort(), CmiGroupHandler(), and CmiRegisterHandler().

Referenced by ConverseCommonInit().

void CmiSyncListSendFn ( int  npes,
int pes,
int  len,
char *  msg 
)

CmiCommHandle CmiAsyncListSendFn ( int  npes,
int pes,
int  len,
char *  msg 
)

Definition at line 2354 of file convcore.c.

Referenced by KillOnAllSigs().

void CmiFreeListSendFn ( int  npes,
int pes,
int  len,
char *  msg 
)

Definition at line 2361 of file convcore.c.

Referenced by KillOnAllSigs().

CpvDeclare ( int  ,
CmiMulticastHandlerIndex   
)

void CmiMulticastDeliver ( MultiMsg  msg  ) 

void CmiMulticastHandler ( MultiMsg  msg  ) 

Definition at line 2427 of file convcore.c.

References CmiMulticastDeliver().

Referenced by CmiMulticastInit().

void CmiSyncMulticastFn ( CmiGroup  grp,
int  len,
char *  msg 
)

Definition at line 2432 of file convcore.c.

Referenced by CmiAsyncMulticastFn(), and CmiFreeMulticastFn().

void CmiFreeMulticastFn ( CmiGroup  grp,
int  len,
char *  msg 
)

Definition at line 2450 of file convcore.c.

Referenced by McMulticastWaitFn().

CmiCommHandle CmiAsyncMulticastFn ( CmiGroup  grp,
int  len,
char *  msg 
)

Definition at line 2456 of file convcore.c.

void CmiMulticastInit ( void   ) 

Definition at line 2462 of file convcore.c.

References CmiMulticastHandler(), and CmiRegisterHandler().

Referenced by ConverseCommonInit().

void* arena_malloc ( int  size  ) 

void arena_free ( void *  blockPtr  ) 

Definition at line 1122 of file machine.c.

References free_slots(), ArenaBlock::length, length2slots(), n, pointer2block(), s, and ArenaBlock::slot.

Referenced by CmiFree().

void* CmiAlloc ( int  size  ) 

Allocate `size` bytes of memory usable as a message buffer.

Such memory may be in limited supply and expensive to obtain on machine layers that use registered or pinned memory when interacting with the communication hardware. Uses besides buffers in which to construct messages should prefer the malloc()/free() provided by libmemory-*.

Definition at line 2499 of file convcore.c.

Referenced by TokenPool::_alloc(), _bufferedLocalMessageCopyHandler(), _messageLoggingInit(), _processTicketRequest(), _recvGlobalStepHandler(), _recvRestartCheckpointHandler(), _resendMessagesHandler(), _resendReplyHandler(), _updateHomeAckHandler(), ElementDistributor::addLocation(), adjustTimeLog(), envelope::alloc(), AllocBlock(), AssembleDatagram(), BgCloneMsg(), BgExpandMsg(), BgMultipleSend(), BgShutdown(), BgSyncBroadcast(), BgSyncBroadcastAll(), BgSyncNodeBroadcast(), BgSyncNodeBroadcastAll(), BgSyncNodeSend(), BgSyncSend(), BroadcastShutdown(), bufalloc(), BufferAlloc(), callHandlerRec(), CcsImpl_ccs2converse(), CcsImpl_reply(), CcsMerge_concat(), CcsReply(), CfutureCreateBuffer(), CkCopyMsg(), CldGraphModuleInit(), CldModuleGeneralInit(), CldPutToken(), CMI_VMI_Distribute_Cluster_Mapping(), CMI_VMI_Eager_Long_Setup(), CMI_VMI_Eager_Short_Setup(), CMI_VMI_RDMA_Publish_Notification_Handler(), CMI_VMI_Reply_Latencies(), CMI_VMI_Stream_Notification_Handler(), CmiAmmassoOpenQueuePairs(), CmiAsyncBroadcastAllFn(), CmiAsyncSendFn(), CmiCopyMsg(), CmiCreateLock(), CmiCreatePersistent(), CmiDestoryPersistent(), CmiDirect_assocLocalBuffer(), CmiEstablishGroup(), CmiFreeBroadcastAllFn(), CmiGet(), CmiGetCb(), CmiGetDynamicReductionRemote(), CmiGetNonLocal(), CmiInitCPUAffinity(), CmiInitCPUTopology(), CmiIOInit(), CmiPut(), CmiPutCb(), CmiSendMessagePxshm(), CmiSendReduce(), CmiStartQD(), BGConverse::CmiSyncBroadcast(), BGConverse::CmiSyncBroadcastAll(), CmiSyncBroadcastAllFn(), CmiSyncBroadcastFn(), CmiSyncListSendFn(), CmiSyncMulticastFn(), BGConverse::CmiSyncSend(), CmiSyncSendFn(), CmiSyncSendFn1(), CmiSyncSendPersistent(), CmmNew(), CmmPut(), ComlibNotifyMigrationDone(), CommunicationServer(), ConverseInit(), copyEnvelope(), CPathCreateRedmsg(), CPathSend(), CpdSearchLeaks(), cpuTopoHandler(), CqsCreate(), CqsDeqExpand(), CqsEnumerateDeq(), CqsEnumeratePrioq(), CqsEnumerateQueue(), CqsPrioqExpand(), CqsPrioqGetDeq(), CqsPrioqInit(), CqsPrioqRehash(), CWeb_Collect(), CWebHandler(), ConvComlibManager::doneCreating(), RouterStrategy::doneInserting(), StatTable::doReduction(), TreeRouter::EachToAllMulticast(), HypercubeRouter::EachToAllMulticast(), GridRouter::EachToAllMulticast(), GraphRouter::EachToAllMulticast(), DimexRouter::EachToAllMulticast(), D3GridRouter::EachToAllMulticast(), ElanGetBasedSend(), ElanSendFn(), emptyRecvBuf(), EnqueueDummyPacket(), EnqueueRdmaAck(), EnqueueRdmaPacket(), PeTable::ExtractAndDeliverLocalMsgs(), PeTable::ExtractAndPack(), PeTable::ExtractAndPackAll(), PeTable::ExtractAndVectorize(), PeTable::ExtractAndVectorizeAll(), get_callback_dest(), getFreeRecvSlot(), GrantTokens(), GridRouter::GridRouter(), handleGetDest(), handleGetHeader(), handlePutDest(), heartbeatHandlerFunc(), PipeBroadcastConverse::insertMessage(), KillOnAllSigs(), McQueueCreate(), McQueueRemoveFromFront(), McRetrieveRemote(), newPacket(), RouterStrategy::notifyDone(), MessageHolder::operator new(), ComlibLocalStats::operator=(), PerAlloc(), persistentRequestHandler(), PeTable::PeTable(), prepare_slotmsg(), print_node0(), processMessage(), ProcessMessage(), processRdmaRequest(), PumpMsgs(), PumpMsgsBlocking(), PumpPersistent(), Event::pup(), MessageHolder::pup(), ComlibComRec::pup(), ComlibComRec::recordRecv(), ComlibComRec::recordRecvM(), ComlibComRec::recordSend(), ComlibComRec::recordSendM(), recv_callback(), HypercubeRouter::RecvManyMsg(), DimexRouter::RecvManyMsg(), CkMulticastMgr::recvPacket(), BgMessageReplay::replay(), sendBufferedLocalMessageCopy(), sendCheckpointData(), sendCorrectionStats(), Router::SendDummyMsg(), sendHeartbeat(), sendRemoveLogRequests(), sendTicketRequest(), TreeRouter::SortBufferDown(), TreeRouter::SortBufferUp(), HypercubeRouter::start_hcube(), DimexRouter::start_hcube(), startMlogCheckpoint(), PipeBroadcastConverse::store(), TokenAlloc(), and ComlibSectionInfo::unpack().

static void* CmiAllocFindEnclosing ( void *  blk  )  [static]

Follow the header links out to the most enclosing block.

Definition at line 2546 of file convcore.c.

Referenced by CmiFree(), and CmiReference().

void CmiReference ( void *  blk  ) 

int CmiSize ( void *  blk  ) 

Return the size of the user portion of this block.

Definition at line 2563 of file convcore.c.

Referenced by CmiSyncSendFn(), CpdListHeader_ccs_list_items(), getImageHandler(), and McQueueRemoveFromFront().

void CmiFree ( void *  blk  ) 

Decrement the reference count for this block.

Definition at line 2569 of file convcore.c.

Referenced by _bufferedLocalMessageAckHandler(), _bufferedLocalMessageCopyHandler(), _bufferedTicketHandler(), _bufferedTicketRequestHandler(), _checkpointAckHandler(), _checkpointBarrierAckHandler(), _checkpointBarrierHandler(), _discardHandler(), _dummyMigrationHandler(), _exitHandler(), TokenPool::_free(), _localMessageAckHandler(), _pingHandler(), _processFillVidMsg(), _processRODataMsg(), _qdCommHandler(), _receiveLocationHandler(), _recvCheckpointHandler(), _recvRestartCheckpointHandler(), _removeProcessedLogHandler(), _resendMessagesHandler(), _sendTriggers(), _speedHdlr(), _storeCheckpointHandler(), _ticketHandler(), _ticketRequestHandler(), _triggerHandler(), _updateHomeAckHandler(), CkMulticastMgr::ArraySectionSend(), batchHandleCorrectionMsg(), beginExitHandlerFunc(), bgCorrectionFunc(), BgExpandMsg(), BgSendBufferedCorrMsgs(), BgSyncListSend(), bufalloc(), ccs_getinfo(), ccs_killport(), CcsMerge_concat(), CfutureDestroy(), CfutureDestroyBuffer(), CkFreeMsg(), CkMemCheckPT::CkMemCheckPT(), CldAskLoadHandler(), CldAverageHandler(), CldEnqueueMulti(), CldLoadResponseHandler(), CldMultipleSend(), CldReduceHandler(), CldTokenHandler(), clearUpMigratedRetainedLists(), CMI_VMI_Common_Receive(), CMI_VMI_RDMA_Get_Notification_Handler(), CMI_VMI_RDMA_Put_Completion_Handler(), CMI_VMI_Stream_Completion_Handler(), CmiDestoryAllPersistent(), CmiExit(), CmiFreeBroadcastAllFn(), CmiFreeBroadcastFn(), CmiFreeListSendFn(), CmiFreeMulticastFn(), CmiFreeSendFn(), CmiMulticastDeliver(), CmiMultiMsgHandler(), CmiReleaseCommHandle(), CmiReleaseSentMessages(), CmiSendPersistentMsg(), CmiSendReduce(), CmiSyncVectorSendAndFree(), CmmFind(), CmmFree(), CmmFreeAll(), CmmPup(), ComlibNotifyMigrationDoneHandler(), comlibReadyHandler(), comlibTableReceivedHandler(), CommunicationServer(), CPathForwardReduction(), CPathMsgFree(), CpdAfterEp(), CpdDebugCallAllocationTree(), CpdDebugCallMemStat(), CpdDebugHandler(), CpdList_ccs_list_items_fmt(), CpdList_ccs_list_items_set(), CpdList_ccs_list_items_txt(), CpdList_ccs_list_len(), CpdMachineArchitecture(), CpdSearchLeaks(), CpdSearchLeaksDone(), CpmThread3(), cpuAffinityHandler(), cpuAffinityRecvHandler(), cpuTopoHandler(), cpuTopoRecvHandler(), CQdHandlePhase0(), CQdHandlePhase1(), CQdHandlePhase2(), CqsDelete(), CqsDeqExpand(), CqsEnumerateQueue(), CqsPrioqDequeue(), CqsPrioqExpand(), CqsPrioqRehash(), CWeb_Deliver(), CWeb_Reduce(), CharmStrategy::deliverToIndices(), BgStreaming::depositMsg(), HypercubeRouter::EachToAllMulticast(), DimexRouter::EachToAllMulticast(), enqueueCorrectionMsg(), PeTable::ExtractAndPack(), PeTable::ExtractAndPackAll(), RectMulticastStrategy::forwardMulticast(), free_remote(), GarbageCollectMsg(), getImageConfigHandler(), getImageHandler(), grab_remote(), GrantTokens(), handleCorrectionMsg(), handleGetDest(), handleGetSrc(), OneTimeMulticastStrategy::handleMessage(), RectMulticastStrategy::handleNewMulticastMessage(), MulticastStrategy::handleNewMulticastMessage(), handlePutDest(), handlePutSrc(), heartbeatHandlerFunc(), KillOnAllSigs(), RectMulticastStrategy::localMulticast(), MulticastStrategy::localMulticast(), ComlibArrayInfo::localMulticast(), LV3D0_flush(), LV3D0_getViews(), LV3D0_qd(), LV3D0_quit(), LV3D0_setup(), LV3D0_startbalance(), LV3D0_stats(), LV3D0_throttle0(), LV3D0_throttle1(), LV3D0_trace(), LV3D0_zero(), McCleanUpInTransit(), McRetrieveRemote(), NetFEM_getCurrent(), nodeBCastMsgHandlerFunc(), MessageHolder::operator delete(), persistentDestoryHandler(), persistentReqGrantedHandler(), persistentRequestHandler(), processBufferedBcast(), processGetEnv(), PumpEvents(), PumpMsgs(), put_callback(), recdQueueAddToBack(), recv_dummy(), recvGVT(), HypercubeRouter::RecvManyMsg(), DimexRouter::RecvManyMsg(), remote_put_done(), OneTimeMulticastStrategy::remoteMulticast(), MulticastStrategy::remoteMulticast(), rep_fw_handler(), req_fw_handler(), ComlibComRec::reset(), retryTicketRequest(), sendCheckpointData(), RectMulticastStrategy::sendRectDest(), sendRemoveLogRequests(), TreeRouter::SortBufferDown(), TreeRouter::SortBufferUp(), HypercubeRouter::start_hcube(), DimexRouter::start_hcube(), statsCollectionHandlerFunc(), StatTableReduction(), PipeBroadcastConverse::store(), streaming_column_handler(), StreamingHandlerFn(), threadBCastMsgHandlerFunc(), PeTable::UnpackAndInsert(), PeTable::UnpackAndInsertAll(), ComlibComRec::~ComlibComRec(), GridRouter::~GridRouter(), MlogEntry::~MlogEntry(), and PeTable::~PeTable().

CpvDeclare ( CmiTmpBuf_t  ,
CmiTmpBuf   
)

static void CmiTmpSetup ( CmiTmpBuf_t b  )  [static]

Definition at line 2633 of file convcore.c.

References CmiTmpBuf_t::buf, CmiTmpBuf_t::cur, malloc(), and CmiTmpBuf_t::max.

Referenced by CmiTmpAlloc(), and CmiTmpInit().

void* CmiTmpAlloc ( int  size  ) 

void CmiTmpFree ( void *  t  ) 

void CmiTmpInit ( char **  argv  ) 

Definition at line 2673 of file convcore.c.

References CmiTmpSetup().

Referenced by ConverseCommonInit().

void CmiMkdir ( const char *  dirName  ) 

Definition at line 2688 of file convcore.c.

Referenced by CkCheckpointMgr::Checkpoint(), NetFEM_End(), and threadInfo::takenOutofMem().

static int roundUpSize ( unsigned int  s  )  [static]

Definition at line 2732 of file convcore.c.

Referenced by _CmiMultipleSend(), and paddingSize().

static int paddingSize ( unsigned int  s  )  [static]

Definition at line 2738 of file convcore.c.

References roundUpSize().

Referenced by _CmiMultipleSend().

static void _CmiMultipleSend ( unsigned int  destPE,
int  len,
int  sizes[],
char *  msgComps[],
int  immed 
) [static]

void CmiMultipleSend ( unsigned int  destPE,
int  len,
int  sizes[],
char *  msgComps[] 
)

Definition at line 2853 of file convcore.c.

References _CmiMultipleSend().

Referenced by BgSendBufferedCorrMsgs(), CldMultipleSend(), and BgStreaming::depositMsg().

void CmiMultipleIsend ( unsigned int  destPE,
int  len,
int  sizes[],
char *  msgComps[] 
)

Definition at line 2858 of file convcore.c.

References _CmiMultipleSend().

Referenced by CldMultipleSend().

static void CmiMultiMsgHandler ( char *  msgWhole  )  [static]

void CmiInitMultipleSend ( void   ) 

Definition at line 2874 of file convcore.c.

References CmiMultiMsgHandler(), and CmiRegisterHandler().

Referenced by ConverseCommonInit().

int HypercubeGetBcastDestinations ( int  mype,
int  total_pes,
int  k,
int dest_pes 
)

Definition at line 2923 of file convcore.c.

Referenced by KillOnAllSigs(), and PipeBroadcastConverse::propagate().

CpvDeclare ( int  ,
CmiImmediateMsgHandlerIdx   
)

static void CmiImmediateMsgHandler ( char *  msg  )  [static]

Definition at line 2959 of file convcore.c.

References CmiHandleMessage().

Referenced by CmiInitImmediateMsg().

void CmiInitImmediateMsg ( void   ) 

Definition at line 2965 of file convcore.c.

References CmiImmediateMsgHandler(), and CmiRegisterHandler().

Referenced by ConverseCommonInit().

static void on_timeout ( cmi_cpu_idlerec rec,
double  curWallTime 
) [static]

Definition at line 2988 of file convcore.c.

References cmi_cpu_idlerec::call_count, CmiAbort(), CmiError(), CmiMyPe(), and cmi_cpu_idlerec::is_idle.

Referenced by on_idle().

static void on_idle ( cmi_cpu_idlerec rec,
double  curWallTime 
) [static]

static void on_busy ( cmi_cpu_idlerec rec,
double  curWallTime 
) [static]

Definition at line 3002 of file convcore.c.

References cmi_cpu_idlerec::is_idle.

Referenced by CIdleTimeoutInit().

static void CIdleTimeoutInit ( char **  argv  )  [static]

void CrnInit ( void   ) 

Definition at line 65 of file random.c.

References CrnInitStream().

Referenced by ConverseCommonInit().

void CmiIsomallocInit ( char **  argv  ) 

void CmiIOInit ( char **  argv  ) 

Definition at line 3299 of file convcore.c.

References CmiAbort(), CmiAlloc(), CmiGetArgFlagDesc(), and CmiGetArgIntDesc().

Referenced by ConverseCommonInit().

static void CmiProcessPriority ( char **  argv  )  [static]

Definition at line 3033 of file convcore.c.

References CmiAbort(), CmiGetArgIntDesc(), CmiMyPe(), CmiMyRank(), CmiPrintf(), errno, and status().

Referenced by ConverseCommonInit().

void CommunicationServerInit (  ) 

Definition at line 3099 of file convcore.c.

References CQdCpvInit().

Referenced by call_startfn(), and KillOnAllSigs().

static int testEndian ( void   )  [static]

Definition at line 3108 of file convcore.c.

References c.

Referenced by CmiEndianness().

int CmiEndianness (  ) 

Definition at line 3121 of file convcore.c.

References testEndian().

Referenced by CqsEnqueueGeneral().

void ConverseCommonInit ( char **  argv  ) 

Main Converse initialization routine.

This routine is called by the machine file (machine.c) to set up Converse. It's "Common" because it's shared by all the machine.c files.

The main task of this routine is to set up all the Cpv's (message queues, handler tables, etc.) used during main execution.

On SMP versions, this initialization routine is called by all* processors of a node simultaniously. It's *also* called by the communication thread, which is rather strange but needed for immediate messages. Each call to this routine expects a different copy of the argv arguments, so use CmiCopyArgs(argv).

Requires:

  • A working network layer.
  • Working Cpv's and CmiNodeBarrier.
  • CthInit to already have been called. CthInit is called from the machine layer directly, because some machine layers (like uth) use Converse threads internally.

Initialization is somewhat subtle, in that various modules won't work properly until they're initialized. For example, nobody can register handlers before calling CmiHandlerInit.

The reason to initialize this variable here: cmiArgDebugFlag is possibly accessed in CmiPrintf/CmiError etc., therefore, we have to initialize this variable before any calls to those functions (such as CmiPrintf). Otherwise, we may encounter a memory segmentation fault (bad memory access). Note, even testing CpvInitialized(cmiArgDebugFlag) doesn't help to solve this problem because the variable indicating whether cmiArgDebugFlag is initialized or not is not initialized, thus possibly causing another bad memory access. --Chao Mei

Definition at line 3154 of file convcore.c.

References _Cmi_noprocforcommthread, CcdModuleInit(), CcsInit(), CIdleTimeoutInit(), CldModuleInit(), CmiArgInit(), CmiDeliversInit(), CmiGetArgFlagDesc(), CmiGroupInit(), CmiHandlerInit(), CmiInitCell(), CmiInitImmediateMsg(), CmiInitMultipleSend(), CmiIOInit(), CmiIsomallocInit(), CmiMemoryInit(), CmiMulticastInit(), CmiMyPe(), CmiMyRank(), CmiPersistentInit(), CmiPoolAllocInit(), CmiProcessPriority(), CmiReductionsInit(), CmiTimerInit(), CmiTmpInit(), CpdInit(), CQdInit(), CrnInit(), CsdInit(), CstatsInit(), CthSchedInit(), initQd(), and traceInit().

Referenced by CmiInitPE(), CommunicationServer(), ConverseInit(), ConverseRunPE(), KillOnAllSigs(), and threadInit().

void ConverseCommonExit ( void   ) 

Definition at line 3240 of file convcore.c.

References CcsImpl_kill(), CloseOffloadAPI(), and traceClose().

Referenced by CommunicationServer(), ConverseExit(), and KillOnAllSigs().

void register_accel_spe_funcs ( void   ) 

Referenced by CmiInitCell().

void CmiInitCell (  ) 

void CmiPrintf ( const char *  format,
  ... 
)

Definition at line 3344 of file convcore.c.

Referenced by _checkpointBarrierAckHandler(), _checkpointBarrierHandler(), _dummyMigrationHandler(), _getCheckpointHandler(), _getGlobalStepHandler(), _getRestartCheckpointHandler(), _loadbalancerInit(), _parseCommandLineOpts(), _propMapInit(), _receiveLocationHandler(), _resendMessagesHandler(), _updateHomeRequestHandler(), _verifyAckHandler(), _verifyAckRequestHandler(), LBDatabase::addLoadbalancer(), AllocatorCheck(), ampi::ampi(), AMPI_Alltoall(), AMPI_MemCheckpoint(), ampiInit(), arena_init(), CkMulticastMgr::ArraySectionSend(), AsynchronousEventHandler(), bad_location(), CkLocRec_buffering::beenReplaced(), TraceCounter::beginExecute(), TraceCounter::beginOverview(), BgAdjustTimeLineByIndex(), BgAdjustTimeLineFromIndex(), BgIntegrityCheck(), BgLoadOffsets(), bgMain(), BgMessageReplay::BgMessageReplay(), TraceBluegene::bgPrint(), BgProcessMessage(), BgSendNonLocalPacket(), BgShutdown(), BgWriteTimelines(), BgWriteTraceSummary(), CkArray::broadcastHomeElements(), BroadcastShutdown(), CkMemCheckPT::BuddyPE(), HybridBaseLB::buildStats(), CcsHandleRequest(), CcsImpl_netRequest(), CcsInit(), CfutureDestroy(), CfutureWait(), LBDB::ChangePredictor(), check_range(), CkCppInterpreter::CkCppInterpreter(), CkGetSectionInfo(), CkMemCheckPT::CkMemCheckPT(), CkRestartMain(), CldAverageHandler(), CldComputeNeighborData(), CldEnqueue(), CldGraphModuleInit(), CldPropagateLoad(), CMI_VMI_Startup_CRM(), CmiAddCLA(), CmiAlloc(), CmiArgGroup(), CmiBacktracePrint(), CmiBarrierZero(), CmiCheckGmStatus(), CmiDestoryAllPersistent(), CmiDirect_assocLocalBuffer(), CmiDirect_createHandle(), CmiDirect_put(), CmiDirect_ready(), CmiDirect_readyPollQ(), CmiExitPxshm(), CmiExitSysvshm(), CmiFree(), CmiFreeListSendFn(), CmiFreeSendFn(), CmiGetNonLocal(), CmiGetReductionCreate(), CmiInitCPUAffinity(), CmiInitCPUTopology(), CmiMemorySweep(), CmiMXMakeConnection(), CmiPoolAllocStats(), CmiPoolPrintList(), CmiPrintCLAs(), CmiProcessPriority(), CmiRegisterMemory(), CmiSendPersistentMsg(), CmiStartThreads(), CmiUnRegisterMemory(), CMsgInvokeCallbacks(), CMsgRegisterCallback(), CombineSummary(), CommunicationServer(), pupCheckRec::compare(), computeUtilForAll(), CkMulticastMgr::contribute(), ConverseExit(), ConverseInit(), cpd_memory_single_pup(), CpdDebugCallAllocationTree(), CpdDebugCallMemStat(), CpdDebugHandler(), CpdList_ccs_list_items_set(), CpdList_ccs_list_items_txt(), CpdNotify(), CpdStartGdb(), Cpthread_once(), cpuAffinityRecvHandler(), cpuTopoHandler(), CqsRemoveSpecific(), RefinerApprox::create(), createLoadBalancer(), createShmObjectsAndSems(), CtgInit(), CthPrintThdMagic(), CthPrintThdStack(), disable_isomalloc(), LBDBRegistry::displayLBs(), CkThresholdTimer::done_(), Router::DummyEP(), LBDB::DumpDatabase(), Router::EachToAllMulticast(), Router::EachToManyMulticast(), TraceCounter::endExecute(), TraceCounter::endOverview(), EnqueuePacket(), errspan(), exitHandlerFunc(), expand_ccd_heap(), find_largest_free_region(), findLeastTime(), CentralLB::findSimResults(), g_printGraph(), gengraph(), get_callback_dest(), ImageData::GetClippedImage(), CkMemCheckPTInfo::getCopy(), HandlerTable::getHandle(), getImageConfigHandler(), getImageHandler(), LBCommTable::HashInsert(), heartbeatHandlerFunc(), CkLocMgr::inform(), informLocationHome(), init_counters(), init_ranges(), initConvComlibManager(), initQd(), KillOnAllSigs(), LBDBInit::LBDBInit(), liveViz0Deposit(), liveViz0Init(), liveViz0PollInit(), CentralLB::LoadBalance(), BgTimeLineRec::logEntryInsert(), TraceCore::LogEvent(), LV3D0_setup(), map_slots(), OrbLB::mapPartitionsToNodes(), McCleanUpInTransit(), McInitList(), McQueueAddToBack(), memAbort(), memory_check(), meta_calloc(), meta_cfree(), meta_free(), meta_init(), meta_malloc(), meta_memalign(), meta_realloc(), meta_valloc(), LBDB::Migrate(), Refiner::multirefine(), NborBaseLB::NborBaseLB(), ChareMlogData::next_ticket(), TraceLogger::openLogFiles(), GridMetisLB::Partition_ClusterObjects_Into_PEs(), pollCmiDirectQ(), mCastEntry::print(), AmpiRequestList::print(), ATAReq::print(), IReq::print(), PersReq::print(), AmpiRequest::print(), minHeap< T >::print(), ParamNetwork::print(), IBMPowerNetwork::print(), RedStormNetwork::print(), BlueGenePNetwork::print(), BlueGeneNetwork::print(), LemieuxNetwork::print(), DummyNetwork::print(), BgMsgEntry::print(), BgTimeLog::print(), bgEvents::print(), LBTopoVec::print(), CpuTopology::print(), LBInfo::print(), CkArrayIndexMax::print(), print_btree_node(), print_btree_top_down(), print_list_array(), print_myslots(), LBSimulation::PrintDifferences(), TraceCounter::printHelp(), RefinerComm::printLoad(), printNetStatistics(), RecBisectBfLB::printPartitions(), printSlot(), printTblThdInMem(), processFutureMessages(), processMessage(), ProcessMessage(), processStatusCode(), TCharm::procInit(), Router::ProcManyMsg(), PumpEvents(), PumpMsgs(), PumpMsgsBlocking(), BgTimeLog::pup(), ChareMlogData::pup(), CkLocMgr::pup(), put_callback(), OrbLB::quicksort(), BGMach::read(), read_counters(), CentralLB::readStatsMsgs(), OrbLB::rec_divide(), ReceiveDatagram(), CentralLB::ReceiveMigration(), recv_callback(), Router::RecvManyMsg(), CkMulticastMgr::recvRedMsg(), RefinerComm::Refine(), RefinerComm::refine(), TraceCounter::registerArg(), TraceLogger::RegisterLanguage(), CentralLB::removeNonMigratable(), BgMessageReplay::replay(), sanityCheck(), workThreadInfo::scheduler(), ChareMlogData::searchRestoredLocalQ(), send_callback(), sendMlogLocation(), sendTicketRequest(), OrbLB::setVal(), showBanner(), CentralLB::simulationRead(), CentralLB::simulationWrite(), slotAbort(), staticStartLB(), statsCollectionHandlerFunc(), StatTableReduction(), status(), NeighborCommLB::Strategy(), TCHARM_Api_trace(), TopologyAgent::TopologyAgent(), TraceCounter::traceBegin(), TraceCounter::traceClose(), traceCommonInit(), TraceCounter::traceEnd(), TraceCounter::traceInit(), TraceMemory::TraceMemory(), TraceProjections::TraceProjections(), TraceSummary::TraceSummary(), try_largest_mmap_region(), LBDB::TurnPredictorOff(), LBDB::TurnPredictorOn(), unmap_slots(), CkObjID::updatePosition(), TraceCounter::usage(), TraceLogger::verifyFptrs(), BgTimeLog::winPup(), TopoLB::work(), TopoCentLB::work(), RefineTopoLB::work(), RecBisectBfLB::work(), OrbLB::work(), CentralLB::writeStatsMsgs(), CountLogPool::writeSts(), writeToDisk(), and WSLB::WSLB().

void CmiError ( const char *  format,
  ... 
)

void __cmi_assert ( const char *  expr,
const char *  file,
int  line 
)

Definition at line 3388 of file convcore.c.

char* CmiCopyMsg ( char *  msg,
int  len 
)

unsigned char computeCheckSum ( unsigned char *  data,
int  len 
)

unsigned int CmiLog2 ( unsigned int  val  ) 

Definition at line 3416 of file convcore.c.


Variable Documentation

Definition at line 132 of file convcore.c.

Referenced by CkMemCheckPT::CkMemCheckPT().

int CsdLocalMax = CSD_LOCAL_MAX_DEFAULT [static]

Definition at line 134 of file convcore.c.

pthread_mutex_t prefetchLock

Definition at line 174 of file convcore.c.

Definition at line 184 of file convcore.c.

Referenced by ConverseInit(), and read_randomflag().

int usageChecked = 0 [static]

Definition at line 215 of file convcore.c.

int printUsage = 0 [static]

Definition at line 216 of file convcore.c.

const char* CLAformatString = "%20s %10s %s\n" [static]

Definition at line 217 of file convcore.c.

Referenced by CmiAddCLA(), and CmiPrintCLAs().

int CLAlistLen = 0 [static]

Definition at line 228 of file convcore.c.

int CLAlistMax = 0 [static]

Definition at line 229 of file convcore.c.

CLA* CLAlist = NULL [static]

Definition at line 230 of file convcore.c.

static timebasestruct_t inittime_wallclock = 0 [static]

Definition at line 791 of file convcore.c.

Referenced by CmiTimer(), CmiTimerInit(), and CmiWallTimer().

double lastT = -1.0 [static]

Definition at line 833 of file convcore.c.

Definition at line 884 of file convcore.c.

static double clocktick [static]

Definition at line 1152 of file convcore.c.

Referenced by CmiCpuTimer(), CmiTimer(), CmiTimerInit(), and CmiWallTimer().

Definition at line 2953 of file convcore.c.

Definition at line 2954 of file convcore.c.

Definition at line 3413 of file convcore.c.

Referenced by AMPI_Wait(), AMPI_Waitall(), bgMain(), and IReq::wait().


Generated on Mon Nov 23 07:56:03 2009 for Charm++ by  doxygen 1.5.5