PPL Logo

arch/util/machine-xpmem.C File Reference

There are three options here for synchronization: XPMEM_FENCE is the default. More...

Go to the source code of this file.

Data Structures

struct  sharedBufHeader
 This struct is used as the first portion of a shared memory region, followed by data. More...
struct  sharedBufData
struct  OutgoingMsgRec
struct  XpmemSendQ
struct  XpmemContext

Enumerations

enum  entities { SENDER, RECEIVER, SENDER, RECEIVER }

Functions

void calculateNodeSizeAndRank (char **)
void setupSharedBuffers (void)
void initAllSendQs (void)
void CmiExitXpmem (void)
static void cleanupOnAllSigs (int signo)
void CmiInitXpmem (char **argv)
void tearDownSharedBuffers (void)
void freeSharedBuffers (void)
static int CmiValidXpmem (int node, int size)
int XpmemRank (int dstnode)
void pushSendQ (XpmemSendQ *q, char *msg, int size, int *refcount)
int sendMessage (char *msg, int size, int *refcount, sharedBufData *dstBuf, XpmemSendQ *dstSendQ)
int flushSendQ (XpmemSendQ *sendQ)
int sendMessageRec (OutgoingMsgRec *omg, sharedBufData *dstBuf, XpmemSendQ *dstSendQ)
void CmiSendMessageXpmem (char *msg, int size, int dstnode, int *refcount)

Variables

static int XPMEMBUFLEN = (1024*1024*4)
static int SENDQSTARTSIZE = 256
static int sendQ_head_index = -1
XpmemContextxpmemContext = NULL
static int xpmem_fd
static int pxshm_freed = 0


Detailed Description

There are three options here for synchronization: XPMEM_FENCE is the default.

It uses memory fences XPMEM_OSSPINLOCK will cause OSSpinLock's to be used (available on OSX) XPMEM_LOCK will cause POSIX semaphores to be used

created by Gengbin Zheng, September 2011

Definition in file machine-xpmem.C.


Generated on Mon Sep 21 07:56:48 2020 for Charm++ by  doxygen 1.5.5