Subversion Repositories programming

Rev

Rev 326 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 326 Rev 327
Line -... Line 1...
-
 
1
/* proj3_10.c - implements the APSP algorithm for a matrix of size 10x10
-
 
2
 *              as provided in the project description.
-
 
3
 *
-
 
4
 * Copyright (c) 2006, Ira W. Snyder (devel@irasnyder.com)
-
 
5
 */
-
 
6
 
-
 
7
 
1
#include <stdio.h>
8
#include <stdio.h>
2
#include <limits.h>
9
#include <limits.h>
3
#include <mpi.h>
10
#include <mpi.h>
4
 
11
 
5
const int ROOT_NODE = 0;
12
const int ROOT_NODE = 0;
Line 99... Line 106...
99
    }
106
    }
100
}
107
}
101
 
108
 
102
int main (int argc, char *argv[])
109
int main (int argc, char *argv[])
103
{
110
{
104
    const int n = 4;
111
    const int n = 10;
105
    int *b, *c;
112
    int *b, *c;
106
    int i, j, k, temp, t;
113
    int i, j, k, temp, t;
107
    MPI_Status status;
114
    MPI_Status status;
108
 
115
 
109
    /* Get all of the necessary info for each process */
116
    /* Get all of the necessary info for each process */
Line 135... Line 142...
135
        /* Initialize values */
142
        /* Initialize values */
136
        for (i=0; i<n; i++)
143
        for (i=0; i<n; i++)
137
            for (j=0; j<n; j++)
144
            for (j=0; j<n; j++)
138
                b[i*n+j] = INT_MAX;
145
                b[i*n+j] = INT_MAX;
139
 
146
 
140
        b[0] = 0;
147
        b[1] = 3;
141
        b[1] = 2;
148
        b[2] = 2;
-
 
149
        b[5] = 5;
-
 
150
        b[6] = 4;
-
 
151
        b[7] = 9;
142
        b[2] = INT_MAX;
152
        b[8] = 1;
143
        b[3] = 10;
153
        b[9] = 15;
144
 
154
 
-
 
155
        b[10] = 3;
-
 
156
        b[12] = 4;
-
 
157
        b[13] = 7;
145
        b[4] = 2;
158
        b[14] = 28;
-
 
159
        b[16] = 2;
-
 
160
        b[17] = 9;
-
 
161
        b[19] = 1;
-
 
162
 
-
 
163
        b[20] = 2;
-
 
164
        b[21] = 4;
-
 
165
        b[24] = 3;
-
 
166
        b[25] = 12;
-
 
167
        b[26] = 5;
-
 
168
        b[28] = 10;
-
 
169
        b[29] = 4;
-
 
170
 
-
 
171
        b[31] = 7;
-
 
172
        b[34] = 15;
146
        b[5] = 0;
173
        b[35] = 6;
147
        b[6] = 2;
174
        b[36] = 2;
148
        b[7] = INT_MAX;
175
        b[37] = 5;
149
 
176
 
-
 
177
        b[41] = 28;
-
 
178
        b[42] = 3;
-
 
179
        b[43] = 15;
-
 
180
        b[45] = 1;
-
 
181
        b[46] = 3;
150
        b[8]  = INT_MAX;
182
        b[48] = 2;
151
        b[9]  = 2;
183
        b[49] = 9;
-
 
184
 
152
        b[10] = 0;
185
        b[50] = 5;
-
 
186
        b[52] = 12;
-
 
187
        b[53] = 6;
-
 
188
        b[54] = 1;
153
        b[11] = 3;
189
        b[56] = 3;
-
 
190
        b[58] = 2;
-
 
191
        b[59] = 9;
-
 
192
 
-
 
193
        b[60] = 4;
-
 
194
        b[61] = 2;
-
 
195
        b[62] = 5;
-
 
196
        b[63] = 2;
-
 
197
        b[64] = 3;
-
 
198
        b[65] = 3;
-
 
199
        b[67] = 1;
-
 
200
        b[69] = 4;
-
 
201
 
-
 
202
        b[70] = 9;
-
 
203
        b[71] = 9;
-
 
204
        b[73] = 5;
-
 
205
        b[76] = 1;
-
 
206
        b[78] = 7;
-
 
207
        b[79] = 2;
154
 
208
 
-
 
209
        b[80] = 1;
155
        b[12] = 10;
210
        b[82] = 10;
-
 
211
        b[84] = 4;
-
 
212
        b[85] = 2;
-
 
213
        b[87] = 7;
-
 
214
        b[89] = 4;
-
 
215
 
156
        b[13] = INT_MAX;
216
        b[90] = 15;
-
 
217
        b[91] = 1;
-
 
218
        b[92] = 4;
157
        b[14] = 3;
219
        b[94] = 7;
158
        b[15] = 0;
220
        b[95] = 9;
-
 
221
        b[96] = 4;
-
 
222
        b[97] = 2;
-
 
223
        b[98] = 4;
-
 
224
 
-
 
225
        /* Force b[i][i] = 0 */
-
 
226
        for (i=0; i<n; i++)
-
 
227
            b[i*n+i] = 0; 
159
 
228
 
160
        if (n<=100)
229
        if (n<=100)
161
            print_matrix (b, n, "Input Matrix:");
230
            print_matrix (b, n, "Input Matrix:");
162
        else
231
        else
163
        {
232
        {