質問するログイン新規登録

質問編集履歴

1

添付ファイルを間違えました。

2016/11/10 10:40

投稿

hinatades
hinatades

スコア10

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
- for(int l=0; l<3; l++){
25
+ MPI_Init(&argc, &argv);
26
+ MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
27
- if(l==0){
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
- w.resize(n_value);
29
+ w.resize(n_value);
34
- for(auto &ref :w) {
30
+ for(auto &ref :w) {
35
- ref.resize(n_visible);
31
+ ref.resize(n_visible);
36
- for(auto &ref2 :ref){
32
+ for(auto &ref2 :ref){
37
- ref2.resize(n_hidden);
33
+ ref2.resize(n_hidden);
38
- for(auto &ref3 :ref2){
34
+ for(auto &ref3 :ref2){
39
- ref3 = 0.0;
35
+ ref3 = 0.0;
40
- }
41
- }
42
36
  }
37
+ }
38
+ }
43
39
 
44
- vect3d.resize(n_value);
40
+ vect3d.resize(n_value);
45
- for(auto &ref :vect3d) {
41
+ for(auto &ref :vect3d) {
46
- ref.resize(n_visible);
42
+ ref.resize(n_visible);
47
- for(auto &ref2 :ref){
43
+ for(auto &ref2 :ref){
48
- ref2.resize(n_hidden);
44
+ ref2.resize(n_hidden);
49
- for(auto &ref3 :ref2){
45
+ for(auto &ref3 :ref2){
50
- ref3 = 1.0 +(double)my_rank;
46
+ ref3 = (double)my_rank;
51
- }
52
- }
53
47
  }
54
48
  }
49
+ }
55
50
 
56
- if(my_rank==0 && l==0){
51
+ if(my_rank==0){
57
- for(i=0; i<n_value; i++){
52
+ for(i=0; i<n_value; i++){
58
- for(j=0; j<n_visible; j++){
53
+ for(j=0; j<n_visible; j++){
59
- for(k=0; k<n_hidden; k++){
54
+ for(k=0; k<n_hidden; k++){
60
- printf("w[%d][%d][%d]=%f \n", i, j, k, w[i][j][k]);
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
- MPI_Reduce(&vect3d[0][0][0], &w[0][0][0], n_value * n_visible * n_hidden, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
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
- if(my_rank==0){
64
+ if(my_rank==0){
70
- for(i=0; i<n_value; i++){
65
+ for(i=0; i<n_value; i++){
71
- for(j=0; j<n_visible; j++){
66
+ for(j=0; j<n_visible; j++){
72
- for(k=0; k<n_hidden; k++){
67
+ for(k=0; k<n_hidden; k++){
73
- printf("w[%d][%d][%d]=%f \n", i, j, k, w[i][j][k]);
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();