lammps/doc/html/timer.html

308 lines
13 KiB
HTML

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>timer command &mdash; LAMMPS documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/sphinxcontrib-images/LightBox2/lightbox2/css/lightbox.css" type="text/css" />
<link rel="top" title="LAMMPS documentation" href="index.html"/>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-nav-search">
<a href="Manual.html" class="icon icon-home"> LAMMPS
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="Section_intro.html">1. Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_start.html">2. Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_commands.html">3. Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_packages.html">4. Packages</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_accelerate.html">5. Accelerating LAMMPS performance</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_howto.html">6. How-to discussions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_example.html">7. Example problems</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_perf.html">8. Performance &amp; scalability</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_tools.html">9. Additional tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_modify.html">10. Modifying &amp; extending LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_python.html">11. Python interface to LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_errors.html">12. Errors</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_history.html">13. Future and history</a></li>
</ul>
</div>
&nbsp;
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="Manual.html">LAMMPS</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="Manual.html">Docs</a> &raquo;</li>
<li>timer command</li>
<li class="wy-breadcrumbs-aside">
<a href="http://lammps.sandia.gov">Website</a>
<a href="Section_commands.html#comm">Commands</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="timer-command">
<span id="index-0"></span><h1>timer command</h1>
<div class="section" id="syntax">
<h2>Syntax</h2>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">timer</span> <span class="n">args</span>
</pre></div>
</div>
<ul class="simple">
<li><em>args</em> = one or more of <em>off</em> or <em>loop</em> or <em>normal</em> or <em>full</em> or <em>sync</em> or <em>nosync</em> or <em>timeout</em> or <em>every</em></li>
</ul>
<pre class="literal-block">
<em>off</em> = do not collect or print any timing information
<em>loop</em> = collect only the total time for the simulation loop
<em>normal</em> = collect timer information broken down by sections (default)
<em>full</em> = like <em>normal</em> but also include CPU and thread utilzation
<em>sync</em> = explicitly synchronize MPI tasks between sections
<em>nosync</em> = do not synchronize MPI tasks between sections (default)
<em>timeout</em> elapse = set walltime limit to <em>elapse</em>
<em>every</em> Ncheck = perform timeout check every <em>Ncheck</em> steps
</pre>
</div>
<div class="section" id="examples">
<h2>Examples</h2>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">timer</span> <span class="n">full</span> <span class="n">sync</span>
<span class="n">timer</span> <span class="n">timeout</span> <span class="mi">2</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span> <span class="n">every</span> <span class="mi">100</span>
<span class="n">timer</span> <span class="n">loop</span>
</pre></div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>Select the level of detail at which LAMMPS performs its CPU timings.
Multiple keywords can be specified with the <em>timer</em> command. For
keywords that are mutually exclusive, the last one specified takes
effect.</p>
<p>During a simulation run LAMMPS collects information about how much
time is spent in different sections of the code and thus can provide
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 <a class="reference internal" href="Section_start.html#start-8"><span class="std std-ref">discussion of screen output</span></a>.</p>
<p>The <em>off</em> setting will turn all time measurements off. The <em>loop</em>
setting will only measure the total time for a run and not collect any
detailed per section information. With the <em>normal</em> 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 <em>full</em> setting adds information about CPU
utilization and thread utilization, when multi-threading is enabled.</p>
<p>With the <em>sync</em> 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 <em>nosync</em> setting (which is the
default) turns off this synchronization.</p>
<p>With the <em>timeout</em> keyword a walltime limit can be imposed that
affects the <a class="reference internal" href="run.html"><span class="doc">run</span></a> and <a class="reference internal" href="minimize.html"><span class="doc">minimize</span></a> commands.
This can be convenient when runs have to confirm to time limits,
e.g. when running under a batch system and you want to maximize
the utilization of the batch time slot, especially when the time
per timestep varies and is thus difficult to predict how many
steps a simulation can perform, or for difficult to converge
minimizations. The timeout <em>elapse</em> value should be somewhat smaller
than the time requested from the batch system, as there is usually
some overhead to launch jobs, and it may be advisable to write
out a restart after terminating a run due to a timeout.</p>
<p>The timeout timer starts when the command is issued. When the time
limit is reached, the run or energy minimization will exit on the
next step or iteration that is a multiple of the <em>Ncheck</em> value
which can be set with the <em>every</em> keyword. Default is checking
every 10 steps. After the timer timeout has expired all subsequent
run or minimize commands in the input script will be skipped.
The remaining time or timer status can be accessed with the
<a class="reference internal" href="thermo_style.html"><span class="doc">thermo</span></a> variable <em>timeremain</em>, which will be
zero, if the timeout is inactive (default setting), it will be
negative, if the timeout time is expired and positive if there
is time remaining and in this case the value of the variable are
the number of seconds remaining.</p>
<p>When the <em>timeout</em> key word is used a second time, the timer is
restarted with a new time limit. The timeout <em>elapse</em> value can
be specified as <em>off</em> or <em>unlimited</em> to impose a no timeout condition
(which is the default). The <em>elapse</em> setting can be specified as
a single number for seconds, two numbers separated by a colon (MM:SS)
for minutes and seconds, or as three numbers separated by colons for
hours, minutes, and seconds (H:MM:SS).</p>
<p>The <em>every</em> keyword sets how frequently during a run or energy
minimization the wall clock will be checked. This check count applies
to the outer iterations or time steps during minimizations or <a class="reference internal" href="run_style.html"><span class="doc">r-RESPA runs</span></a>, respectively. Checking for timeout too often,
can slow a calculation down. Checking too infrequently can make the
timeout measurement less accurate, with the run being stopped later
than desired.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Using the <em>full</em> and <em>sync</em> 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 <em>normal</em> setting
can have a measurable negative performance impact. In those cases you
can just use the <em>loop</em> or <em>off</em> setting.</p>
</div>
</div>
<div class="section" id="restrictions">
<h2>Restrictions</h2>
<blockquote>
<div>none</div></blockquote>
</div>
<div class="section" id="related-commands">
<h2>Related commands</h2>
<p><a class="reference internal" href="run.html"><span class="doc">run post no</span></a>, <a class="reference internal" href="kspace_modify.html"><span class="doc">kspace_modify fftbench</span></a></p>
</div>
<div class="section" id="default">
<h2>Default</h2>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">timer</span> <span class="n">normal</span> <span class="n">nosync</span>
<span class="n">timer</span> <span class="n">timeout</span> <span class="n">off</span>
<span class="n">timer</span> <span class="n">every</span> <span class="mi">10</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2013 Sandia Corporation.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/sphinxcontrib-images/LightBox2/lightbox2/js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="_static/sphinxcontrib-images/LightBox2/lightbox2/js/lightbox.min.js"></script>
<script type="text/javascript" src="_static/sphinxcontrib-images/LightBox2/lightbox2-customize/jquery-noconflict.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>