Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <time.h>
- #include <omp.h>
- static void delay(int loops)
- {
- long i;
- for (i = loops; i >= 0 ; i--)
- ;
- }
- int main(void)
- {
- unsigned long long loops_per_sec = 1;
- unsigned long long ticks;
- int result = -1;
- printf("Calibrating delay loop.. ");
- fflush(stdout);
- unsigned long long allMips = 0;
- int threads = 1;
- #pragma omp parallel firstprivate(loops_per_sec,ticks)
- for (;(loops_per_sec <<= 1);){
- threads = omp_get_num_threads();
- ticks = clock();
- delay(loops_per_sec);
- ticks = clock() - ticks;
- if (ticks >= CLOCKS_PER_SEC) {
- loops_per_sec = (loops_per_sec / ticks) * CLOCKS_PER_SEC;
- printf("\nok - %Lu.%02Lu BogoMips per thread",
- loops_per_sec/500000*threads,
- (loops_per_sec/5000*threads) % 100
- );
- allMips += loops_per_sec/500000*threads;
- result = 0;
- break;
- }
- }
- #pragma omp end parallel
- printf("\nresult: %Lu BogoMips\nthreads: %d\n",allMips,threads);
- if (result != 0)
- printf("\nfailed\n");
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement