質問編集履歴
1
添付ファイルを間違えました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,7 +6,6 @@
|
|
6
6
|
使用ライブラリはOpen MPI 2.0.1です。
|
7
7
|
|
8
8
|
```vect_test.cpp
|
9
|
-
|
10
9
|
#include <mpi.h>
|
11
10
|
#include <iostream>
|
12
11
|
#include <vector>
|
@@ -23,59 +22,54 @@
|
|
23
22
|
std::vector<std::vector<std::vector<double>>> w;
|
24
23
|
std::vector<std::vector<std::vector<double>>> vect3d;
|
25
24
|
|
26
|
-
|
25
|
+
MPI_Init(&argc, &argv);
|
26
|
+
MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
|
27
|
-
|
27
|
+
MPI_Comm_size(MPI_COMM_WORLD, &p);
|
28
28
|
|
29
|
-
MPI_Init(&argc, &argv);
|
30
|
-
MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
|
31
|
-
MPI_Comm_size(MPI_COMM_WORLD, &p);
|
32
|
-
|
33
|
-
|
29
|
+
w.resize(n_value);
|
34
|
-
|
30
|
+
for(auto &ref :w) {
|
35
|
-
|
31
|
+
ref.resize(n_visible);
|
36
|
-
|
32
|
+
for(auto &ref2 :ref){
|
37
|
-
|
33
|
+
ref2.resize(n_hidden);
|
38
|
-
|
34
|
+
for(auto &ref3 :ref2){
|
39
|
-
|
35
|
+
ref3 = 0.0;
|
40
|
-
}
|
41
|
-
}
|
42
36
|
}
|
37
|
+
}
|
38
|
+
}
|
43
39
|
|
44
|
-
|
40
|
+
vect3d.resize(n_value);
|
45
|
-
|
41
|
+
for(auto &ref :vect3d) {
|
46
|
-
|
42
|
+
ref.resize(n_visible);
|
47
|
-
|
43
|
+
for(auto &ref2 :ref){
|
48
|
-
|
44
|
+
ref2.resize(n_hidden);
|
49
|
-
|
45
|
+
for(auto &ref3 :ref2){
|
50
|
-
|
46
|
+
ref3 = (double)my_rank;
|
51
|
-
}
|
52
|
-
}
|
53
47
|
}
|
54
48
|
}
|
49
|
+
}
|
55
50
|
|
56
|
-
|
51
|
+
if(my_rank==0){
|
57
|
-
|
52
|
+
for(i=0; i<n_value; i++){
|
58
|
-
|
53
|
+
for(j=0; j<n_visible; j++){
|
59
|
-
|
54
|
+
for(k=0; k<n_hidden; k++){
|
60
|
-
|
55
|
+
printf("w[%d][%d][%d]=%f \n", i, j, k, w[i][j][k]);
|
61
|
-
}
|
62
56
|
}
|
63
57
|
}
|
64
|
-
printf("\n");
|
65
58
|
}
|
59
|
+
printf("\n");
|
60
|
+
}
|
66
61
|
|
67
|
-
|
62
|
+
MPI_Reduce(&vect3d[0][0][0], &w[0][0][0], n_value * n_visible * n_hidden, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
|
68
63
|
|
69
|
-
|
64
|
+
if(my_rank==0){
|
70
|
-
|
65
|
+
for(i=0; i<n_value; i++){
|
71
|
-
|
66
|
+
for(j=0; j<n_visible; j++){
|
72
|
-
|
67
|
+
for(k=0; k<n_hidden; k++){
|
73
|
-
|
68
|
+
printf("w[%d][%d][%d]=%f \n", i, j, k, w[i][j][k]);
|
74
|
-
}
|
75
69
|
}
|
76
70
|
}
|
77
|
-
printf("\n");
|
78
71
|
}
|
72
|
+
printf("\n");
|
79
73
|
}
|
80
74
|
|
81
75
|
MPI_Finalize();
|