Révision 293 ETSN/MySteps.c
MySteps.c (revision 293) | ||
---|---|---|
1 |
/* Simple SillySum function in C and OpenMP/C */
|
|
2 |
/* compilation with : gcc -fopenmp -O3 -o MySteps MySteps.c -lm -lgomp */
|
|
1 |
/* Simple SillySum function in C */ |
|
2 |
/* compilation with : gcc -O3 -o MySteps MySteps.c -lm */
|
|
3 | 3 |
|
4 | 4 |
#include <math.h> |
5 | 5 |
#include <stdio.h> |
... | ... | |
111 | 111 |
MYFLOAT elapsed=(MYFLOAT)((tv2.tv_sec-tv1.tv_sec) * 1000000L + |
112 | 112 |
(tv2.tv_usec-tv1.tv_usec))/1000000; |
113 | 113 |
|
114 |
gettimeofday(&tv1, NULL); |
|
115 |
MySillySumOMP(resacc,a,b,calls,size); |
|
116 |
gettimeofday(&tv2, NULL); |
|
117 |
|
|
118 |
MYFLOAT elapsedAcc=(MYFLOAT)((tv2.tv_sec-tv1.tv_sec) * 1000000L + |
|
119 |
(tv2.tv_usec-tv1.tv_usec))/1000000; |
|
120 |
|
|
121 |
MYFLOAT MyChecker=MyNorm(res,resacc,size); |
|
122 |
printf("Norm: %.8e\n",MyChecker); |
|
123 |
|
|
124 | 114 |
#ifdef VERBOSE |
125 | 115 |
MyPrint(res,size); |
126 | 116 |
MyPrint(resacc,size); |
127 | 117 |
#endif |
128 | 118 |
|
129 | 119 |
printf("Elapsed Time: %.3f\n",elapsed); |
130 |
printf("OMP Elapsed Time: %.3f\n",elapsedAcc); |
|
131 | 120 |
|
132 | 121 |
printf("NaiveRate: %.i\n",(int)((float)size/elapsed)); |
133 |
printf("OMPRate: %.i\n",(int)((float)size/elapsedAcc)); |
|
134 | 122 |
|
135 |
printf("AccRatio: %.3f\n",elapsed/elapsedAcc); |
|
136 |
|
|
137 | 123 |
free(a); |
138 | 124 |
free(b); |
139 | 125 |
free(res); |
Formats disponibles : Unified diff