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. ***********!
***********!
***********!
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 |
Handles for timer objects to measure the time for some code parts
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | init | ||||
integer, | private | :: | preciceInit | ||||
integer, | private | :: | simLoop | ||||
integer, | private | :: | commState | ||||
integer, | private | :: | wRestart | ||||
integer, | private | :: | preprocessKernel | ||||
integer, | private | :: | projectToFace | ||||
integer, | private | :: | setBnd | ||||
integer, | private | :: | invMassMatrix | ||||
integer, | private | :: | numFlux | ||||
integer, | private | :: | physFlux | ||||
integer, | private | :: | pF_initStateDer | ||||
integer, | private | :: | pF_projConv | ||||
integer, | private | :: | pF_pen | ||||
integer, | private | :: | pF_eval | ||||
integer, | private | :: | pF_projectTestFunc | ||||
integer, | private | :: | projectTestFunc | ||||
integer, | private | :: | stabalize | ||||
integer, | private | :: | updateBackground | ||||
integer, | private | :: | get_timestep | ||||
integer, | private | :: | TimeStepInfo | ||||
integer, | private | :: | convergeCheck | ||||
integer, | private | :: | checkVal | ||||
integer, | private | :: | preciceAdv | ||||
integer, | private | :: | readBC | ||||
integer, | private | :: | varElem | ||||
integer, | private | :: | constElem | ||||
integer, | private | :: | gradient | ||||
integer, | private | :: | preciceWrite | ||||
integer, | private | :: | first | = | 0 | Set first timer handle in ateles |
|
integer, | private | :: | last | = | -1 | Set last timer handle in ateles |
This function returns local modular variable atl_timerHandles to apesmate
This function returns local modular variable atl_elemTimers to apesmate
This function returns local modular variable atl_elemTimers to apesmate
Setup timers to assess the runtime of various parts of Ateles.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(treelmesh_type), | intent(in) | :: | tree | Mesh data in treelmesh format. |
This routine sets elementTimers passed by apesmate
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_timer_type), | intent(in) | :: | elemTimers |
This routine sets atl_timerHandles passed by apesmate
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_timer_handle_type), | intent(in) | :: | timerHandles |
This routine sets elementTimers passed by apesmate
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_timer_type), | intent(in) | :: | elemTimers |
Performance results are written to a file for statistical review The file-format is simple can be evaluated with gnuplot
Type | Intent | Optional | 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 |