This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Need higher resolution times for linpack benchmark


N.M. Maclaren wrote:
This is nor a gfortran answer, but here is a wall-clock timer that is
callable from Fortran and I use when I need it.

/* Return high-precision timestamp. */
#include <stddef.h>
#include <sys/time.h>
double gettime_ (void) {
       struct timeval timer;
       if (gettimeofday(&timer,NULL))
               return -1.0;
       return timer.tv_sec+
               1.0e-6*timer.tv_usec;
}

Regards,
Nick Maclaren.

Not to be confused with high precision timer implemented in some cases on Windows, this should be capable of resolution within a microsecond on linux. OpenMP omp_get_wtime() is likely to be implemented similar to this.
Fortran system_clock should be capable of similar resolution, even on Windows, when 64-bit integer arguments are supported. f95 required only support of default integers.
System functions, such as _rdtsc, should be capable of resolution down to a few buss cycles, on current CPUs.
cpu_time still has only 10 millisecond resolution on common systems, and usually measures total cpu time of all threads, skipping idle periods, so in general it is a completely different measurement from elapsed time.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]