#include #include #include #include #include #define n (1000) int a[n][n],b[n][n],c[n][n],d[n][n],e[n][n]; float elapsedCPU() { struct rusage rusage; getrusage(RUSAGE_SELF,&rusage); return rusage.ru_utime.tv_sec+rusage.ru_utime.tv_usec/1000000.0 + rusage.ru_stime.tv_sec+rusage.ru_stime.tv_usec/1000000.0; } int generateRandom(minRange,maxRange) int minRange,maxRange; { /* returns integer in range minRange <= x <= maxRange*/ return minRange+abs(random()) % (maxRange-minRange+1); } void byRows(int a[n][n],int b[n][n],int c[n][n]) // Everyday matrix multiply. { int i,j,k; for (i=0; i