OpenMP time和clock()計算兩個不同的結(jié)果我有通過OpenMP并行化的順序代碼。我已經(jīng)放了相應的pragma并測試它。在測試時,我通過檢查主要功能所花費的時間來解釋性能提升。奇怪的是通過計算的經(jīng)過時間cpu_time()并omp_get_wtime()返回兩個不同的結(jié)果。您認為原因是什么?通過cpu_time()函數(shù)計算的經(jīng)過時間與順序時間類似。在計算開始之前ctime1_ = cpu_time();#ifdef _OPENMP
ctime1 = omp_get_wtime();#endif計算結(jié)束后ctime2_ = cpu_time();#ifdef _OPENMP
ctime2 = omp_get_wtime();#endifcpu_time()函數(shù)定義double cpu_time(void){
double value;
value = (double) clock () / (double) CLOCKS_PER_SEC;
return value;}打印結(jié)果printf("%f - %f seconds.\n", ctime2 - ctime1, ctime2_ - ctime1_);樣本結(jié)果7.009537 - 11.575277 seconds.
- 3 回答
- 0 關(guān)注
- 2317 瀏覽
添加回答
舉報
0/150
提交
取消