flop_rate_get_flop_rate Function

private function flop_rate_get_flop_rate(self) result(flop_rate)

get the flop rate in GFLOP/s, this will calculate the flop rate based on the number of flops and the elapsed time

Usage: flop_rate = my_flop_rate%get_flop_rate()

where my_flop_rate is an instance of flop_rate_type

Type Bound

flop_rate_type

Arguments

Type IntentOptional Attributes Name
class(flop_rate_type), intent(inout) :: self

Return Value real(kind=dp)


Calls

proc~~flop_rate_get_flop_rate~~CallsGraph proc~flop_rate_get_flop_rate flop_rate_type%flop_rate_get_flop_rate proc~get_flops flop_recorder_type%get_flops proc~flop_rate_get_flop_rate->proc~get_flops proc~timer_get_elapsed_time pic_timer_type%timer_get_elapsed_time proc~flop_rate_get_flop_rate->proc~timer_get_elapsed_time

Called by

proc~~flop_rate_get_flop_rate~~CalledByGraph proc~flop_rate_get_flop_rate flop_rate_type%flop_rate_get_flop_rate proc~flop_rate_report flop_rate_type%flop_rate_report proc~flop_rate_report->proc~flop_rate_get_flop_rate

Variables

Type Visibility Attributes Name Initial
integer(kind=int64), private :: flops
real(kind=dp), private :: time

Source Code

   function flop_rate_get_flop_rate(self) result(flop_rate)
      !! get the flop rate in GFLOP/s, this will calculate the flop rate based on the
      !! number of flops and the elapsed time
      !!
      !! Usage: flop_rate = my_flop_rate%get_flop_rate()
      !!
      !! where my_flop_rate is an instance of flop_rate_type
      !!
      class(flop_rate_type), intent(inout) :: self
      real(dp) :: flop_rate
      real(dp) :: time
      integer(int64) :: flops

      flops = self%m_flops%get()
      time = self%m_timer%get_elapsed_time()
      if (time <= 0.0_dp) then
         print *, "Warning: Time is zero or negative, setting flop rate to zero."
         self%m_flop_rate = 0.0_dp
         flop_rate = 0.0_dp
         return
      else
         self%m_flop_rate = flops/time/1.0e9_dp
         flop_rate = self%m_flop_rate
      end if
   end function flop_rate_get_flop_rate