Untitled
unknown
c_cpp
8 months ago
989 B
6
Indexable
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 4096
int A[MAX][MAX], B[MAX][MAX], C[MAX][MAX];
void multiply_serial(int size) {
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++) {
C[i][j] = 0;
for (int k = 0; k < size; k++)
C[i][j] += A[i][k] * B[k][j];
}
}
void fill_matrix(int size) {
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++) {
A[i][j] = rand() % 10;
B[i][j] = rand() % 10;
}
}
int main() {
int sizes[] = {128, 256, 512, 1024, 2048};
for (int s = 0; s < 6; s++) {
int size = sizes[s];
fill_matrix(size);
clock_t start = clock();
multiply_serial(size);
clock_t end = clock();
double time_taken = (double)(end - start) / CLOCKS_PER_SEC;
printf("Serial Time for %dx%d: %.4f seconds\n", size, size, time_taken);
}
return 0;
}
Editor is loading...
Leave a Comment