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 | 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... | |
| 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) 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 | 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. | |
Variables | |
| void * | msg |
| void CkArrayID | aID |
| void CkArrayID const CkArrayIndex & | idx |
| void CkArrayID const CkArrayIndex int | opts = 0) |
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 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 | ) |
Definition at line 407 of file ckarray.h.
References CkSectionID::_cookie, CkSectionInfo::aid, CProxy::ckDelegate(), CProxy_ArrayBase::CProxy_ArrayBase(), CkDelegateMgr::initDelegateMgr(), n, CProxy::operator=(), opts, p, and CProxy_ArrayBase::pup().
| PUPmarshall | ( | CProxySection_ArrayBase | ) |
| void CkSendMsgArrayInline | ( | int | entryIndex, | |
| void * | msg, | |||
| CkArrayID | aID, | |||
| const CkArrayIndex & | idx, | |||
| int | opts = 0 | |||
| ) |
Definition at line 815 of file ckarray.C.
References _localBranch(), CkArrayMessage::array_index(), CkDeliver_inline, CkDisableTracing(), CkEnableTracing(), deliver(), and msg_prepareSend().
Referenced by CkMulticastMgr::recvMsg(), and CkCallback::send().
Definition at line 950 of file ckarray.C.
References CProxy_ArrayBase::ckBroadcast().
Referenced by CkCallback::send().
Definition at line 627 of file ckarray.h.
References p, CkIndex3D::x, CkIndex3D::y, and CkIndex3D::z.
Definition at line 629 of file ckarray.h.
References p, CkIndex4D::w, CkIndex4D::x, CkIndex4D::y, and CkIndex4D::z.
Definition at line 631 of file ckarray.h.
References p, CkIndex5D::v, CkIndex5D::w, CkIndex5D::x, CkIndex5D::y, and CkIndex5D::z.
Definition at line 633 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 601 of file ckarray.h.
References CkArrayListener::dataOffset, and ArrayElement::listenerData.
Referenced by CkArrayReducer::getData(), and CkArrayBroadcaster::getData().
| void* msg |
Definition at line 521 of file ckarray.h.
Referenced by _bufferedLocalMessageAckHandler(), _bufferedLocalMessageCopyHandler(), _bufferedTicketHandler(), _bufferedTicketRequestHandler(), _CldGetTokenMsg(), _getCheckpointHandler(), _getRestartCheckpointHandler(), _initCharm(), _propMapInit(), _qdCommHandler(), _qdHandler(), _restartHandler(), _speedHdlr(), adjustTimeLog(), allocateImageMsg(), ampi::Alltoall_RemoteIGet(), AMPI_Allreduce(), AMPI_Alltoall2(), AMPI_Iallreduce(), AMPI_Irecv(), AMPI_Ireduce(), AMPI_Reduce(), arg_init(), CkMulticastMgr::ArraySectionSend(), 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(), CkMemCheckPT::CkMemCheckPT(), 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(), CmiBarrierZero(), CmiCreatePersistent(), CmiDeliverSpecificMsg(), CmiDestoryPersistent(), CmiGetDynamicReductionRemote(), CmiGetNonLocal(), CmiHandleImmediate(), CmiInitCPUAffinity(), CmiInitCPUTopology(), CmiMultiMsgHandler(), CmiNotifyIdle(), CmiSendMessagePxshm(), CmiSendReduce(), CmiStartQD(), CmmFind(), CmmPup(), collideVoxel::collide(), CkMulticastMgr::combineFrags(), ComlibNotifyMigrationDone(), ComlibSectionHashObject::ComlibSectionHashObject(), CommunicationServer(), CkSparseContiguousReducer< T >::contribute(), CkMulticastMgr::contribute(), CPathCreateRedmsg(), CPathRecv(), cpd_memory_single_pup(), CpdAfterEp(), CpdPythonGroup::cpdCheck(), CpdFreezeModeScheduler(), cpuAffinityHandler(), cpuTopoHandler(), FEM_Entity::create(), AmrCoordinator::create_tree(), HybridBaseLB::createMigrateMsg(), CentralLB::createMigrateMsg(), CsdNextMessage(), CsdScheduleCount(), CsdScheduleForever(), CsdSchedulePoll(), CWeb_Collect(), CWebHandler(), CkLocMgr::deliver(), NormalLineArray::doFirstFFT(), ConvComlibManager::doneCreating(), StatTable::doReduction(), NormalLineArray::doSecondFFT(), drop_send_callback(), CkLocMgr::emigrate(), emptyRecvBuf(), PeTable::ExtractAndPack(), PeTable::ExtractAndPackAll(), FEM_Abort(), FEM_Index_Check(), FEM_Is_NULL(), FEM_REF_INIT(), CkReductionMgr::finishReduction(), CpdPythonGroup::getMessage(), ampi::getMessage(), ComlibSectionInfo::getNewMulticastMessage(), AmpiSeqQ::getOutOfOrder(), imageCombine(), imageCombineReducer(), imagePollCombineReducer(), infi_freeMultipleSend(), CkMulticastMgr::initCookie(), ArrayElement::inmem_checkpoint(), PipeBroadcastConverse::insertMessage(), RectMulticastStrategy::insertMessage(), PrioStreaming::insertMessage(), MulticastStrategy::insertMessage(), BroadcastStrategy::insertMessage(), PeTable::InsertMsgs(), ampi::iprobe(), CkLocRec_buffering::isObsolete(), KillOnAllSigs(), liveVizDeposit(), liveVizPollArray::liveVizPoll0Deposit(), liveVizPollDeposit(), RectMulticastStrategy::localMulticast(), MulticastStrategy::localMulticast(), ComlibArrayInfo::localMulticast(), win_obj::lock(), ampi::makeAmpiMsg(), makeRednMsg(), McCleanUpInTransit(), ArmciVirtualProcessor::nbput(), eventMsg::operator new(), ParFUM_SA_Init(), persistentDestoryHandler(), persistentReqGrantedHandler(), persistentRequestHandler(), print_node0(), ampi::probe(), HybridBaseLB::ProcessAtSync(), processEvent(), PumpMsgs(), PumpMsgsBlocking(), PumpPersistent(), CkMarshalledCLBStatsMessage::pup(), CpdList_msgStack::pup(), CpdList_localQ::pup(), PUPbytes(), receiver::pupCmmTable(), PUPmarshall(), ArmciVirtualProcessor::put(), ampi::recv(), CkMulticastMgr::recvPacket(), CkMulticastMgr::releaseBufferedReduceMsgs(), BgMessageReplay::replay(), ArmciVirtualProcessor::requestFromGet(), rewritePEs(), commThreadInfo::run(), workThreadInfo::scheduler(), searchInAffinityQueue(), searchInAffinityQueueInNode(), MBlockChunk::send(), send_callback(), sendCheckpointData(), QdState::sendCount(), LineFFTArray::sendFFTMessages(), LineFFTArray::sendGridMessages(), sendHeartbeat(), PrefixRouter::sendMulticast(), PrefixRouter::sendPointToPoint(), ampi::sendraw(), StatCollector::sendStat(), collideMgr::sendVoxelMessage(), startMlogCheckpoint(), CkArrayReductionMgr::startNodeGroupReduction(), NeighborLB::Strategy(), NeighborCommLB::Strategy(), NborBaseLB::Strategy(), TCHARM_Create_data(), traceCommonInit(), win_obj::unlock(), CMessage_WSLBStatsMsg::unpack(), CMessage_OutlierThresholdMessage::unpack(), CMessage_OutlierWeightMessage::unpack(), CMessage_OutlierStatsMessage::unpack(), CMessage_TempoMessage::unpack(), CMessage_pathInformationMsg::unpack(), CMessage_multicastGrpMsg::unpack(), CMessage_multicastSetupMsg::unpack(), CMessage_cookieMsg::unpack(), CMessage_CkCacheFillMsg::unpack(), CMessage_CkCacheRequestMsg::unpack(), CMessage_redistributor2DMsg::unpack(), CMessage_controlPointMsg::unpack(), CMessage_ComlibMulticastMsg::unpack(), CMessage_ComlibDummyMsg::unpack(), CMessage_CkReductionNumberMsg::unpack(), CMessage_CkReductionMsg::unpack(), CMessage_CkGroupCallbackMsg::unpack(), CMessage_CkArrayCheckPTReqMessage::unpack(), CMessage_CkProcCheckPTMessage::unpack(), CMessage_CkArrayCheckPTMessage::unpack(), CMessage_CkMarshallMsg::unpack(), CMessage_CkArrayElementMigrateMessage::unpack(), CMessage_FutureInitMsg::unpack(), CMessage_CkQdMsg::unpack(), CMessage_CkDataMsg::unpack(), CMessage_CkCcsRequestMsg::unpack(), CMessage_PacketMsg::unpack(), CMessage_CreateBgNodeMsg::unpack(), CMessage_LBVectorMigrateMsg::unpack(), CMessage_LBMigrateMsg::unpack(), ChildInitMsg::unpack(), NeighborMsg::unpack(), PeTable::UnpackAndInsertAll(), updateRealMsgs(), 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 const CkArrayIndex& idx |
Definition at line 521 of file ckarray.h.
Referenced by _distributedLocationHandler(), _getCheckpointHandler(), _getGroupIdx(), _getRestartCheckpointHandler(), _processNewChareMsg(), _processNewVChareMsg(), _verifyAckHandler(), ElementDistributor::addLocation(), ElementPacker::addLocation(), ElementCheckpointer::addLocation(), BgTimeLog::addMsgBackwardDep(), append_elem(), TraceArray::beginExecute(), TraceArray::beginSDAGBlock(), BgAdjustTimeLineByIndex(), BgAdjustTimeLineFromIndex(), BgGetIndexFromTime(), BgGetMsgStartTime(), call_cblist_keep(), call_cblist_remove(), CkLocMgr::callForAllRecords(), ampiParent::cartChildRegister(), FEM_Elem_Conn_Checker::check(), CkCreateChare(), CkEmmigrateElement(), CkMemCheckPT::CkMemCheckPT(), 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(), ampiParent::createKeyval(), TraceProjections::creationDone(), D3GridRouter::D3GridRouter(), chunk::debug_print(), CkLocMgr::deliver(), CkLocMgr::deliverUnknown(), CkLocMgr::demandCreateElement(), 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(), MSA1D< ElemList, DefaultListEntry< ElemList, true >, MSA_DEFAULT_ENTRIES_PER_PAGE >::get(), MSA1D< ENTRY, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::Read::get(), 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(), element::LEsplit(), ComlibArrayInfo::localMulticast(), MBLK_Get_nodelocs(), MPI_MAXLOC(), MPI_MINLOC(), LBgroup::objRemove(), PVT::objRemove(), LBgroup::objUpdate(), chunk::out_print(), ParFUM_SA_Init(), oocWorkThreadQueue::peek(), ConfigurableRRMap::populateInitial(), CkArrayMap::populateInitial(), IDXL_Comm::post(), prefetchFinishedHandler(), prefetchFinishedSignalHandler(), oocWorkThreadQueue::print(), RefinerComm::processorCommCost(), FEM_MUtil::pup(), BgTimeLog::pup(), CkLocMgr::pup(), pupArrayElementsSkip(), ElementDistributor::pupLocation(), PUPmarshall(), HbmLB::ReceiveMigrationDelta(), recvBroadcast(), element::refineLE(), element::refineLF(), PropMap::registerArray(), DefaultArrayMap::registerArray(), Element_Bucket::Remove(), element::remove32element(), CentralLB::removeNonMigratable(), Element_Bucket::sanity_check(), edge::sanityCheck(), ampiParent::saveGroupStruct(), edge::set(), pvtObjectNode::set(), node::set(), element::set(), MSA1D< ElemList, DefaultListEntry< ElemList, true >, MSA_DEFAULT_ENTRIES_PER_PAGE >::set(), MSA1D< ENTRY, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::Write::set(), FEM_Node::setElemAdjacency(), FEM_Node::setNodeAdjacency(), ampiParent::splitChildRegister(), ampi::splitPhase1(), CkLocMgr::springCleaning(), TCHARM_Register_thread_function(), CkObjID::toString(), traceCommonInit(), BgTimeLog::winPup(), and BlockLB::work().
| void CkArrayID const CkArrayIndex int opts = 0) |
Definition at line 521 of file ckarray.h.
Referenced by _sendMsgBranch(), _sendMsgNodeBranch(), ampiInit(), ARMCI_Init(), ampi::cartCreatePhase1(), CkAllocateMarshallMsg(), CProxy_ArrayBase::ckCreateArray(), COLLIDE_Init(), ampi::commCreatePhase1(), CkLocRec_buffering::deliver(), CkLocRec_remote::deliver(), deliver(), FEM_Mesh_partition(), FEM_REF_INIT(), xi::Entry::genArrayDefs(), xi::Entry::genChareDefs(), xi::Entry::genGroupDefs(), ampi::graphCreatePhase1(), ampi::intercommCreatePhase1(), ampi::intercommMergePhase1(), ParFUM_SA_Init(), PUPmarshall(), REFINE2D_Init(), ampi::splitPhase1(), TCHARM_Attach_start(), TCHARM_Build_threads(), and TCHARMLIB_Bound_array().
1.5.5