4

つまり、clock()はクロックサイクルを測定するため、時間を測定するのにはあまり適していません。また、壁時間を取得するためのomp_get_wtime()のような関数があることは知っていますが、壁時間が変化するのはイライラします。多くの場合、個別のクロックサイクルを測定する方法があるかどうか疑問に思っていました(複数のスレッドが実行された場合でも、1サイクルのみ)。それは比較的単純/ネイティブなものでなければなりません。ありがとう

4

2 に答える 2

1

時間の測定がうまくいかないことを確認しますか?OSによっては、測定できるのは非常に多くのミリ秒にすぎないことに注意してください。

于 2010-03-18T02:16:53.687 に答える
0

私がテストしたx86を使用していて、私のシステム(mac)で正常に動作しているように見える場合は、RDTSCに関するこの質問に対するFreeMemoryの回答を参照してください。ただし、この質問に対する私の回答を参照してください。ここでRDTSCの批判も参照してください。

通常、詳細レベルを低くしすぎることは価値がありませんが、コンピューターが実行する必要のある他のビットや作業はクロックサイクルを消費するため、負荷によって異なります。omp_get_wtime()実行ごとに一貫した結果を保証するために約1秒かかることを確認するために、コードを追加のループに入れる必要がありますが、十分だと思います。

于 2010-03-18T02:52:08.953 に答える