forked from lijiext/lammps
89 lines
2.8 KiB
Plaintext
89 lines
2.8 KiB
Plaintext
|
.. index:: timer
|
||
|
|
||
|
timer command
|
||
|
=============
|
||
|
|
||
|
Syntax
|
||
|
""""""
|
||
|
|
||
|
.. parsed-literal::
|
||
|
|
||
|
timer args
|
||
|
|
||
|
* *args* = one or more of *off* or *loop* or *normal* or *full* or *sync* or *nosync*
|
||
|
.. parsed-literal::
|
||
|
|
||
|
*off* = do not collect or print any timing information
|
||
|
*loop* = collect only the total time for the simulation loop
|
||
|
*normal* = collect timer information broken down by sections (default)
|
||
|
*full* = like *normal* but also include CPU and thread utilzation
|
||
|
*sync* = explicitly synchronize MPI tasks between sections
|
||
|
*nosync* = do not synchronize MPI tasks between sections (default)
|
||
|
|
||
|
Examples
|
||
|
""""""""
|
||
|
|
||
|
.. parsed-literal::
|
||
|
|
||
|
timer full sync
|
||
|
timer loop
|
||
|
|
||
|
Description
|
||
|
"""""""""""
|
||
|
|
||
|
Select the level of detail LAMMPS performs its CPU timings.
|
||
|
|
||
|
During a simulation run LAMMPS collects information about how much
|
||
|
time is spent in different sections of the code and thus can provide
|
||
|
valuable information for determining performance and load imbalance
|
||
|
problems. This can be done at different levels of detail and
|
||
|
accuracy. For more information about the timing output, see this
|
||
|
:ref:`discussion of screen output <start_8>`.
|
||
|
|
||
|
The *off* setting will turn all time measurements off. The *loop*
|
||
|
setting will only measure the total time for a run and not collect any
|
||
|
detailed per section information. With the *normal* setting, timing
|
||
|
information for portions of the timestep (pairwise calculations,
|
||
|
neighbor list construction, output, etc) are collected as well as
|
||
|
information about load imbalances for those sections across
|
||
|
procsessors. The *full* setting adds information about CPU
|
||
|
utilization and thread utilization, when multi-threading is enabled.
|
||
|
|
||
|
With the *sync* setting, all MPI tasks are synchronized at each timer
|
||
|
call which meaures load imbalance more accuractly, though it can also
|
||
|
slow down the simulation. Using the *nosync* setting (which is the
|
||
|
default) turns off this synchronization.
|
||
|
|
||
|
Multiple keywords can be specified. For keywords that are mutually
|
||
|
exclusive, the last one specified takes effect.
|
||
|
|
||
|
.. note::
|
||
|
|
||
|
Using the *full* and *sync* options provides the most detailed
|
||
|
and accurate timing information, but can also have a negative
|
||
|
performance impact due to the overhead of the many required system
|
||
|
calls. It is thus recommended to use these settings only when testing
|
||
|
tests to identify performance bottlenecks. For calculations with few
|
||
|
atoms or a very large number of processors, even the *normal* setting
|
||
|
can have a measurable negative performance impact. In those cases you
|
||
|
can just use the *loop* or *off* setting.
|
||
|
|
||
|
Restrictions
|
||
|
""""""""""""
|
||
|
none
|
||
|
|
||
|
Related commands
|
||
|
""""""""""""""""
|
||
|
|
||
|
:doc:`run post no <run>`, :doc:`kspace_modify fftbench <kspace_modify>`
|
||
|
|
||
|
Default
|
||
|
"""""""
|
||
|
|
||
|
timer normal nosync
|
||
|
|
||
|
|
||
|
.. _lws: http://lammps.sandia.gov
|
||
|
.. _ld: Manual.html
|
||
|
.. _lc: Section_commands.html#comm
|