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;
}