Skip to content

Commit 70a36b3

Browse files
author
alielabridi
committed
didnt work will go back to try vector ckvec
1 parent 00189d2 commit 70a36b3

File tree

4 files changed

+92
-92
lines changed

4 files changed

+92
-92
lines changed

AddSubMat.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
class addition :public CBase_addition{
66
public:
77
addition(CkMigrateMessage *m) {}
8-
addition(CkFuture f,AddSubMsg* Msg, int size){
8+
addition(CkFuture f,AddSubMsg Msg, int size){
99
thisProxy.run(f,Msg,size);
1010
}
11-
void run(CkFuture f,AddSubMsg* Msg, int size){
11+
void run(CkFuture f,AddSubMsg Msg, int size){
1212
/*wrap the resulting addition in a message of size and send it back to future*/
1313

1414
//if(VERBOSE)CkPrintf("Work done by processor %d\n",CkMyPe());
@@ -19,7 +19,7 @@ class addition :public CBase_addition{
1919
{
2020
for (int j = 0; j < size; ++j)
2121
{
22-
m->v[i][j] = Msg->A[i][j] + Msg->A[i][j];
22+
m->v[i][j] = Msg.A[i][j] + Msg.B[i][j];
2323
}
2424
}
2525

@@ -32,10 +32,10 @@ class addition :public CBase_addition{
3232
class substraction :public CBase_substraction{
3333
public:
3434
substraction(CkMigrateMessage *m) {}
35-
substraction(CkFuture f,AddSubMsg* Msg, int size){
35+
substraction(CkFuture f,AddSubMsg Msg, int size){
3636
thisProxy.run(f,Msg,size);
3737
}
38-
void run(CkFuture f,AddSubMsg* Msg, int size){
38+
void run(CkFuture f,AddSubMsg Msg, int size){
3939
//std::vector<std::vector<int>> C;
4040

4141
//if(VERBOSE)CkPrintf("Work done by processor %d\n",CkMyPe());
@@ -47,7 +47,7 @@ class substraction :public CBase_substraction{
4747
{
4848
for (int j = 0; j < size; ++j)
4949
{
50-
m->v[i][j] = Msg->A[i][j] - Msg->A[i][j];
50+
m->v[i][j] = Msg.A[i][j] - Msg.B[i][j];
5151
}
5252
}
5353
/*wrap the resulting substraction in a message of size and send it back to future*/

StrassenSub.h

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ class strassenSub: public CBase_strassenSub{
1111
/*four additions*/
1212

1313
/*three addition*/
14-
strassenSub(CkFuture f,StrassenSubMsg* Msg,
14+
strassenSub(CkFuture f,StrassenSubMsg Msg,
1515
int size, char partition){ thisProxy.run(f,Msg,size,partition); }
1616

1717

18-
void run(CkFuture f,StrassenSubMsg* Msg,
18+
void run(CkFuture f,StrassenSubMsg Msg,
1919
int size,char partition){
2020

2121
//do the addition/substraction, and wait for for the result then call on it the bigger strassen chare
@@ -25,22 +25,22 @@ class strassenSub: public CBase_strassenSub{
2525
/*partition M2 =(A21+A22)B11*/
2626
/*OR partition M5 =(A11+A12)B22*/
2727
CkFuture padd1 = CkCreateFuture();
28-
AddSubMsg* addSubMsg = new AddSubMsg(size);
28+
AddSubMsg addSubMsg(size);
2929
for (int i = 0; i < size; ++i)
3030
{
31-
addSubMsg->A[i] = Msg->A[i];
32-
addSubMsg->B[i] = Msg->B[i];
31+
addSubMsg.A[i] = Msg.A[i];
32+
addSubMsg.B[i] = Msg.B[i];
3333
}
3434
//i could spawn all the additions needed here
3535
CProxy_addition::ckNew(padd1,addSubMsg,size);//param not matching yet just a pseudo code
3636
//ValueMsg *m1 = new ValueMsg(size);
3737
ValueMsg * m1 = (ValueMsg *) CkWaitFuture(padd1);
3838
CkFuture p = CkCreateFuture();
39-
StrassenMsg* strassenMsg = new StrassenMsg(size);
39+
StrassenMsg strassenMsg(size);
4040
for (int i = 0; i < size; ++i)
4141
{
42-
strassenMsg->A[i] = m1->v[i];
43-
strassenMsg->B[i] = Msg->C[i];
42+
strassenMsg.A[i] = m1->v[i];
43+
strassenMsg.B[i] = Msg.C[i];
4444
}
4545
CProxy_strassen::ckNew(p,strassenMsg,size);
4646
//i could free m1 and m2 at this point
@@ -58,21 +58,21 @@ class strassenSub: public CBase_strassenSub{
5858
/*OR partition M4 =A22(B21-B11)*/
5959
CkFuture psub1 = CkCreateFuture();
6060
//i could spawn all the additions needed here
61-
AddSubMsg* addSubMsg = new AddSubMsg(size);
61+
AddSubMsg addSubMsg(size);
6262
for (int i = 0; i < size; ++i)
6363
{
64-
addSubMsg->A[i] = Msg->B[i];
65-
addSubMsg->B[i] = Msg->C[i];
64+
addSubMsg.A[i] = Msg.B[i];
65+
addSubMsg.B[i] = Msg.C[i];
6666
}
6767
CProxy_substraction::ckNew(psub1,addSubMsg,size);//param not matching yet just a pseudo code
6868
//ValueMsg *m1 = new ValueMsg(size);
6969
ValueMsg * m1 = (ValueMsg *) CkWaitFuture(psub1);
7070
CkFuture p = CkCreateFuture();
71-
StrassenMsg* strassenMsg = new StrassenMsg(size);
71+
StrassenMsg strassenMsg(size);
7272
for (int i = 0; i < size; ++i)
7373
{
74-
strassenMsg->A[i] = Msg->A[i];
75-
strassenMsg->B[i] = m1->v[i];
74+
strassenMsg.A[i] = Msg.A[i];
75+
strassenMsg.B[i] = m1->v[i];
7676
}
7777
CProxy_strassen::ckNew(p,strassenMsg, size);
7878
//i could free m1 and m2 at this point
@@ -100,14 +100,14 @@ class strassenSub: public CBase_strassenSub{
100100
CkFuture p1add2 = CkCreateFuture(); //B11+B22
101101
//i could spawn all the additions needed here
102102
//if(VERBOSE)CkPrintf("here stressen SUB run 2:\n");
103-
AddSubMsg* addSubMsg1 = new AddSubMsg(size);
104-
AddSubMsg* addSubMsg2 = new AddSubMsg(size);
103+
AddSubMsg addSubMsg1(size);
104+
AddSubMsg addSubMsg2(size);
105105
for (int i = 0; i < size; ++i)
106106
{
107-
addSubMsg1->A[i] = Msg->A[i];
108-
addSubMsg1->B[i] = Msg->B[i];
109-
addSubMsg2->A[i] = Msg->C[i];
110-
addSubMsg2->B[i] = Msg->D[i];
107+
addSubMsg1.A[i] = Msg.A[i];
108+
addSubMsg1.B[i] = Msg.B[i];
109+
addSubMsg2.A[i] = Msg.C[i];
110+
addSubMsg2.B[i] = Msg.D[i];
111111
}
112112
CProxy_addition::ckNew(p1add1,addSubMsg1,size);//param not matching yet just a pseudo code
113113
CProxy_addition::ckNew(p1add2,addSubMsg2,size);//param not matching yet just a pseudo code
@@ -132,11 +132,11 @@ class strassenSub: public CBase_strassenSub{
132132
CkFuture p1 = CkCreateFuture();
133133
//if(VERBOSE)CkPrintf("here stressen SUB run 5:\n");
134134

135-
StrassenMsg* strassenMsg = new StrassenMsg(size);
135+
StrassenMsg strassenMsg(size);
136136
for (int i = 0; i < size; ++i)
137137
{
138-
strassenMsg->A[i] = m1->v[i];
139-
strassenMsg->B[i] = m2->v[i];
138+
strassenMsg.A[i] = m1->v[i];
139+
strassenMsg.B[i] = m2->v[i];
140140
}
141141
CProxy_strassen::ckNew(p1,strassenMsg,size); //to do (A11+A22)*(B11+B22) by giving m1->v and m2->v
142142
//if(VERBOSE)CkPrintf("here stressen SUB run 6:\n");
@@ -163,14 +163,14 @@ class strassenSub: public CBase_strassenSub{
163163
CkFuture psub1 = CkCreateFuture();
164164
CkFuture padd2 = CkCreateFuture();
165165
//i could spawn all the additions needed here
166-
AddSubMsg* addSubMsg1 = new AddSubMsg(size);
167-
AddSubMsg* addSubMsg2 = new AddSubMsg(size);
166+
AddSubMsg addSubMsg1(size);
167+
AddSubMsg addSubMsg2(size);
168168
for (int i = 0; i < size; ++i)
169169
{
170-
addSubMsg1->A[i] = Msg->A[i];
171-
addSubMsg1->B[i] = Msg->B[i];
172-
addSubMsg2->A[i] = Msg->C[i];
173-
addSubMsg2->B[i] = Msg->D[i];
170+
addSubMsg1.A[i] = Msg.A[i];
171+
addSubMsg1.B[i] = Msg.B[i];
172+
addSubMsg2.A[i] = Msg.C[i];
173+
addSubMsg2.B[i] = Msg.D[i];
174174
}
175175
CProxy_substraction::ckNew(psub1,addSubMsg1,size);//param not matching yet just a pseudo code
176176
CProxy_addition::ckNew(padd2,addSubMsg2,size);//param not matching yet just a pseudo code
@@ -179,11 +179,11 @@ class strassenSub: public CBase_strassenSub{
179179
ValueMsg * m1 = (ValueMsg *) CkWaitFuture(psub1);
180180
ValueMsg * m2 = (ValueMsg *) CkWaitFuture(padd2);
181181
CkFuture p = CkCreateFuture();
182-
StrassenMsg* strassenMsg = new StrassenMsg(size);
182+
StrassenMsg strassenMsg(size);
183183
for (int i = 0; i < size; ++i)
184184
{
185-
strassenMsg->A[i] = m1->v[i];
186-
strassenMsg->B[i] = m2->v[i];
185+
strassenMsg.A[i] = m1->v[i];
186+
strassenMsg.B[i] = m2->v[i];
187187
}
188188
CProxy_strassen::ckNew(p,strassenMsg,size);//to do (A11+A22)*(B11+B22) by giving m1->v and m2->v
189189
//i could free m1 and m2 at this point

strassen.C

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ class Main : public CBase_Main {
4343
double starttimer = CkWallTimer();
4444
CkFuture f = CkCreateFuture();
4545

46-
StrassenMsg *strassenMsg = new StrassenMsg(size);
46+
StrassenMsg strassenMsg = StrassenMsg(size);
4747
for (int i = 0; i < size; ++i){
48-
strassenMsg->A[i] = A[i];
49-
strassenMsg->B[i] = B[i];
48+
strassenMsg.A[i] = A[i];
49+
strassenMsg.B[i] = B[i];
5050
}
5151
CProxy_strassen::ckNew(f,strassenMsg,size);
5252

@@ -105,10 +105,10 @@ class strassen : public CBase_strassen {
105105

106106
public:
107107
strassen(CkMigrateMessage *m) {}
108-
strassen(CkFuture f,StrassenMsg* Msg,int size){ thisProxy.run(f,Msg,size); }
108+
strassen(CkFuture f,StrassenMsg Msg,int size){ thisProxy.run(f,Msg,size); }
109109

110110

111-
void run(CkFuture f,StrassenMsg* Msg,int size) {
111+
void run(CkFuture f,StrassenMsg Msg,int size) {
112112
//if(VERBOSE)CkPrintf("here stressen run 1:\n");
113113
ValueMsg *m = new ValueMsg(size);
114114

@@ -134,7 +134,7 @@ class strassen : public CBase_strassen {
134134
for (int k = 0; k < size; k++) {
135135
m->v[i][k] = 0;
136136
for (int j = 0; j < size; j++) {
137-
m->v[i][k] += Msg->A[i][j] * Msg->B[j][k];
137+
m->v[i][k] += Msg.A[i][j] * Msg.B[j][k];
138138
}
139139
}
140140
}
@@ -148,15 +148,15 @@ class strassen : public CBase_strassen {
148148
//dividing the matrices in 4 sub-matrices:
149149
for (int i = 0; i < newSize; i++) {
150150
for (int j = 0; j < newSize; j++) {
151-
a11[i][j] = Msg->A[i][j];
152-
a12[i][j] = Msg->A[i][j + newSize];
153-
a21[i][j] = Msg->A[i + newSize][j];
154-
a22[i][j] = Msg->A[i + newSize][j + newSize];
155-
156-
b11[i][j] = Msg->B[i][j];
157-
b12[i][j] = Msg->B[i][j + newSize];
158-
b21[i][j] = Msg->B[i + newSize][j];
159-
b22[i][j] = Msg->B[i + newSize][j + newSize];
151+
a11[i][j] = Msg.A[i][j];
152+
a12[i][j] = Msg.A[i][j + newSize];
153+
a21[i][j] = Msg.A[i + newSize][j];
154+
a22[i][j] = Msg.A[i + newSize][j + newSize];
155+
156+
b11[i][j] = Msg.B[i][j];
157+
b12[i][j] = Msg.B[i][j + newSize];
158+
b21[i][j] = Msg.B[i + newSize][j];
159+
b22[i][j] = Msg.B[i + newSize][j + newSize];
160160
}
161161
}
162162
//if(VERBOSE)CkPrintf("here stressen run 4-1:\n");
@@ -171,13 +171,13 @@ class strassen : public CBase_strassen {
171171
//the value of P1
172172
/*M1 = (A11+A22)(B11+B22)*/
173173
CkFuture p1Future = CkCreateFuture();
174-
StrassenSubMsg* StrassenSubMsg1 = new StrassenSubMsg(newSize);
174+
StrassenSubMsg StrassenSubMsg1(newSize);
175175
for (int i = 0; i < newSize; ++i)
176176
{
177-
StrassenSubMsg1->A[i] = a11[i];
178-
StrassenSubMsg1->B[i] = a22[i];
179-
StrassenSubMsg1->C[i] = b11[i];
180-
StrassenSubMsg1->D[i] = b22[i];
177+
StrassenSubMsg1.A[i] = a11[i];
178+
StrassenSubMsg1.B[i] = a22[i];
179+
StrassenSubMsg1.C[i] = b11[i];
180+
StrassenSubMsg1.D[i] = b22[i];
181181
}
182182

183183
CProxy_strassenSub::ckNew(p1Future, StrassenSubMsg1,newSize,'1');
@@ -190,12 +190,12 @@ class strassen : public CBase_strassen {
190190
//the value of P2
191191
/*partition M2 =(A21+A22)B11*/
192192
CkFuture p2Future = CkCreateFuture();
193-
StrassenSubMsg* StrassenSubMsg2 = new StrassenSubMsg(newSize);
193+
StrassenSubMsg StrassenSubMsg2(newSize);
194194
for (int i = 0; i < newSize; ++i)
195195
{
196-
StrassenSubMsg2->A[i] = a21[i];
197-
StrassenSubMsg2->B[i] = a22[i];
198-
StrassenSubMsg2->C[i] = b11[i];
196+
StrassenSubMsg2.A[i] = a21[i];
197+
StrassenSubMsg2.B[i] = a22[i];
198+
StrassenSubMsg2.C[i] = b11[i];
199199
}
200200
CProxy_strassenSub::ckNew(p2Future, StrassenSubMsg2,newSize,'2');
201201
ValueMsg * m2 = (ValueMsg *) CkWaitFuture(p2Future);
@@ -209,12 +209,12 @@ class strassen : public CBase_strassen {
209209
//the value of P3
210210
/*partition M3 = A11(B12-B22)*/
211211
CkFuture p3Future = CkCreateFuture();
212-
StrassenSubMsg* StrassenSubMsg3 = new StrassenSubMsg(newSize);
212+
StrassenSubMsg StrassenSubMsg3(newSize);
213213
for (int i = 0; i < newSize; ++i)
214214
{
215-
StrassenSubMsg3->A[i] = a11[i];
216-
StrassenSubMsg3->B[i] = b12[i];
217-
StrassenSubMsg3->C[i] = b22[i];
215+
StrassenSubMsg3.A[i] = a11[i];
216+
StrassenSubMsg3.B[i] = b12[i];
217+
StrassenSubMsg3.C[i] = b22[i];
218218
}
219219
CProxy_strassenSub::ckNew(p3Future, StrassenSubMsg3,newSize,'3');
220220
ValueMsg * m3 = (ValueMsg *) CkWaitFuture(p3Future);
@@ -228,12 +228,12 @@ class strassen : public CBase_strassen {
228228
//the value of P4
229229
/*OR partition M4 =A22(B21-B11)*/
230230
CkFuture p4Future = CkCreateFuture();
231-
StrassenSubMsg* StrassenSubMsg4 = new StrassenSubMsg(newSize);
231+
StrassenSubMsg StrassenSubMsg4(newSize);
232232
for (int i = 0; i < newSize; ++i)
233233
{
234-
StrassenSubMsg4->A[i] = a22[i];
235-
StrassenSubMsg4->B[i] = b21[i];
236-
StrassenSubMsg4->C[i] = b11[i];
234+
StrassenSubMsg4.A[i] = a22[i];
235+
StrassenSubMsg4.B[i] = b21[i];
236+
StrassenSubMsg4.C[i] = b11[i];
237237
}
238238
CProxy_strassenSub::ckNew(p4Future, StrassenSubMsg4,newSize,'4');
239239
ValueMsg * m4 = (ValueMsg *) CkWaitFuture(p4Future);
@@ -245,12 +245,12 @@ class strassen : public CBase_strassen {
245245
//the value of P5
246246
/*OR partition M5 =(A11+A12)B22*/
247247
CkFuture p5Future = CkCreateFuture();
248-
StrassenSubMsg* StrassenSubMsg5 = new StrassenSubMsg(newSize);
248+
StrassenSubMsg StrassenSubMsg5(newSize);
249249
for (int i = 0; i < newSize; ++i)
250250
{
251-
StrassenSubMsg5->A[i] = a11[i];
252-
StrassenSubMsg5->B[i] = a12[i];
253-
StrassenSubMsg5->C[i] = b22[i];
251+
StrassenSubMsg5.A[i] = a11[i];
252+
StrassenSubMsg5.B[i] = a12[i];
253+
StrassenSubMsg5.C[i] = b22[i];
254254
}
255255
CProxy_strassenSub::ckNew(p5Future, StrassenSubMsg5,newSize,'5');
256256
ValueMsg * m5 = (ValueMsg *) CkWaitFuture(p5Future);
@@ -261,13 +261,13 @@ class strassen : public CBase_strassen {
261261
//the value of P6
262262
/*partition M6 = (A21-A11)(B11+B12)*/
263263
CkFuture p6Future = CkCreateFuture();
264-
StrassenSubMsg* StrassenSubMsg6 = new StrassenSubMsg(newSize);
264+
StrassenSubMsg StrassenSubMsg6(newSize);
265265
for (int i = 0; i < newSize; ++i)
266266
{
267-
StrassenSubMsg6->A[i] = a21[i];
268-
StrassenSubMsg6->B[i] = a11[i];
269-
StrassenSubMsg6->C[i] = b11[i];
270-
StrassenSubMsg6->D[i] = b12[i];
267+
StrassenSubMsg6.A[i] = a21[i];
268+
StrassenSubMsg6.B[i] = a11[i];
269+
StrassenSubMsg6.C[i] = b11[i];
270+
StrassenSubMsg6.D[i] = b12[i];
271271
}
272272

273273
CProxy_strassenSub::ckNew(p6Future, StrassenSubMsg6,newSize,'6');
@@ -279,13 +279,13 @@ class strassen : public CBase_strassen {
279279
//the value of P7
280280
/*OR partition M7 = (A12-A22)(B21+B22)*/
281281
CkFuture p7Future = CkCreateFuture();
282-
StrassenSubMsg* StrassenSubMsg7 = new StrassenSubMsg(newSize);
282+
StrassenSubMsg StrassenSubMsg7(newSize);
283283
for (int i = 0; i < newSize; ++i)
284284
{
285-
StrassenSubMsg7->A[i] = a12[i];
286-
StrassenSubMsg7->B[i] = a22[i];
287-
StrassenSubMsg7->C[i] = b12[i];
288-
StrassenSubMsg7->D[i] = b22[i];
285+
StrassenSubMsg7.A[i] = a12[i];
286+
StrassenSubMsg7.B[i] = a22[i];
287+
StrassenSubMsg7.C[i] = b12[i];
288+
StrassenSubMsg7.D[i] = b22[i];
289289
}
290290

291291
CProxy_strassenSub::ckNew(p7Future,StrassenSubMsg7 ,newSize,'7');

0 commit comments

Comments
 (0)