NAMD
Public Member Functions | Public Attributes | Friends | List of all members
NodePmeMgr Class Reference
Inheritance diagram for NodePmeMgr:

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

Constructor & Destructor Documentation

◆ NodePmeMgr()

NodePmeMgr::NodePmeMgr ( )

Definition at line 686 of file ComputePme.C.

686  {
687  mgrObjects = new ComputePmeMgr*[CkMyNodeSize()];
688 }

◆ ~NodePmeMgr()

NodePmeMgr::~NodePmeMgr ( )

Definition at line 690 of file ComputePme.C.

690  {
691  delete [] mgrObjects;
692 }

Member Function Documentation

◆ initialize()

void NodePmeMgr::initialize ( void  )

Definition at line 694 of file ComputePme.C.

694  {
695  CProxy_ComputePmeMgr proxy = CkpvAccess(BOCclass_group).computePmeMgr;
696  mgrObjects[CkMyRank()] = proxy.ckLocalBranch();
697  if ( CkMyRank() == 0 ) {
698  mgrProxy = proxy;
699  mgrObject = proxy.ckLocalBranch();
700  }
701 }

◆ recvPencilMapProxies()

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

Definition at line 657 of file ComputePme.C.

657  {
658  xm=_xm; ym=_ym; zm=_zm;
659  }
CProxy_PmePencilMap zm
Definition: ComputePme.C:662
CProxy_PmePencilMap xm
Definition: ComputePme.C:660
CProxy_PmePencilMap ym
Definition: ComputePme.C:661

◆ recvTrans()

void NodePmeMgr::recvTrans ( PmeTransMsg msg)

Definition at line 703 of file ComputePme.C.

703  {
704  mgrObject->fwdSharedTrans(msg);
705 }
void fwdSharedTrans(PmeTransMsg *)
Definition: ComputePme.C:2042

◆ recvUngrid()

void NodePmeMgr::recvUngrid ( PmeGridMsg msg)

Definition at line 711 of file ComputePme.C.

References NAMD_bug().

711  {
712 #if defined(NAMD_CUDA) || defined(NAMD_HIP)
713  masterPmeMgr->recvUngrid(msg);
714 #else
715  NAMD_bug("NodePmeMgr::recvUngrid called in non-CUDA build.");
716 #endif
717 }
void recvUngrid(PmeGridMsg *)
Definition: ComputePme.C:2464
void NAMD_bug(const char *err_msg)
Definition: common.C:195

◆ recvUntrans()

void NodePmeMgr::recvUntrans ( PmeUntransMsg msg)

Definition at line 707 of file ComputePme.C.

707  {
708  mgrObject->fwdSharedUntrans(msg);
709 }
void fwdSharedUntrans(PmeUntransMsg *)
Definition: ComputePme.C:2305

◆ recvXTrans()

void NodePmeMgr::recvXTrans ( PmeTransMsg msg)

Definition at line 5070 of file ComputePme.C.

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

5070  {
5071  // CkPrintf("[%d] NodePmeMgr recvXTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
5072  PmeXPencil *target=xPencilObj.get(msg->destElem);
5073 #if DEBUG_NODE_PAR_RECV
5074  if(target == NULL)
5075  CkAbort("xpencil in recvXTrans not found, debug registeration");
5076 #endif
5077  target->node_process_trans(msg);
5078  delete msg;
5079 }
CkArrayIndex3D destElem
Definition: ComputePme.C:166
void node_process_trans(PmeTransMsg *)
Definition: ComputePme.C:5685

◆ recvYTrans()

void NodePmeMgr::recvYTrans ( PmeTransMsg msg)

Definition at line 5082 of file ComputePme.C.

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

5082  {
5083  // CkPrintf("[%d] NodePmeMgr recvYTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
5084  PmeYPencil *target=yPencilObj.get(msg->destElem);
5085 #if DEBUG_NODE_PAR_RECV
5086  if(target == NULL)
5087  CkAbort("ypencil in recvYTrans not found, debug registeration");
5088 #endif
5089  target->node_process_trans(msg);
5090  delete msg;
5091  }
void node_process_trans(PmeTransMsg *)
Definition: ComputePme.C:5025
CkArrayIndex3D destElem
Definition: ComputePme.C:166

◆ recvYUntrans()

void NodePmeMgr::recvYUntrans ( PmeUntransMsg msg)

Definition at line 5092 of file ComputePme.C.

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

5092  {
5093  // CkPrintf("[%d] NodePmeMgr recvYUntrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
5094  PmeYPencil *target=yPencilObj.get(msg->destElem);
5095 #if DEBUG_NODE_PAR_RECV
5096  if(target == NULL)
5097  CkAbort("ypencil in recvYUntrans not found, debug registeration");
5098 #endif
5099  target->node_process_untrans(msg);
5100  delete msg;
5101  }
void node_process_untrans(PmeUntransMsg *)
Definition: ComputePme.C:5048
CkArrayIndex3D destElem
Definition: ComputePme.C:183

◆ recvZGrid()

void NodePmeMgr::recvZGrid ( PmeGridMsg msg)

Definition at line 5113 of file ComputePme.C.

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

5113  {
5114  //CkPrintf("[%d] NodePmeMgr %p recvGrid for %d %d %d\n",CkMyPe(),this,msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
5115  PmeZPencil *target=zPencilObj.get(msg->destElem);
5116 #if DEBUG_NODE_PAR_RECV
5117  if(target == NULL){
5118  CkAbort("zpencil in recvZGrid not found, debug registeration");
5119  }
5120 #endif
5121  target->node_process_grid(msg); //msg is stored inside node_proces_grid
5122 }
void node_process_grid(PmeGridMsg *)
Definition: ComputePme.C:6380
CkArrayIndex3D destElem
Definition: ComputePme.C:153

◆ recvZUntrans()

void NodePmeMgr::recvZUntrans ( PmeUntransMsg msg)

Definition at line 5102 of file ComputePme.C.

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

5102  {
5103  //CkPrintf("[%d] NodePmeMgr recvZUntrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
5104  PmeZPencil *target=zPencilObj.get(msg->destElem);
5105 #if DEBUG_NODE_PAR_RECV
5106  if(target == NULL)
5107  CkAbort("zpencil in recvZUntrans not found, debug registeration");
5108 #endif
5109  target->node_process_untrans(msg);
5110  delete msg;
5111 }
void node_process_untrans(PmeUntransMsg *)
Definition: ComputePme.C:6415
CkArrayIndex3D destElem
Definition: ComputePme.C:183

◆ registerXPencil()

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

Definition at line 719 of file ComputePme.C.

References ComputePmeMgr::fftw_plan_lock.

720 {
722  xPencilObj.put(idx)=obj;
724 }
static CmiNodeLock fftw_plan_lock
Definition: ComputePme.C:442

◆ registerYPencil()

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

Definition at line 725 of file ComputePme.C.

References ComputePmeMgr::fftw_plan_lock.

726 {
728  yPencilObj.put(idx)=obj;
730 }
static CmiNodeLock fftw_plan_lock
Definition: ComputePme.C:442

◆ registerZPencil()

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

Definition at line 731 of file ComputePme.C.

References ComputePmeMgr::fftw_plan_lock.

732 {
734  zPencilObj.put(idx)=obj;
736 }
static CmiNodeLock fftw_plan_lock
Definition: ComputePme.C:442

◆ sendDataHelper()

void NodePmeMgr::sendDataHelper ( int  iter)

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

4027  {
4028 #if defined(NAMD_CUDA) || defined(NAMD_HIP)
4029  ComputePmeMgr *obj = masterPmeMgr;
4031 #else
4032  NAMD_bug("NodePmeMgr::sendDataHelper called in non-CUDA build");
4033 #endif
4034 }
int sendDataHelper_sequence
Definition: ComputePme.C:399
void NAMD_bug(const char *err_msg)
Definition: common.C:195
int sendDataHelper_sourcepe
Definition: ComputePme.C:400
Lattice * sendDataHelper_lattice
Definition: ComputePme.C:398
int sendDataHelper_errors
Definition: ComputePme.C:401
void sendDataPart(int first, int last, Lattice &, int sequence, int sourcepe, int errors)
Definition: ComputePme.C:3914

◆ sendPencilsHelper()

void NodePmeMgr::sendPencilsHelper ( int  iter)

Definition at line 3800 of file ComputePme.C.

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

Referenced by ComputePmeMgr::sendPencilsHelper().

3800  {
3801 #if defined(NAMD_CUDA) || defined(NAMD_HIP)
3802  ComputePmeMgr *obj = masterPmeMgr;
3804 #else
3805  NAMD_bug("NodePmeMgr::sendPencilsHelper called in non-CUDA build");
3806 #endif
3807 }
int sendDataHelper_sequence
Definition: ComputePme.C:399
void NAMD_bug(const char *err_msg)
Definition: common.C:195
int sendDataHelper_sourcepe
Definition: ComputePme.C:400
Lattice * sendDataHelper_lattice
Definition: ComputePme.C:398
void sendPencilsPart(int first, int last, Lattice &, int sequence, int sourcepe)
Definition: ComputePme.C:3654

Friends And Related Function Documentation

◆ ComputePme

friend class ComputePme
friend

Definition at line 638 of file ComputePme.C.

◆ ComputePmeMgr

friend class ComputePmeMgr
friend

Definition at line 637 of file ComputePme.C.

Member Data Documentation

◆ xm

CProxy_PmePencilMap NodePmeMgr::xm

Definition at line 660 of file ComputePme.C.

◆ ym

CProxy_PmePencilMap NodePmeMgr::ym

Definition at line 661 of file ComputePme.C.

◆ zm

CProxy_PmePencilMap NodePmeMgr::zm

Definition at line 662 of file ComputePme.C.

Referenced by ComputePmeMgr::sendPencils(), and ComputePmeMgr::sendPencilsPart().


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