O tempo e o clock do OpenMP () calculam dois resultados diferentes
Eu tenho um código seqüencial para paralelizar via OpenMP. Eu coloquei pragmas correspondentes e testei. Durante o teste, interpreto o ganho de desempenho verificando o tempo gasto na função principal. O estranho é o tempo decorrido calculado viacpu_time()
eomp_get_wtime()
retorna dois resultados diferentes. O que você acha do motivo?
O tempo decorrido calculado viacpu_time()
função é semelhante ao tempo seqüencial.
Antes do início do cálculo
ctime1_ = cpu_time();
#ifdef _OPENMP
ctime1 = omp_get_wtime();
#endif
Após o término da computação
ctime2_ = cpu_time();
#ifdef _OPENMP
ctime2 = omp_get_wtime();
#endif
Definição da função cpu_time ()
double cpu_time(void)
{
double value;
value = (double) clock () / (double) CLOCKS_PER_SEC;
return value;
}
Resultado da impressão
printf("%f - %f seconds.\n", ctime2 - ctime1, ctime2_ - ctime1_);
Resultado da amostra
7.009537 - 11.575277 seconds.