簡単な質問。私のコードのMPI実装については、両方で大きな違いがあります。MPI_Wtime は各プロセッサが実際に経過した時間であり、 clock() は予想される時間の大まかなアイデアを提供します。アサーションを追加したい人はいますか?
質問する
6800 次
2 に答える
5
機能はclock
まったく役に立たない。リアルタイム/壁時間ではなく、CPU時間を測定します。さらに、次の深刻な問題があります。
ほとんどの実装では、解像度は非常に悪く、たとえば 1/100 秒です。
CLOCKS_PER_SECOND
解像度ではなく、スケールです。典型的な値
CLOCKS_PER_SECOND
(たとえば、Unix 標準では 100 万である必要があります) を使用clock
すると、32 ビット システムでは数分でオーバーフローします。オーバーフロー後、-1 を返します。ほとんどの歴史的な実装は、C 標準が要求するように、実際にはオーバーフロー時に -1 を返しませんが、代わりにラップします。通常は符号付きの型であるため
clock_t
、ラップされた値で算術を実行しようとすると、意味のない結果または未定義の動作が発生します。Windows では、まったく間違ったことを行い、CPU 時間ではなく経過したリアルタイムを測定します。
于 2013-06-27T17:54:59.367 に答える