NodePmeMgr Class Reference

List of all members.

Public Member Functions

 NodePmeMgr ()
 ~NodePmeMgr ()
void initialize ()
void sendDataHelper (int)
void sendPencilsHelper (int)
void recvTrans (PmeTransMsg *)
void recvUntrans (PmeUntransMsg *)
void registerXPencil (CkArrayIndex3D, PmeXPencil *)
void registerYPencil (CkArrayIndex3D, PmeYPencil *)
void registerZPencil (CkArrayIndex3D, PmeZPencil *)
void recvXTrans (PmeTransMsg *)
void recvYTrans (PmeTransMsg *)
void recvYUntrans (PmeUntransMsg *)
void recvZGrid (PmeGridMsg *)
void recvZUntrans (PmeUntransMsg *)
void recvUngrid (PmeGridMsg *)
void recvPencilMapProxies (CProxy_PmePencilMap _xm, CProxy_PmePencilMap _ym, CProxy_PmePencilMap _zm)

Public Attributes

CProxy_PmePencilMap xm
CProxy_PmePencilMap ym
CProxy_PmePencilMap zm

Friends

class ComputePmeMgr
class ComputePme

Detailed Description

Definition at line 606 of file ComputePme.C.


Constructor & Destructor Documentation

NodePmeMgr::NodePmeMgr (  ) 

Definition at line 657 of file ComputePme.C.

00657                        {
00658   mgrObjects = new ComputePmeMgr*[CkMyNodeSize()];
00659 }

NodePmeMgr::~NodePmeMgr (  ) 

Definition at line 661 of file ComputePme.C.

00661                         {
00662   delete [] mgrObjects;
00663 }


Member Function Documentation

void NodePmeMgr::initialize (  ) 

Definition at line 665 of file ComputePme.C.

00665                             {
00666   CProxy_ComputePmeMgr proxy = CkpvAccess(BOCclass_group).computePmeMgr;
00667   mgrObjects[CkMyRank()] = proxy.ckLocalBranch();
00668   if ( CkMyRank() == 0 ) {
00669     mgrProxy = proxy;
00670     mgrObject = proxy.ckLocalBranch();
00671   }
00672 }

void NodePmeMgr::recvPencilMapProxies ( CProxy_PmePencilMap  _xm,
CProxy_PmePencilMap  _ym,
CProxy_PmePencilMap  _zm 
) [inline]

Definition at line 628 of file ComputePme.C.

References xm, ym, and zm.

00628                                                                                                       {
00629       xm=_xm; ym=_ym; zm=_zm;
00630   }

void NodePmeMgr::recvTrans ( PmeTransMsg  ) 

Definition at line 674 of file ComputePme.C.

References ComputePmeMgr::fwdSharedTrans().

00674                                            {
00675   mgrObject->fwdSharedTrans(msg);
00676 }

void NodePmeMgr::recvUngrid ( PmeGridMsg  ) 

Definition at line 682 of file ComputePme.C.

References NAMD_bug(), and ComputePmeMgr::recvUngrid().

00682                                            {
00683 #ifdef NAMD_CUDA
00684   masterPmeMgr->recvUngrid(msg);
00685 #else
00686   NAMD_bug("NodePmeMgr::recvUngrid called in non-CUDA build.");
00687 #endif
00688 }

void NodePmeMgr::recvUntrans ( PmeUntransMsg  ) 

Definition at line 678 of file ComputePme.C.

References ComputePmeMgr::fwdSharedUntrans().

00678                                                {
00679   mgrObject->fwdSharedUntrans(msg);
00680 }

void NodePmeMgr::recvXTrans ( PmeTransMsg  ) 

Definition at line 4979 of file ComputePme.C.

References PmeTransMsg::destElem, and PmeXPencil::node_process_trans().

04979                                             {
04980   //  CkPrintf("[%d] NodePmeMgr recvXTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
04981   PmeXPencil *target=xPencilObj.get(msg->destElem);
04982 #if DEBUG_NODE_PAR_RECV
04983   if(target == NULL)
04984     CkAbort("xpencil in recvXTrans not found, debug registeration");
04985 #endif  
04986     target->node_process_trans(msg);
04987   delete msg;
04988 }

void NodePmeMgr::recvYTrans ( PmeTransMsg  ) 

Definition at line 4991 of file ComputePme.C.

References PmeTransMsg::destElem, and PmeYPencil::node_process_trans().

04991                                             {
04992   //  CkPrintf("[%d] NodePmeMgr recvYTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
04993   PmeYPencil *target=yPencilObj.get(msg->destElem);
04994 #if DEBUG_NODE_PAR_RECV
04995   if(target == NULL)
04996     CkAbort("ypencil in recvYTrans not found, debug registeration");
04997 #endif  
04998     target->node_process_trans(msg);
04999   delete msg;
05000  }

void NodePmeMgr::recvYUntrans ( PmeUntransMsg  ) 

Definition at line 5001 of file ComputePme.C.

References PmeUntransMsg::destElem, and PmeYPencil::node_process_untrans().

05001                                                 {
05002   //  CkPrintf("[%d] NodePmeMgr recvYUntrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
05003   PmeYPencil *target=yPencilObj.get(msg->destElem);
05004 #if DEBUG_NODE_PAR_RECV  
05005   if(target == NULL)
05006     CkAbort("ypencil in recvYUntrans not found, debug registeration");
05007 #endif  
05008     target->node_process_untrans(msg);
05009   delete msg;
05010  }

void NodePmeMgr::recvZGrid ( PmeGridMsg  ) 

Definition at line 5022 of file ComputePme.C.

References PmeGridMsg::destElem, and PmeZPencil::node_process_grid().

05022                                           {
05023   //CkPrintf("[%d] NodePmeMgr %p recvGrid for %d %d %d\n",CkMyPe(),this,msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
05024   PmeZPencil *target=zPencilObj.get(msg->destElem);
05025 #if DEBUG_NODE_PAR_RECV
05026   if(target == NULL){
05027     CkAbort("zpencil in recvZGrid not found, debug registeration");
05028   }
05029 #endif
05030   target->node_process_grid(msg); //msg is stored inside node_proces_grid
05031 }

void NodePmeMgr::recvZUntrans ( PmeUntransMsg  ) 

Definition at line 5011 of file ComputePme.C.

References PmeUntransMsg::destElem, and PmeZPencil::node_process_untrans().

05011                                                 {
05012   //CkPrintf("[%d] NodePmeMgr recvZUntrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
05013   PmeZPencil *target=zPencilObj.get(msg->destElem);
05014 #if DEBUG_NODE_PAR_RECV
05015   if(target == NULL)
05016     CkAbort("zpencil in recvZUntrans not found, debug registeration");
05017 #endif
05018   target->node_process_untrans(msg);
05019   delete msg;
05020 }

void NodePmeMgr::registerXPencil ( CkArrayIndex3D  ,
PmeXPencil  
)

Definition at line 690 of file ComputePme.C.

00691 {
00692   CmiLock(ComputePmeMgr::fftw_plan_lock);
00693   xPencilObj.put(idx)=obj;
00694   CmiUnlock(ComputePmeMgr::fftw_plan_lock);
00695 }

void NodePmeMgr::registerYPencil ( CkArrayIndex3D  ,
PmeYPencil  
)

Definition at line 696 of file ComputePme.C.

00697 {
00698   CmiLock(ComputePmeMgr::fftw_plan_lock);
00699   yPencilObj.put(idx)=obj;
00700   CmiUnlock(ComputePmeMgr::fftw_plan_lock);
00701 }

void NodePmeMgr::registerZPencil ( CkArrayIndex3D  ,
PmeZPencil  
)

Definition at line 702 of file ComputePme.C.

00703 {
00704   CmiLock(ComputePmeMgr::fftw_plan_lock);
00705   zPencilObj.put(idx)=obj;
00706   CmiUnlock(ComputePmeMgr::fftw_plan_lock);
00707 }

void NodePmeMgr::sendDataHelper ( int   ) 

Definition at line 3921 of file ComputePme.C.

References NAMD_bug(), ComputePmeMgr::sendDataHelper_errors, ComputePmeMgr::sendDataHelper_lattice, ComputePmeMgr::sendDataHelper_sequence, ComputePmeMgr::sendDataHelper_sourcepe, and ComputePmeMgr::sendDataPart().

Referenced by ComputePmeMgr::sendDataHelper().

03921                                         {
03922 #ifdef NAMD_CUDA
03923   ComputePmeMgr *obj = masterPmeMgr;
03924   obj->sendDataPart(iter, iter, *obj->sendDataHelper_lattice, obj->sendDataHelper_sequence, obj->sendDataHelper_sourcepe, obj->sendDataHelper_errors);
03925 #else
03926   NAMD_bug("NodePmeMgr::sendDataHelper called in non-CUDA build");
03927 #endif
03928 }

void NodePmeMgr::sendPencilsHelper ( int   ) 

Definition at line 3694 of file ComputePme.C.

References NAMD_bug(), ComputePmeMgr::sendDataHelper_lattice, ComputePmeMgr::sendDataHelper_sequence, ComputePmeMgr::sendDataHelper_sourcepe, and ComputePmeMgr::sendPencilsPart().

Referenced by ComputePmeMgr::sendPencilsHelper().

03694                                            {
03695 #ifdef NAMD_CUDA
03696   ComputePmeMgr *obj = masterPmeMgr;
03697   obj->sendPencilsPart(iter, iter, *obj->sendDataHelper_lattice, obj->sendDataHelper_sequence, obj->sendDataHelper_sourcepe);
03698 #else
03699   NAMD_bug("NodePmeMgr::sendPencilsHelper called in non-CUDA build");
03700 #endif
03701 }


Friends And Related Function Documentation

friend class ComputePme [friend]

Definition at line 609 of file ComputePme.C.

friend class ComputePmeMgr [friend]

Definition at line 608 of file ComputePme.C.


Member Data Documentation

CProxy_PmePencilMap NodePmeMgr::xm

Definition at line 631 of file ComputePme.C.

Referenced by recvPencilMapProxies().

CProxy_PmePencilMap NodePmeMgr::ym

Definition at line 632 of file ComputePme.C.

Referenced by recvPencilMapProxies().

CProxy_PmePencilMap NodePmeMgr::zm

Definition at line 633 of file ComputePme.C.

Referenced by recvPencilMapProxies(), ComputePmeMgr::sendPencils(), and ComputePmeMgr::sendPencilsPart().


The documentation for this class was generated from the following file:
Generated on Thu Jun 21 01:17:21 2018 for NAMD by  doxygen 1.4.7