PPL Logo

ArmciVirtualProcessor Class Reference

#include <armci_impl.h>

Inheritance diagram for ArmciVirtualProcessor:

Inheritance graph
[legend]
Collaboration diagram for ArmciVirtualProcessor:

Collaboration graph
[legend]

Public Member Functions

 ArmciVirtualProcessor (const CProxy_TCharm &_thr_proxy)
 ArmciVirtualProcessor (CkMigrateMessage *m)
 ~ArmciVirtualProcessor ()
pointer BlockMalloc (int bytes)
void getAddresses (AddressMsg *msg)
void put (pointer src, pointer dst, int bytes, int dst_proc)
void putData (pointer dst, int nbytes, char *data, int src_proc, int hdl)
void putData (ArmciMsg *msg)
void putAck (int hdl)
int nbput (pointer src, pointer dst, int bytes, int dst_proc)
void nbput_implicit (pointer src, pointer dst, int bytes, int dst_proc)
void wait (int hdl)
int test (int hdl)
void waitmulti (vector< int > procs)
void waitproc (int proc)
void waitall ()
void fence (int proc)
void allfence ()
void barrier ()
void get (pointer src, pointer dst, int bytes, int src_proc)
int nbget (pointer src, pointer dst, int bytes, int dst_proc)
void nbget_implicit (pointer src, pointer dst, int bytes, int dst_proc)
void requestFromGet (pointer src, pointer dst, int nbytes, int dst_proc, int hdl)
void putDataFromGet (pointer dst, int nbytes, char *data, int hdl)
void putDataFromGet (ArmciMsg *msg)
void puts (pointer src_ptr, int src_stride_ar[], pointer dst_ptr, int dst_stride_ar[], int count[], int stride_levels, int dst_proc)
int nbputs (pointer src_ptr, int src_stride_ar[], pointer dst_ptr, int dst_stride_ar[], int count[], int stride_levels, int dst_proc)
void nbputs_implicit (pointer src_ptr, int src_stride_ar[], pointer dst_ptr, int dst_stride_ar[], int count[], int stride_levels, int dst_proc)
void putsData (pointer dst_ptr, int dst_stride_ar[], int count[], int stride_levels, int nbytes, char *data, int src_proc, int hdl)
void putsData (ArmciStridedMsg *m)
void gets (pointer src_ptr, int src_stride_ar[], pointer dst_ptr, int dst_stride_ar[], int count[], int stride_levels, int src_proc)
int nbgets (pointer src_ptr, int src_stride_ar[], pointer dst_ptr, int dst_stride_ar[], int count[], int stride_levels, int src_proc)
void nbgets_implicit (pointer src_ptr, int src_stride_ar[], pointer dst_ptr, int dst_stride_ar[], int count[], int stride_levels, int src_proc)
void requestFromGets (pointer src_ptr, int src_stride_ar[], pointer dst_ptr, int dst_stride_ar[], int count[], int stride_levels, int dst_proc, int hdl)
void putDataFromGets (pointer dst_ptr, int dst_stride_ar[], int count[], int stride_levels, int nbytes, char *data, int hdl)
void putDataFromGets (ArmciStridedMsg *m)
void notify (int proc)
void sendNote (int proc)
void notify_wait (int proc)
void requestAddresses (pointer ptr, pointer ptr_arr[], int bytes)
void stridedCopy (void *base, void *buffer_ptr, int *stride, int *count, int dim_id, bool flatten)
virtual void pup (PUP::er &p)
 Pack/unpack routine (called before and after migration).
void msgBcast (void *buffer, int len, int root)
void recvMsgBcast (int len, char *buffer, int root)
void msgGop (void *x, int n, char *op, int type)
void mallocClient (CkReductionMsg *msg)
void resumeThread (void)
void startCheckpoint (const char *dname)
void checkpoint (int len, const char *dname)

Protected Member Functions

virtual void setupThreadPrivate (CthThread forThread)

Private Attributes

CmiIsomallocBlockListmemBlock
CProxy_ArmciVirtualProcessor thisProxy
AddressMsgaddressReply
CkPupPtrVec< Armci_Hdl > hdlList
CkPupPtrVec< Armci_NotenoteList
void * collectiveTmpBufferPtr

Detailed Description

Definition at line 228 of file armci_impl.h.


Constructor & Destructor Documentation

ArmciVirtualProcessor::ArmciVirtualProcessor ( const CProxy_TCharm &  _thr_proxy  ) 

ArmciVirtualProcessor::ArmciVirtualProcessor ( CkMigrateMessage m  ) 

Definition at line 98 of file armci_vp.C.

References addressReply, and TCharmClient1D::thread.

ArmciVirtualProcessor::~ArmciVirtualProcessor (  ) 

Definition at line 106 of file armci_vp.C.

References addressReply, CmiIsomallocBlockListDelete(), and memBlock.

Here is the call graph for this function:


Member Function Documentation

void ArmciVirtualProcessor::setupThreadPrivate ( CthThread  forThread  )  [protected, virtual]

Implements TCharmClient1D.

Definition at line 112 of file armci_vp.C.

References armci_nproc, TCharm::getNumElements(), and TCharmClient1D::thread.

Here is the call graph for this function:

pointer ArmciVirtualProcessor::BlockMalloc ( int  bytes  )  [inline]

Definition at line 243 of file armci_impl.h.

References CmiIsomallocBlockListMalloc(), and memBlock.

Referenced by ARMCI_Malloc(), and ARMCI_Malloc_local().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::getAddresses ( AddressMsg msg  ) 

Definition at line 117 of file armci_vp.C.

References addressReply, TCharm::resume(), and TCharmClient1D::thread.

Here is the call graph for this function:

void ArmciVirtualProcessor::put ( pointer  src,
pointer  dst,
int  bytes,
int  dst_proc 
)

Definition at line 123 of file armci_vp.C.

References ArmciMsg::data, hdlList, msg, CkVec< T >::push_back(), CkVec< T >::size(), ArrayElementT< CkIndex1D >::thisIndex, and thisProxy.

Referenced by ARMCI_Put().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::putData ( pointer  dst,
int  nbytes,
char *  data,
int  src_proc,
int  hdl 
)

Definition at line 167 of file armci_vp.C.

References thisProxy.

void ArmciVirtualProcessor::putData ( ArmciMsg msg  ) 

void ArmciVirtualProcessor::putAck ( int  hdl  ) 

Definition at line 179 of file armci_vp.C.

References hdlList, TCharm::resume(), TCharmClient1D::thread, and wait().

Here is the call graph for this function:

int ArmciVirtualProcessor::nbput ( pointer  src,
pointer  dst,
int  bytes,
int  dst_proc 
)

Definition at line 139 of file armci_vp.C.

References ArmciMsg::data, hdlList, msg, CkVec< T >::push_back(), CkVec< T >::size(), ArrayElementT< CkIndex1D >::thisIndex, and thisProxy.

Referenced by ARMCI_NbPut().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::nbput_implicit ( pointer  src,
pointer  dst,
int  bytes,
int  dst_proc 
)

Definition at line 156 of file armci_vp.C.

References ArmciMsg::data, hdlList, msg, CkVec< T >::push_back(), CkVec< T >::size(), ArrayElementT< CkIndex1D >::thisIndex, and thisProxy.

Referenced by ARMCI_NbPut().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::wait ( int  hdl  ) 

Definition at line 226 of file armci_vp.C.

References hdlList, TCharm::suspend(), and TCharmClient1D::thread.

Referenced by ARMCI_Wait(), putAck(), putDataFromGet(), and putDataFromGets().

Here is the call graph for this function:

Here is the caller graph for this function:

int ArmciVirtualProcessor::test ( int  hdl  ) 

Definition at line 304 of file armci_vp.C.

References hdlList.

Referenced by ARMCI_Test().

Here is the caller graph for this function:

void ArmciVirtualProcessor::waitmulti ( vector< int procs  ) 

Referenced by allfence(), fence(), waitall(), and waitproc().

Here is the caller graph for this function:

void ArmciVirtualProcessor::waitproc ( int  proc  ) 

Definition at line 249 of file armci_vp.C.

References hdlList, op, CkVec< T >::push_back(), CkVec< T >::size(), and waitmulti().

Referenced by ARMCI_WaitProc().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::waitall (  ) 

Definition at line 262 of file armci_vp.C.

References hdlList, CkVec< T >::push_back(), CkVec< T >::size(), and waitmulti().

Referenced by ARMCI_WaitAll().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::fence ( int  proc  ) 

Definition at line 274 of file armci_vp.C.

References hdlList, CkVec< T >::size(), and waitmulti().

Referenced by ARMCI_Fence().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::allfence (  ) 

Definition at line 284 of file armci_vp.C.

References hdlList, CkVec< T >::size(), and waitmulti().

Referenced by ARMCI_AllFence(), and barrier().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::barrier (  ) 

Definition at line 293 of file armci_vp.C.

References allfence(), cb, ArrayElementT< CkIndex1D >::contribute(), CkReduction::sum_int, TCharm::suspend(), thisProxy, and TCharmClient1D::thread.

Referenced by ARMCI_Barrier().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::get ( pointer  src,
pointer  dst,
int  bytes,
int  src_proc 
)

Definition at line 190 of file armci_vp.C.

References TCharm::suspend(), ArrayElementT< CkIndex1D >::thisIndex, thisProxy, and TCharmClient1D::thread.

Referenced by ARMCI_Get().

Here is the call graph for this function:

Here is the caller graph for this function:

int ArmciVirtualProcessor::nbget ( pointer  src,
pointer  dst,
int  bytes,
int  dst_proc 
)

Definition at line 201 of file armci_vp.C.

References hdlList, CkVec< T >::push_back(), CkVec< T >::size(), ArrayElementT< CkIndex1D >::thisIndex, and thisProxy.

Referenced by ARMCI_NbGet().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::nbget_implicit ( pointer  src,
pointer  dst,
int  bytes,
int  dst_proc 
)

Definition at line 217 of file armci_vp.C.

References hdlList, CkVec< T >::push_back(), CkVec< T >::size(), ArrayElementT< CkIndex1D >::thisIndex, and thisProxy.

Referenced by ARMCI_NbGet().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::requestFromGet ( pointer  src,
pointer  dst,
int  nbytes,
int  dst_proc,
int  hdl 
)

Definition at line 309 of file armci_vp.C.

References ArmciMsg::data, msg, and thisProxy.

void ArmciVirtualProcessor::putDataFromGet ( pointer  dst,
int  nbytes,
char *  data,
int  hdl 
)

Definition at line 319 of file armci_vp.C.

References hdlList, TCharm::resume(), TCharmClient1D::thread, and wait().

Here is the call graph for this function:

void ArmciVirtualProcessor::putDataFromGet ( ArmciMsg msg  ) 

Definition at line 331 of file armci_vp.C.

References ArmciMsg::data, ArmciMsg::dst, ArmciMsg::hdl, hdlList, ArmciMsg::nbytes, TCharm::resume(), and TCharmClient1D::thread.

Here is the call graph for this function:

void ArmciVirtualProcessor::puts ( pointer  src_ptr,
int  src_stride_ar[],
pointer  dst_ptr,
int  dst_stride_ar[],
int  count[],
int  stride_levels,
int  dst_proc 
)

Definition at line 344 of file armci_vp.C.

References ArmciStridedMsg::count, ArmciStridedMsg::data, ArmciStridedMsg::dst_stride_ar, hdlList, PUP::m, CkVec< T >::push_back(), CkVec< T >::size(), stridedCopy(), ArrayElementT< CkIndex1D >::thisIndex, and thisProxy.

Referenced by ARMCI_PutS().

Here is the call graph for this function:

Here is the caller graph for this function:

int ArmciVirtualProcessor::nbputs ( pointer  src_ptr,
int  src_stride_ar[],
pointer  dst_ptr,
int  dst_stride_ar[],
int  count[],
int  stride_levels,
int  dst_proc 
)

Definition at line 370 of file armci_vp.C.

References ArmciStridedMsg::count, ArmciStridedMsg::data, ArmciStridedMsg::dst_stride_ar, hdlList, PUP::m, CkVec< T >::push_back(), CkVec< T >::size(), stridedCopy(), ArrayElementT< CkIndex1D >::thisIndex, and thisProxy.

Referenced by ARMCI_NbPutS().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::nbputs_implicit ( pointer  src_ptr,
int  src_stride_ar[],
pointer  dst_ptr,
int  dst_stride_ar[],
int  count[],
int  stride_levels,
int  dst_proc 
)

Definition at line 397 of file armci_vp.C.

References ArmciStridedMsg::count, ArmciStridedMsg::data, ArmciStridedMsg::dst_stride_ar, hdlList, PUP::m, CkVec< T >::push_back(), CkVec< T >::size(), stridedCopy(), ArrayElementT< CkIndex1D >::thisIndex, and thisProxy.

Referenced by ARMCI_NbPutS().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::putsData ( pointer  dst_ptr,
int  dst_stride_ar[],
int  count[],
int  stride_levels,
int  nbytes,
char *  data,
int  src_proc,
int  hdl 
)

Definition at line 419 of file armci_vp.C.

References stridedCopy(), and thisProxy.

Here is the call graph for this function:

void ArmciVirtualProcessor::putsData ( ArmciStridedMsg m  ) 

void ArmciVirtualProcessor::gets ( pointer  src_ptr,
int  src_stride_ar[],
pointer  dst_ptr,
int  dst_stride_ar[],
int  count[],
int  stride_levels,
int  src_proc 
)

Definition at line 432 of file armci_vp.C.

References TCharm::suspend(), ArrayElementT< CkIndex1D >::thisIndex, thisProxy, and TCharmClient1D::thread.

Referenced by ARMCI_GetS().

Here is the call graph for this function:

Here is the caller graph for this function:

int ArmciVirtualProcessor::nbgets ( pointer  src_ptr,
int  src_stride_ar[],
pointer  dst_ptr,
int  dst_stride_ar[],
int  count[],
int  stride_levels,
int  src_proc 
)

Definition at line 452 of file armci_vp.C.

References hdlList, CkVec< T >::push_back(), CkVec< T >::size(), ArrayElementT< CkIndex1D >::thisIndex, and thisProxy.

Referenced by ARMCI_NbGetS().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::nbgets_implicit ( pointer  src_ptr,
int  src_stride_ar[],
pointer  dst_ptr,
int  dst_stride_ar[],
int  count[],
int  stride_levels,
int  src_proc 
)

Definition at line 477 of file armci_vp.C.

References hdlList, CkVec< T >::push_back(), CkVec< T >::size(), ArrayElementT< CkIndex1D >::thisIndex, and thisProxy.

Referenced by ARMCI_NbGetS().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::requestFromGets ( pointer  src_ptr,
int  src_stride_ar[],
pointer  dst_ptr,
int  dst_stride_ar[],
int  count[],
int  stride_levels,
int  dst_proc,
int  hdl 
)

Definition at line 495 of file armci_vp.C.

References ArmciStridedMsg::count, ArmciStridedMsg::data, ArmciStridedMsg::dst_stride_ar, PUP::m, stridedCopy(), ArrayElementT< CkIndex1D >::thisIndex, and thisProxy.

Here is the call graph for this function:

void ArmciVirtualProcessor::putDataFromGets ( pointer  dst_ptr,
int  dst_stride_ar[],
int  count[],
int  stride_levels,
int  nbytes,
char *  data,
int  hdl 
)

Definition at line 508 of file armci_vp.C.

References hdlList, TCharm::resume(), stridedCopy(), TCharmClient1D::thread, and wait().

Here is the call graph for this function:

void ArmciVirtualProcessor::putDataFromGets ( ArmciStridedMsg m  ) 

void ArmciVirtualProcessor::notify ( int  proc  ) 

Definition at line 534 of file armci_vp.C.

References ArrayElementT< CkIndex1D >::thisIndex, and thisProxy.

Referenced by armci_notify().

Here is the caller graph for this function:

void ArmciVirtualProcessor::sendNote ( int  proc  ) 

Definition at line 537 of file armci_vp.C.

References noteList, CkVec< T >::push_back(), TCharm::resume(), CkVec< T >::size(), and TCharmClient1D::thread.

Here is the call graph for this function:

void ArmciVirtualProcessor::notify_wait ( int  proc  ) 

Definition at line 563 of file armci_vp.C.

References noteList, CkVec< T >::push_back(), CkVec< T >::size(), TCharm::suspend(), and TCharmClient1D::thread.

Referenced by armci_notify_wait().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::requestAddresses ( pointer  ptr,
pointer  ptr_arr[],
int  bytes 
)

Definition at line 596 of file armci_vp.C.

References AddressMsg::addresses, addressReply, armci_nproc, cb, CkReduction::concat, ArrayElementT< CkIndex1D >::contribute(), peAddr::pe, peAddr::ptr, TCharm::suspend(), thisProxy, and TCharmClient1D::thread.

Referenced by ARMCI_Malloc().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::stridedCopy ( void *  base,
void *  buffer_ptr,
int stride,
int count,
int  dim_id,
bool  flatten 
)

Definition at line 618 of file armci_vp.C.

Referenced by nbputs(), nbputs_implicit(), putDataFromGets(), puts(), putsData(), and requestFromGets().

Here is the caller graph for this function:

void ArmciVirtualProcessor::pup ( PUP::er p  )  [virtual]

Pack/unpack routine (called before and after migration).

Reimplemented from TCharmClient1D.

Definition at line 586 of file armci_vp.C.

References addressReply, CkPupMessage(), CmiIsomallocBlockListPup(), hdlList, memBlock, noteList, TCharmClient1D::pup(), and thisProxy.

Here is the call graph for this function:

void ArmciVirtualProcessor::msgBcast ( void *  buffer,
int  len,
int  root 
)

Definition at line 658 of file armci_vp.C.

References ARMCI_Myid(), collectiveTmpBufferPtr, TCharm::suspend(), thisProxy, and TCharmClient1D::thread.

Referenced by armci_msg_bcast().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::recvMsgBcast ( int  len,
char *  buffer,
int  root 
)

Definition at line 671 of file armci_vp.C.

References ARMCI_Myid(), collectiveTmpBufferPtr, TCharm::resume(), and TCharmClient1D::thread.

Here is the call graph for this function:

void ArmciVirtualProcessor::msgGop ( void *  x,
int  n,
char *  op,
int  type 
)

Definition at line 687 of file armci_vp.C.

References CmiAbort().

Referenced by armci_msg_dgop(), armci_msg_fgop(), armci_msg_igop(), and armci_msg_lgop().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::mallocClient ( CkReductionMsg msg  ) 

Definition at line 638 of file armci_vp.C.

References AddressMsg::addresses, CkReductionMsg::getData(), CkReductionMsg::getSize(), peAddr::pe, peAddr::ptr, and thisProxy.

Here is the call graph for this function:

void ArmciVirtualProcessor::resumeThread ( void   ) 

Definition at line 300 of file armci_vp.C.

References TCharm::resume(), and TCharmClient1D::thread.

Here is the call graph for this function:

void ArmciVirtualProcessor::startCheckpoint ( const char *  dname  ) 

Definition at line 734 of file armci_vp.C.

References cb, checkpointClient(), ArrayElementT< CkIndex1D >::contribute(), CkReduction::sum_int, TCharm::suspend(), ArrayElementT< CkIndex1D >::thisIndex, and TCharmClient1D::thread.

Referenced by ARMCI_Checkpoint(), and ARMCI_MemCheckpoint().

Here is the call graph for this function:

Here is the caller graph for this function:

void ArmciVirtualProcessor::checkpoint ( int  len,
const char *  dname 
)

Definition at line 744 of file armci_vp.C.

References cb, CkStartCheckpoint(), CkStartMemCheckpoint(), and thisProxy.

Referenced by checkpointClient().

Here is the call graph for this function:

Here is the caller graph for this function:


Field Documentation

Definition at line 229 of file armci_impl.h.

Referenced by ArmciVirtualProcessor(), BlockMalloc(), pup(), and ~ArmciVirtualProcessor().

CProxy_ArmciVirtualProcessor ArmciVirtualProcessor::thisProxy [private]

Definition at line 233 of file armci_impl.h.

Referenced by notify_wait(), pup(), and sendNote().

Definition at line 235 of file armci_impl.h.

Referenced by msgBcast(), and recvMsgBcast().


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

Generated on Mon Sep 21 08:17:35 2020 for Charm++ by  doxygen 1.5.5