¿Hay algo así como un reloj () que funciona mejor para el código paralelo?
-
20-09-2019 - |
Pregunta
Así que sé que el reloj () mide ciclos de reloj, y por lo tanto no es muy bueno para medir el tiempo, y sé que hay funciones como omp_get_wtime () para conseguir el tiempo de la pared, pero es frustrante para mí que la pared tiempo varía tanto, y se preguntaba si había alguna manera de medir ciclos de reloj distintos (un solo ciclo, incluso si más de un hilo ejecuta en él). Tiene que ser algo relativamente simple / nativo. Gracias
Solución
Véase la respuesta de FreeMemory esta pregunta para RDTSC si el uso de x86, que he probado y parece funcionar bien en mi sistema (Mac), pero ver mi respuesta a esta pregunta . Véase también la crítica de RDTSC aquí .
No es por lo general vale la pena bajar a un nivel demasiado bajo de detalle, sin embargo, otras partes y piezas de trabajo que el equipo tiene que hacer la voluntad de utilizar hasta ciclos de reloj, por lo que variará dependiendo de la carga. Encuentro omp_get_wtime()
suficiente, aunque tengo que poner mi código en un bucle extra para asegurarse de que tarda aproximadamente un segundo para asegurar resultados consistentes de una ejecución a otra.
Otros consejos
¿Está seguro de que tomar medidas de tiempo no va a funcionar para usted? Tenga en cuenta que sólo se puede medir a tantos milisegundos, dependiendo del sistema operativo.