Data Structures | |
class | ArrayBase |
class | CProxy_ArrayBase |
This class is a wrapper around a CkArrayIndex and ArrayID, used by array element proxies. More... | |
class | ArrayElement |
An array element is a chare that lives inside the array. More... | |
class | ArrayElementT< T > |
An ArrayElementT is a utility class where you are constrained to a "thisIndex" of some fixed-sized type T. More... | |
class | ArrayElemExt |
class | CkArrayMap |
The "map" is used by the array manager to map an array index to a home processor number. More... | |
class | ArrayMapExt |
Typedefs | |
typedef ArrayElementT< CkIndex1D > | ArrayElement1D |
typedef ArrayElementT< CkIndex2D > | ArrayElement2D |
typedef ArrayElementT< CkIndex3D > | ArrayElement3D |
typedef ArrayElementT< CkIndex4D > | ArrayElement4D |
typedef ArrayElementT< CkIndex5D > | ArrayElement5D |
typedef ArrayElementT< CkIndex6D > | ArrayElement6D |
typedef ArrayElementT< CkIndexMax > | ArrayElementMax |
Functions | |
PUPmarshall (CProxy_ArrayBase) class CProxyElement_ArrayBase | |
PUPmarshall (CProxyElement_ArrayBase) class CProxySection_ArrayBase | |
PUPmarshall (CProxySection_ArrayBase) void CkSetMsgArrayIfNotThere(void *msg) | |
void | CkSendMsgArray (int entryIndex, void *msg, CkArrayID aID, const CkArrayIndex &idx, int opts=0) |
void | CkSendMsgArrayInline (int entryIndex, void *msg, CkArrayID aID, const CkArrayIndex &idx, int opts=0) |
void | CkBroadcastMsgArray (int entryIndex, void *msg, CkArrayID aID, int opts=0) |
void | CkBroadcastMsgSection (int entryIndex, void *msg, CkSectionID sID, int opts=0) |
int * | CkArrayListener::ckGetData (ArrayElement *el) const |
Return our data associated with this array element. | |
Variables | |
void(* | ArrayMsgRecvExtCallback )(int, int, int *, int, int, char *, int) |
int(* | ArrayElemLeaveExt )(int, int, int *, char **, int) |
void(* | ArrayElemJoinExt )(int, int, int *, int, char *, int) |
void(* | ArrayResumeFromSyncExtCallback )(int, int, int *) |
int(* | ArrayMapProcNumExtCallback )(int, int, const int *) |
Migratable Chare Arrays: user-visible classes.
Elements can be inserted or removed from the array, or migrated between processors. Arrays are integrated with the run-time load balancer. Elements can also receive broadcasts and participate in reductions.
Here's a list, valid in 2003/12, of all the different code paths used to create array elements:
1.) Initial inserts: all at once CProxy_foo::ckNew(msg,n); CProxy_ArrayBase::ckCreateArray CkArray::CkArray CkLocMgr::populateInitial(numInitial) -> CkArrayMap::populateInitial(numInitial) for (idx=...) if (map->procNum(idx)==thisPe) CkArray::insertInitial CkArray::prepareCtorMsg CkArray::insertElement OR map-specific insertion logic
2.) Initial inserts: one at a time fooProxy[idx].insert(msg,n); CProxy_ArrayBase::ckInsertIdx CkArray::prepareCtorMsg CkArray::insertElement
3.) Demand creation (receive side) CkLocMgr::deliver CkLocMgr::deliverUnknown CkLocMgr::demandCreateElement CkArray::demandCreateElement CkArray::prepareCtorMsg CkArray::insertElement
4.) Migration (receive side) CkLocMgr::migrateIncoming CkLocMgr::pupElementsFor CkArray::allocateMigrated
Converted from 1-D arrays 2/27/2000 by Orion Sky Lawlor, olawlor@acm.org
All these classes are defined in ckarray.C.
typedef ArrayElementT<CkIndex1D> ArrayElement1D |
typedef ArrayElementT<CkIndex2D> ArrayElement2D |
typedef ArrayElementT<CkIndex3D> ArrayElement3D |
typedef ArrayElementT<CkIndex4D> ArrayElement4D |
typedef ArrayElementT<CkIndex5D> ArrayElement5D |
typedef ArrayElementT<CkIndex6D> ArrayElement6D |
typedef ArrayElementT<CkIndexMax> ArrayElementMax |
PUPmarshall | ( | CProxy_ArrayBase | ) |
Definition at line 153 of file ckarray.h.
References idx, PUP::m, operator==(), p, and PUP::pup().
PUPmarshall | ( | CProxyElement_ArrayBase | ) |
Definition at line 182 of file ckarray.h.
References CkSectionID::_cookie, cb, CProxy::ckDelegate(), CProxy_ArrayBase::CProxy_ArrayBase(), PUP::d, factor, CkSectionInfo::get_aid(), CkDelegateMgr::initDelegateMgr(), PUP::m, n, CProxy::operator=(), p, and CProxy_ArrayBase::pup().
PUPmarshall | ( | CProxySection_ArrayBase | ) |
void CkSendMsgArray | ( | int | entryIndex, | |
void * | msg, | |||
CkArrayID | aID, | |||
const CkArrayIndex & | idx, | |||
int | opts = 0 | |||
) |
Definition at line 1244 of file ckarray.C.
References _localBranch(), PUP::a, CkDeliver_queue, deliver(), and msg_prepareSend().
Referenced by CkMemCheckPT::doItNow(), and CkCallback::send().
void CkSendMsgArrayInline | ( | int | entryIndex, | |
void * | msg, | |||
CkArrayID | aID, | |||
const CkArrayIndex & | idx, | |||
int | opts = 0 | |||
) |
Definition at line 1255 of file ckarray.C.
References _localBranch(), PUP::a, CkDeliver_inline, CkDisableTracing(), CkEnableTracing(), deliver(), and msg_prepareSend().
Referenced by CkCallback::send(), and CkMulticastMgr::sendToLocal().
Definition at line 1408 of file ckarray.C.
References CProxy_ArrayBase::ckBroadcast().
Referenced by CkArrayExtSend(), CkArrayExtSend_multi(), and CkCallback::send().
void CkBroadcastMsgSection | ( | int | entryIndex, | |
void * | msg, | |||
CkSectionID | sID, | |||
int | opts = 0 | |||
) |
Definition at line 1210 of file ckarray.C.
Referenced by CkCallback::send().
int * CkArrayListener::ckGetData | ( | ArrayElement * | el | ) | const [inline, inherited] |
Return our data associated with this array element.
Definition at line 376 of file ckarray.h.
References CkArrayListener::dataOffset, and ArrayElement::listenerData.
Referenced by CkArrayReducer::getData(), and CkArrayBroadcaster::getData().
Referenced by ArrayElemExt::__entryMethod(), ArrayElemExt::ArrayElemExt(), and registerArrayMsgRecvExtCallback().
Referenced by ArrayElemExt::pup(), and registerArrayElemLeaveExtCallback().
Referenced by ArrayElemExt::pup(), and registerArrayElemJoinExtCallback().
void(* ArrayResumeFromSyncExtCallback)(int, int, int *) |
Referenced by registerArrayResumeFromSyncExtCallback(), and ArrayElemExt::ResumeFromSync().
int(* ArrayMapProcNumExtCallback)(int, int, const int *) |
Referenced by ArrayMapExt::procNum(), and registerArrayMapProcNumExtCallback().