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

Constructor & Destructor Documentation

◆ NodePmeMgr()

NodePmeMgr::NodePmeMgr ( )

Definition at line 684 of file ComputePme.C.

684  {
685  mgrObjects = new ComputePmeMgr*[CkMyNodeSize()];
686 }

◆ ~NodePmeMgr()

NodePmeMgr::~NodePmeMgr ( )

Definition at line 688 of file ComputePme.C.

688  {
689  delete [] mgrObjects;
690 }

Member Function Documentation

◆ initialize()

void NodePmeMgr::initialize ( void  )

Definition at line 692 of file ComputePme.C.

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

◆ recvPencilMapProxies()

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

Definition at line 655 of file ComputePme.C.

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

◆ recvTrans()

void NodePmeMgr::recvTrans ( PmeTransMsg msg)

Definition at line 701 of file ComputePme.C.

701  {
702  mgrObject->fwdSharedTrans(msg);
703 }
void fwdSharedTrans(PmeTransMsg *)
Definition: ComputePme.C:2040

◆ recvUngrid()

void NodePmeMgr::recvUngrid ( PmeGridMsg msg)

Definition at line 709 of file ComputePme.C.

References NAMD_bug().

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

◆ recvUntrans()

void NodePmeMgr::recvUntrans ( PmeUntransMsg msg)

Definition at line 705 of file ComputePme.C.

705  {
706  mgrObject->fwdSharedUntrans(msg);
707 }
void fwdSharedUntrans(PmeUntransMsg *)
Definition: ComputePme.C:2296

◆ recvXTrans()

void NodePmeMgr::recvXTrans ( PmeTransMsg msg)

Definition at line 5012 of file ComputePme.C.

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

5012  {
5013  // CkPrintf("[%d] NodePmeMgr recvXTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
5014  PmeXPencil *target=xPencilObj.get(msg->destElem);
5015 #if DEBUG_NODE_PAR_RECV
5016  if(target == NULL)
5017  CkAbort("xpencil in recvXTrans not found, debug registeration");
5018 #endif
5019  target->node_process_trans(msg);
5020  delete msg;
5021 }
CkArrayIndex3D destElem
Definition: ComputePme.C:164
void node_process_trans(PmeTransMsg *)
Definition: ComputePme.C:5627

◆ recvYTrans()

void NodePmeMgr::recvYTrans ( PmeTransMsg msg)

Definition at line 5024 of file ComputePme.C.

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

5024  {
5025  // CkPrintf("[%d] NodePmeMgr recvYTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
5026  PmeYPencil *target=yPencilObj.get(msg->destElem);
5027 #if DEBUG_NODE_PAR_RECV
5028  if(target == NULL)
5029  CkAbort("ypencil in recvYTrans not found, debug registeration");
5030 #endif
5031  target->node_process_trans(msg);
5032  delete msg;
5033  }
void node_process_trans(PmeTransMsg *)
Definition: ComputePme.C:4967
CkArrayIndex3D destElem
Definition: ComputePme.C:164

◆ recvYUntrans()

void NodePmeMgr::recvYUntrans ( PmeUntransMsg msg)

Definition at line 5034 of file ComputePme.C.

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

5034  {
5035  // CkPrintf("[%d] NodePmeMgr recvYUntrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
5036  PmeYPencil *target=yPencilObj.get(msg->destElem);
5037 #if DEBUG_NODE_PAR_RECV
5038  if(target == NULL)
5039  CkAbort("ypencil in recvYUntrans not found, debug registeration");
5040 #endif
5041  target->node_process_untrans(msg);
5042  delete msg;
5043  }
void node_process_untrans(PmeUntransMsg *)
Definition: ComputePme.C:4990
CkArrayIndex3D destElem
Definition: ComputePme.C:181

◆ recvZGrid()

void NodePmeMgr::recvZGrid ( PmeGridMsg msg)

Definition at line 5055 of file ComputePme.C.

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

5055  {
5056  //CkPrintf("[%d] NodePmeMgr %p recvGrid for %d %d %d\n",CkMyPe(),this,msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
5057  PmeZPencil *target=zPencilObj.get(msg->destElem);
5058 #if DEBUG_NODE_PAR_RECV
5059  if(target == NULL){
5060  CkAbort("zpencil in recvZGrid not found, debug registeration");
5061  }
5062 #endif
5063  target->node_process_grid(msg); //msg is stored inside node_proces_grid
5064 }
void node_process_grid(PmeGridMsg *)
Definition: ComputePme.C:6321
CkArrayIndex3D destElem
Definition: ComputePme.C:151

◆ recvZUntrans()

void NodePmeMgr::recvZUntrans ( PmeUntransMsg msg)

Definition at line 5044 of file ComputePme.C.

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

5044  {
5045  //CkPrintf("[%d] NodePmeMgr recvZUntrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
5046  PmeZPencil *target=zPencilObj.get(msg->destElem);
5047 #if DEBUG_NODE_PAR_RECV
5048  if(target == NULL)
5049  CkAbort("zpencil in recvZUntrans not found, debug registeration");
5050 #endif
5051  target->node_process_untrans(msg);
5052  delete msg;
5053 }
void node_process_untrans(PmeUntransMsg *)
Definition: ComputePme.C:6356
CkArrayIndex3D destElem
Definition: ComputePme.C:181

◆ registerXPencil()

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

Definition at line 717 of file ComputePme.C.

References ComputePmeMgr::fftw_plan_lock.

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

◆ registerYPencil()

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

Definition at line 723 of file ComputePme.C.

References ComputePmeMgr::fftw_plan_lock.

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

◆ registerZPencil()

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

Definition at line 729 of file ComputePme.C.

References ComputePmeMgr::fftw_plan_lock.

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

◆ sendDataHelper()

void NodePmeMgr::sendDataHelper ( int  iter)

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

3980  {
3981 #if defined(NAMD_CUDA) || defined(NAMD_HIP)
3982  ComputePmeMgr *obj = masterPmeMgr;
3984 #else
3985  NAMD_bug("NodePmeMgr::sendDataHelper called in non-CUDA build");
3986 #endif
3987 }
int sendDataHelper_sequence
Definition: ComputePme.C:397
void NAMD_bug(const char *err_msg)
Definition: common.C:195
int sendDataHelper_sourcepe
Definition: ComputePme.C:398
Lattice * sendDataHelper_lattice
Definition: ComputePme.C:396
int sendDataHelper_errors
Definition: ComputePme.C:399
void sendDataPart(int first, int last, Lattice &, int sequence, int sourcepe, int errors)
Definition: ComputePme.C:3867

◆ sendPencilsHelper()

void NodePmeMgr::sendPencilsHelper ( int  iter)

Definition at line 3753 of file ComputePme.C.

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

Referenced by ComputePmeMgr::sendPencilsHelper().

3753  {
3754 #if defined(NAMD_CUDA) || defined(NAMD_HIP)
3755  ComputePmeMgr *obj = masterPmeMgr;
3757 #else
3758  NAMD_bug("NodePmeMgr::sendPencilsHelper called in non-CUDA build");
3759 #endif
3760 }
int sendDataHelper_sequence
Definition: ComputePme.C:397
void NAMD_bug(const char *err_msg)
Definition: common.C:195
int sendDataHelper_sourcepe
Definition: ComputePme.C:398
Lattice * sendDataHelper_lattice
Definition: ComputePme.C:396
void sendPencilsPart(int first, int last, Lattice &, int sequence, int sourcepe)
Definition: ComputePme.C:3607

Friends And Related Function Documentation

◆ ComputePme

friend class ComputePme
friend

Definition at line 636 of file ComputePme.C.

◆ ComputePmeMgr

friend class ComputePmeMgr
friend

Definition at line 635 of file ComputePme.C.

Member Data Documentation

◆ xm

CProxy_PmePencilMap NodePmeMgr::xm

Definition at line 658 of file ComputePme.C.

◆ ym

CProxy_PmePencilMap NodePmeMgr::ym

Definition at line 659 of file ComputePme.C.

◆ zm

CProxy_PmePencilMap NodePmeMgr::zm

Definition at line 660 of file ComputePme.C.

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


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