129 real(
RKD) :: overhead
= 0._RKD
130 real(
RKD) :: min
= -huge(
0._RKD)
131 real(
RKD) :: max
= -huge(
0._RKD)
132 real(
RKD) :: std
= -huge(
0._RKD)
133 real(
RKD) :: mean
= -huge(
0._RKD)
137 real(
RKD) ,
allocatable :: values(:)
201 real(
RKD) :: minsec
= 0.05_RKD
202 integer(
IK) :: miniter
= 1_IK
204 character(:,
SK) ,
allocatable :: name
309 module function benchBase_typer(name, minsec, miniter, timer)
result(benchBase)
310#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
315 character(
*, SK) ,
intent(in) :: name
316 real(RKD) ,
intent(in) ,
optional :: minsec
317 integer(IK) ,
intent(in) ,
optional :: miniter
318 class(timer_type) ,
intent(in) ,
optional :: timer
319 type(benchBase_type) :: benchBase
388 procedure(
exec_proc),
pointer,
nopass,
private :: exec => null()
390 procedure(
exec_proc),
pointer,
nopass,
private :: overhead => null()
499 module function bench_typer(name, exec, overhead, minsec, miniter, timer)
result(bench)
500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
504 character(
*, SK) ,
intent(in) :: name
505 procedure(exec_proc) :: exec
506 procedure(exec_proc) ,
optional :: overhead
507 real(RKD) ,
intent(in),
optional :: minsec
508 integer(IK) ,
intent(in),
optional :: miniter
509 class(timer_type) ,
intent(in),
optional :: timer
510 type(bench_type) :: bench
575 module function getTimingMethod(self, minsec, miniter)
result(timing)
576#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
577 !DEC$ ATTRIBUTES DLLEXPORT :: getTimingMethod
580 class(bench_type) ,
intent(inout) :: self
581 integer(IK) ,
intent(in) ,
optional :: miniter
582 real(RKD) ,
intent(in) ,
optional :: minsec
583 type(timing_type) :: timing
644 module subroutine setTimingMethod(self, minsec, miniter)
645#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
646 !DEC$ ATTRIBUTES DLLEXPORT :: setTimingMethod
649 class(bench_type) ,
intent(inout) :: self
650 integer(IK) ,
intent(in) ,
optional :: miniter
651 real(RKD) ,
intent(in) ,
optional :: minsec
738 character(:, SK) ,
allocatable :: name
817#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
821 type(benchMulti_type) :: self
822 type(bench_type) ,
intent(in),
contiguous :: case(:)
823 logical(LK) ,
intent(in),
optional :: sorted
824 integer(IK) ,
intent(in),
optional :: repeat
874 module subroutine showsum_(self, unit, tabular)
875#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
876 !DEC$ ATTRIBUTES DLLEXPORT :: showsum_
878 class(benchMulti_type) ,
intent(in) :: self
879 integer(IK) ,
intent(in),
optional :: unit
880 logical(LK) ,
intent(in),
optional :: tabular
889#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
894 nullify(self
%overhead)
923#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
Construct and return an object of type benchBase_type.
Construct, perform multiple benchmarking, and return the multiple benchmarking results as an object o...
Construct and return an object of type bench_type.
This is the abstract interface of the exec static type-bound procedure pointer component of bench_typ...
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...
subroutine finalizeBench(self)
impure subroutine doNothing()
Take nothing, do nothing, and return nothing.
character(*, SK), parameter MODULE_NAME
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
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 RKD
The double precision real kind in Fortran mode. On most platforms, this is an 64-bit real kind.
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
This module contains the timer procedures and derived types to facilitate timing applications at runt...
This is the base class for creating low-level benchmark objects.
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.
This is the base class for creating objects that hold the timing information of a benchmark and the t...
This is the timerMPI_type class, containing attributes and static methods for setting up a timer base...
This is the timerMPI_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...
This is the abstract base derived type that serves as a simple container template for other timer cla...