PPL Logo

CkArray

An Array is a collection of array elements (Chares) which can be indexed by an arbitary run of bytes (a CkArrayIndex). More...

Data Structures

struct  CkIndex2D
struct  CkIndex3D
struct  CkIndex4D
struct  CkIndex5D
struct  CkIndex6D
struct  CkIndexMax
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  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  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< CkIndex1DArrayElement1D
typedef ArrayElementT< CkIndex2DArrayElement2D
typedef ArrayElementT< CkIndex3DArrayElement3D
typedef ArrayElementT< CkIndex4DArrayElement4D
typedef ArrayElementT< CkIndex5DArrayElement5D
typedef ArrayElementT< CkIndex6DArrayElement6D
typedef ArrayElementT< CkIndexMaxArrayElementMax

Functions

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)
 PUPmarshall (CkArrayOptions) class ArrayBase
 PUPmarshall (CProxy_ArrayBase) class CProxyElement_ArrayBase
 PUPmarshall (CProxyElement_ArrayBase) class CProxySection_ArrayBase
 PUPmarshall (CProxySection_ArrayBase) void CkSendMsgArray(int entryIndex
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)
intCkArrayListener::ckGetData (ArrayElement *el) const
 Return our data associated with this array element.

Variables

void * msg
void CkArrayID aID
void CkArrayID const CkArrayIndexidx
void CkArrayID const
CkArrayIndex int 
opts = 0)

Detailed Description

An Array is a collection of array elements (Chares) which can be indexed by an arbitary run of bytes (a CkArrayIndex).

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) 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 Documentation

typedef int CkIndex1D

Definition at line 67 of file ckarray.h.

Definition at line 611 of file ckarray.h.

Definition at line 612 of file ckarray.h.

Definition at line 613 of file ckarray.h.

Definition at line 614 of file ckarray.h.

Definition at line 615 of file ckarray.h.

Definition at line 616 of file ckarray.h.

Definition at line 617 of file ckarray.h.


Function Documentation

void operator| ( PUP::er p,
CkIndex2D i 
) [inline]

Definition at line 69 of file ckarray.h.

References p, CkIndex2D::x, and CkIndex2D::y.

void operator| ( PUP::er p,
CkIndex3D i 
) [inline]

Definition at line 71 of file ckarray.h.

References p, CkIndex3D::x, CkIndex3D::y, and CkIndex3D::z.

void operator| ( PUP::er p,
CkIndex4D i 
) [inline]

Definition at line 73 of file ckarray.h.

References p, CkIndex4D::w, CkIndex4D::x, CkIndex4D::y, and CkIndex4D::z.

void operator| ( PUP::er p,
CkIndex5D i 
) [inline]

Definition at line 75 of file ckarray.h.

References p, CkIndex5D::v, CkIndex5D::w, CkIndex5D::x, CkIndex5D::y, and CkIndex5D::z.

void operator| ( PUP::er p,
CkIndex6D i 
) [inline]

Definition at line 77 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]

Definition at line 79 of file ckarray.h.

References CkIndexMax::data.

PUPmarshall ( CkArrayOptions   ) 

Definition at line 304 of file ckarray.h.

PUPmarshall ( CProxy_ArrayBase   ) 

Definition at line 358 of file ckarray.h.

References idx, opts, and p.

PUPmarshall ( CProxyElement_ArrayBase   ) 

PUPmarshall ( CProxySection_ArrayBase   ) 

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 
)

Definition at line 1269 of file ckarray.C.

References CProxy_ArrayBase::ckBroadcast().

Referenced by CkCallback::send().

void CkBroadcastMsgSection ( int  entryIndex,
void *  msg,
CkSectionID  sID,
int  opts = 0 
)

Definition at line 1075 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 564 of file ckarray.h.

References CkArrayListener::dataOffset, and ArrayElement::listenerData.

Referenced by CkArrayReducer::getData(), and CkArrayBroadcaster::getData().


Variable Documentation

void* msg

Definition at line 470 of file ckarray.h.

Referenced by _bufferedLocalMessageAckHandler(), _bufferedLocalMessageCopyHandler(), _bufferedTicketHandler(), _bufferedTicketRequestHandler(), _CldGetTokenMsg(), _CldGetTokenMsgAt(), _getCheckpointHandler(), _getRestartCheckpointHandler(), _initCharm(), _propMapInit(), _qdCommHandler(), _qdHandler(), _restartHandler(), _speedHdlr(), allocateImageMsg(), ampi::Alltoall_RemoteIGet(), AMPI_Allreduce(), AMPI_Alltoall2(), AMPI_Iallreduce(), AMPI_Irecv(), AMPI_Ireduce(), AMPI_Reduce(), AMPI_Set_startevent(), arg_init(), AssembleDatagram(), WSLB::AssembleStats(), NborBaseLB::AssembleStats(), HybridBaseLB::AssembleStats(), WSLB::AtSync(), NborBaseLB::AtSync(), ampi::bcastraw(), CkMulticastMgr::buildContributeMsg(), CkDataMsg::buildNew(), HybridBaseLB::buildStats(), CentralLB::buildStats(), CentralLB::BuildStatsMsg(), CkGroupReadyCallback::callBuffered(), ccsHandlerToCallback(), CcsImpl_ccs2converse(), CcsImpl_netRequest(), CcsImpl_reply(), CcsReply(), TraceUtilizationBOC::ccsRequestSumDetailCompressed(), checkIsSet(), CProxy_ArrayBase::ckInsertIdx(), ckinsertIdxFunc(), CkMlogRestart(), CkStartQD(), TempoGroup::ckTempoBcast(), Tempo::ckTempoRecv(), Tempo::ckTempoSend(), TempoGroup::ckTempoSendBranch(), TempoArray::ckTempoSendElem(), CldMoveAllSeedsAway(), CldSendLoad(), CldSimpleMultipleSend(), CldStillIdle(), CMI_VMI_RDMA_Get_Completion_Handler(), CMI_VMI_RDMA_Publish_Notification_Handler(), CMI_VMI_RDMA_Put_Notification_Handler(), CMI_VMI_Stream_Notification_Handler(), CmiCreatePersistent(), CmiDeliverSpecificMsg(), CmiDestoryPersistent(), CmiGetDynamicReductionRemote(), CmiGetNonLocal(), CmiHandleImmediate(), CmiInitCPUAffinity(), CmiMultiMsgHandler(), CmiNotifyIdle(), CmiSendMessagePxshm(), CmiSendReduce(), CmiStartQD(), CmmFind(), CmmPup(), collideVoxel::collide(), CkMulticastMgr::combineFrags(), combineMessage(), ComlibNotifyMigrationDone(), ComlibSectionHashObject::ComlibSectionHashObject(), CkSparseContiguousReducer< T >::contribute(), CkMulticastMgr::contribute(), ArrayElement::contribute2(), CPathCreateRedmsg(), CPathRecv(), cpd_memory_single_pup(), CpdAfterEp(), CpdPythonGroup::cpdCheck(), CpdFreezeModeScheduler(), CpdGetNextMessageConditional(), cpuAffinityHandler(), cpuTopoHandler(), FEM_Entity::create(), AmrCoordinator::create_tree(), HybridBaseLB::createMigrateMsg(), CentralLB::createMigrateMsg(), CsdNextLocalNodeMessage(), CsdNextMessage(), CsdScheduleCount(), CsdScheduleForever(), CsdScheduleNodePoll(), CsdSchedulePoll(), CWeb_Collect(), CWebHandler(), ParallelSolver::deleteState(), CkLocMgr::deliver(), SequentialSolver::dequeue_multiple(), NormalLineArray::doFirstFFT(), CkMemCheckPT::doItNow(), ConvComlibManager::doneCreating(), StatTable::doReduction(), NormalLineArray::doSecondFFT(), drop_send_callback(), CkLocMgr::emigrate(), emptyRecvBuf(), PeTable::ExtractAndPack(), PeTable::ExtractAndPackAll(), CentralLB::extractMigrateMsg(), FEM_Abort(), FEM_Index_Check(), FEM_Is_NULL(), FEM_REF_INIT(), StateStack::freeMsg(), CpdPythonGroup::getMessage(), ampi::getMessage(), ComlibSectionInfo::getNewMulticastMessage(), AmpiSeqQ::getOutOfOrder(), getPool(), imageCombine(), imageCombineReducer(), imagePollCombineReducer(), infi_freeMultipleSend(), CkMulticastMgr::initCookie(), ArrayElement::inmem_checkpoint(), PipeBroadcastConverse::insertMessage(), RectMulticastStrategy::insertMessage(), PrioStreaming::insertMessage(), MulticastStrategy::insertMessage(), BroadcastStrategy::insertMessage(), PeTable::InsertMsgs(), ampi::iprobe(), CkMemCheckPT::isMaster(), CkLocRec_buffering::isObsolete(), KillOnAllSigs(), liveVizDeposit(), liveVizPollArray::liveVizPoll0Deposit(), liveVizPollDeposit(), RectMulticastStrategy::localMulticast(), MulticastStrategy::localMulticast(), ComlibArrayInfo::localMulticast(), win_obj::lock(), LrtsInitCpuTopo(), ampi::makeAmpiMsg(), makeRednMsg(), MPISendOneMsg(), ArmciVirtualProcessor::nbput(), ArmciVirtualProcessor::nbput_implicit(), eventMsg::operator new(), ParFUM_SA_Init(), persistentDestoryHandler(), persistentReqGrantedHandler(), persistentRequestHandler(), print_node0(), ampi::probe(), ParallelSolver::process(), HybridBaseLB::ProcessAtSync(), processBcastQs(), controlPointManager::processControlPoints(), processEvent(), PumpMsgs(), PumpMsgsBlocking(), CkMarshalledCLBStatsMessage::pup(), CpdList_msgStack::pup(), CpdList_localQ::pup(), PUPbytes(), receiver::pupCmmTable(), ArmciVirtualProcessor::put(), ArrayMeshStreamer< dtype, itype >::receiveAtDestination(), ampi::recv(), recvBarrierMessage(), CkMulticastMgr::recvPacket(), ParallelSolver::registerRootState(), ParallelSolver::registerState(), CkMulticastMgr::releaseBufferedReduceMsgs(), ArmciVirtualProcessor::requestFromGet(), redistributor2D::resizeGranules(), rewritePEs(), MBlockChunk::send(), send_callback(), sendCheckpointData(), QdState::sendCount(), LineFFTArray::sendFFTMessages(), LineFFTArray::sendGridMessages(), SendMsgBuf(), PrefixRouter::sendMulticast(), PrefixRouter::sendPointToPoint(), CkMemCheckPT::sendProcData(), ampi::sendraw(), StatCollector::sendStat(), CkMulticastMgr::sendToSection(), collideMgr::sendVoxelMessage(), set(), ParallelSolver::setPriority(), startMlogCheckpoint(), CkArrayReductionMgr::startNodeGroupReduction(), StealLoad(), NeighborLB::Strategy(), NeighborCommLB::Strategy(), NborBaseLB::Strategy(), CentralLB::Strategy(), TCHARM_Create_data(), traceCommonInit(), win_obj::unlock(), ChildInitMsg::unpack(), NeighborMsg::unpack(), PeTable::UnpackAndInsertAll(), VectorStrategy(), HybridBaseLB::VectorStrategy(), vizPollReductionHandler(), vizReductionHandler(), ampi::winAccumulate(), ampi::winGet(), ampi::winLock(), ampi::winPut(), ampi::winRemoteAccumulate(), ampi::winRemoteGet(), ampi::winRemoteIGet(), ampi::winRemotePut(), ampi::winUnlock(), and ampi::~ampi().

void CkArrayID aID

Definition at line 470 of file ckarray.h.

void CkArrayID const CkArrayIndex& idx

Definition at line 470 of file ckarray.h.

Referenced by _distributedLocationHandler(), _getCheckpointHandler(), _getGroupIdx(), _getRestartCheckpointHandler(), _processNewChareMsg(), _processNewVChareMsg(), _verifyAckHandler(), MSA::MSA3D< ENTRY, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::accumulate(), ElementCheckpointer::addLocation(), ElementDistributor::addLocation(), ElementPacker::addLocation(), append_elem(), TraceArray::beginExecute(), TraceArray::beginSDAGBlock(), call_cblist_keep(), call_cblist_remove(), CkLocMgr::callForAllRecords(), ampiParent::cartChildRegister(), FEM_Elem_Conn_Checker::check(), CkCreateChare(), CkEmmigrateElement(), CkPupArrayElementsData(), CmiDirect_assocLocalBuffer(), CmiDirect_createHandle(), CmiDirect_put(), CmiDirect_ready(), CmiDirect_readyPollQ(), LBCommData::compute_key(), RectMulticastStrategy::computeKey(), BaseLB::LDStats::computeNonlocalComm(), element::connectTest(), CPathSend(), cpd_memory_single_pup(), CpdPupMessage(), CpdRemoveAllBreakPoints(), CpdRemoveBreakPoint(), CkMemCheckPT::createEntry(), ampiParent::createKeyval(), TraceProjections::creationDone(), D3GridRouter::D3GridRouter(), chunk::debug_print(), CkLocMgr::deliver(), CkLocMgr::deliverUnknown(), CkLocMgr::demandCreateElement(), ChunkTreeMulticastStrategy::determineNextHopPEs(), NormalLineArray::doSecondFFT(), NormalLineArray::doThirdFFT(), CkLocMgr::emigrate(), FEM_add_element(), FEM_Adapt_Algs::FEM_mesh_smooth(), element::flip23(), element::flip23remote(), element::flip32(), element::flip32remote(), CkLocMgr::flushAllRecs(), MSA::MSA3D< ENTRY, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::get(), MSA::MSA1D< ElemList< T >, DefaultListEntry< ElemList< T >, true >, MSA_DEFAULT_ENTRIES_PER_PAGE >::get(), MSA::MSA3D< ENTRY, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::get2(), ampiParent::getCart(), ampiParent::getGraph(), ampiParent::getGroup(), FEM_MUtil::getIdx(), LBInfo::getInfo(), ampiParent::getInter(), ampiParent::getIntra(), element::getNeighbor(), CkSemaPool::getNew(), getPredictedLoadWithMsg(), ampiParent::getSplit(), ampiParent::graphChildRegister(), ampiParent::groupChildRegister(), idx2str(), CkLocMgr::immigrate(), pvtObjects::Insert(), lbObjects::Insert(), insertElement(), ampiParent::interChildRegister(), ampiParent::intraChildRegister(), CkMemCheckPT::isMaster(), element::LEsplit(), ComlibArrayInfo::localMulticast(), MBLK_Get_nodelocs(), MPI_MAXLOC(), MPI_MINLOC(), ObjGraph::ObjGraph(), LBgroup::objRemove(), PVT::objRemove(), LBgroup::objUpdate(), chunk::out_print(), ParFUM_SA_Init(), ConfigurableRRMap::populateInitial(), CkArrayMap::populateInitial(), IDXL_Comm::post(), RefinerComm::processorCommCost(), FEM_MUtil::pup(), CkLocMgr::pup(), pupArrayElementsSkip(), ElementDistributor::pupLocation(), PUPmarshall(), HbmLB::ReceiveMigrationDelta(), recvBroadcast(), CkMemCheckPT::recvData(), element::refineLE(), element::refineLF(), PropMap::registerArray(), ReadFileMap::registerArray(), FastArrayMap::registerArray(), DefaultArrayMap::registerArray(), Element_Bucket::Remove(), element::remove32element(), CentralLB::removeNonMigratable(), Element_Bucket::sanity_check(), edge::sanityCheck(), ampiParent::saveGroupStruct(), SendMsgBuf(), edge::set(), pvtObjectNode::set(), node::set(), element::set(), MSA::MSA3D< ENTRY, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::set(), MSA::MSA1D< ElemList< T >, DefaultListEntry< ElemList< T >, true >, MSA_DEFAULT_ENTRIES_PER_PAGE >::set(), FEM_Node::setElemAdjacency(), FEM_Node::setNodeAdjacency(), ampiParent::splitChildRegister(), ampi::splitPhase1(), CkLocMgr::springCleaning(), TCHARM_Register_thread_function(), CkObjID::toString(), traceCommonInit(), pathHistoryManager::traceCriticalPathBackStepByStep(), and BlockLB::work().

void CkArrayID const CkArrayIndex int opts = 0)


Generated on Fri May 25 08:00:58 2012 for Charm++ by  doxygen 1.5.5