2 Time statistics files
The variable TIMER_Debug, defined in the namcouple (second
number on the line below $NLOGPRT keyword), is used to obtain time
statistics over all the processors for each routine.
Different output are written (in files named *.timers_xxxx)
depending on TIMER_Debug value :
- TIMER_Debug=0 : nothing is calculated, nothing is written.
- TIMER_Debug=1 : the times are calculated and written in a
single file by the process 0 as well as the min and the max times
over all the processes.
- TIMER_Debug=2 : the times are calculated and each process
writes its own file ; process 0 also writes the min and the max
times over all the processes in its file.
- TIMER_Debug=3 : the times are calculated and each process
writes its own file ; process 0 also writes in its file the min
and the max times over all processes and also writes in its file
all the results for each process.
The time given for each timer is calculated by the difference between
calls to oasis_timer_start() and oasis_timer_stop()
and is the accumulated time over the entire run. Here is an overview
of the meaning of the different timers as implemented by default.
14
- 'total' : total time of the simulation, implemented
in mod_oasis_method (i.e. between the end of oasis_init_comp and the mpi_finalize in routine oasis_terminate).
- 'init_thru_enddef' : time between the end of oasis_init_comp and the end of oasis_enddef, implemented
in mod_oasis_method.
- 'part_definition' : time spent in routine oasis_def_partition.
- 'oasis_enddef' : time spent in
routine oasis_enddef; this routine performs basically all the
important steps to initialize the coupling exchanges, e.g. the
internal management of the partition and variable definition, the
definition of the patterns of communication between the source and
target processes, the reading of the remapping weight-and-address
file and the initialisation of the sparse matrix vector multiplication.
- 'grcv_00x' : time spent in the reception of field x in mct_recv (including communication and possible waiting time
linked to unbalance of components).
- 'wout_00x' : time spent in the I/O for field x in routine
oasis_advance_run.
- 'gcpy_00x' : time spent in routine oasis_advance_run
in copying the field x just received in a local array.
- 'pcpy_00x' : time spent in routine oasis_advance_run
in copying the local field x in the array to send (i.e. with local
transformation besides division for averaging).
- 'pavg_00x' : time spent in routine oasis_advance_run
to calculate the average of field x (if done).
- 'pmap_00x'/'gmap_00x' : time spent in routine oasis_advance_run for the matrix vector multiplication for
field x on the source/target processes.
- 'psnd_00x' : time spent in routine oasis_advance_run
for sending field x (i.e. including call to mct_waitsend and
mct_isend).
- 'wtrn_00x' : time spent in routine oasis_advance_run
to write fields associated with non-instant loctrans operations to
restart files (see section 5.2 for details).
- 'wrst_00x' : time spent in routine oasis_advance_run
to write fields to
restart files (see section 5.2 for details).
Footnotes
- ... default.14
- Many other measures can be obtained by defining the logical
local_timers_on as .true. in different routines or by
implementing other timers. Of course, OASIS3_MCT and the model code then have to be recompiled.