投稿を見てくれてありがとう
一部の Cilk Plus コードのベンチマークを行っており、「スポーン」操作を完了するのに必要な時間を計算しようとしていました。fib() に必要な計算時間ではなく、スポーンに必要な時間のみを計算することに関心があります。これは可能ですか?
次のコードにタイマーを配置すると、期待どおりに動作しますか? 私の考えが正しければ、「// RRS」を timer_start() と timer_stop() に置き換えて、仕事を終わらせますか?
#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;
}