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

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

04955                                             {
04956   //  CkPrintf("[%d] NodePmeMgr recvXTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
04957   PmeXPencil *target=xPencilObj.get(msg->destElem);
04958 #if DEBUG_NODE_PAR_RECV
04959   if(target == NULL)
04960     CkAbort("xpencil in recvXTrans not found, debug registeration");
04961 #endif  
04962     target->node_process_trans(msg);
04963   delete msg;
04964 }

void NodePmeMgr::recvYTrans ( PmeTransMsg msg  ) 

Definition at line 4967 of file ComputePme.C.

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

04967                                             {
04968   //  CkPrintf("[%d] NodePmeMgr recvYTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
04969   PmeYPencil *target=yPencilObj.get(msg->destElem);
04970 #if DEBUG_NODE_PAR_RECV
04971   if(target == NULL)
04972     CkAbort("ypencil in recvYTrans not found, debug registeration");
04973 #endif  
04974     target->node_process_trans(msg);
04975   delete msg;
04976  }

void NodePmeMgr::recvYUntrans ( PmeUntransMsg msg  ) 

Definition at line 4977 of file ComputePme.C.

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

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

void NodePmeMgr::recvZGrid ( PmeGridMsg msg  ) 

Definition at line 4998 of file ComputePme.C.

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

04998                                           {
04999   //CkPrintf("[%d] NodePmeMgr %p recvGrid for %d %d %d\n",CkMyPe(),this,msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
05000   PmeZPencil *target=zPencilObj.get(msg->destElem);
05001 #if DEBUG_NODE_PAR_RECV
05002   if(target == NULL){
05003     CkAbort("zpencil in recvZGrid not found, debug registeration");
05004   }
05005 #endif
05006   target->node_process_grid(msg); //msg is stored inside node_proces_grid
05007 }

void NodePmeMgr::recvZUntrans ( PmeUntransMsg msg  ) 

Definition at line 4987 of file ComputePme.C.

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

04987                                                 {
04988   //CkPrintf("[%d] NodePmeMgr recvZUntrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
04989   PmeZPencil *target=zPencilObj.get(msg->destElem);
04990 #if DEBUG_NODE_PAR_RECV
04991   if(target == NULL)
04992     CkAbort("zpencil in recvZUntrans not found, debug registeration");
04993 #endif
04994   target->node_process_untrans(msg);
04995   delete msg;
04996 }

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

03939                                         {
03940 #ifdef NAMD_CUDA
03941   ComputePmeMgr *obj = masterPmeMgr;
03942   obj->sendDataPart(iter, iter, *obj->sendDataHelper_lattice, obj->sendDataHelper_sequence, obj->sendDataHelper_sourcepe, obj->sendDataHelper_errors);
03943 #else
03944   NAMD_bug("NodePmeMgr::sendDataHelper called in non-CUDA build");
03945 #endif
03946 }

void NodePmeMgr::sendPencilsHelper ( int  iter  ) 

Definition at line 3712 of file ComputePme.C.

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

Referenced by ComputePmeMgr::sendPencilsHelper().

03712                                            {
03713 #ifdef NAMD_CUDA
03714   ComputePmeMgr *obj = masterPmeMgr;
03715   obj->sendPencilsPart(iter, iter, *obj->sendDataHelper_lattice, obj->sendDataHelper_sequence, obj->sendDataHelper_sourcepe);
03716 #else
03717   NAMD_bug("NodePmeMgr::sendPencilsHelper called in non-CUDA build");
03718 #endif
03719 }


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 8 Dec 2019 for NAMD by  doxygen 1.6.1