
#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 63 of file armci_vp.C.
References addressReply, CmiIsomallocBlockListNew(), TCharm::getThread(), memBlock, TCharm::semaPut(), TCharmClient1D::tcharmClientInit(), ArrayElement::thisArrayID, thisProxy, and TCharmClient1D::thread.
| ArmciVirtualProcessor::ArmciVirtualProcessor | ( | CkMigrateMessage * | m | ) |
| ArmciVirtualProcessor::~ArmciVirtualProcessor | ( | ) |
Definition at line 82 of file armci_vp.C.
References addressReply, CmiIsomallocBlockListDelete(), and memBlock.
| 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.
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.
Definition at line 101 of file armci_vp.C.
References ArmciMsg::data, hdlList, msg, CkVec< T >::push_back(), CkVec< T >::size(), ArrayElementT< T >::thisIndex, and thisProxy.
Referenced by ARMCI_Put().
| void ArmciVirtualProcessor::putData | ( | ArmciMsg * | msg | ) |
Definition at line 151 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 157 of file armci_vp.C.
References hdlList, TCharm::resume(), TCharmClient1D::thread, and wait().
Definition at line 117 of file armci_vp.C.
References ArmciMsg::data, hdlList, msg, CkVec< T >::push_back(), CkVec< T >::size(), ArrayElementT< T >::thisIndex, and thisProxy.
Referenced by ARMCI_NbPut().
Definition at line 134 of file armci_vp.C.
References ArmciMsg::data, hdlList, msg, CkVec< T >::push_back(), CkVec< T >::size(), ArrayElementT< T >::thisIndex, and thisProxy.
Referenced by ARMCI_NbPut().
| 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().
| 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 | ) |
Definition at line 271 of file armci_vp.C.
References allfence(), ArrayElementT< T >::contribute(), CkReduction::sum_int, TCharm::suspend(), thisProxy, and TCharmClient1D::thread.
Referenced by ARMCI_Barrier().
Definition at line 168 of file armci_vp.C.
References TCharm::suspend(), ArrayElementT< T >::thisIndex, thisProxy, and TCharmClient1D::thread.
Referenced by ARMCI_Get().
Definition at line 179 of file armci_vp.C.
References hdlList, CkVec< T >::push_back(), CkVec< T >::size(), ArrayElementT< T >::thisIndex, and thisProxy.
Referenced by ARMCI_NbGet().
Definition at line 195 of file armci_vp.C.
References hdlList, CkVec< T >::push_back(), CkVec< T >::size(), ArrayElementT< T >::thisIndex, and thisProxy.
Referenced by ARMCI_NbGet().
Definition at line 297 of file armci_vp.C.
References hdlList, TCharm::resume(), TCharmClient1D::thread, and wait().
| void ArmciVirtualProcessor::putDataFromGet | ( | ArmciMsg * | msg | ) |
Definition at line 309 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 322 of file armci_vp.C.
References ArmciStridedMsg::count, ArmciStridedMsg::data, ArmciStridedMsg::dst_stride_ar, hdlList, CkVec< T >::push_back(), CkVec< T >::size(), stridedCopy(), ArrayElementT< T >::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 348 of file armci_vp.C.
References ArmciStridedMsg::count, ArmciStridedMsg::data, ArmciStridedMsg::dst_stride_ar, hdlList, CkVec< T >::push_back(), CkVec< T >::size(), stridedCopy(), ArrayElementT< T >::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 375 of file armci_vp.C.
References ArmciStridedMsg::count, ArmciStridedMsg::data, ArmciStridedMsg::dst_stride_ar, hdlList, CkVec< T >::push_back(), CkVec< T >::size(), stridedCopy(), ArrayElementT< T >::thisIndex, and thisProxy.
Referenced by ARMCI_NbPutS().
| void ArmciVirtualProcessor::putsData | ( | ArmciStridedMsg * | m | ) |
Definition at line 404 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 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 | |||
| ) |
Definition at line 430 of file armci_vp.C.
References hdlList, CkVec< T >::push_back(), CkVec< T >::size(), ArrayElementT< T >::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 455 of file armci_vp.C.
References hdlList, CkVec< T >::push_back(), CkVec< T >::size(), ArrayElementT< T >::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 473 of file armci_vp.C.
References ArmciStridedMsg::count, ArmciStridedMsg::data, ArmciStridedMsg::dst_stride_ar, stridedCopy(), ArrayElementT< T >::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 486 of file armci_vp.C.
References hdlList, TCharm::resume(), stridedCopy(), TCharmClient1D::thread, and wait().
| void ArmciVirtualProcessor::putDataFromGets | ( | ArmciStridedMsg * | m | ) |
Definition at line 499 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 512 of file armci_vp.C.
References ArrayElementT< T >::thisIndex, and thisProxy.
Referenced by armci_notify().
| void ArmciVirtualProcessor::sendNote | ( | int | proc | ) |
Definition at line 515 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 541 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 579 of file armci_vp.C.
References AddressMsg::addresses, addressReply, armci_nproc, CkReduction::concat, ArrayElementT< T >::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 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.
Definition at line 641 of file armci_vp.C.
References ARMCI_Myid(), collectiveTmpBufferPtr, TCharm::suspend(), thisProxy, and TCharmClient1D::thread.
Referenced by armci_msg_bcast().
Definition at line 654 of file armci_vp.C.
References ARMCI_Myid(), collectiveTmpBufferPtr, TCharm::resume(), and TCharmClient1D::thread.
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 | ) |
| void ArmciVirtualProcessor::startCheckpoint | ( | const char * | dname | ) |
Definition at line 717 of file armci_vp.C.
References checkpointClient(), ArrayElementT< T >::contribute(), CkReduction::sum_int, TCharm::suspend(), ArrayElementT< T >::thisIndex, and TCharmClient1D::thread.
Referenced by ARMCI_Checkpoint(), and ARMCI_MemCheckpoint().
| 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().
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] |
1.5.5