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

Constructor & Destructor Documentation

NodePmeMgr::NodePmeMgr ( )

Definition at line 658 of file ComputePme.C.

658  {
659  mgrObjects = new ComputePmeMgr*[CkMyNodeSize()];
660 }
NodePmeMgr::~NodePmeMgr ( )

Definition at line 662 of file ComputePme.C.

662  {
663  delete [] mgrObjects;
664 }

Member Function Documentation

void NodePmeMgr::initialize ( void  )

Definition at line 666 of file ComputePme.C.

666  {
667  CProxy_ComputePmeMgr proxy = CkpvAccess(BOCclass_group).computePmeMgr;
668  mgrObjects[CkMyRank()] = proxy.ckLocalBranch();
669  if ( CkMyRank() == 0 ) {
670  mgrProxy = proxy;
671  mgrObject = proxy.ckLocalBranch();
672  }
673 }
void NodePmeMgr::recvPencilMapProxies ( CProxy_PmePencilMap  _xm,
CProxy_PmePencilMap  _ym,
CProxy_PmePencilMap  _zm 
)
inline

Definition at line 629 of file ComputePme.C.

629  {
630  xm=_xm; ym=_ym; zm=_zm;
631  }
CProxy_PmePencilMap zm
Definition: ComputePme.C:634
CProxy_PmePencilMap xm
Definition: ComputePme.C:632
CProxy_PmePencilMap ym
Definition: ComputePme.C:633
void NodePmeMgr::recvTrans ( PmeTransMsg msg)

Definition at line 675 of file ComputePme.C.

675  {
676  mgrObject->fwdSharedTrans(msg);
677 }
void fwdSharedTrans(PmeTransMsg *)
Definition: ComputePme.C:2014
void NodePmeMgr::recvUngrid ( PmeGridMsg msg)

Definition at line 683 of file ComputePme.C.

References NAMD_bug().

683  {
684 #ifdef NAMD_CUDA
685  masterPmeMgr->recvUngrid(msg);
686 #else
687  NAMD_bug("NodePmeMgr::recvUngrid called in non-CUDA build.");
688 #endif
689 }
void recvUngrid(PmeGridMsg *)
Definition: ComputePme.C:2429
void NAMD_bug(const char *err_msg)
Definition: common.C:123
void NodePmeMgr::recvUntrans ( PmeUntransMsg msg)

Definition at line 679 of file ComputePme.C.

679  {
680  mgrObject->fwdSharedUntrans(msg);
681 }
void fwdSharedUntrans(PmeUntransMsg *)
Definition: ComputePme.C:2270
void NodePmeMgr::recvXTrans ( PmeTransMsg msg)

Definition at line 4981 of file ComputePme.C.

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

4981  {
4982  // CkPrintf("[%d] NodePmeMgr recvXTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
4983  PmeXPencil *target=xPencilObj.get(msg->destElem);
4984 #if DEBUG_NODE_PAR_RECV
4985  if(target == NULL)
4986  CkAbort("xpencil in recvXTrans not found, debug registeration");
4987 #endif
4988  target->node_process_trans(msg);
4989  delete msg;
4990 }
CkArrayIndex3D destElem
Definition: ComputePme.C:138
void node_process_trans(PmeTransMsg *)
Definition: ComputePme.C:5596
void NodePmeMgr::recvYTrans ( PmeTransMsg msg)

Definition at line 4993 of file ComputePme.C.

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

4993  {
4994  // CkPrintf("[%d] NodePmeMgr recvYTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
4995  PmeYPencil *target=yPencilObj.get(msg->destElem);
4996 #if DEBUG_NODE_PAR_RECV
4997  if(target == NULL)
4998  CkAbort("ypencil in recvYTrans not found, debug registeration");
4999 #endif
5000  target->node_process_trans(msg);
5001  delete msg;
5002  }
void node_process_trans(PmeTransMsg *)
Definition: ComputePme.C:4936
CkArrayIndex3D destElem
Definition: ComputePme.C:138
void NodePmeMgr::recvYUntrans ( PmeUntransMsg msg)

Definition at line 5003 of file ComputePme.C.

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

5003  {
5004  // CkPrintf("[%d] NodePmeMgr recvYUntrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
5005  PmeYPencil *target=yPencilObj.get(msg->destElem);
5006 #if DEBUG_NODE_PAR_RECV
5007  if(target == NULL)
5008  CkAbort("ypencil in recvYUntrans not found, debug registeration");
5009 #endif
5010  target->node_process_untrans(msg);
5011  delete msg;
5012  }
void node_process_untrans(PmeUntransMsg *)
Definition: ComputePme.C:4959
CkArrayIndex3D destElem
Definition: ComputePme.C:155
void NodePmeMgr::recvZGrid ( PmeGridMsg msg)

Definition at line 5024 of file ComputePme.C.

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

5024  {
5025  //CkPrintf("[%d] NodePmeMgr %p recvGrid for %d %d %d\n",CkMyPe(),this,msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
5026  PmeZPencil *target=zPencilObj.get(msg->destElem);
5027 #if DEBUG_NODE_PAR_RECV
5028  if(target == NULL){
5029  CkAbort("zpencil in recvZGrid not found, debug registeration");
5030  }
5031 #endif
5032  target->node_process_grid(msg); //msg is stored inside node_proces_grid
5033 }
void node_process_grid(PmeGridMsg *)
Definition: ComputePme.C:6290
CkArrayIndex3D destElem
Definition: ComputePme.C:125
void NodePmeMgr::recvZUntrans ( PmeUntransMsg msg)

Definition at line 5013 of file ComputePme.C.

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

5013  {
5014  //CkPrintf("[%d] NodePmeMgr recvZUntrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
5015  PmeZPencil *target=zPencilObj.get(msg->destElem);
5016 #if DEBUG_NODE_PAR_RECV
5017  if(target == NULL)
5018  CkAbort("zpencil in recvZUntrans not found, debug registeration");
5019 #endif
5020  target->node_process_untrans(msg);
5021  delete msg;
5022 }
void node_process_untrans(PmeUntransMsg *)
Definition: ComputePme.C:6325
CkArrayIndex3D destElem
Definition: ComputePme.C:155
void NodePmeMgr::registerXPencil ( CkArrayIndex3D  idx,
PmeXPencil obj 
)

Definition at line 691 of file ComputePme.C.

References ComputePmeMgr::fftw_plan_lock.

692 {
694  xPencilObj.put(idx)=obj;
696 }
static CmiNodeLock fftw_plan_lock
Definition: ComputePme.C:414
void NodePmeMgr::registerYPencil ( CkArrayIndex3D  idx,
PmeYPencil obj 
)

Definition at line 697 of file ComputePme.C.

References ComputePmeMgr::fftw_plan_lock.

698 {
700  yPencilObj.put(idx)=obj;
702 }
static CmiNodeLock fftw_plan_lock
Definition: ComputePme.C:414
void NodePmeMgr::registerZPencil ( CkArrayIndex3D  idx,
PmeZPencil obj 
)

Definition at line 703 of file ComputePme.C.

References ComputePmeMgr::fftw_plan_lock.

704 {
706  zPencilObj.put(idx)=obj;
708 }
static CmiNodeLock fftw_plan_lock
Definition: ComputePme.C:414
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().

3949  {
3950 #ifdef NAMD_CUDA
3951  ComputePmeMgr *obj = masterPmeMgr;
3953 #else
3954  NAMD_bug("NodePmeMgr::sendDataHelper called in non-CUDA build");
3955 #endif
3956 }
int sendDataHelper_sequence
Definition: ComputePme.C:371
void NAMD_bug(const char *err_msg)
Definition: common.C:123
int sendDataHelper_sourcepe
Definition: ComputePme.C:372
Lattice * sendDataHelper_lattice
Definition: ComputePme.C:370
int sendDataHelper_errors
Definition: ComputePme.C:373
void sendDataPart(int first, int last, Lattice &, int sequence, int sourcepe, int errors)
Definition: ComputePme.C:3836
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().

3722  {
3723 #ifdef NAMD_CUDA
3724  ComputePmeMgr *obj = masterPmeMgr;
3726 #else
3727  NAMD_bug("NodePmeMgr::sendPencilsHelper called in non-CUDA build");
3728 #endif
3729 }
int sendDataHelper_sequence
Definition: ComputePme.C:371
void NAMD_bug(const char *err_msg)
Definition: common.C:123
int sendDataHelper_sourcepe
Definition: ComputePme.C:372
Lattice * sendDataHelper_lattice
Definition: ComputePme.C:370
void sendPencilsPart(int first, int last, Lattice &, int sequence, int sourcepe)
Definition: ComputePme.C:3576

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.

CProxy_PmePencilMap NodePmeMgr::ym

Definition at line 633 of file ComputePme.C.

CProxy_PmePencilMap NodePmeMgr::zm

Definition at line 634 of file ComputePme.C.

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


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