[mpich-discuss] Matrix dimension
Alejandro Allievi
alejandro.allievi at gmail.com
Thu Nov 22 12:35:36 CST 2012
Hi,
The following matrix multiplication code does not execute in my
machine for MATRIX_ORDER greater than 400 or so, and I've got plenty
of memory. Is there anything I need to tweak in MPI.h for this to
work??
Thanks for any help.
Alejandro
#include <stdio.h>
#include "mpi.h" /* for the Wtime() function only */
#define MATRIX_ORDER 400
typedef float MATRIX_T[MATRIX_ORDER][MATRIX_ORDER];
void serial_matrix_mult(MATRIX_T A, MATRIX_T B, MATRIX_T C, int n);
int main(int argc, char* argv[])
{
MATRIX_T A;
MATRIX_T B;
MATRIX_T C;
int i, j;
double start, finish;
int p, my_rank;
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD, &p);
MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
for (i = 0; i < MATRIX_ORDER; i++) /* initialize matrices */
for (j = 0; j < MATRIX_ORDER; j++) /* to an arbitrary value */
{
A[i][j] = 5;
B[i][j] = 5;
}
start = MPI_Wtime();
serial_matrix_mult(A, B, C, MATRIX_ORDER);
finish = MPI_Wtime();
printf("Elapsed time in seconds is %e\n", finish - start );
MPI_Finalize();
}
More information about the discuss
mailing list