atl_timer_module Module

This module provides a convenient way to setup timers in the code.

To define a new one, declare an integer module variable here, and add a tem_timer_module::TEM_addTimer statement for it in the ATL_addTimers routine with a label for identification. Then use this module in the relevant code part and call tem_timer_module::TEM_startTimer and tem_timer_module::TEM_stopTimer by passing in this integer.

Upon finishing execution, Ateles will then print the measured time, for this code block into timing.res. ***********!

***********!

***********!


Uses

Used by

  • module~~atl_timer_module~~UsedByGraph module~atl_timer_module atl_timer_module module~atl_compute_local_module atl_compute_local_module module~atl_compute_local_module->module~atl_timer_module module~atl_compute_module atl_compute_module module~atl_compute_module->module~atl_timer_module module~atl_materialini_module atl_materialIni_module module~atl_materialini_module->module~atl_timer_module module~atl_modg_2d_bnd_module atl_modg_2d_bnd_module module~atl_modg_2d_bnd_module->module~atl_timer_module module~atl_modg_2d_euler_kernel_module atl_modg_2d_euler_kernel_module module~atl_modg_2d_euler_kernel_module->module~atl_timer_module module~atl_modg_2d_multilevel_module atl_modg_2d_multilevel_module module~atl_modg_2d_multilevel_module->module~atl_timer_module module~atl_modg_bnd_module atl_modg_bnd_module module~atl_modg_bnd_module->module~atl_timer_module module~atl_modg_multilevel_module atl_modg_multilevel_module module~atl_modg_multilevel_module->module~atl_timer_module module~atl_operator_module atl_operator_module module~atl_operator_module->module~atl_timer_module module~atl_precice_module atl_precice_module module~atl_precice_module->module~atl_timer_module module~atl_program_module atl_program_module module~atl_program_module->module~atl_timer_module module~atl_restart_module atl_restart_module module~atl_restart_module->module~atl_timer_module module~atl_ssprk2_module atl_ssprk2_module module~atl_ssprk2_module->module~atl_timer_module module~atl_stabilize_module atl_stabilize_module module~atl_stabilize_module->module~atl_timer_module module~atl_varsys_module atl_varSys_module module~atl_varsys_module->module~atl_timer_module module~atl_weights_module atl_weights_module module~atl_weights_module->module~atl_timer_module program~ateles ateles program~ateles->module~atl_timer_module program~atl_harvesting atl_harvesting program~atl_harvesting->module~atl_timer_module

Variables

Type Visibility Attributes Name Initial
type(atl_timer_handle_type), public, save :: atl_timerHandles
type(tem_timer_type), public, save :: atl_elemTimers
type(tem_timer_type), public, save :: atl_cpl_elemTimers

Derived Types

type, public ::  atl_timer_handle_type

Handles for timer objects to measure the time for some code parts

Components

Type Visibility Attributes Name Initial
integer, public :: init
integer, public :: preciceInit
integer, public :: simLoop
integer, public :: commState
integer, public :: wRestart
integer, public :: preprocessKernel
integer, public :: projectToFace
integer, public :: setBnd
integer, public :: invMassMatrix
integer, public :: numFlux
integer, public :: physFlux
integer, public :: pF_initStateDer
integer, public :: pF_projConv
integer, public :: pF_pen
integer, public :: pF_eval
integer, public :: pF_projectTestFunc
integer, public :: projectTestFunc
integer, public :: stabalize
integer, public :: updateBackground
integer, public :: get_timestep
integer, public :: TimeStepInfo
integer, public :: convergeCheck
integer, public :: checkVal
integer, public :: preciceAdv
integer, public :: readBC
integer, public :: varElem
integer, public :: constElem
integer, public :: gradient
integer, public :: preciceWrite
integer, public :: first = 0

Set first timer handle in ateles

integer, public :: last = -1

Set last timer handle in ateles


Functions

public function atl_get_timerHandles() result(timerHandles)

This function returns local modular variable atl_timerHandles to apesmate

Arguments

None

Return Value type(atl_timer_handle_type)

public function atl_get_cpl_elemTimers() result(elemTimers)

This function returns local modular variable atl_elemTimers to apesmate

Arguments

None

Return Value type(tem_timer_type)

public function atl_get_elemTimers() result(elemTimers)

This function returns local modular variable atl_elemTimers to apesmate

Arguments

None

Return Value type(tem_timer_type)


Subroutines

public subroutine atl_addTimers()

Setup timers to assess the runtime of various parts of Ateles.

Read more…

Arguments

None

public subroutine atl_resetTimers()

Arguments

None

public subroutine atl_addTimers_perElem(tree)

Setup timers to assess the runtime of various parts of Ateles.

Arguments

Type IntentOptional Attributes Name
type(treelmesh_type), intent(in) :: tree

Mesh data in treelmesh format.

public subroutine atl_set_cpl_elemTimers(elemTimers)

This routine sets elementTimers passed by apesmate

Arguments

Type IntentOptional Attributes Name
type(tem_timer_type), intent(in) :: elemTimers

public subroutine atl_set_timerHandles(timerHandles)

This routine sets atl_timerHandles passed by apesmate

Arguments

Type IntentOptional Attributes Name
type(atl_timer_handle_type), intent(in) :: timerHandles

public subroutine atl_set_elemTimers(elemTimers)

This routine sets elementTimers passed by apesmate

Arguments

Type IntentOptional Attributes Name
type(tem_timer_type), intent(in) :: elemTimers

public subroutine atl_dumptimers(general, nElems, nDofs, nVars)

Performance results are written to a file for statistical review The file-format is simple can be evaluated with gnuplot

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_general_type), intent(in) :: general

Parameters of the current simulation

integer(kind=long_k), intent(in) :: nElems
integer, intent(in) :: nDofs

The number of degrees of freedom per element per scalar variable

integer, intent(in) :: nVars

The number of scalar variables