PPL Logo

ampiParent Class Reference

#include <ampiimpl.h>

Inheritance diagram for ampiParent:

Inheritance graph
[legend]
Collaboration diagram for ampiParent:

Collaboration graph
[legend]

Public Member Functions

 ampiParent (MPI_Comm worldNo_, CProxy_TCharm threads_)
 ampiParent (CkMigrateMessage *msg)
void ckJustMigrated (void)
void ckJustRestored (void)
 ~ampiParent ()
ampilookupComm (MPI_Comm comm)
TCharmregisterAmpi (ampi *ptr, ampiCommStruct s, bool forMigration)
void ExchangeProxy (CProxy_ampi rproxy)
MPI_Comm getNextSplit (void) const
MPI_Comm getNextGroup (void) const
MPI_Comm getNextCart (void) const
MPI_Comm getNextGraph (void) const
MPI_Comm getNextInter (void) const
MPI_Comm getNextIntra (void) const
int isCart (MPI_Comm comm) const
ampiCommStructgetCart (MPI_Comm comm)
int isGraph (MPI_Comm comm) const
ampiCommStructgetGraph (MPI_Comm comm)
int isInter (MPI_Comm comm) const
const ampiCommStructgetInter (MPI_Comm comm)
void pup (PUP::er &p)
void start_measure ()
void stop_measure ()
virtual void UserSetLBLoad (void)
void startCheckpoint (const char *dname)
void Checkpoint (int len, const char *dname)
void ResumeThread (void)
TCharmgetTCharmThread ()
const ampiCommStructcomm2CommStruct (MPI_Comm comm)
ampicomm2ampi (MPI_Comm comm)
int hasComm (const MPI_Group group)
const groupStruct group2vec (MPI_Group group)
MPI_Group saveGroupStruct (groupStruct vec)
int getRank (const MPI_Group group)
int getMyPe (void)
int hasWorld (void) const
void checkComm (MPI_Comm comm)
MPI_Group comm2group (const MPI_Comm comm)
 if intra-communicator, return comm, otherwise return null group
int getRemoteSize (const MPI_Comm comm)
MPI_Group getRemoteGroup (const MPI_Comm comm)
int createKeyval (MPI_Copy_function *copy_fn, MPI_Delete_function *delete_fn, int *keyval, void *extra_state)
int freeKeyval (int *keyval)
int putAttr (MPI_Comm comm, int keyval, void *attribute_val)
int getAttr (MPI_Comm comm, int keyval, void *attribute_val, int *flag)
int deleteAttr (MPI_Comm comm, int keyval)
int addWinStruct (WinStruct *win)
WinStruct getWinStruct (MPI_Win win)
void removeWinStruct (WinStruct win)
MPI_Info createInfo (void)
MPI_Info dupInfo (MPI_Info info)
void setInfo (MPI_Info info, char *key, char *value)
int deleteInfo (MPI_Info info, char *key)
int getInfo (MPI_Info info, char *key, int valuelen, char *value)
int getInfoValuelen (MPI_Info info, char *key, int *valuelen)
int getInfoNkeys (MPI_Info info)
int getInfoNthkey (MPI_Info info, int n, char *key)
void freeInfo (MPI_Info info)
void init ()
void finalize ()

Data Fields

int ampiInitCallDone
CkDDT myDDTsto
CkDDT * myDDT
AmpiRequestList ampiReqs
AmpiCounters counters
int pupBytes
gzFile fMsgLog
PUP::tozDisktoPUPer
PUP::fromzDiskfromPUPer
FILE * fMsgLog
PUP::toDisktoPUPer
PUP::fromDiskfromPUPer

Private Member Functions

void prepareCtv (void)
int isSplit (MPI_Comm comm) const
const ampiCommStructgetSplit (MPI_Comm comm)
void splitChildRegister (const ampiCommStruct &s)
int isGroup (MPI_Comm comm) const
const ampiCommStructgetGroup (MPI_Comm comm)
void groupChildRegister (const ampiCommStruct &s)
int isInGroups (MPI_Group group) const
void cartChildRegister (const ampiCommStruct &s)
void graphChildRegister (const ampiCommStruct &s)
void interChildRegister (const ampiCommStruct &s)
int isIntra (MPI_Comm comm) const
const ampiCommStructgetIntra (MPI_Comm comm)
void intraChildRegister (const ampiCommStruct &s)
int kv_is_builtin (int keyval)

Private Attributes

CProxy_TCharm threads
TCharmthread
MPI_Comm worldNo
ampiworldPtr
ampiCommStruct worldStruct
ampiCommStruct selfStruct
CkPupPtrVec< ampiCommStructsplitComm
CkPupPtrVec< ampiCommStructgroupComm
CkPupPtrVec< ampiCommStructcartComm
CkPupPtrVec< ampiCommStructgraphComm
CkPupPtrVec< ampiCommStructinterComm
CkPupPtrVec< ampiCommStructintraComm
CkPupPtrVec< groupStructgroups
CkPupPtrVec< WinStructwinStructList
CkPupPtrVec< InfoStructinfos
intkv_builtin_storage
CkPupPtrVec< KeyvalNodekvlist
int RProxyCnt
CProxy_ampi tmpRProxy

Detailed Description

Definition at line 998 of file ampiimpl.h.


Constructor & Destructor Documentation

ampiParent::ampiParent ( MPI_Comm  worldNo_,
CProxy_TCharm  threads_ 
)

Definition at line 868 of file ampi.C.

References CmiFalse, init(), myDDT, myDDTsto, prepareCtv(), TCharm::semaPut(), thread, and worldPtr.

ampiParent::ampiParent ( CkMigrateMessage msg  ) 

Definition at line 884 of file ampi.C.

References CmiFalse, init(), myDDT, myDDTsto, thread, and worldPtr.

ampiParent::~ampiParent (  ) 

Definition at line 999 of file ampi.C.

References finalize().


Member Function Documentation

void ampiParent::prepareCtv ( void   )  [private]

Definition at line 925 of file ampi.C.

References TCharm::getThread(), thread, and threads.

Referenced by ampiParent(), ckJustMigrated(), ckJustRestored(), and registerAmpi().

int ampiParent::isSplit ( MPI_Comm  comm  )  const [inline, private]

Definition at line 1019 of file ampiimpl.h.

Referenced by checkComm(), comm2ampi(), comm2CommStruct(), hasComm(), and registerAmpi().

const ampiCommStruct& ampiParent::getSplit ( MPI_Comm  comm  )  [inline, private]

Definition at line 1022 of file ampiimpl.h.

References idx, CkVec< T >::size(), and splitComm.

Referenced by comm2ampi(), and comm2CommStruct().

void ampiParent::splitChildRegister ( const ampiCommStruct s  )  [private]

int ampiParent::isGroup ( MPI_Comm  comm  )  const [inline, private]

Definition at line 1029 of file ampiimpl.h.

Referenced by checkComm(), comm2ampi(), comm2CommStruct(), hasComm(), and registerAmpi().

const ampiCommStruct& ampiParent::getGroup ( MPI_Comm  comm  )  [inline, private]

Definition at line 1032 of file ampiimpl.h.

References groupComm, idx, and CkVec< T >::size().

Referenced by comm2ampi(), and comm2CommStruct().

void ampiParent::groupChildRegister ( const ampiCommStruct s  )  [private]

int ampiParent::isInGroups ( MPI_Group  group  )  const [inline, private]

Definition at line 1038 of file ampiimpl.h.

References groups.

Referenced by group2vec().

void ampiParent::cartChildRegister ( const ampiCommStruct s  )  [private]

void ampiParent::graphChildRegister ( const ampiCommStruct s  )  [private]

void ampiParent::interChildRegister ( const ampiCommStruct s  )  [private]

Definition at line 1734 of file ampi.C.

References ampiCommStruct::getComm(), idx, interComm, CkVec< T >::resize(), and CkVec< T >::size().

Referenced by registerAmpi().

int ampiParent::isIntra ( MPI_Comm  comm  )  const [inline, private]

Definition at line 1046 of file ampiimpl.h.

Referenced by checkComm(), comm2ampi(), comm2CommStruct(), hasComm(), and registerAmpi().

const ampiCommStruct& ampiParent::getIntra ( MPI_Comm  comm  )  [inline, private]

Definition at line 1049 of file ampiimpl.h.

References idx, intraComm, and CkVec< T >::size().

Referenced by comm2ampi(), and comm2CommStruct().

void ampiParent::intraChildRegister ( const ampiCommStruct s  )  [private]

int ampiParent::kv_is_builtin ( int  keyval  )  [private]

Definition at line 1175 of file ampi.C.

References kv_builtin_storage, MPI_HOST, MPI_IO, MPI_TAG_UB, and MPI_WTIME_IS_GLOBAL.

Referenced by getAttr().

void ampiParent::ckJustMigrated ( void   ) 

Definition at line 984 of file ampi.C.

References ArrayElement::ckJustMigrated(), and prepareCtv().

void ampiParent::ckJustRestored ( void   ) 

Definition at line 989 of file ampi.C.

References ampiInitCallDone, ArrayElement::ckJustRestored(), and prepareCtv().

ampi* ampiParent::lookupComm ( MPI_Comm  comm  )  [inline]

Definition at line 1075 of file ampiimpl.h.

References ampiCommStruct::getComm(), worldPtr, and worldStruct.

TCharm * ampiParent::registerAmpi ( ampi ptr,
ampiCommStruct  s,
bool  forMigration 
)

void ampiParent::ExchangeProxy ( CProxy_ampi  rproxy  )  [inline]

Definition at line 1085 of file ampiimpl.h.

References RProxyCnt, and tmpRProxy.

MPI_Comm ampiParent::getNextSplit ( void   )  const [inline]

Definition at line 1092 of file ampiimpl.h.

References CkVec< T >::size(), and splitComm.

Referenced by ampi::split().

MPI_Comm ampiParent::getNextGroup ( void   )  const [inline]

Definition at line 1093 of file ampiimpl.h.

References groupComm, and CkVec< T >::size().

Referenced by ampi::commCreate().

MPI_Comm ampiParent::getNextCart ( void   )  const [inline]

Definition at line 1094 of file ampiimpl.h.

References cartComm, and CkVec< T >::size().

Referenced by ampi::cartCreate(), and ampi::split().

MPI_Comm ampiParent::getNextGraph ( void   )  const [inline]

Definition at line 1095 of file ampiimpl.h.

References graphComm, and CkVec< T >::size().

Referenced by ampi::graphCreate().

MPI_Comm ampiParent::getNextInter ( void   )  const [inline]

Definition at line 1096 of file ampiimpl.h.

References interComm, and CkVec< T >::size().

Referenced by ampi::intercommCreate().

MPI_Comm ampiParent::getNextIntra ( void   )  const [inline]

Definition at line 1097 of file ampiimpl.h.

References intraComm, and CkVec< T >::size().

Referenced by ampi::intercommMerge().

int ampiParent::isCart ( MPI_Comm  comm  )  const [inline]

ampiCommStruct& ampiParent::getCart ( MPI_Comm  comm  )  [inline]

int ampiParent::isGraph ( MPI_Comm  comm  )  const [inline]

ampiCommStruct& ampiParent::getGraph ( MPI_Comm  comm  )  [inline]

int ampiParent::isInter ( MPI_Comm  comm  )  const [inline]

const ampiCommStruct& ampiParent::getInter ( MPI_Comm  comm  )  [inline]

Definition at line 1118 of file ampiimpl.h.

References idx, interComm, and CkVec< T >::size().

Referenced by comm2ampi(), comm2CommStruct(), getRemoteGroup(), and getRemoteSize().

void ampiParent::pup ( PUP::er p  ) 

void ampiParent::start_measure (  )  [inline]

Definition at line 1126 of file ampiimpl.h.

References CmiFalse.

Referenced by AMPI_Start_measure().

void ampiParent::stop_measure (  )  [inline]

Definition at line 1129 of file ampiimpl.h.

References CmiTrue.

Referenced by AMPI_Stop_measure().

virtual void ampiParent::UserSetLBLoad ( void   )  [inline, virtual]

Definition at line 1132 of file ampiimpl.h.

void ampiParent::startCheckpoint ( const char *  dname  ) 

Definition at line 1103 of file ampi.C.

References checkpointClient(), TCharm::stop(), CkReduction::sum_int, and thread.

Referenced by AMPI_Checkpoint(), and AMPI_MemCheckpoint().

void ampiParent::Checkpoint ( int  len,
const char *  dname 
)

Definition at line 1129 of file ampi.C.

References CkStartCheckpoint(), and CkStartMemCheckpoint().

Referenced by checkpointClient().

void ampiParent::ResumeThread ( void   ) 

Definition at line 1143 of file ampi.C.

References TCharm::resume(), and thread.

TCharm* ampiParent::getTCharmThread (  )  [inline]

Definition at line 1139 of file ampiimpl.h.

References thread.

Referenced by ampiInit(), and ampi::setInitDoneFlag().

const ampiCommStruct& ampiParent::comm2CommStruct ( MPI_Comm  comm  )  [inline]

ampi* ampiParent::comm2ampi ( MPI_Comm  comm  )  [inline]

int ampiParent::hasComm ( const MPI_Group  group  )  [inline]

Definition at line 1188 of file ampiimpl.h.

References isCart(), isGraph(), isGroup(), isIntra(), isSplit(), MPI_COMM_WORLD, and worldNo.

Referenced by group2vec().

const groupStruct ampiParent::group2vec ( MPI_Group  group  )  [inline]

MPI_Group ampiParent::saveGroupStruct ( groupStruct  vec  )  [inline]

int ampiParent::getRank ( const MPI_Group  group  )  [inline]

Definition at line 1206 of file ampiimpl.h.

References getPosOp(), and group2vec().

Referenced by AMPI_Group_rank().

int ampiParent::getMyPe ( void   )  [inline]

Definition at line 1211 of file ampiimpl.h.

References Converse::CkMyPe().

Referenced by AMPI_Get_processor_name().

int ampiParent::hasWorld ( void   )  const [inline]

Definition at line 1214 of file ampiimpl.h.

References worldPtr.

void ampiParent::checkComm ( MPI_Comm  comm  )  [inline]

MPI_Group ampiParent::comm2group ( const MPI_Comm  comm  )  [inline]

if intra-communicator, return comm, otherwise return null group

Definition at line 1230 of file ampiimpl.h.

References comm2CommStruct(), ampiCommStruct::getComm(), isInter(), MPI_COMM_WORLD, MPI_GROUP_NULL, and s.

Referenced by AMPI_Cart_create(), AMPI_Comm_group(), AMPI_Graph_create(), and ampi::winGetGroup().

int ampiParent::getRemoteSize ( const MPI_Comm  comm  )  [inline]

MPI_Group ampiParent::getRemoteGroup ( const MPI_Comm  comm  )  [inline]

Definition at line 1241 of file ampiimpl.h.

References getInter(), isInter(), MPI_GROUP_NULL, and saveGroupStruct().

Referenced by AMPI_Comm_remote_group().

int ampiParent::createKeyval ( MPI_Copy_function copy_fn,
MPI_Delete_function delete_fn,
int keyval,
void *  extra_state 
)

Definition at line 1147 of file ampi.C.

References idx, kvlist, CkVec< T >::resize(), and CkVec< T >::size().

Referenced by AMPI_Keyval_create().

int ampiParent::freeKeyval ( int keyval  ) 

Definition at line 1156 of file ampi.C.

References kvlist, MPI_KEYVAL_INVALID, and CkVec< T >::size().

Referenced by AMPI_Keyval_free().

int ampiParent::putAttr ( MPI_Comm  comm,
int  keyval,
void *  attribute_val 
)

int ampiParent::getAttr ( MPI_Comm  comm,
int  keyval,
void *  attribute_val,
int flag 
)

int ampiParent::deleteAttr ( MPI_Comm  comm,
int  keyval 
)

Definition at line 1209 of file ampi.C.

References putAttr().

Referenced by AMPI_Attr_delete().

int ampiParent::addWinStruct ( WinStruct win  ) 

Definition at line 222 of file ampiOneSided.C.

References CkVec< T >::push_back(), CkVec< T >::size(), and winStructList.

Referenced by ampi::createWinInstance().

WinStruct ampiParent::getWinStruct ( MPI_Win  win  ) 

void ampiParent::removeWinStruct ( WinStruct  win  ) 

Definition at line 231 of file ampiOneSided.C.

Referenced by ampi::deleteWinInstance().

MPI_Info ampiParent::createInfo ( void   ) 

Definition at line 106 of file ampiMisc.C.

References infos, CkVec< T >::push_back(), and CkVec< T >::size().

Referenced by AMPI_Info_create().

MPI_Info ampiParent::dupInfo ( MPI_Info  info  ) 

Definition at line 112 of file ampiMisc.C.

References InfoStruct::dup(), infos, CkVec< T >::push_back(), and CkVec< T >::size().

Referenced by AMPI_Info_dup().

void ampiParent::setInfo ( MPI_Info  info,
char *  key,
char *  value 
)

Definition at line 121 of file ampiMisc.C.

References infos, and CkVec< T >::size().

Referenced by AMPI_Info_set().

int ampiParent::deleteInfo ( MPI_Info  info,
char *  key 
)

Definition at line 127 of file ampiMisc.C.

References infos, and CkVec< T >::size().

Referenced by AMPI_Info_delete().

int ampiParent::getInfo ( MPI_Info  info,
char *  key,
int  valuelen,
char *  value 
)

Definition at line 133 of file ampiMisc.C.

References infos, and CkVec< T >::size().

Referenced by AMPI_Info_get().

int ampiParent::getInfoValuelen ( MPI_Info  info,
char *  key,
int valuelen 
)

Definition at line 139 of file ampiMisc.C.

References infos, and CkVec< T >::size().

Referenced by AMPI_Info_get_valuelen().

int ampiParent::getInfoNkeys ( MPI_Info  info  ) 

Definition at line 145 of file ampiMisc.C.

References infos, and CkVec< T >::size().

Referenced by AMPI_Info_get_nkeys().

int ampiParent::getInfoNthkey ( MPI_Info  info,
int  n,
char *  key 
)

Definition at line 151 of file ampiMisc.C.

References infos, and CkVec< T >::size().

Referenced by AMPI_Info_get_nthkey().

void ampiParent::freeInfo ( MPI_Info  info  ) 

Definition at line 157 of file ampiMisc.C.

References infos, and CkVec< T >::size().

Referenced by AMPI_Info_free().

void ampiParent::init ( void   ) 

Definition at line 932 of file ampi.C.

References fMsgLog, fromPUPer, groups, msgLogFilename, msgLogRead, msgLogWrite, record_msglog(), and toPUPer.

Referenced by ampiParent().

void ampiParent::finalize ( void   ) 

Definition at line 964 of file ampi.C.

References fMsgLog, fromPUPer, msgLogRead, msgLogWrite, record_msglog(), and toPUPer.

Referenced by ~ampiParent().


Field Documentation

CProxy_TCharm ampiParent::threads [private]

Definition at line 999 of file ampiimpl.h.

Referenced by prepareCtv(), and pup().

Definition at line 1003 of file ampiimpl.h.

Referenced by comm2ampi(), comm2CommStruct(), hasComm(), and pup().

Definition at line 1004 of file ampiimpl.h.

Referenced by ampiParent(), comm2ampi(), hasWorld(), lookupComm(), and registerAmpi().

Definition at line 1005 of file ampiimpl.h.

Referenced by comm2CommStruct(), lookupComm(), pup(), and registerAmpi().

Definition at line 1006 of file ampiimpl.h.

Referenced by comm2CommStruct(), and registerAmpi().

Definition at line 1008 of file ampiimpl.h.

Referenced by checkComm(), getNextSplit(), getSplit(), pup(), and splitChildRegister().

Definition at line 1009 of file ampiimpl.h.

Referenced by checkComm(), getGroup(), getNextGroup(), groupChildRegister(), and pup().

Definition at line 1010 of file ampiimpl.h.

Referenced by cartChildRegister(), checkComm(), getCart(), and getNextCart().

Definition at line 1011 of file ampiimpl.h.

Referenced by checkComm(), getGraph(), getNextGraph(), and graphChildRegister().

Definition at line 1012 of file ampiimpl.h.

Referenced by checkComm(), getInter(), getNextInter(), and interChildRegister().

Definition at line 1013 of file ampiimpl.h.

Referenced by checkComm(), getIntra(), getNextIntra(), and intraChildRegister().

Definition at line 1015 of file ampiimpl.h.

Referenced by group2vec(), init(), isInGroups(), pup(), and saveGroupStruct().

Definition at line 1016 of file ampiimpl.h.

Referenced by addWinStruct(), getWinStruct(), and pup().

Definition at line 1058 of file ampiimpl.h.

Referenced by getAttr(), and kv_is_builtin().

Definition at line 1060 of file ampiimpl.h.

Referenced by createKeyval(), freeKeyval(), getAttr(), and putAttr().

Definition at line 1062 of file ampiimpl.h.

Referenced by ExchangeProxy(), and pup().

CProxy_ampi ampiParent::tmpRProxy [private]

Definition at line 1063 of file ampiimpl.h.

Referenced by ExchangeProxy(), and pup().

Definition at line 1066 of file ampiimpl.h.

Referenced by ampiInit(), ckJustRestored(), pup(), and ampi::setInitDoneFlag().

Definition at line 1253 of file ampiimpl.h.

Referenced by ampiParent().

Definition at line 1254 of file ampiimpl.h.

Referenced by ampiParent(), ampi::getDDT(), getDDT(), and pup().

Definition at line 1255 of file ampiimpl.h.

Referenced by getReqs(), ampi::inorder(), pup(), and ampi::ssend_ack().

Definition at line 1286 of file ampiimpl.h.

Referenced by finalize(), and init().

Definition at line 1290 of file ampiimpl.h.

Definition at line 1291 of file ampiimpl.h.

Definition at line 1292 of file ampiimpl.h.


The documentation for this class was generated from the following files:

Generated on Fri May 25 08:01:11 2012 for Charm++ by  doxygen 1.5.5