You are on page 1of 2

#include

#include
#include
#include

"stdafx.h"
<time.h>
<cstdlib>
<stdio.h>

void flush(int * g, int size) {


int i;
for (i = 0; i<size; i++) {
g[i]++;
}
}
int operation(int *a, int stri, int size) {
int clockStart, clockEnd;
int i, j;
clockStart = clock();
for (j = 0; j<stri; j++) {
for (i = 0; i < size; i += stri) {
a[i + j] = a[i + j] * 2;
}
}
clockEnd = clock();
return(clockEnd - clockStart);
}
int main() {
int * a;
int * garbage;
const int arraysize = 4 * (1 << 20);
int i, j;
int r;
int clockStart, clockEnd;
int stride = 100;
int totalTime;
printf("array size = %d\n", arraysize);
srand(1234567);
garbage = (int *)malloc(sizeof(int) * arraysize);
for (i = 0; i < arraysize; i++) {
garbage[i] = rand();
}
a = (int *)malloc(sizeof(int) * arraysize);
/* ver. 1: sequential access */
for (i = 1;i <= stride;i++) {
for (j = 0;j < arraysize ;j++) {
a[j] = rand();
}
flush(garbage, arraysize);
totalTime = operation(a, i, arraysize);
printf("stride is: %d, time used is: %d ms.\n", i, totalTime);
}
/* end */
free(a);

return 0;
}

You might also like