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

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< CkIndex1DArrayElement1D
typedef ArrayElementT< CkIndex2DArrayElement2D
typedef ArrayElementT< CkIndex3DArrayElement3D
typedef ArrayElementT< CkIndex4DArrayElement4D
typedef ArrayElementT< CkIndex5DArrayElement5D
typedef ArrayElementT< CkIndex6DArrayElement6D
typedef ArrayElementT< CkIndexMaxArrayElementMax

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)
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 623 of file ckarray.h.

Definition at line 641 of file ckarray.h.

Definition at line 642 of file ckarray.h.

Definition at line 643 of file ckarray.h.

Definition at line 644 of file ckarray.h.

Definition at line 645 of file ckarray.h.

Definition at line 646 of file ckarray.h.

Definition at line 647 of file ckarray.h.


Function Documentation

PUPmarshall ( CkArrayOptions   ) 

Definition at line 308 of file ckarray.h.

PUPmarshall ( CProxy_ArrayBase   ) 

Definition at line 362 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 950 of file ckarray.C.

References CProxy_ArrayBase::ckBroadcast().

Referenced by CkCallback::send().

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

Definition at line 625 of file ckarray.h.

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

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

Definition at line 627 of file ckarray.h.

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

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

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

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

Definition at line 635 of file ckarray.h.

References CkIndexMax::data.

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().


Variable Documentation

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 aID

Definition at line 521 of file ckarray.h.

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)


Generated on Mon Nov 23 07:56:04 2009 for Charm++ by  doxygen 1.5.5