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 4978 of file ComputePme.C.

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

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

void NodePmeMgr::recvYTrans ( PmeTransMsg  ) 

Definition at line 4990 of file ComputePme.C.

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

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

void NodePmeMgr::recvYUntrans ( PmeUntransMsg  ) 

Definition at line 5000 of file ComputePme.C.

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

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

void NodePmeMgr::recvZGrid ( PmeGridMsg  ) 

Definition at line 5021 of file ComputePme.C.

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

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

void NodePmeMgr::recvZUntrans ( PmeUntransMsg  ) 

Definition at line 5010 of file ComputePme.C.

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

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

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

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

void NodePmeMgr::sendPencilsHelper ( int   ) 

Definition at line 3693 of file ComputePme.C.

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

Referenced by ComputePmeMgr::sendPencilsHelper().

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


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 Feb 22 01:17:20 2018 for NAMD by  doxygen 1.4.7