152 lines
4.0 KiB
Groff
152 lines
4.0 KiB
Groff
.\" Man page generated from reStructuredText.
|
|
.
|
|
.TH "MPI_WTIME" "3" "Feb 14, 2025" "" "Open MPI"
|
|
.
|
|
.nr rst2man-indent-level 0
|
|
.
|
|
.de1 rstReportMargin
|
|
\\$1 \\n[an-margin]
|
|
level \\n[rst2man-indent-level]
|
|
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
-
|
|
\\n[rst2man-indent0]
|
|
\\n[rst2man-indent1]
|
|
\\n[rst2man-indent2]
|
|
..
|
|
.de1 INDENT
|
|
.\" .rstReportMargin pre:
|
|
. RS \\$1
|
|
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
|
|
. nr rst2man-indent-level +1
|
|
.\" .rstReportMargin post:
|
|
..
|
|
.de UNINDENT
|
|
. RE
|
|
.\" indent \\n[an-margin]
|
|
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
.nr rst2man-indent-level -1
|
|
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
|
..
|
|
.sp
|
|
\fI\%MPI_Wtime\fP — Returns an elapsed time on the calling processor.
|
|
.SH SYNTAX
|
|
.SS C Syntax
|
|
.INDENT 0.0
|
|
.INDENT 3.5
|
|
.sp
|
|
.nf
|
|
.ft C
|
|
#include <mpi.h>
|
|
|
|
double MPI_Wtime()
|
|
.ft P
|
|
.fi
|
|
.UNINDENT
|
|
.UNINDENT
|
|
.SS Fortran Syntax
|
|
.INDENT 0.0
|
|
.INDENT 3.5
|
|
.sp
|
|
.nf
|
|
.ft C
|
|
USE MPI
|
|
! or the older form: INCLUDE \(aqmpif.h\(aq
|
|
DOUBLE PRECISION MPI_WTIME()
|
|
.ft P
|
|
.fi
|
|
.UNINDENT
|
|
.UNINDENT
|
|
.SS Fortran 2008 Syntax
|
|
.INDENT 0.0
|
|
.INDENT 3.5
|
|
.sp
|
|
.nf
|
|
.ft C
|
|
USE mpi_f08
|
|
DOUBLE PRECISION MPI_WTIME()
|
|
.ft P
|
|
.fi
|
|
.UNINDENT
|
|
.UNINDENT
|
|
.SH RETURN VALUE
|
|
.sp
|
|
Time in seconds since an arbitrary time in the past.
|
|
.SH DESCRIPTION
|
|
.sp
|
|
\fI\%MPI_Wtime\fP returns a floating\-point number of seconds, representing
|
|
elapsed wall\-clock time since some time in the past.
|
|
.sp
|
|
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.
|
|
.sp
|
|
This function is portable (it returns seconds, not “ticks”), it allows
|
|
high resolution, and carries no unnecessary baggage. One would use it
|
|
like this:
|
|
.INDENT 0.0
|
|
.INDENT 3.5
|
|
.sp
|
|
.nf
|
|
.ft C
|
|
{
|
|
double starttime, endtime;
|
|
starttime = MPI_Wtime();
|
|
.... stuff to be timed ...
|
|
endtime = MPI_Wtime();
|
|
printf("That took %f seconds\en",endtime\-starttime);
|
|
}
|
|
.ft P
|
|
.fi
|
|
.UNINDENT
|
|
.UNINDENT
|
|
.sp
|
|
The times returned are local to the node that called them. There is no
|
|
requirement that different nodes return the “same” time.
|
|
.SH NOTES
|
|
.sp
|
|
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.
|
|
.sp
|
|
This function is intended to be a high\-resolution, elapsed (or wall)
|
|
clock. See \fI\%MPI_Wtick\fP to determine the resolution of \fI\%MPI_Wtime\fP\&.
|
|
.sp
|
|
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
|
|
\fI\%ompi_info(1)\fP command can be consulted to see if
|
|
Open MPI supports a native high\-resolution timer on your platform; see
|
|
the value for “\fI\%MPI_Wtime\fP 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 \fI\%MPI_Wtime\fP is invoked.
|
|
.sp
|
|
For example, on platforms that support it, the \fIclock_gettime()\fP
|
|
function will be used to obtain a monotonic clock value with whatever
|
|
precision is supported on that platform (e.g., nanoseconds).
|
|
.sp
|
|
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).
|
|
.sp
|
|
This function does not return an error value. Consequently, the result
|
|
of calling it before \fI\%MPI_Init\fP or after \fI\%MPI_Finalize\fP is undefined.
|
|
.sp
|
|
\fBSEE ALSO:\fP
|
|
.INDENT 0.0
|
|
.INDENT 3.5
|
|
.INDENT 0.0
|
|
.IP \(bu 2
|
|
\fI\%MPI_Wtick\fP
|
|
.UNINDENT
|
|
.UNINDENT
|
|
.UNINDENT
|
|
.SH COPYRIGHT
|
|
2003-2025, The Open MPI Community
|
|
.\" Generated by docutils manpage writer.
|
|
.
|