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.

questionAnswers(3)

yourAnswerToTheQuestion