74 logical(
LK) :: assertion
79 integer(
IK) :: miniter_def
80 integer(
IK) :: miniter
81 real(
RKD) :: minsec_def
95 assertion
= assertion
.and. logical(
bench%name
== SK_
"testing",
LK)
96 call test%assert(assertion, line
= int(__LINE__,
IK))
98 TimerSYS
%start
= TimerSYS
%time()
100 TimerSYS
%delta
= TimerSYS
%time(since
= TimerSYS
%start)
102 call test%assert(assertion, line
= int(__LINE__,
IK))
103 assertion
= assertion
.and. logical(
size(
bench%timing
%values,
kind = IK)
>= miniter_def,
LK)
104 call test%assert(assertion, line
= int(__LINE__,
IK))
107 assertion
= assertion
.and. logical(
bench%name
== SK_
"testing",
LK)
108 call test%assert(assertion, line
= int(__LINE__,
IK))
111 assertion
= assertion
.and. logical(
size(
bench%timing
%values,
kind = IK)
>= miniter_def,
LK)
112 call test%assert(assertion, line
= int(__LINE__,
IK))
115 assertion
= assertion
.and. logical(
bench%name
== SK_
"testing",
LK)
116 call test%assert(assertion, line
= int(__LINE__,
IK))
117 assertion
= assertion
.and. logical(
bench%minsec
== minsec,
LK)
118 call test%assert(assertion, line
= int(__LINE__,
IK))
121 assertion
= assertion
.and. logical(
size(
bench%timing
%values,
kind = IK)
>= miniter_def,
LK)
122 call test%assert(assertion, line
= int(__LINE__,
IK))
125 assertion
= assertion
.and. logical(
bench%name
== SK_
"testing",
LK)
126 call test%assert(assertion, line
= int(__LINE__,
IK))
127 assertion
= assertion
.and. logical(
bench%minsec
== minsec,
LK)
128 call test%assert(assertion, line
= int(__LINE__,
IK))
129 assertion
= assertion
.and. logical(
bench%miniter
== miniter,
LK)
130 call test%assert(assertion, line
= int(__LINE__,
IK))
133 assertion
= assertion
.and. logical(
bench%name
== SK_
"testing",
LK)
134 call test%assert(assertion, line
= int(__LINE__,
IK))
135 assertion
= assertion
.and. logical(
bench%minsec
== minsec,
LK)
136 call test%assert(assertion, line
= int(__LINE__,
IK))
137 assertion
= assertion
.and. logical(
bench%miniter
== miniter,
LK)
138 call test%assert(assertion, line
= int(__LINE__,
IK))
140 TimerCPU
%start
= TimerCPU
%time()
142 TimerCPU
%delta
= TimerCPU
%time(since
= TimerCPU
%start)
144 call test%assert(assertion, line
= int(__LINE__,
IK))
147 assertion
= assertion
.and. logical(
bench%name
== SK_
"testing",
LK)
148 call test%assert(assertion, line
= int(__LINE__,
IK))
149 assertion
= assertion
.and. logical(
bench%minsec
== minsec,
LK)
150 call test%assert(assertion, line
= int(__LINE__,
IK))
151 assertion
= assertion
.and. logical(
bench%miniter
== miniter,
LK)
152 call test%assert(assertion, line
= int(__LINE__,
IK))
154 TimerDAT
%start
= TimerDAT
%time()
156 TimerDAT
%delta
= TimerDAT
%time(since
= TimerDAT
%start)
160 call test%assert(assertion, line
= int(__LINE__,
IK))
161 assertion
= assertion
.and. logical(
size(
bench%timing
%values,
kind = IK)
>= miniter,
LK)
162 call test%assert(assertion, line
= int(__LINE__,
IK))
165 assertion
= assertion
.and. logical(
bench%name
== SK_
"testing",
LK)
166 call test%assert(assertion, line
= int(__LINE__,
IK))
167 assertion
= assertion
.and. logical(
bench%minsec
== minsec,
LK)
168 call test%assert(assertion, line
= int(__LINE__,
IK))
169 assertion
= assertion
.and. logical(
bench%miniter
== miniter,
LK)
170 call test%assert(assertion, line
= int(__LINE__,
IK))
172 TimerSYS
%start
= TimerSYS
%time()
174 TimerSYS
%delta
= TimerSYS
%time(since
= TimerSYS
%start)
176 call test%assert(assertion, line
= int(__LINE__,
IK))
177 assertion
= assertion
.and. logical(
size(
bench%timing
%values,
kind = IK)
>= miniter,
LK)
178 call test%assert(assertion, line
= int(__LINE__,
IK))
181 assertion
= assertion
.and. logical(
size(
bench%timing
%values,
kind = IK)
>= miniter,
LK)
182 call test%assert(assertion, line
= int(__LINE__,
IK))
185 assertion
= assertion
.and. logical(
size(
bench%timing
%values,
kind = IK)
>= miniter,
LK)
186 call test%assert(assertion, line
= int(__LINE__,
IK))
189 assertion
= assertion
.and. logical(
size(
bench%timing
%values,
kind = IK)
>= miniter,
LK)
190 call test%assert(assertion, line
= int(__LINE__,
IK))
193 assertion
= assertion
.and. logical(
size(
bench%timing
%values,
kind = IK)
>= miniter,
LK)
194 call test%assert(assertion, line
= int(__LINE__,
IK))
197 assertion
= assertion
.and. logical(
size(
bench%timing
%values,
kind = IK)
>= miniter,
LK)
198 call test%assert(assertion, line
= int(__LINE__,
IK))
201 call test%assert(assertion, line
= int(__LINE__,
IK))
204 assertion
= assertion
.and. logical(
size(
bench%timing
%values,
kind = IK)
>= miniter,
LK)
205 call test%assert(assertion, line
= int(__LINE__,
IK))
209 assertion
= assertion
.and. logical(
size(
bench%timing
%values,
kind = IK)
>= miniter,
LK)
210 call test%assert(assertion, line
= int(__LINE__,
IK))
218 logical(
LK) :: assertion
222 assertion
= .true._LK
230 call test%assert(assertion, line
= int(__LINE__,
IK))
232 call test%assert(assertion, line
= int(__LINE__,
IK))
233 call benchMulti
%showsum(
unit = disp%unit, tabular
= .true._LK)
234 call test%assert(assertion, line
= int(__LINE__,
IK))
235 call benchMulti
%showsum(
unit = disp%unit, tabular
= .false._LK)
236 call test%assert(assertion, line
= int(__LINE__,
IK))
280 real :: summ, Matrix(
100,
100)
281 call random_number(Matrix)
287end module test_pm_bench
Generate and return an object of type timing_type containing the benchmark timing information and sta...
Time the user-specified procedure wrapper in the parent object of type bench_type and store the outpu...
Time the user-specified procedure wrappers in the case vector component of the parent object of type ...
This module contains abstract interfaces and types that facilitate benchmarking of different procedur...
character(*, SK), parameter MODULE_NAME
This module contains classes and procedures for input/output (IO) or generic display operations on st...
type(display_type) disp
This is a scalar module variable an object of type display_type for general display.
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
integer, parameter RK
The default real kind in the ParaMonte library: real64 in Fortran, c_double in C-Fortran Interoperati...
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
integer, parameter RKQ
The quadru-precision real kind in Fortran mode. On most platforms, this is an 128-bit real kind.
integer, parameter RKD
The double precision real kind in Fortran mode. On most platforms, this is an 64-bit real kind.
integer, parameter RKS
The single-precision real kind in Fortran mode. On most platforms, this is an 32-bit real kind.
This module contains a simple unit-testing framework for the Fortran libraries, including the ParaMon...
This module contains the timer procedures and derived types to facilitate timing applications at runt...
This module contains tests of the module pm_bench.
subroutine procwrap_RKS()
logical(LK) function test_constructBenchMulti()
real function wasteTime()
subroutine procwrap_RKQ()
logical(LK) function test_constructBench()
subroutine overhead_RKQ()
subroutine overhead_RKS()
subroutine procwrap_RKD()
subroutine overhead_RKD()
This is the class for creating object to perform multiple benchmarks and performance-profiling.
This is the class for creating benchmark and performance-profiling objects.
Generate and return an object of type display_type.
This is the derived type test_type for generating objects that facilitate testing of a series of proc...
This is the timerCPU_type class, containing attributes and static methods for setting up a timer base...
This is the timerDAT_type class, containing attributes and static methods for setting up a timer base...
This is the timerSYS_type class, containing attributes and static methods for setting up a timer base...
subroutine bench(sort, arraySize)