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

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

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

void NodePmeMgr::recvYTrans ( PmeTransMsg  ) 

Definition at line 5022 of file ComputePme.C.

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

05022                                             {
05023   //  CkPrintf("[%d] NodePmeMgr recvYTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
05024   PmeYPencil *target=yPencilObj.get(msg->destElem);
05025 #if DEBUG_NODE_PAR_RECV
05026   if(target == NULL)
05027     CkAbort("ypencil in recvYTrans not found, debug registeration");
05028 #endif  
05029     target->node_process_trans(msg);
05030   delete msg;
05031  }

void NodePmeMgr::recvYUntrans ( PmeUntransMsg  ) 

Definition at line 5032 of file ComputePme.C.

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

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

void NodePmeMgr::recvZGrid ( PmeGridMsg  ) 

Definition at line 5053 of file ComputePme.C.

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

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

void NodePmeMgr::recvZUntrans ( PmeUntransMsg  ) 

Definition at line 5042 of file ComputePme.C.

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

05042                                                 {
05043   //CkPrintf("[%d] NodePmeMgr recvZUntrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
05044   PmeZPencil *target=zPencilObj.get(msg->destElem);
05045 #if DEBUG_NODE_PAR_RECV
05046   if(target == NULL)
05047     CkAbort("zpencil in recvZUntrans not found, debug registeration");
05048 #endif
05049   target->node_process_untrans(msg);
05050   delete msg;
05051 }

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

03953                                         {
03954 #ifdef NAMD_CUDA
03955   ComputePmeMgr *obj = masterPmeMgr;
03956   obj->sendDataPart(iter, iter, *obj->sendDataHelper_lattice, obj->sendDataHelper_sequence, obj->sendDataHelper_sourcepe, obj->sendDataHelper_errors);
03957 #else
03958   NAMD_bug("NodePmeMgr::sendDataHelper called in non-CUDA build");
03959 #endif
03960 }

void NodePmeMgr::sendPencilsHelper ( int   ) 

Definition at line 3726 of file ComputePme.C.

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

Referenced by ComputePmeMgr::sendPencilsHelper().

03726                                            {
03727 #ifdef NAMD_CUDA
03728   ComputePmeMgr *obj = masterPmeMgr;
03729   obj->sendPencilsPart(iter, iter, *obj->sendDataHelper_lattice, obj->sendDataHelper_sequence, obj->sendDataHelper_sourcepe);
03730 #else
03731   NAMD_bug("NodePmeMgr::sendPencilsHelper called in non-CUDA build");
03732 #endif
03733 }


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 Mon Sep 25 01:17:19 2017 for NAMD by  doxygen 1.4.7