/* time_matmul.c fine how large matrix multiple can be */ /* check that time increases order n^3 */ /* doubling N takes 8 times as long */ /* can be days for 10,000 by 10,000 */ #include #include #include static double *a; /* input matrix */ static double *b; /* input matrix */ static double *c; /* result matrix */ int main(int argc, char *argv[]) { int N; int i,j,k; double t1, t2; for(N=100; N<=1600; N=N*2) /* N<=3200 is OK, takes minutes */ { printf("multiply N by N matrices, N=%d \n", N); a = (double *)malloc(N*N*sizeof(double)); b = (double *)malloc(N*N*sizeof(double)); c = (double *)malloc(N*N*sizeof(double)); for(i=0; i