utils_timing
Module
Description
This module contains utilities for code timings
- References:
None
- Owner:
Daniel Price
- Runtime parameters:
None
- Dependencies:
io, mpiutils
Quick access
- Types:
- Variables:
finish_timer_tree_symbols
,get_timer_level
,init_timer
,initialise_timing
,istarttime
,itimer_balance
,itimer_cons2prim
,itimer_dens
,itimer_dens_local
,itimer_dens_remote
,itimer_ev
,itimer_extf
,itimer_force
,itimer_force_local
,itimer_force_remote
,itimer_fromstart
,itimer_io
,itimer_lastdump
,itimer_link
,itimer_rad_arrays
,itimer_rad_diff
,itimer_rad_flux
,itimer_rad_its
,itimer_rad_neighlist
,itimer_rad_save
,itimer_rad_store
,itimer_rad_update
,itimer_radiation
,itimer_step
,ntimers
,starttime
,timer
,timers
,treelabel_len
- Routines:
get_timings()
,getused()
,increment_timer()
,log_timing()
,print_time()
,print_timer()
,printused()
,reduce_timer_mpi()
,reduce_timers()
,reset_timer()
,setup_timers()
,wallclock()
Types
- type timing/timer
- Type fields:
% cpu [real]
% label [character]
% loadbal [real]
% parent [integer]
% treelabel [character]
% treesymbol (5) [integer,optional/default=-1]
% wall [real]
Variables
- timing/finish_timer_tree_symbols [private]
- timing/get_timer_level [private]
- timing/init_timer [private]
- timing/initialise_timing [private]
- timing/istarttime (6) [integer,private]
- timing/itimer_balance [integer,parameter=5]
- timing/itimer_cons2prim [integer,parameter=21]
- timing/itimer_dens [integer,parameter=6]
- timing/itimer_dens_local [integer,parameter=7]
- timing/itimer_dens_remote [integer,parameter=8]
- timing/itimer_ev [integer,parameter=23]
- timing/itimer_extf [integer,parameter=22]
- timing/itimer_force [integer,parameter=9]
- timing/itimer_force_local [integer,parameter=10]
- timing/itimer_force_remote [integer,parameter=11]
- timing/itimer_fromstart [integer,parameter=1]
- timing/itimer_io [integer,parameter=24]
- timing/itimer_lastdump [integer,parameter=2]
- timing/itimer_link [integer,parameter=4]
- timing/itimer_rad_arrays [integer,parameter=15]
- timing/itimer_rad_diff [integer,parameter=18]
- timing/itimer_rad_flux [integer,parameter=17]
- timing/itimer_rad_its [integer,parameter=16]
- timing/itimer_rad_neighlist [integer,parameter=14]
- timing/itimer_rad_save [integer,parameter=13]
- timing/itimer_rad_store [integer,parameter=20]
- timing/itimer_rad_update [integer,parameter=19]
- timing/itimer_radiation [integer,parameter=12]
- timing/itimer_step [integer,parameter=3]
- timing/ntimers [integer,parameter=24]
should be equal to the largest itimer index
- timing/starttime [real,private/optional/default=-1.0]
- timing/timer [private]
- timing/treelabel_len [integer,private/parameter/optional/default=30]
Subroutines and functions
- subroutine timing/setup_timers()
These timers must be initialised with the correct tree hierarchy, i.e. children must immediately follow their parents or siblings
timer from array label parent
- subroutine timing/reset_timer(itimer)
- Parameters:
itimer [integer,in]
- subroutine timing/increment_timer(itimer, wall, cpu)
- Parameters:
itimer [integer,in]
wall [real,in]
cpu [real,in]
- Called from:
- subroutine timing/reduce_timers()
- Call to:
- subroutine timing/reduce_timer_mpi(itimer)
- Parameters:
itimer [integer,in]
- Use :
io
(nprocs()
),mpiutils
(reduceall_mpi()
)- Called from:
- subroutine timing/print_timer(lu, itimer, time_total)
- Parameters:
lu [integer,in]
itimer [integer,in]
time_total [real,in]
- subroutine timing/log_timing(label, twall, tcpu[, start[, iunit]])
- Parameters:
label [character,in]
twall [real,in]
tcpu [real,in]
start [logical,in,]
iunit [integer,in,]
- Called from:
- subroutine timing/getused(tused)
- Parameters:
tused [real,out]
- Called from:
- subroutine timing/printused(t1[, string_bn[, iunit]])
- Parameters:
t1 [real,in]
string_bn [character,in,]
iunit [integer,in,]
- Called from:
- Call to:
- subroutine timing/print_time(time[, string_bn[, iunit]])
- Parameters:
time [real,in]
string_bn [character,in,]
iunit [integer,in,]
- Called from:
- subroutine timing/get_timings(twall, tcpu)
- Parameters:
twall [real,out]
tcpu [real,out]
- Called from:
- Call to:
- function timing/wallclock()
Return the wall clock time, with corrections for “across midnight” situations. From a routine originally by Aake Nordlund
- Return:
wallclock [real] :: remember