oracular (3) MPI_Wtime.openmpi.3.gz

Provided by: openmpi-doc_4.1.6-13.3ubuntu2_all bug

NAME

       MPI_Wtime - Returns an elapsed time on the calling processor.

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()

C++ Syntax

       #include <mpi.h>
       double 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 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