OpenAtom  Version1.5a
ckPairCalculator.ci
Go to the documentation of this file.
1 /** \file ckPairCalculator.ci
2  *
3  */
4 
5 module pcMessages {
6 
7  include "paircalc/pcFwdDeclarations.h";
8 
9  readonly ComlibInstanceHandle mcastInstanceCP;
10  readonly ComlibInstanceHandle mcastInstanceACP;
11 
12  initnode registersumMatrixDouble(void);
13 
14  message initResultMsg;
15 
16  message initGRedMsg;
17 
18  message sendBWsignalMsg;
19 
20  message sendFWRDMAsignalMsg;
21 
22  message partialResultMsg {
23  complex result[];
24  };
25 
26  message priorSumMsg {
27  complex result[];
28  };
29 
30  message mySendMsg {
31  complex data[];
32  };
33 
34  message paircalcInputMsg {
35  inputType points[];
36  };
37 
38  message multiplyResultMsg {
39  internalType matrix1[];
40  internalType matrix2[];
41  };
42 
43  message entireResultMsg {
44  double matrix[];
45  };
46 
47  message entireResultMsg2 {
48  double matrix1[];
49  double matrix2[];
50  };
51 
52  message RDMAHandleMsg;
53 
54 };
55 
56 
57 
58 module RDMAMessages
59 {
60  template<class tokenType> message RDMASetupRequestMsg;
61  template<class tokenType> message RDMASetupConfirmationMsg;
62 };
63 
64 
65 
66 module pcMaps
67 {
68  include "load_balance/IntMap.h";
69  group SCalcMap: CkArrayMap {
70  entry SCalcMap(const MapType4 _mtable);
71  };
72 };
73 
74 
75 
76 module inputDataHandler
77 {
78  extern module RDMAMessages;
79  // Forward declaration
80  class RDMApair_GSP_PC;
81  class CProxy_PairCalculator;
82  // Template Instantiation
85 
86  template <class leftHandlerType, class rightHandlerType> array [4D] InputDataHandler
87  {
88  entry InputDataHandler(CProxy_PairCalculator pcProxy);
89  entry [nokeep] void acceptLeftData (paircalcInputMsg *msg);
90  entry [nokeep] void acceptRightData(paircalcInputMsg *msg);
91  entry [nokeep] void setupRDMALeft (RDMASetupRequestMsg<RDMApair_GSP_PC> *msg);
92  entry [nokeep] void setupRDMARight(RDMASetupRequestMsg<RDMApair_GSP_PC> *msg);
93  };
94 };
95 
96 
97 
98 module ckPairCalculator
99 {
100 
101  extern module pcMessages;
102  extern module inputDataHandler;
103 
104  include "paircalc/pcFwdDeclarations.h";
106 
107  array [4D] PairCalculator
108  {
110  entry void lbsync();
111  entry void bwbarrier(CkReductionMsg *msg);
112  entry void sendBWResult(sendBWsignalMsg *msg);
113  entry void sendBWResultDirect(sendBWsignalMsg *msg);
114  entry [nokeep] void initGRed(initGRedMsg *msg);
115  entry [nokeep] void initResultSection(initResultMsg *msg);
116  entry void multiplyForwardRDMA();
117  entry [nokeep] void multiplyResult(multiplyResultMsg *msg);
118  entry [nokeep] void acceptOrthoT(multiplyResultMsg *msg);
119  entry [nokeep,inline] void multiplyResultI(multiplyResultMsg *msg);
120  entry [inline] void acceptLeftData (paircalcInputMsg *msg);
121  entry [inline] void acceptRightData(paircalcInputMsg *msg);
122  entry [local] void multiplyForward(bool);
123  entry [local] void bwMultiplyDynOrthoT();
124  entry [local] void multiplyPsiV();
125  entry void phantomDone();
126  };
127 }
Paircalc's map group that provides procNum() to place paircalc chares as determined by the map logic...
Definition: pcMaps.h:13
Definition: IntMap.h:26
The new message for sending input data to the PairCalculator.
Definition: pcMessages.h:117
A request from a data sender to setup an RDMA link. Initiates the sender-receiver handshake required ...
Definition: RDMAMessages.h:22
A (hopefully) tiny token that is unique to every data sender-receiver pair, and is shared by them dur...
Definition: RDMAMessages.h:94
A very thin wrapper class.
Dumb structure that holds all the configuration inputs required for paircalc instantiation, functioning and interaction.
Definition: pcConfig.h:23
Input handler chare array proxies.
Reply from data receiver to the data sender indicating completion of setup on the receiver side...