system_clock
, вероятно, значительно дешевле, чем cpu_time
, и имеет гораздо лучшую точность.
Для GFortran в Linux, я смутно припоминаю, что когда-то тестировал, вызывая его в цикле, и system_clock
брал порядка 50 нс на вызов.
Для GFortran в Linux system_clock
- это оболочка для clock_gettime(CLOCK_MONOTONIC, ...)
(которая в Linux использует vDSO, а не настоящий системный вызов, поэтому он очень и очень быстр), как и omp_get_wtime
в libgomp (библиотека времени выполнения OpenMP, которую использует GFortran), поэтому производительность дляоба они должны быть примерно одинаковыми.
Я не уверен, как MPI_Wtime
реализован в распространенных реализациях MPI, но меня не удивит, если он одинаковый.