File: MPI_Wtime.3

package info (click to toggle)
openmpi 5.0.8-4
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 201,684 kB
  • sloc: ansic: 613,078; makefile: 42,353; sh: 11,194; javascript: 9,244; f90: 7,052; java: 6,404; perl: 5,179; python: 1,859; lex: 740; fortran: 61; cpp: 20; tcl: 12
file content (151 lines) | stat: -rw-r--r-- 4,119 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
.\" Man page generated from reStructuredText.
.
.TH "MPI_WTIME" "3" "May 30, 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.
.