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


Constructor & Destructor Documentation

NodePmeMgr::NodePmeMgr (  ) 

Definition at line 658 of file ComputePme.C.

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

NodePmeMgr::~NodePmeMgr (  ) 

Definition at line 662 of file ComputePme.C.

00662                         {
00663   delete [] mgrObjects;
00664 }


Member Function Documentation

void NodePmeMgr::initialize ( void   ) 

Definition at line 666 of file ComputePme.C.

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

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

Definition at line 629 of file ComputePme.C.

References xm, ym, and zm.

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

void NodePmeMgr::recvTrans ( PmeTransMsg msg  ) 

Definition at line 675 of file ComputePme.C.

References ComputePmeMgr::fwdSharedTrans().

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

void NodePmeMgr::recvUngrid ( PmeGridMsg msg  ) 

Definition at line 683 of file ComputePme.C.

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

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

void NodePmeMgr::recvUntrans ( PmeUntransMsg msg  ) 

Definition at line 679 of file ComputePme.C.

References ComputePmeMgr::fwdSharedUntrans().

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

void NodePmeMgr::recvXTrans ( PmeTransMsg msg  ) 

Definition at line 4981 of file ComputePme.C.

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

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

void NodePmeMgr::recvYTrans ( PmeTransMsg msg  ) 

Definition at line 4993 of file ComputePme.C.

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

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

void NodePmeMgr::recvYUntrans ( PmeUntransMsg msg  ) 

Definition at line 5003 of file ComputePme.C.

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

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

void NodePmeMgr::recvZGrid ( PmeGridMsg msg  ) 

Definition at line 5024 of file ComputePme.C.

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

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

void NodePmeMgr::recvZUntrans ( PmeUntransMsg msg  ) 

Definition at line 5013 of file ComputePme.C.

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

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

void NodePmeMgr::registerXPencil ( CkArrayIndex3D  idx,
PmeXPencil obj 
)

Definition at line 691 of file ComputePme.C.

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

void NodePmeMgr::registerYPencil ( CkArrayIndex3D  idx,
PmeYPencil obj 
)

Definition at line 697 of file ComputePme.C.

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

void NodePmeMgr::registerZPencil ( CkArrayIndex3D  idx,
PmeZPencil obj 
)

Definition at line 703 of file ComputePme.C.

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

void NodePmeMgr::sendDataHelper ( int  iter  ) 

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

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

void NodePmeMgr::sendPencilsHelper ( int  iter  ) 

Definition at line 3722 of file ComputePme.C.

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

Referenced by ComputePmeMgr::sendPencilsHelper().

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


Friends And Related Function Documentation

friend class ComputePme [friend]

Definition at line 610 of file ComputePme.C.

friend class ComputePmeMgr [friend]

Definition at line 609 of file ComputePme.C.


Member Data Documentation

CProxy_PmePencilMap NodePmeMgr::xm

Definition at line 632 of file ComputePme.C.

Referenced by recvPencilMapProxies().

CProxy_PmePencilMap NodePmeMgr::ym

Definition at line 633 of file ComputePme.C.

Referenced by recvPencilMapProxies().

CProxy_PmePencilMap NodePmeMgr::zm

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

Generated on 1 Jun 2020 for NAMD by  doxygen 1.6.1