arch/origin-pthreads/machine.c File Reference

Origin Pthreads machine layer. More...

Go to the source code of this file.

Data Structures

struct  McQueue
struct  USER_PARAMETERS
static McQueue ** MsgQueue
int Cmi_argc
int _Cmi_numpes
int Cmi_usched
int Cmi_initret
CmiStartFn Cmi_startFn
pthread_key_t perThreadKey
pthread_mutex_t memory_mutex
int barrier
pthread_cond_t barrier_cond
pthread_mutex_t barrier_mutex
static McQueueMcQueueCreate (void)
static void McQueueAddToBack (McQueue *queue, void *element)
static void * McQueueRemoveFromFront (McQueue *queue)
 CpvDeclare (void *, CmiLocalQueue)
static void * threadInit (void *arg)
void CmiMemLock ()
void CmiMemUnlock ()
void CmiNodeBarrier (void)
void CmiNodeAllBarrier (void)
CmiNodeLock CmiCreateLock (void)
void CmiLock (CmiNodeLock lock)
void CmiUnlock (CmiNodeLock lock)
int CmiTryLock (CmiNodeLock lock)
void CmiDestroyLock (CmiNodeLock lock)
int CmiMyPe ()
void CmiAbort (const char *message)
 Serial version of common Charm++ routines:.
int CmiAsyncMsgSent (CmiCommHandle msgid)
void ConverseInit (int argc, char **argv, CmiStartFn fn, int usched, int initret)
void CmiTimerInit (void)
void ConverseExit (void)
void CmiDeclareArgs (void)
void CmiNotifyIdle ()
void * CmiGetNonLocal ()
void CmiSyncSendFn (int destPE, int size, char *msg)
CmiCommHandle CmiAsyncSendFn (int destPE, int size, char *msg)
void CmiFreeSendFn (int destPE, int size, char *msg)
void CmiSyncBroadcastFn (int size, char *msg)
CmiCommHandle CmiAsyncBroadcastFn (int size, char *msg)
void CmiFreeBroadcastFn (int size, char *msg)
void CmiSyncBroadcastAllFn (int size, char *msg)
CmiCommHandle CmiAsyncBroadcastAllFn (int size, char *msg)
void CmiFreeBroadcastAllFn (int size, char *msg)
static void ** AllocBlock (unsigned int len)
static void SpillBlock (void **srcblk, void **destblk, unsigned int first, unsigned int len)
 CpvStaticDeclare (double, inittime_wallclock)
 CpvStaticDeclare (double, inittime_virtual)
double CmiWallTimer (void)
double CmiCpuTimer (void)
double CmiTimer (void)


Detailed Description

Origin Pthreads machine layer.

Definition in file machine.c.


Function Documentation

McQueue * McQueueCreate ( void   )  [static]

Definition at line 346 of file machine.c.

References CdsFifo_Create_len(), CmiAlloc(), McQueue::cond, McQueue::mutex, McQueue::q, and McQueue::waiting.

void McQueueAddToBack ( McQueue queue,
void *  element 
) [static]

Definition at line 358 of file machine.c.

References CdsFifo_Enqueue(), McQueue::cond, McQueue::mutex, McQueue::q, and McQueue::waiting.

void * McQueueRemoveFromFront ( McQueue queue  )  [static]

Definition at line 369 of file machine.c.

References CdsFifo_Dequeue(), McQueue::mutex, and McQueue::q.

CpvDeclare ( void *  ,
CmiLocalQueue   
)

static void * threadInit ( void *  arg  )  [static]

Definition at line 196 of file machine.c.

References USER_PARAMETERS::argv, CdsFifo_Create(), Cmi_argc, Cmi_initret, Cmi_startFn, Cmi_usched, CmiTimerInit(), ConverseCommonInit(), ConverseExit(), CsdScheduler(), CthInit(), USER_PARAMETERS::mype, perThreadKey, and usrparam.

void CmiMemLock ( void   ) 

Definition at line 55 of file machine.c.

References memory_mutex.

void CmiMemUnlock ( void   ) 

Definition at line 56 of file machine.c.

References memory_mutex.

void CmiNodeBarrier ( void   ) 

Definition at line 62 of file machine.c.

References barrier, barrier_cond, and barrier_mutex.

void CmiNodeAllBarrier ( void   ) 

Definition at line 75 of file machine.c.

References barrier, barrier_cond, and barrier_mutex.

CmiNodeLock CmiCreateLock ( void   ) 

Definition at line 88 of file machine.c.

References CmiAlloc().

void CmiLock ( CmiNodeLock  lock  ) 

Definition at line 96 of file machine.c.

void CmiUnlock ( CmiNodeLock  lock  ) 

Definition at line 101 of file machine.c.

int CmiTryLock ( CmiNodeLock  lock  ) 

Definition at line 106 of file machine.c.

void CmiDestroyLock ( CmiNodeLock  lock  ) 

Definition at line 111 of file machine.c.

int CmiMyPe ( void   ) 

Definition at line 116 of file machine.c.

References perThreadKey.

Referenced by __cmi_assert(), _bcastQD1(), _bcastQD2(), _callWhenIdle(), _createTracecounter(), _handlePhase0(), _handlePhase1(), _handlePhase2(), _initCharm(), _initHandler(), _parseCommandLineOpts(), _qdHandler(), AllocatorCheck(), bad_location(), TraceCounter::beginExecute(), TraceCounter::beginOverview(), TraceCounter::beginPack(), TraceCounter::beginUnpack(), BgAdjustTimeLineFromIndex(), bgCorrectionFunc(), bgMain(), CcsImpl_reply(), CcsInit(), CfutureCreate(), CfutureDestroy(), CfutureStoreBuffer(), CfutureWait(), check_range(), CkCppInterpreter::CkCppInterpreter(), CkMemCheckPT::CkMemCheckPT(), Converse::CkMyPe(), CldAverageHandler(), CldBalance(), CldComputeNeighborData(), CldEnqueue(), CldGraphModuleInit(), CldMinAvg(), CldModuleInit(), CldMoveAllSeedsAway(), CldNodeEnqueue(), CldReadNeighborData(), CldSendLoad(), CldSetPEBitVector(), CldStillIdle(), CmiAddCLA(), CmiAlloc(), CmiArgGivingUsage(), CmiArgInit(), CmiBacktracePrint(), CmiCheckGmStatus(), CmiCreatePersistent(), CmiCreateReceiverPersistent(), CmiDirect_put(), CmiEstablishGroup(), CmiExit(), CmiFreeBroadcastAllFn(), CmiFreeListSendFn(), CmiFreeSendFn(), CmiGetNonLocal(), CmiInitCell(), CmiInitCPUAffinity(), CmiInitPE(), CmiIsomalloc(), CmiIsomallocInit(), CmiMemorySweep(), CmiMulticastDeliver(), CmiMultiMsgHandler(), CmiMXMakeConnection(), CmiNext(), CmiNodeAllBarrier(), CmiNodeBarrier(), CmiNodeReduce(), CmiNodeReduceStruct(), CmiNotifyIdle(), CmiNotifyStillIdle(), CmiPrintCLAs(), CmiProcessPriority(), CmiReduce(), CmiReduceStruct(), CmiReductionsInit(), CmiRegisterHandlerGlobal(), CmiReleaseSentMessages(), CmiSendPacketWrapper(), CmiSendPersistentMsg(), CmiSendReduce(), CmiSyncBroadcastFn(), CmiSyncMulticastFn(), CmiTimerIsSynchronized(), CommunicationServer(), computeUtilForAll(), converse_handlerBegin(), converse_handlerEnd(), ConverseExit(), ConverseRunPE(), copyOut(), CountLogPool::CountLogPool(), CPathMakeArray(), CPathSendHandler(), CpdDebugCallAllocationTree(), CpdStartGdb(), Cpthread_cond_broadcast(), Cpthread_cond_destroy(), Cpthread_cond_init(), Cpthread_cond_signal(), Cpthread_cond_wait(), Cpthread_mutex_destroy(), Cpthread_mutex_init(), Cpthread_mutex_lock(), Cpthread_mutex_trylock(), Cpthread_mutex_unlock(), cpuAffinityRecvHandler(), CQdBcastQD1(), CQdBcastQD2(), CQdHandlePhase0(), CQdHandlePhase1(), CQdHandlePhase2(), CQdStateCreate(), crash_node_handle(), CthThreadBaseInit(), CWeb_Collect(), CWeb_Reduce(), CWebHandler(), disable_isomalloc(), disabled_map(), StatTable::doReduction(), drop_send_callback(), PrefixRouter::EachToManyMulticastQ(), ElanBasicSendFn(), ElanGetBasedSend(), TraceCounter::endExecute(), TraceCounter::endOverview(), TraceCounter::endPack(), TraceCounter::endUnpack(), EnqueueOutgoingDgram(), exitHandlerFunc(), expand_ccd_heap(), PeTable::ExtractAndPack(), PeTable::ExtractAndVectorize(), find_largest_free_region(), findLeastTime(), gengraph(), StatTable::init(), init_counters(), init_ranges(), initHeartbeat(), KillEveryoneCode(), KillOnAllSigs(), BlockMapInfo::Local2Global(), CyclicMapInfo::Local2Global(), machine_procBusy(), machine_procIdle(), map_slots(), McQueueAddToBack(), McQueueRemoveFromFront(), memAbort(), memory_check(), meta_calloc(), meta_cfree(), meta_free(), meta_init(), meta_malloc(), meta_memalign(), meta_realloc(), meta_valloc(), msgHandlerFunc(), nodeBCastMsgHandlerFunc(), BlockMapInfo::numLocalNodes(), CyclicMapInfo::numLocalNodes(), on_timeout(), one_slotOP(), CountLogPool::openFile(), TraceLogger::openLogFiles(), GridMetisLB::Partition_ClusterObjects_Into_PEs(), prepare_slotmsg(), print_slots(), printSlot(), processFutureMessages(), processMessage(), propagate_handler(), PumpMsgsBlocking(), PipeBroadcastStrategy::pup(), QdState::QdState(), BGMach::read(), TraceCounter::registerArg(), TraceLogger::RegisterLanguage(), sanityCheck(), slotAbort(), StatTable::StatTable(), StatTableReduction(), status(), TraceCounter::switchCounters(), threadBCastMsgHandlerFunc(), threadInit(), TraceCounter::traceBegin(), TraceCounter::traceClose(), TraceCounter::traceEnd(), TraceCounter::traceInit(), TraceCounter::traceWriteSts(), unmap_slots(), StatTable::write(), CountLogPool::write(), CountLogPool::writeSts(), and writeToDisk().

void CmiAbort ( const char *  message  ) 

Serial version of common Charm++ routines:.

Currently only used for FEM_ALONE mode.

Orion Sky Lawlor, olawlor@acm.org, 2003/8/15

Definition at line 128 of file machine.c.

References abort(), and CmiError().

int CmiAsyncMsgSent ( CmiCommHandle  msgid  ) 

Definition at line 134 of file machine.c.

void ConverseInit ( int  argc,
char **  argv,
CmiStartFn  fn,
int  usched,
int  initret 
)

Definition at line 145 of file machine.c.

References _Cmi_numpes, abort(), USER_PARAMETERS::argv, barrier, barrier_cond, barrier_mutex, Cmi_argc, Cmi_initret, Cmi_startFn, Cmi_usched, CmiAlloc(), CmiCopyArgs(), CmiError(), CmiGetArgc(), CmiGetArgInt(), McQueueCreate(), memory_mutex, MsgQueue, USER_PARAMETERS::mype, perThreadKey, threadInit(), and usrparam.

void ConverseExit ( void   ) 

Definition at line 218 of file machine.c.

References CmiNodeBarrier(), and ConverseCommonExit().

void CmiDeclareArgs ( void   ) 

Definition at line 225 of file machine.c.

void* CmiGetNonLocal ( void   ) 

Definition at line 246 of file machine.c.

References CmiMyPe(), McQueueRemoveFromFront(), and MsgQueue.

void CmiSyncSendFn ( int  destPE,
int  size,
char *  msg 
)

Definition at line 252 of file machine.c.

References CmiAlloc(), CQdCreate(), McQueueAddToBack(), MsgQueue, and size.

CmiCommHandle CmiAsyncSendFn ( int  destPE,
int  size,
char *  msg 
)

Definition at line 263 of file machine.c.

References CmiSyncSendFn(), and size.

void CmiFreeSendFn ( int  destPE,
int  size,
char *  msg 
)

Definition at line 270 of file machine.c.

References CdsFifo_Enqueue(), CmiMyPe(), CQdCreate(), McQueueAddToBack(), and MsgQueue.

void CmiSyncBroadcastFn ( int  size,
char *  msg 
)

Definition at line 280 of file machine.c.

References _Cmi_numpes, CmiMyPe(), CmiSyncSendFn(), and size.

CmiCommHandle CmiAsyncBroadcastFn ( int  size,
char *  msg 
)

Definition at line 287 of file machine.c.

References CmiSyncBroadcastFn(), and size.

void CmiFreeBroadcastFn ( int  size,
char *  msg 
)

Definition at line 293 of file machine.c.

References CmiFree(), CmiSyncBroadcastFn(), and size.

void CmiSyncBroadcastAllFn ( int  size,
char *  msg 
)

Definition at line 299 of file machine.c.

References CmiSyncSendFn(), and size.

CmiCommHandle CmiAsyncBroadcastAllFn ( int  size,
char *  msg 
)

Definition at line 307 of file machine.c.

References CmiSyncBroadcastAllFn(), and size.

void CmiFreeBroadcastAllFn ( int  size,
char *  msg 
)

Definition at line 314 of file machine.c.

References CdsFifo_Enqueue(), CmiMyPe(), CmiSyncSendFn(), CQdCreate(), and size.

static void** AllocBlock ( unsigned int  len  )  [static]

Definition at line 331 of file machine.c.

References CmiAlloc().

static void SpillBlock ( void **  srcblk,
void **  destblk,
unsigned int  first,
unsigned int  len 
) [static]

Definition at line 340 of file machine.c.

CpvStaticDeclare ( double  ,
inittime_wallclock   
)

CpvStaticDeclare ( double  ,
inittime_virtual   
)


Variable Documentation

McQueue** MsgQueue [static]

Definition at line 39 of file machine.c.

int Cmi_argc

Definition at line 43 of file machine.c.

int _Cmi_numpes

Definition at line 44 of file machine.c.

int Cmi_usched

Definition at line 45 of file machine.c.

int Cmi_initret

Definition at line 46 of file machine.c.

CmiStartFn Cmi_startFn

Definition at line 47 of file machine.c.

Referenced by ConverseInit(), and threadInit().

pthread_key_t perThreadKey

Definition at line 49 of file machine.c.

Referenced by CmiMyPe(), ConverseInit(), and threadInit().

pthread_mutex_t memory_mutex

Definition at line 53 of file machine.c.

Referenced by CmiMemLock(), CmiMemUnlock(), and ConverseInit().

int barrier

Definition at line 58 of file machine.c.

pthread_cond_t barrier_cond

Definition at line 59 of file machine.c.

Referenced by CmiNodeAllBarrier(), CmiNodeBarrier(), and ConverseInit().

pthread_mutex_t barrier_mutex

Definition at line 60 of file machine.c.

Referenced by CmiDestoryLocks(), CmiNodeAllBarrier(), CmiNodeBarrier(), CmiNodeBarrierCount(), CmiStartThreads(), and ConverseInit().


Generated on Sun Jun 29 13:29:32 2008 for Charm++ by  doxygen 1.5.1