0

投稿を見てくれてありがとう

一部の 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;
}
4

1 に答える 1

0

私自身の質問に答える:

コメント行「//RRS」にタイマーの開始/停止ステートメントをいくつか入れて、スポーンの時間を忠実にカウントすることができます。

ご清聴ありがとうございました。

于 2012-04-15T16:14:16.183 に答える