2012-04-08 5 views
0

Dank für das Betrachten der PostWie die Zeit für ein cilk_spawn

Ich Benchmarking einig Cilk Plus-Code zu berechnen und war auf der Suche, die Zeit zu berechnen, die erforderlich einen „Spawn“ Vorgang abzuschließen. Ich bin daran interessiert, nur die Zeit zu berechnen, die benötigt wird, um einen Spawn zu machen, und nicht die Rechenzeit, die von fib() benötigt wird. Ist das möglich?

Wird der Timer im folgenden Code wie erwartet funktionieren? Wenn mein Denken korrekt ist, ersetzen Sie die "// RRS" mit timer_start() und timer_stop(), um den Job zu erledigen?

#include <stdio.h> 
#include <stdlib.h>   
int fib(int n) 
{ 
    if (n < 2) return n; 
    else { 
    // RRS: Start timer t1 here ?? 
    int x = cilk_spawn fib(n-1); 
    // RRS: Stop timer t1 here ?? 

    int y = fib(n-2); 

    // RRS: Start timer t2 here ??  
    cilk_sync; 
    // RRS: Stop timer t2 here ?? 

    return x + y; 
    } 
} 
  
int main(int argc, char *argv[]) 
{ 
    int n = atoi(argv[1]); 
    int result = fib(n); 
    printf("Fibonacci of %d is %d.\n", n, result); 
    return 0; 
} 

Antwort

0

meine eigene Frage zu beantworten:

Ich bin in der Lage einige Timerstart setzen/Stopp-Anweisungen in den Kommentarzeilen „// RRS“ und Zeit für Laich treu zählen.

Danke für die Aufmerksamkeit.

Verwandte Themen