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 74 of file armci_vp.C.

References addressReply, and TCharmClient1D::thread.

ArmciVirtualProcessor::~ArmciVirtualProcessor (  ) 

Definition at line 82 of file armci_vp.C.

References addressReply, CmiIsomallocBlockListDelete(), and memBlock.


Member Function Documentation

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

Implements TCharmClient1D.

Definition at line 90 of file armci_vp.C.

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

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().

void ArmciVirtualProcessor::getAddresses ( AddressMsg msg  ) 

Definition at line 95 of file armci_vp.C.

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

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

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

Definition at line 145 of file armci_vp.C.

References thisProxy.

void ArmciVirtualProcessor::putData ( ArmciMsg msg  ) 

void ArmciVirtualProcessor::putAck ( int  hdl  ) 

Definition at line 157 of file armci_vp.C.

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

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

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

void ArmciVirtualProcessor::wait ( int  hdl  ) 

Definition at line 204 of file armci_vp.C.

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

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

int ArmciVirtualProcessor::test ( int  hdl  ) 

Definition at line 282 of file armci_vp.C.

References hdlList.

Referenced by ARMCI_Test().

void ArmciVirtualProcessor::waitmulti ( vector< int procs  ) 

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

void ArmciVirtualProcessor::waitproc ( int  proc  ) 

Definition at line 227 of file armci_vp.C.

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

Referenced by ARMCI_WaitProc().

void ArmciVirtualProcessor::waitall (  ) 

Definition at line 240 of file armci_vp.C.

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

Referenced by ARMCI_WaitAll().

void ArmciVirtualProcessor::fence ( int  proc  ) 

Definition at line 252 of file armci_vp.C.

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

Referenced by ARMCI_Fence().

void ArmciVirtualProcessor::allfence (  ) 

Definition at line 262 of file armci_vp.C.

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

Referenced by ARMCI_AllFence(), and barrier().

void ArmciVirtualProcessor::barrier ( void   ) 

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

Definition at line 168 of file armci_vp.C.

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

Referenced by ARMCI_Get().

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

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

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

Definition at line 287 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 297 of file armci_vp.C.

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

void ArmciVirtualProcessor::putDataFromGet ( ArmciMsg msg  ) 

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 
)

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 
)

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 
)

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 397 of file armci_vp.C.

References stridedCopy(), and thisProxy.

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 410 of file armci_vp.C.

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

Referenced by ARMCI_GetS().

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 
)

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 
)

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 
)

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

Definition at line 486 of file armci_vp.C.

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

void ArmciVirtualProcessor::putDataFromGets ( ArmciStridedMsg m  ) 

void ArmciVirtualProcessor::notify ( int  proc  ) 

Definition at line 512 of file armci_vp.C.

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

Referenced by armci_notify().

void ArmciVirtualProcessor::sendNote ( int  proc  ) 

void ArmciVirtualProcessor::notify_wait ( int  proc  ) 

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

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

Definition at line 601 of file armci_vp.C.

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

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

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

Reimplemented from TCharmClient1D.

Definition at line 564 of file armci_vp.C.

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

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

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

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

Definition at line 670 of file armci_vp.C.

References CmiAbort().

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

void ArmciVirtualProcessor::mallocClient ( CkReductionMsg *  msg  ) 

Definition at line 621 of file armci_vp.C.

References AddressMsg::addresses, peAddr::pe, peAddr::ptr, and thisProxy.

void ArmciVirtualProcessor::resumeThread ( void   ) 

Definition at line 278 of file armci_vp.C.

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

void ArmciVirtualProcessor::startCheckpoint ( const char *  dname  ) 

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

Definition at line 727 of file armci_vp.C.

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

Referenced by checkpointClient().


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 Thu May 24 07:56:29 2012 for Charm++ by  doxygen 1.5.5