pic_flop_rate is a convenient encapsulation of the flop_recorder and pic_timer it is used to measure the flop rate of a given operation, and report it
derived type for flop rate, contains a timer and a flop recorder
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=dp), | private | :: | m_flop_rate |
private by default so that people use the accessor functions |
|||
type(flop_recorder_type), | private | :: | m_flops | ||||
type(pic_timer_type), | private | :: | m_timer |
procedure, public :: add_flops => flop_rate_add_flops | |
procedure, public :: get_flop_rate => flop_rate_get_flop_rate | |
procedure, public :: get_flops => flop_rate_get_flops | |
procedure, public :: get_time => flop_rate_get_time | |
procedure, public :: report => flop_rate_report | |
procedure, public :: reset => flop_rate_reset | |
procedure, public :: start_time => flop_rate_start_time | |
procedure, public :: stop_time => flop_rate_stop_time |
get the flop rate in GFLOP/s, this will calculate the flop rate based on the number of flops and the elapsed time
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(flop_rate_type), | intent(inout) | :: | self |
get the number of flops recorded in the flop rate type
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(flop_rate_type), | intent(in) | :: | self |
get the elapsed time in seconds from the timer contained in the flop rate type
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(flop_rate_type), | intent(in) | :: | self |
add flops to the flop rate type, this will add the flops to the flop recorder Usage: call my_flop_rate%add_flops(1000)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(flop_rate_type), | intent(inout) | :: | self | |||
integer(kind=int64), | intent(in) | :: | flops |
report the flop rate, this will print the flop rate in GFLOP/s
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(flop_rate_type), | intent(inout) | :: | self |
reset the flop rate type, this will reset the timer and the flop recorder
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(flop_rate_type), | intent(inout) | :: | self |
Calls the start method for the timer contained in the flop rate type
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(flop_rate_type), | intent(inout) | :: | self |
Calls the stop method for the timer contained in the flop rate type
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(flop_rate_type), | intent(inout) | :: | self |