ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_bench Module Reference

This module contains abstract interfaces and types that facilitate benchmarking of different procedures. More...

Data Types

type  bench_type
 This is the class for creating benchmark and performance-profiling objects. More...
 
interface  bench_typer
 Construct and return an object of type bench_type. More...
 
type  benchBase_type
 This is the base class for creating low-level benchmark objects. More...
 
interface  benchBase_typer
 Construct and return an object of type benchBase_type. More...
 
interface  benchMulti_type
 This is the class for creating object to perform multiple benchmarks and performance-profiling. More...
 
interface  benchMulti_typer
 Construct, perform multiple benchmarking, and return the multiple benchmarking results as an object of type benchMulti_type. More...
 
interface  exec_proc
 This is the abstract interface of the exec static type-bound procedure pointer component of bench_type derived type that points to the user-supplied procedure to be timed. More...
 
interface  getTiming
 Generate and return an object of type timing_type containing the benchmark timing information and statistics. More...
 
interface  setTiming
 Time the user-specified procedure wrapper in the parent object of type bench_type and store the output benchmark timing information and statistics implicitly in the timing component of the input/output bench_type object.
More...
 
interface  showsum
 Time the user-specified procedure wrappers in the case vector component of the parent object of type benchMulti_type and store the output benchmark timing information and statistics implicitly in the timing component of the object. More...
 
type  timing_type
 This is the base class for creating objects that hold the timing information of a benchmark and the timing statistics. More...
 

Functions/Subroutines

subroutine finalizeBench (self)
 
impure subroutine doNothing ()
 Take nothing, do nothing, and return nothing.
More...
 

Variables

character(*, SK), parameter MODULE_NAME = SK_"@pm_bench"
 

Detailed Description

This module contains abstract interfaces and types that facilitate benchmarking of different procedures.

The primary useful benchmarking object from this module are

  1. bench_type for benchmarking single or collections of procedures/tasks.
  2. benchMulti_type for facilitating benchmarks of collections of procedures/tasks.

See the documentations of the respective objects for example usage.

See also
pm_timer
Test:
test_pm_bench


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, Wednesday 4:13 AM, August 13, 2016, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Function/Subroutine Documentation

◆ doNothing()

impure subroutine pm_bench::doNothing

Take nothing, do nothing, and return nothing.

This generic interface is simply an empty wrapper to a serve as proxy for subroutine call overhead in benchmarks.

Remarks
The procedures under discussion are impure.
See also
benchMulti_type
Remarks
See benchMulti_type for example usage.
Test:
test_pm_bench


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, Wednesday 4:13 AM, August 13, 2016, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 922 of file pm_bench.F90.

◆ finalizeBench()

subroutine pm_bench::finalizeBench ( type(bench_type), intent(inout)  self)

Definition at line 888 of file pm_bench.F90.

Variable Documentation

◆ MODULE_NAME

character(*, SK), parameter pm_bench::MODULE_NAME = SK_"@pm_bench"

Definition at line 57 of file pm_bench.F90.