OpenMP time and clock () calcula dos resultados diferentes

Tengo un código secuencial para paralelizar a través de OpenMP. He puesto los pragmas correspondientes y lo he probado. Durante las pruebas, interpreto la ganancia de rendimiento al verificar el tiempo empleado en la función principal. Lo extraño es el tiempo transcurrido calculado a través decpu_time() yomp_get_wtime() devuelve dos resultados diferentes. ¿Cuál crees que es la razón?

El tiempo transcurrido calculado a través decpu_time() La función es similar al tiempo secuencial.

Antes de que comience el cálculo

ctime1_ = cpu_time();
#ifdef _OPENMP
ctime1 = omp_get_wtime();
#endif

Después de que termine el cálculo

ctime2_ = cpu_time();
#ifdef _OPENMP
ctime2 = omp_get_wtime();
#endif

Definición de la función cpu_time ()

double cpu_time(void)
{
  double value;
  value = (double) clock () / (double) CLOCKS_PER_SEC;
  return value;
}

Resultado de impresión

printf("%f - %f seconds.\n", ctime2 - ctime1, ctime2_ - ctime1_);

Resultado de la muestra

7.009537 - 11.575277 seconds.

Respuestas a la pregunta(3)

Su respuesta a la pregunta