PPL Logo

MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE > Class Template Reference

#include <msa-DistPageMgr.h>

Inheritance diagram for MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >:

Inheritance graph
[legend]
Collaboration diagram for MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >:

Collaboration graph
[legend]

Public Member Functions

 MSA_CacheGroup (unsigned int nPages_, CkArrayID pageArrayID, unsigned int max_bytes_, unsigned int nEntries_, unsigned int numberOfWorkerThreads_)
 ~MSA_CacheGroup ()
void changeEntryOpsObject (ENTRY_OPS_CLASS *e)
const ENTRY_TYPE * readablePage (unsigned int page)
const void * readablePage2 (unsigned int page)
ENTRY_TYPE * writeablePage (unsigned int page, unsigned int offset)
ENTRY_TYPE & accumulate (unsigned int page, unsigned int offset)
void ReceivePageWithPUP (unsigned int page, page_t &pageData, int size)
 A requested page has arrived from the network.
void ReceivePage (unsigned int page, ENTRY_TYPE *pageData, int size)
void AckPage (unsigned int page)
void SyncReq (int single, bool clear_)
void FlushCache ()
void EmptyCache ()
void enroll (unsigned int num_workers)
 Enroll phase 1: called by users.
void enroll ()
void enrollAck (int originator)
 Enroll phase 2: called on PE 0 from everywhere.
void enrollDone ()
 Enroll phase 3: called everywhere by PE 0.
void SingleSync ()
void SyncRelease ()
void syncDebug ()
void activate ()
void FinishSync ()
void Sync (bool clear_)
unsigned int getNumEntries ()
CProxy_PageArray_t getArray ()
void SyncAck (bool clear_)
void SyncDone (CkReductionMsg *m)
void FreeMem ()
void unroll ()
 Deregister a client.
void Prefetch (unsigned int pageStart, unsigned int pageEnd)
 Issue a prefetch request for the given range of pages.
int WaitAll (void)
 Wait for all the prefetch pages to be fetched into the cache.
void UnlockPage (unsigned int page)
void UnlockPages ()
 Unlock all the pages locked in the cache.
void UnlockPages (unsigned int startPage, unsigned int endPage)
 Unlock the given pages: [startPage .
void emitBufferValue (int ID, unsigned int pageNum, unsigned int offset)
 Debugging routine.

Protected Types

typedef MSA_Page_StateT
< ENTRY_TYPE, ENTRIES_PER_PAGE > 
pageState_t
typedef vmNRUReplacementPolicy
< ENTRY_TYPE, ENTRIES_PER_PAGE > 
vmPageReplacementPolicy
typedef std::list< writebounds_twritelist_t
typedef CProxy_MSA_PageArray
< ENTRY_TYPE, ENTRY_OPS_CLASS,
ENTRIES_PER_PAGE > 
CProxy_PageArray_t
typedef CProxy_MSA_CacheGroup
< ENTRY_TYPE, ENTRY_OPS_CLASS,
ENTRIES_PER_PAGE > 
CProxy_CacheGroup_t

Protected Member Functions

pageState_tstateN (unsigned int pageNo)
 Return the state for this page, returning NULL if no state available.
pageState_tstate (unsigned int pageNo)
 Return the state for this page, allocating if needed.
MSA_Thread_ListenergetListener (void)
 Look up or create the listener for the current thread.
void addAndSuspend (MSA_Listeners &dest)
 Add our thread to this list and suspend.
void IncrementPagesWaiting (unsigned int page)
 these routines deal with managing the page queue
void IncrementChangesWaiting (unsigned int page)
ENTRY_TYPE * tryBuffer (int async=0)
 Allocate a new page, removing old pages if we're over the limit.
ENTRY_TYPE * makePage (unsigned int page)
 Allocate storage for this page, if none has been allocated already.
ENTRY_TYPE * destroyPage (unsigned int page)
 Throw away this allocated page.
void pageFault (unsigned int page, MSA_Page_Fault_t why)
void accessPage (unsigned int page, MSA_Page_Fault_t access)
 Make sure this page is accessible, faulting the page in if needed.
void writeIdentity (ENTRY_TYPE *pagePtr)
bool shouldWriteback (unsigned int page)
void relocatePage (unsigned int page, int async)
void sendChangesToPageArray (const unsigned int page, const int async)
void sendNonRLEChangesToPageArray (const unsigned int page)
void sendRLEChangesToPageArray (const unsigned int page)

Protected Attributes

ENTRY_OPS_CLASS * entryOpsObject
unsigned int numberOfWorkerThreads
unsigned int numberLocalWorkerThreads
unsigned int numberLocalWorkerThreadsActive
unsigned int enrollDoneq
MSA_Listeners enrollWaiters
MSA_Listeners syncWaiters
std::set< intenrolledPEs
unsigned int nPages
 number of pages
std::vector< ENTRY_TYPE * > pageTable
 the page table for this PE: stores actual data.
std::vector< pageState_t * > pageStateStorage
 Housekeeping information for each allocated page.
std::stack< ENTRY_TYPE * > pagePool
MSA_PageReplacementPolicy
< ENTRY_TYPE, ENTRIES_PER_PAGE > * 
replacementPolicy
writelist_t ** writes
unsigned int resident_pages
unsigned int max_resident_pages
unsigned int nEntries
unsigned int syncAckCount
int outOfBufferInPrefetch
int syncThreadCount
MSA_WriteSpan_t writeSpans [ENTRIES_PER_PAGE]
ENTRY_TYPE writeEntries [ENTRIES_PER_PAGE]
CProxy_PageArray_t pageArray
std::map< CthThread,
MSA_Thread_Listener * > 
threadList
bool clear

Private Types

typedef MSA_PageT< ENTRY_TYPE,
ENTRY_OPS_CLASS,
ENTRIES_PER_PAGE > 
page_t

Data Structures

struct  writebounds_t

Detailed Description

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
class MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >

Definition at line 461 of file msa-DistPageMgr.h.


Member Typedef Documentation

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
typedef MSA_PageT<ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE> MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::page_t [private]

Definition at line 463 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
typedef MSA_Page_StateT<ENTRY_TYPE,ENTRIES_PER_PAGE> MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::pageState_t [protected]

Definition at line 478 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
typedef vmNRUReplacementPolicy<ENTRY_TYPE, ENTRIES_PER_PAGE> MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::vmPageReplacementPolicy [protected]

Definition at line 483 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
typedef std::list<writebounds_t> MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::writelist_t [protected]

Definition at line 490 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
typedef CProxy_MSA_PageArray<ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE> MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::CProxy_PageArray_t [protected]

Definition at line 507 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
typedef CProxy_MSA_CacheGroup<ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE> MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::CProxy_CacheGroup_t [protected]

Definition at line 509 of file msa-DistPageMgr.h.


Constructor & Destructor Documentation

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::MSA_CacheGroup ( unsigned int  nPages_,
CkArrayID  pageArrayID,
unsigned int  max_bytes_,
unsigned int  nEntries_,
unsigned int  numberOfWorkerThreads_ 
) [inline]

Definition at line 765 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::~MSA_CacheGroup (  )  [inline]

Definition at line 786 of file msa-DistPageMgr.h.


Member Function Documentation

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
pageState_t* MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::stateN ( unsigned int  pageNo  )  [inline, protected]

Return the state for this page, returning NULL if no state available.

Definition at line 516 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
pageState_t* MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::state ( unsigned int  pageNo  )  [inline, protected]

Return the state for this page, allocating if needed.

Definition at line 521 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
MSA_Thread_Listener* MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::getListener ( void   )  [inline, protected]

Look up or create the listener for the current thread.

Definition at line 533 of file msa-DistPageMgr.h.

References CthSelf(), PUP::l, and PUP::t.

Here is the call graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::addAndSuspend ( MSA_Listeners dest  )  [inline, protected]

Add our thread to this list and suspend.

Definition at line 543 of file msa-DistPageMgr.h.

References MSA_Listeners::add(), PUP::l, and MSA_Thread_Listener::suspend().

Here is the call graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::IncrementPagesWaiting ( unsigned int  page  )  [inline, protected]

these routines deal with managing the page queue

Definition at line 554 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::IncrementChangesWaiting ( unsigned int  page  )  [inline, protected]

Definition at line 559 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
ENTRY_TYPE* MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::tryBuffer ( int  async = 0  )  [inline, protected]

Allocate a new page, removing old pages if we're over the limit.

Returns NULL if no buffer space is available

Definition at line 568 of file msa-DistPageMgr.h.

References MSA_INVALID_PAGE_NO.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
ENTRY_TYPE* MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::makePage ( unsigned int  page  )  [inline, protected]

Allocate storage for this page, if none has been allocated already.

Update pageTable, and return the storage for the page.

Definition at line 611 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
ENTRY_TYPE* MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::destroyPage ( unsigned int  page  )  [inline, protected]

Throw away this allocated page.

Returns the page itself, for deletion or recycling.

Definition at line 624 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::pageFault ( unsigned int  page,
MSA_Page_Fault_t  why 
) [inline, protected]

Definition at line 637 of file msa-DistPageMgr.h.

References Converse::CkMyPe(), PUP::l, Read_Fault, and MSA_Thread_Listener::suspend().

Here is the call graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::accessPage ( unsigned int  page,
MSA_Page_Fault_t  access 
) [inline, protected]

Make sure this page is accessible, faulting the page in if needed.

Definition at line 663 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::writeIdentity ( ENTRY_TYPE *  pagePtr  )  [inline, protected]

Definition at line 681 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
bool MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::shouldWriteback ( unsigned int  page  )  [inline, protected]

Definition at line 688 of file msa-DistPageMgr.h.

References Accumulate_Fault, and Write_Fault.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::relocatePage ( unsigned int  page,
int  async 
) [inline, protected]

Definition at line 693 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::sendChangesToPageArray ( const unsigned int  page,
const int  async 
) [inline, protected]

Definition at line 704 of file msa-DistPageMgr.h.

References PUP::l, and MSA_Thread_Listener::suspend().

Here is the call graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::sendNonRLEChangesToPageArray ( const unsigned int  page  )  [inline, protected]

Definition at line 717 of file msa-DistPageMgr.h.

References Converse::CkMyPe().

Here is the call graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::sendRLEChangesToPageArray ( const unsigned int  page  )  [inline, protected]

Definition at line 724 of file msa-DistPageMgr.h.

References Converse::CkMyPe(), and PUP::s.

Here is the call graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::changeEntryOpsObject ( ENTRY_OPS_CLASS *  e  )  [inline]

Definition at line 792 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
const ENTRY_TYPE* MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::readablePage ( unsigned int  page  )  [inline]

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
const void* MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::readablePage2 ( unsigned int  page  )  [inline]

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
ENTRY_TYPE* MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::writeablePage ( unsigned int  page,
unsigned int  offset 
) [inline]

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
ENTRY_TYPE& MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::accumulate ( unsigned int  page,
unsigned int  offset 
) [inline]

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::ReceivePageWithPUP ( unsigned int  page,
page_t pageData,
int  size 
) [inline]

A requested page has arrived from the network.

nEntriesInPage_ = num entries being sent (0 for empty page, num entries otherwise)

Definition at line 841 of file msa-DistPageMgr.h.

References MSA_PageT< ENTRY, MERGER, ENTRIES_PER_PAGE >::getData().

Here is the call graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::ReceivePage ( unsigned int  page,
ENTRY_TYPE *  pageData,
int  size 
) [inline]

Definition at line 846 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::AckPage ( unsigned int  page  )  [inline]

Definition at line 874 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::SyncReq ( int  single,
bool  clear_ 
) [inline]

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::FlushCache (  )  [inline]

Definition at line 901 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::EmptyCache (  )  [inline]

Definition at line 915 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::enroll ( unsigned int  num_workers  )  [inline]

Enroll phase 1: called by users.

Definition at line 928 of file msa-DistPageMgr.h.

References Converse::CkMyPe().

Referenced by MSA::MSA3D< ENTRY, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::enroll(), and MSA::MSA1D< ElemList< T >, DefaultListEntry< ElemList< T >, true >, MSA_DEFAULT_ENTRIES_PER_PAGE >::enroll().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::enroll (  )  [inline]

Definition at line 949 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::enrollAck ( int  originator  )  [inline]

Enroll phase 2: called on PE 0 from everywhere.

Definition at line 955 of file msa-DistPageMgr.h.

References Converse::CkMyPe().

Here is the call graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::enrollDone (  )  [inline]

Enroll phase 3: called everywhere by PE 0.

Definition at line 974 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::SingleSync (  )  [inline]

Definition at line 985 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::SyncRelease (  )  [inline]

Definition at line 992 of file msa-DistPageMgr.h.

References Converse::CkMyPe().

Here is the call graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::syncDebug (  )  [inline]

Definition at line 1006 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::activate (  )  [inline]

Definition at line 1012 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::FinishSync (  )  [inline]

Definition at line 1019 of file msa-DistPageMgr.h.

References Converse::CkMyPe().

Here is the call graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::Sync ( bool  clear_  )  [inline]

Definition at line 1062 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
unsigned int MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::getNumEntries (  )  [inline]

Definition at line 1089 of file msa-DistPageMgr.h.

Referenced by MSA::MSA1D< ElemList< T >, DefaultListEntry< ElemList< T >, true >, MSA_DEFAULT_ENTRIES_PER_PAGE >::MSA1D().

Here is the caller graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
CProxy_PageArray_t MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::getArray (  )  [inline]

Definition at line 1090 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::SyncAck ( bool  clear_  )  [inline]

Definition at line 1094 of file msa-DistPageMgr.h.

References Converse::CkMyPe().

Here is the call graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::SyncDone ( CkReductionMsg m  )  [inline]

Definition at line 1109 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::FreeMem (  )  [inline]

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::unroll (  )  [inline]

Deregister a client.

Decrement the number of local threads. If total number of local threads hits 0 FreeMem()

Definition at line 1142 of file msa-DistPageMgr.h.

Referenced by MSA::MSA1D< ElemList< T >, DefaultListEntry< ElemList< T >, true >, MSA_DEFAULT_ENTRIES_PER_PAGE >::~MSA1D().

Here is the caller graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::Prefetch ( unsigned int  pageStart,
unsigned int  pageEnd 
) [inline]

Issue a prefetch request for the given range of pages.

These pages will be locked into the cache, so that they will not be swapped out.

Definition at line 1153 of file msa-DistPageMgr.h.

References Converse::CkMyPe(), p, and Read_Fault.

Referenced by MSA::MSA3D< ENTRY, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::Prefetch(), and MSA::MSA1D< ElemList< T >, DefaultListEntry< ElemList< T >, true >, MSA_DEFAULT_ENTRIES_PER_PAGE >::Prefetch().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
int MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::WaitAll ( void   )  [inline]

Wait for all the prefetch pages to be fetched into the cache.

Returns: 0 if prefetch successful, 1 if not

Definition at line 1194 of file msa-DistPageMgr.h.

Referenced by MSA::MSA3D< ENTRY, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::WaitAll(), and MSA::MSA1D< ElemList< T >, DefaultListEntry< ElemList< T >, true >, MSA_DEFAULT_ENTRIES_PER_PAGE >::WaitAll().

Here is the caller graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::UnlockPage ( unsigned int  page  )  [inline]

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::UnlockPages (  )  [inline]

Unlock all the pages locked in the cache.

Definition at line 1225 of file msa-DistPageMgr.h.

Referenced by MSA::MSA3D< ENTRY, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::Unlock(), and MSA::MSA1D< ElemList< T >, DefaultListEntry< ElemList< T >, true >, MSA_DEFAULT_ENTRIES_PER_PAGE >::Unlock().

Here is the caller graph for this function:

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::UnlockPages ( unsigned int  startPage,
unsigned int  endPage 
) [inline]

Unlock the given pages: [startPage .

.. endPage] Note that the range is inclusive.

Definition at line 1236 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
void MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::emitBufferValue ( int  ID,
unsigned int  pageNum,
unsigned int  offset 
) [inline]

Debugging routine.

Definition at line 1243 of file msa-DistPageMgr.h.


Field Documentation

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
ENTRY_OPS_CLASS* MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::entryOpsObject [protected]

Definition at line 466 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
unsigned int MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::numberOfWorkerThreads [protected]

Definition at line 467 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
unsigned int MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::numberLocalWorkerThreads [protected]

Definition at line 469 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
unsigned int MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::numberLocalWorkerThreadsActive [protected]

Definition at line 470 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
unsigned int MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::enrollDoneq [protected]

Definition at line 471 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
MSA_Listeners MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::enrollWaiters [protected]

Definition at line 472 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
MSA_Listeners MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::syncWaiters [protected]

Definition at line 473 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
std::set<int> MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::enrolledPEs [protected]

Definition at line 474 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
unsigned int MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::nPages [protected]

number of pages

Definition at line 476 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
std::vector<ENTRY_TYPE*> MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::pageTable [protected]

the page table for this PE: stores actual data.

Definition at line 477 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
std::vector<pageState_t *> MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::pageStateStorage [protected]

Housekeeping information for each allocated page.

Definition at line 479 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
std::stack<ENTRY_TYPE*> MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::pagePool [protected]

Definition at line 481 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
MSA_PageReplacementPolicy<ENTRY_TYPE, ENTRIES_PER_PAGE>* MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::replacementPolicy [protected]

Definition at line 484 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
writelist_t** MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::writes [protected]

Definition at line 492 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
unsigned int MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::resident_pages [protected]

Definition at line 494 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
unsigned int MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::max_resident_pages [protected]

Definition at line 495 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
unsigned int MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::nEntries [protected]

Definition at line 496 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
unsigned int MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::syncAckCount [protected]

Definition at line 497 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
int MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::outOfBufferInPrefetch [protected]

Definition at line 498 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
int MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::syncThreadCount [protected]

Definition at line 500 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
MSA_WriteSpan_t MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::writeSpans[ENTRIES_PER_PAGE] [protected]

Definition at line 504 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
ENTRY_TYPE MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::writeEntries[ENTRIES_PER_PAGE] [protected]

Definition at line 505 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
CProxy_PageArray_t MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::pageArray [protected]

Definition at line 508 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
std::map<CthThread, MSA_Thread_Listener *> MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::threadList [protected]

Definition at line 511 of file msa-DistPageMgr.h.

template<class ENTRY_TYPE, class ENTRY_OPS_CLASS, unsigned int ENTRIES_PER_PAGE>
bool MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::clear [protected]

Definition at line 513 of file msa-DistPageMgr.h.


The documentation for this class was generated from the following file:

Generated on Mon Sep 21 08:27:46 2020 for Charm++ by  doxygen 1.5.5