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.