Untitled

 avatar
unknown
c_cpp
7 days ago
989 B
3
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