1
1
Program test_timers
2
2
3
- USE ISO_FORTRAN_ENV, WP= >REAL64
4
- USE timers
5
-
6
3
#ifndef __JMAX__
7
- #define __JMAX__ 10000
4
+ #define __JMAX__ 10000
8
5
#endif
9
6
#ifndef __IMAX__
10
- #define __IMAX__ 10000
7
+ #define __IMAX__ 10000
11
8
#endif
12
9
10
+ USE ISO_FORTRAN_ENV, WP= >REAL64
11
+ USE timers
12
+
13
13
Implicit NONE
14
14
15
15
Integer :: niters
@@ -20,6 +20,7 @@ Program test_timers
20
20
Integer :: i, j
21
21
22
22
niters = (__IMAX__)* (__JMAX__)
23
+
23
24
Print * ,' '
24
25
Print * ,' *** Test of Fortran and C timer routines ***'
25
26
Print * ,' '
@@ -28,105 +29,105 @@ Program test_timers
28
29
sum = 0.0_WP
29
30
time_e = 0.0_WP
30
31
time_s = 0.0_WP
31
- Call timer_gtd (time_s)
32
- Do j= 1 , __JMAX__
32
+ Call timer_dt (time_s)
33
+ Do j= 1 , __JMAX__
33
34
Do i= 1 , __IMAX__
34
- sum = sum + REAL (i+ j,WP)
35
+ sum = sum + Real (i+ j,WP)
35
36
End Do
36
37
End Do
37
- Call timer_gtd (time_e)
38
+ Call timer_dt (time_e)
38
39
delta = time_e - time_s
39
- Write (* ,' ( " C gettimeofday = ", 1PE22.15)' ) delta
40
+ Write (* ,' ( " DATE_AND_TIME = ", 1PE22.15)' ) delta
40
41
Write (buf,' (1PE22.15)' ) sum
41
42
42
43
sum = 0.0_WP
43
44
time_e = 0.0_WP
44
45
time_s = 0.0_WP
45
- Call timer_cgt (time_s, CLOCK_MONOTONIC )
46
+ Call CPU_TIME (time_s)
46
47
Do j= 1 , __JMAX__
47
48
Do i= 1 , __IMAX__
48
- sum = sum + REAL (i+ j,WP)
49
+ sum = sum + Real (i+ j,WP)
49
50
End Do
50
51
End Do
51
- Call timer_cgt (time_e, CLOCK_MONOTONIC )
52
+ Call CPU_TIME (time_e)
52
53
delta = time_e - time_s
53
- Write (* ,' ( " C clock_gettime (MONOTONIC) = ", 1PE22.15)' ) delta
54
+ Write (* ,' ( " CPU_TIME = ", 1PE22.15)' ) delta
54
55
Write (buf,' (1PE22.15)' ) sum
55
56
56
57
sum = 0.0_WP
57
58
time_e = 0.0_WP
58
59
time_s = 0.0_WP
59
- Call timer_cgt (time_s, CLOCK_REALTIME )
60
+ Call timer_sc (time_s)
60
61
Do j= 1 , __JMAX__
61
62
Do i= 1 , __IMAX__
62
- sum = sum + REAL (i+ j,WP)
63
+ sum = sum + Real (i+ j,WP)
63
64
End Do
64
65
End Do
65
- Call timer_cgt (time_e, CLOCK_REALTIME )
66
+ Call timer_sc (time_e)
66
67
delta = time_e - time_s
67
- Write (* ,' ( " C clock_gettime (REALTIME) = ", 1PE22.15)' ) delta
68
+ Write (* ,' ( " SYSTEM_CLOCK = ", 1PE22.15)' ) delta
68
69
Write (buf,' (1PE22.15)' ) sum
69
70
70
- #ifdef __linux__
71
71
sum = 0.0_WP
72
72
time_e = 0.0_WP
73
73
time_s = 0.0_WP
74
- Call timer_cgt (time_s, CLOCK_THREAD_CPUTIME_ID )
75
- Do j= 1 , __JMAX__
74
+ Call timer_gtd (time_s)
75
+ Do j= 1 , __JMAX__
76
76
Do i= 1 , __IMAX__
77
- sum = sum + REAL (i+ j,WP)
77
+ sum = sum + Real (i+ j,WP)
78
78
End Do
79
79
End Do
80
- Call timer_cgt (time_e, CLOCK_THREAD_CPUTIME_ID )
80
+ Call timer_gtd (time_e)
81
81
delta = time_e - time_s
82
- Write (* ,' ( " C clock_gettime (THREAD_CPUTIME) = ", 1PE22.15," Linux only" )' ) delta
82
+ Write (* ,' ( " C gettimeofday = ", 1PE22.15)' ) delta
83
83
Write (buf,' (1PE22.15)' ) sum
84
- #endif
85
-
84
+
86
85
sum = 0.0_WP
87
86
time_e = 0.0_WP
88
87
time_s = 0.0_WP
89
- Call timer_dt (time_s)
88
+ Call timer_cgt (time_s, CLOCK_MONOTONIC )
90
89
Do j= 1 , __JMAX__
91
90
Do i= 1 , __IMAX__
92
- sum = sum + REAL (i+ j,WP)
91
+ sum = sum + Real (i+ j,WP)
93
92
End Do
94
93
End Do
95
- Call timer_dt (time_e)
94
+ Call timer_cgt (time_e, CLOCK_MONOTONIC )
96
95
delta = time_e - time_s
97
- Write (* ,' ( " DATE_AND_TIME = ", 1PE22.15)' ) delta
96
+ Write (* ,' ( " C clock_gettime (MONOTONIC) = ", 1PE22.15)' ) delta
98
97
Write (buf,' (1PE22.15)' ) sum
99
98
100
99
sum = 0.0_WP
101
100
time_e = 0.0_WP
102
101
time_s = 0.0_WP
103
- Call CPU_TIME (time_s)
102
+ Call timer_cgt (time_s, CLOCK_REALTIME )
104
103
Do j= 1 , __JMAX__
105
104
Do i= 1 , __IMAX__
106
- sum = sum + REAL (i+ j,WP)
105
+ sum = sum + Real (i+ j,WP)
107
106
End Do
108
107
End Do
109
- Call CPU_TIME (time_e)
108
+ Call timer_cgt (time_e, CLOCK_REALTIME )
110
109
delta = time_e - time_s
111
- Write (* ,' ( " CPU_TIME = ", 1PE22.15)' ) delta
110
+ Write (* ,' ( " C clock_gettime (REALTIME) = ", 1PE22.15)' ) delta
112
111
Write (buf,' (1PE22.15)' ) sum
113
112
113
+ #ifdef __linux__
114
114
sum = 0.0_WP
115
115
time_e = 0.0_WP
116
116
time_s = 0.0_WP
117
- Call timer_sc (time_s)
117
+ Call timer_cgt (time_s, CLOCK_THREAD_CPUTIME_ID )
118
118
Do j= 1 , __JMAX__
119
119
Do i= 1 , __IMAX__
120
- sum = sum + REAL (i+ j,WP)
120
+ sum = sum + Real (i+ j,WP)
121
121
End Do
122
122
End Do
123
- Call timer_sc (time_e)
123
+ Call timer_cgt (time_e, CLOCK_THREAD_CPUTIME_ID )
124
124
delta = time_e - time_s
125
- Write (* ,' ( " SYSTEM_CLOCK = ", 1PE22.15)' ) delta
125
+ Write (* ,' ( " C clock_gettime (THREAD_CPUTIME) = ", 1PE22.15," Linux only" )' ) delta
126
126
Write (buf,' (1PE22.15)' ) sum
127
-
127
+ #endif
128
+
128
129
Print * ,' '
129
- Print * ,' DATE_AND_TIME and SYSTEM_CLOCK increments'
130
+ Print * ,' DATE_AND_TIME, CPU_TIME and SYSTEM_CLOCK increments'
130
131
Print * ,' '
131
132
time_e = 0.0_WP
132
133
time_s = 0.0_WP
@@ -137,6 +138,17 @@ Program test_timers
137
138
End Do
138
139
delta = time_e - time_s
139
140
Write (* ,' ( " DATE_AND_TIME increment = ", 1PE22.15)' ) delta
141
+
142
+ time_e = 0.0_WP
143
+ time_s = 0.0_WP
144
+ Call CPU_TIME(time_s)
145
+ Do
146
+ Call CPU_TIME(time_e)
147
+ If (time_e > time_s) EXIT
148
+ End Do
149
+ delta = time_e - time_s
150
+ Write (* ,' ( " CPU_TIME increment = ", 1PE22.15)' ) delta
151
+
140
152
time_e = 0.0_WP
141
153
time_s = 0.0_WP
142
154
Call timer_sc(time_s)
@@ -147,6 +159,7 @@ Program test_timers
147
159
delta = time_e - time_s
148
160
Write (* ,' ( " SYSTEM_CLOCK increment = ", 1PE22.15)' ) delta
149
161
Print * ,' '
162
+
150
163
Stop
151
164
152
165
End Program test_timers
0 commit comments