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


Constructor & Destructor Documentation

NodePmeMgr::NodePmeMgr (  ) 

Definition at line 649 of file ComputePme.C.

00649                        {
00650   mgrObjects = new ComputePmeMgr*[CkMyNodeSize()];
00651 }

NodePmeMgr::~NodePmeMgr (  ) 

Definition at line 653 of file ComputePme.C.

00653                         {
00654   delete [] mgrObjects;
00655 }


Member Function Documentation

void NodePmeMgr::initialize (  ) 

Definition at line 657 of file ComputePme.C.

00657                             {
00658   CProxy_ComputePmeMgr proxy = CkpvAccess(BOCclass_group).computePmeMgr;
00659   mgrObjects[CkMyRank()] = proxy.ckLocalBranch();
00660   if ( CkMyRank() == 0 ) {
00661     mgrProxy = proxy;
00662     mgrObject = proxy.ckLocalBranch();
00663   }
00664 }

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

Definition at line 620 of file ComputePme.C.

References xm, ym, and zm.

00620                                                                                                       {
00621       xm=_xm; ym=_ym; zm=_zm;
00622   }

void NodePmeMgr::recvTrans ( PmeTransMsg  ) 

Definition at line 666 of file ComputePme.C.

References ComputePmeMgr::fwdSharedTrans().

00666                                            {
00667   mgrObject->fwdSharedTrans(msg);
00668 }

void NodePmeMgr::recvUngrid ( PmeGridMsg  ) 

Definition at line 674 of file ComputePme.C.

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

00674                                            {
00675 #ifdef NAMD_CUDA
00676   masterPmeMgr->recvUngrid(msg);
00677 #else
00678   NAMD_bug("NodePmeMgr::recvUngrid called in non-CUDA build.");
00679 #endif
00680 }

void NodePmeMgr::recvUntrans ( PmeUntransMsg  ) 

Definition at line 670 of file ComputePme.C.

References ComputePmeMgr::fwdSharedUntrans().

00670                                                {
00671   mgrObject->fwdSharedUntrans(msg);
00672 }

void NodePmeMgr::recvXTrans ( PmeTransMsg  ) 

Definition at line 5017 of file ComputePme.C.

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

05017                                             {
05018   //  CkPrintf("[%d] NodePmeMgr recvXTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
05019   PmeXPencil *target=xPencilObj.get(msg->destElem);
05020 #if DEBUG_NODE_PAR_RECV
05021   if(target == NULL)
05022     CkAbort("xpencil in recvXTrans not found, debug registeration");
05023 #endif  
05024     target->node_process_trans(msg);
05025   delete msg;
05026 }

void NodePmeMgr::recvYTrans ( PmeTransMsg  ) 

Definition at line 5029 of file ComputePme.C.

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

05029                                             {
05030   //  CkPrintf("[%d] NodePmeMgr recvYTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
05031   PmeYPencil *target=yPencilObj.get(msg->destElem);
05032 #if DEBUG_NODE_PAR_RECV
05033   if(target == NULL)
05034     CkAbort("ypencil in recvYTrans not found, debug registeration");
05035 #endif  
05036     target->node_process_trans(msg);
05037   delete msg;
05038  }

void NodePmeMgr::recvYUntrans ( PmeUntransMsg  ) 

Definition at line 5039 of file ComputePme.C.

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

05039                                                 {
05040   //  CkPrintf("[%d] NodePmeMgr recvYUntrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
05041   PmeYPencil *target=yPencilObj.get(msg->destElem);
05042 #if DEBUG_NODE_PAR_RECV  
05043   if(target == NULL)
05044     CkAbort("ypencil in recvYUntrans not found, debug registeration");
05045 #endif  
05046     target->node_process_untrans(msg);
05047   delete msg;
05048  }

void NodePmeMgr::recvZGrid ( PmeGridMsg  ) 

Definition at line 5060 of file ComputePme.C.

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

05060                                           {
05061   //CkPrintf("[%d] NodePmeMgr %p recvGrid for %d %d %d\n",CkMyPe(),this,msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
05062   PmeZPencil *target=zPencilObj.get(msg->destElem);
05063 #if DEBUG_NODE_PAR_RECV
05064   if(target == NULL){
05065     CkAbort("zpencil in recvZGrid not found, debug registeration");
05066   }
05067 #endif
05068   target->node_process_grid(msg); //msg is stored inside node_proces_grid
05069 }

void NodePmeMgr::recvZUntrans ( PmeUntransMsg  ) 

Definition at line 5049 of file ComputePme.C.

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

05049                                                 {
05050   //CkPrintf("[%d] NodePmeMgr recvZUntrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
05051   PmeZPencil *target=zPencilObj.get(msg->destElem);
05052 #if DEBUG_NODE_PAR_RECV
05053   if(target == NULL)
05054     CkAbort("zpencil in recvZUntrans not found, debug registeration");
05055 #endif
05056   target->node_process_untrans(msg);
05057   delete msg;
05058 }

void NodePmeMgr::registerXPencil ( CkArrayIndex3D  ,
PmeXPencil  
)

Definition at line 682 of file ComputePme.C.

00683 {
00684   CmiLock(ComputePmeMgr::fftw_plan_lock);
00685   xPencilObj.put(idx)=obj;
00686   CmiUnlock(ComputePmeMgr::fftw_plan_lock);
00687 }

void NodePmeMgr::registerYPencil ( CkArrayIndex3D  ,
PmeYPencil  
)

Definition at line 688 of file ComputePme.C.

00689 {
00690   CmiLock(ComputePmeMgr::fftw_plan_lock);
00691   yPencilObj.put(idx)=obj;
00692   CmiUnlock(ComputePmeMgr::fftw_plan_lock);
00693 }

void NodePmeMgr::registerZPencil ( CkArrayIndex3D  ,
PmeZPencil  
)

Definition at line 694 of file ComputePme.C.

00695 {
00696   CmiLock(ComputePmeMgr::fftw_plan_lock);
00697   zPencilObj.put(idx)=obj;
00698   CmiUnlock(ComputePmeMgr::fftw_plan_lock);
00699 }

void NodePmeMgr::sendDataHelper ( int   ) 

Definition at line 3960 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().

03960                                         {
03961 #ifdef NAMD_CUDA
03962   ComputePmeMgr *obj = masterPmeMgr;
03963   obj->sendDataPart(iter, iter, *obj->sendDataHelper_lattice, obj->sendDataHelper_sequence, obj->sendDataHelper_sourcepe, obj->sendDataHelper_errors);
03964 #else
03965   NAMD_bug("NodePmeMgr::sendDataHelper called in non-CUDA build");
03966 #endif
03967 }

void NodePmeMgr::sendPencilsHelper ( int   ) 

Definition at line 3733 of file ComputePme.C.

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

Referenced by ComputePmeMgr::sendPencilsHelper().

03733                                            {
03734 #ifdef NAMD_CUDA
03735   ComputePmeMgr *obj = masterPmeMgr;
03736   obj->sendPencilsPart(iter, iter, *obj->sendDataHelper_lattice, obj->sendDataHelper_sequence, obj->sendDataHelper_sourcepe);
03737 #else
03738   NAMD_bug("NodePmeMgr::sendPencilsHelper called in non-CUDA build");
03739 #endif
03740 }


Friends And Related Function Documentation

friend class ComputePme [friend]

Definition at line 601 of file ComputePme.C.

friend class ComputePmeMgr [friend]

Definition at line 600 of file ComputePme.C.


Member Data Documentation

CProxy_PmePencilMap NodePmeMgr::xm

Definition at line 623 of file ComputePme.C.

Referenced by recvPencilMapProxies().

CProxy_PmePencilMap NodePmeMgr::ym

Definition at line 624 of file ComputePme.C.

Referenced by recvPencilMapProxies().

CProxy_PmePencilMap NodePmeMgr::zm

Definition at line 625 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 Tue Nov 21 01:17:19 2017 for NAMD by  doxygen 1.4.7