Provided by: openmpi-doc_5.0.7-1_all 

SYNTAX
C Syntax
#include <mpi.h>
double MPI_Wtime()
Fortran Syntax
USE MPI
! or the older form: INCLUDE 'mpif.h'
DOUBLE PRECISION MPI_WTIME()
Fortran 2008 Syntax
USE mpi_f08
DOUBLE PRECISION MPI_WTIME()
RETURN VALUE
Time in seconds since an arbitrary time in the past.
DESCRIPTION
MPI_Wtime returns a floating-point number of seconds, representing elapsed wall-clock time since some
time in the past.
The “time in the past” is guaranteed not to change during the life of the process. The user is
responsible for converting large numbers of seconds to other units if they are preferred.
This function is portable (it returns seconds, not “ticks”), it allows high resolution, and carries no
unnecessary baggage. One would use it like this:
{
double starttime, endtime;
starttime = MPI_Wtime();
.... stuff to be timed ...
endtime = MPI_Wtime();
printf("That took %f seconds\n",endtime-starttime);
}
The times returned are local to the node that called them. There is no requirement that different nodes
return the “same” time.
NOTES
The boolean variable MPI_WTIME_IS_GLOBAL, a predefined attribute key that indicates whether clocks are
synchronized, does not have a valid value in Open MPI, as the clocks are not guaranteed to be
synchronized.
This function is intended to be a high-resolution, elapsed (or wall) clock. See MPI_Wtick to determine
the resolution of MPI_Wtime.
On POSIX platforms, this function may utilize a timer that is cheaper to invoke than the gettimeofday()
system call, but will fall back to gettimeofday() if a cheap high-resolution timer is not available. The
ompi_info(1) command can be consulted to see if Open MPI supports a native high-resolution timer on your
platform; see the value for “MPI_Wtime support” (or “options:mpi-wtime” when viewing the parsable
output). If this value is “native”, a method that is likely to be cheaper than gettimeofday() will be
used to obtain the time when MPI_Wtime is invoked.
For example, on platforms that support it, the clock_gettime() function will be used to obtain a
monotonic clock value with whatever precision is supported on that platform (e.g., nanoseconds).
Note, too, that the MCA parameter opal_timer_require_monotonic can influcence this behavior. It defaults
to true, but if set to false, Open MPI may use a finer-grained timing mechanism (e.g., the RDTSC/RDTSCP
clock ticks on x86_64 platforms), but is not guaranteed to be monotonic in some cases (e.g., if the MPI
process is not bound to a single processor core).
This function does not return an error value. Consequently, the result of calling it before MPI_Init or
after MPI_Finalize is undefined.
SEE ALSO:
• MPI_Wtick
COPYRIGHT
2003-2025, The Open MPI Community
Feb 17, 2025 MPI_WTIME(3)