#include <armci_impl.h>
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 | |
CmiIsomallocBlockList * | memBlock |
CProxy_ArmciVirtualProcessor | thisProxy |
AddressMsg * | addressReply |
CkPupPtrVec< Armci_Hdl > | hdlList |
CkPupPtrVec< Armci_Note > | noteList |
void * | collectiveTmpBufferPtr |
Definition at line 228 of file armci_impl.h.
ArmciVirtualProcessor::ArmciVirtualProcessor | ( | const CProxy_TCharm & | _thr_proxy | ) |
Definition at line 87 of file armci_vp.C.
References addressReply, CmiIsomallocBlockListNew(), memBlock, TCharm::semaPut(), TCharmClient1D::tcharmClientInit(), ArrayElement::thisArrayID, thisProxy, and TCharmClient1D::thread.
ArmciVirtualProcessor::ArmciVirtualProcessor | ( | CkMigrateMessage * | m | ) |
ArmciVirtualProcessor::~ArmciVirtualProcessor | ( | ) |
Definition at line 106 of file armci_vp.C.
References addressReply, CmiIsomallocBlockListDelete(), and memBlock.
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.
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 117 of file armci_vp.C.
References addressReply, TCharm::resume(), and TCharmClient1D::thread.
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().
void ArmciVirtualProcessor::putData | ( | ArmciMsg * | msg | ) |
Definition at line 173 of file armci_vp.C.
References ArmciMsg::data, ArmciMsg::dst, ArmciMsg::hdl, ArmciMsg::nbytes, ArmciMsg::src_proc, and thisProxy.
void ArmciVirtualProcessor::putAck | ( | int | hdl | ) |
Definition at line 179 of file armci_vp.C.
References hdlList, TCharm::resume(), TCharmClient1D::thread, and wait().
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().
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().
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().
Definition at line 304 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 249 of file armci_vp.C.
References hdlList, op, CkVec< T >::push_back(), CkVec< T >::size(), and waitmulti().
Referenced by ARMCI_WaitProc().
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().
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().
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().
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().
Definition at line 190 of file armci_vp.C.
References TCharm::suspend(), ArrayElementT< CkIndex1D >::thisIndex, thisProxy, and TCharmClient1D::thread.
Referenced by ARMCI_Get().
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().
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().
Definition at line 319 of file armci_vp.C.
References hdlList, TCharm::resume(), TCharmClient1D::thread, and wait().
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.
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().
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().
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().
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.
void ArmciVirtualProcessor::putsData | ( | ArmciStridedMsg * | m | ) |
Definition at line 426 of file armci_vp.C.
References ArmciStridedMsg::count, ArmciStridedMsg::data, ArmciStridedMsg::dst, ArmciStridedMsg::dst_stride_ar, ArmciStridedMsg::hdl, ArmciStridedMsg::src_proc, ArmciStridedMsg::stride_levels, stridedCopy(), and thisProxy.
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().
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().
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().
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.
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().
void ArmciVirtualProcessor::putDataFromGets | ( | ArmciStridedMsg * | m | ) |
Definition at line 521 of file armci_vp.C.
References ArmciStridedMsg::count, ArmciStridedMsg::data, ArmciStridedMsg::dst, ArmciStridedMsg::dst_stride_ar, ArmciStridedMsg::hdl, hdlList, TCharm::resume(), ArmciStridedMsg::stride_levels, stridedCopy(), and TCharmClient1D::thread.
void ArmciVirtualProcessor::notify | ( | int | proc | ) |
Definition at line 534 of file armci_vp.C.
References ArrayElementT< CkIndex1D >::thisIndex, and thisProxy.
Referenced by armci_notify().
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.
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().
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().
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().
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.
Definition at line 658 of file armci_vp.C.
References ARMCI_Myid(), collectiveTmpBufferPtr, TCharm::suspend(), thisProxy, and TCharmClient1D::thread.
Referenced by armci_msg_bcast().
Definition at line 671 of file armci_vp.C.
References ARMCI_Myid(), collectiveTmpBufferPtr, TCharm::resume(), and TCharmClient1D::thread.
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().
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.
void ArmciVirtualProcessor::resumeThread | ( | void | ) |
Definition at line 300 of file armci_vp.C.
References TCharm::resume(), and TCharmClient1D::thread.
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().
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().
Definition at line 229 of file armci_impl.h.
Referenced by ArmciVirtualProcessor(), BlockMalloc(), pup(), and ~ArmciVirtualProcessor().
CProxy_ArmciVirtualProcessor ArmciVirtualProcessor::thisProxy [private] |
Definition at line 230 of file armci_impl.h.
Referenced by ArmciVirtualProcessor(), barrier(), checkpoint(), get(), gets(), mallocClient(), msgBcast(), nbget(), nbget_implicit(), nbgets(), nbgets_implicit(), nbput(), nbput_implicit(), nbputs(), nbputs_implicit(), notify(), pup(), put(), putData(), puts(), putsData(), requestAddresses(), requestFromGet(), and requestFromGets().
AddressMsg* ArmciVirtualProcessor::addressReply [private] |
Definition at line 231 of file armci_impl.h.
Referenced by ArmciVirtualProcessor(), getAddresses(), pup(), requestAddresses(), and ~ArmciVirtualProcessor().
CkPupPtrVec<Armci_Hdl> ArmciVirtualProcessor::hdlList [private] |
Definition at line 232 of file armci_impl.h.
Referenced by allfence(), fence(), nbget(), nbget_implicit(), nbgets(), nbgets_implicit(), nbput(), nbput_implicit(), nbputs(), nbputs_implicit(), pup(), put(), putAck(), putDataFromGet(), putDataFromGets(), puts(), test(), wait(), waitall(), and waitproc().
CkPupPtrVec<Armci_Note> ArmciVirtualProcessor::noteList [private] |
void* ArmciVirtualProcessor::collectiveTmpBufferPtr [private] |