
#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] |
1.5.5