Data Structures | |
| class | CkArrayIndex1D |
| Simple ArrayIndex classes: the key is just integer indices. More... | |
| class | CkArrayIndex2D |
| class | CkArrayIndex3D |
| class | CkArrayIndex4D |
| class | CkArrayIndex5D |
| class | CkArrayIndex6D |
| class | CkArrayIndexT< object > |
| A slightly more complex array index: the key is an object whose size is fixed at compile time. More... | |
| class | CkArrayListener |
| class | CkArrayOptions |
| Arguments for array creation:. More... | |
| class | ArrayBase |
| class | CProxy_ArrayBase |
| This class is a wrapper around a CkArrayIndex and ArrayID, used by array element proxies. More... | |
| class | CProxyElement_ArrayBase |
| class | CProxySection_ArrayBase |
| 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... | |
| struct | CkIndex2D |
| struct | CkIndex3D |
| struct | CkIndex4D |
| struct | CkIndex5D |
| struct | CkIndex6D |
| struct | CkIndexMax |
| class | CkArrayMap |
| The "map" is used by the array manager to map an array index to a home processor number. More... | |
Typedefs | |
| typedef int | CkIndex1D |
| 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 (CkArrayOptions) | |
| PUPmarshall (CProxy_ArrayBase) | |
| PUPmarshall (CProxyElement_ArrayBase) | |
| PUPmarshall (CProxySection_ArrayBase) | |
| 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 | operator| (PUP::er &p, CkIndex2D &i) |
| void | operator| (PUP::er &p, CkIndex3D &i) |
| void | operator| (PUP::er &p, CkIndex4D &i) |
| void | operator| (PUP::er &p, CkIndex5D &i) |
| void | operator| (PUP::er &p, CkIndex6D &i) |
| void | operator| (PUP::er &p, CkIndexMax &i) |
| int * | CkArrayListener::ckGetData (ArrayElement *el) const |
| Return our data associated with this array element. | |
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) for (idx=...) if (map->procNum(idx)==thisPe) CkArray::insertInitial CkArray::prepareCtorMsg CkArray::insertElement
2.) Initial inserts: one at a time fooProxy[idx].insert(msg,n); CProxy_ArrayBase::ckInsertIdx CkArray::prepareCtorMsg CkArrayManagerInsert CkArray::insertElement
3.) Demand creation (receive side) CkLocMgr::deliver CkLocMgr::deliverUnknown CkLocMgr::demandCreateElement CkArray::demandCreateElement CkArray::prepareCtorMsg CkArrayManagerInsert or direct 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 | ( | CkArrayOptions | ) |
| PUPmarshall | ( | CProxy_ArrayBase | ) |
| PUPmarshall | ( | CProxyElement_ArrayBase | ) |
| PUPmarshall | ( | CProxySection_ArrayBase | ) |
| void CkSendMsgArray | ( | int | entryIndex, | |
| void * | msg, | |||
| CkArrayID | aID, | |||
| const CkArrayIndex & | idx, | |||
| int | opts = 0 | |||
| ) |
Definition at line 760 of file ckarray.C.
References _localBranch(), CkArrayMessage::array_index(), CkDeliver_queue, deliver(), msg_prepareSend(), and opts.
Referenced by CkCallback::send().
| void CkSendMsgArrayInline | ( | int | entryIndex, | |
| void * | msg, | |||
| CkArrayID | aID, | |||
| const CkArrayIndex & | idx, | |||
| int | opts = 0 | |||
| ) |
Definition at line 769 of file ckarray.C.
References _localBranch(), CkArrayMessage::array_index(), CkDeliver_inline, CkDisableTracing(), CkEnableTracing(), deliver(), msg_prepareSend(), and opts.
Referenced by CkMulticastMgr::recvMsg(), and CkCallback::send().
Definition at line 892 of file ckarray.C.
References CProxy_ArrayBase::ckBroadcast(), and opts.
Referenced by CkCallback::send().
Definition at line 542 of file ckarray.h.
References p, CkIndex3D::x, CkIndex3D::y, and CkIndex3D::z.
Definition at line 544 of file ckarray.h.
References p, CkIndex4D::w, CkIndex4D::x, CkIndex4D::y, and CkIndex4D::z.
Definition at line 546 of file ckarray.h.
References p, CkIndex5D::v, CkIndex5D::w, CkIndex5D::x, CkIndex5D::y, and CkIndex5D::z.
Definition at line 548 of file ckarray.h.
References p, CkIndex6D::x1, CkIndex6D::x2, CkIndex6D::y1, CkIndex6D::y2, CkIndex6D::z1, and CkIndex6D::z2.
| void operator| | ( | PUP::er & | p, | |
| CkIndexMax & | i | |||
| ) | [inline] |
| int * CkArrayListener::ckGetData | ( | ArrayElement * | el | ) | const [inline, inherited] |
Return our data associated with this array element.
Definition at line 520 of file ckarray.h.
References CkArrayListener::dataOffset, and ArrayElement::listenerData.
Referenced by CkArrayReducer::getData(), and CkArrayBroadcaster::getData().
1.5.1