<div dir="ltr">Hi,<div><br></div><div>Indeed. I missed this email when Michael wrote it, but I have added a little more flesh on the bones of a provably reproducible build type at <a href="http://redmine.gromacs.org/issues/1587#note-6">http://redmine.gromacs.org/issues/1587#note-6</a></div><div><br></div><div>Mark</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 2, 2014 at 6:20 AM, Shirts, Michael R. (mrs5pt) <span dir="ltr">&lt;<a href="mailto:mrs5pt@eservices.virginia.edu" target="_blank">mrs5pt@eservices.virginia.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div style="word-wrap:break-word;color:rgb(0,0,0);font-size:14px;font-family:Calibri,sans-serif">
<div>
<div><span class="">
<div>&gt; So one can have fully deterministic forces in MD by simply paying a couple of flops per force component in each inner loop.</div>
<div><br>
</div>
</span><div>If there was a way to overload functions in such a way as to make this a compile time option, it might be pretty useful for validation . . .</div>
<div>
<div><br>
</div>
~~~~~~~~~~~~<br>
Michael Shirts<br>
Associate Professor<br>
Department of Chemical Engineering<br>
University of Virginia<br>
<a href="http://michael.shirts@virginia.edu" target="_blank">michael.shirts@virginia.edu</a><br>
(434) 243-1821</div>
</div>
</div>
<div><br>
</div>
<span>
<div style="font-family:Calibri;font-size:14pt;text-align:left;color:black;BORDER-BOTTOM:medium none;BORDER-LEFT:medium none;PADDING-BOTTOM:0in;PADDING-LEFT:0in;PADDING-RIGHT:0in;BORDER-TOP:#b5c4df 1pt solid;BORDER-RIGHT:medium none;PADDING-TOP:3pt">
<span style="font-weight:bold">From: </span>Mark Abraham &lt;<a href="mailto:mark.j.abraham@gmail.com" target="_blank">mark.j.abraham@gmail.com</a>&gt;<br>
<span style="font-weight:bold">Reply-To: </span>&quot;<a href="mailto:gmx-developers@gromacs.org" target="_blank">gmx-developers@gromacs.org</a>&quot; &lt;<a href="mailto:gmx-developers@gromacs.org" target="_blank">gmx-developers@gromacs.org</a>&gt;<br>
<span style="font-weight:bold">Date: </span>Sunday, November 30, 2014 at 5:40 AM<br>
<span style="font-weight:bold">To: </span>Discussion list for GROMACS development &lt;<a href="mailto:gmx-developers@gromacs.org" target="_blank">gmx-developers@gromacs.org</a>&gt;<br>
<span style="font-weight:bold">Subject: </span>Re: [gmx-developers] reproducability of md sims<br>
</div><div><div class="h5">
<div><br>
</div>
<div>
<div>
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Sun, Nov 30, 2014 at 12:03 PM, Carsten Kutzner <span dir="ltr">
&lt;<a href="mailto:ckutzne@gwdg.de" target="_blank">ckutzne@gwdg.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Hi,<br>
<span><br>
On 30 Nov 2014, at 11:17, Berk Hess &lt;<a href="mailto:hess@kth.se" target="_blank">hess@kth.se</a>&gt; wrote:<br>
<br>
&gt; Hi,<br>
&gt;<br>
&gt; There is documentation on this somewhere.<br>
&gt; Even when running with MPI and/or OpenMP simulations should be reproducible when ran on an identical run<br>
</span>But reductions of several summands into a sum do not yield a bit-identical result across runs.<br>
Therefore I think at least with MPI and/or OpenMP we will never get bit-identical<br>
trajectories unless the order of summation is fixed somehow for such operations.<br>
</blockquote>
<div><br>
</div>
<div>True, but not the whole story. You can leave the order free if you pre-round the operands such that the result is provably insensitive to the order of the operations. See <a href="http://htor.inf.ethz.ch/publications/img/arteaga-fuhrer-hoefler-reproducible-apps-ipdps14.pdf" target="_blank">http://htor.inf.ethz.ch/publications/img/arteaga-fuhrer-hoefler-reproducible-apps-ipdps14.pdf</a>.
 So one can have fully deterministic forces in MD by simply paying a couple of flops per force component in each inner loop.</div>
<div><br>
</div>
<div>Mark</div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Best,<br>
  Carsten<br>
<div>
<div><br>
<br>
&gt; setup. The only things that usually matter, and which -reprod should turn off, are dynamic load balancing and FFTW kernel choice by timing.<br>
&gt; You can mail me your tpr and I can have a look.<br>
&gt;<br>
&gt; Cheers,<br>
&gt;<br>
&gt; BerkOn Nov 30, 2014 9:05 AM, David van der Spoel &lt;<a href="mailto:spoel@xray.bmc.uu.se" target="_blank">spoel@xray.bmc.uu.se</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi,<br>
&gt;&gt;<br>
&gt;&gt; I&#39;m trying to test reproducibility of simulations of liquids. The<br>
&gt;&gt; simulation systems are flexible (no constraints) and run with the<br>
&gt;&gt; -reprod flag, starting from the same tpr, on a single core. However<br>
&gt;&gt; after a few hundred fs the energy starts to diverge.<br>
&gt;&gt;<br>
&gt;&gt; Are there factors impacting the reproducibility that are not controlled<br>
&gt;&gt; by the -reprod flag?<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; David van der Spoel, Ph.D., Professor of Biology<br>
&gt;&gt; Dept. of Cell &amp; Molec. Biol., Uppsala University.<br>
&gt;&gt; Box 596, 75124 Uppsala, Sweden. Phone: <a href="tel:%2B46184714205" value="+46184714205" target="_blank">
+46184714205</a>.<br>
&gt;&gt; <a href="mailto:spoel@xray.bmc.uu.se" target="_blank">spoel@xray.bmc.uu.se</a>    <a href="http://folding.bmc.uu.se" target="_blank">
http://folding.bmc.uu.se</a><br>
&gt;&gt; --<br>
&gt;&gt; Gromacs Developers mailing list<br>
&gt;&gt;<br>
&gt;&gt; * Please search the archive at <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" target="_blank">
http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a> before posting!<br>
&gt;&gt;<br>
&gt;&gt; * Can&#39;t post? Read <a href="http://www.gromacs.org/Support/Mailing_Lists" target="_blank">
http://www.gromacs.org/Support/Mailing_Lists</a><br>
&gt;&gt;<br>
&gt;&gt; * For (un)subscribe requests visit<br>
&gt;&gt; <a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" target="_blank">
https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a> or send a mail to
<a href="mailto:gmx-developers-request@gromacs.org" target="_blank">gmx-developers-request@gromacs.org</a>.<br>
&gt; --<br>
&gt; Gromacs Developers mailing list<br>
&gt;<br>
&gt; * Please search the archive at <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" target="_blank">
http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a> before posting!<br>
&gt;<br>
&gt; * Can&#39;t post? Read <a href="http://www.gromacs.org/Support/Mailing_Lists" target="_blank">
http://www.gromacs.org/Support/Mailing_Lists</a><br>
&gt;<br>
&gt; * For (un)subscribe requests visit<br>
&gt; <a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" target="_blank">
https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a> or send a mail to
<a href="mailto:gmx-developers-request@gromacs.org" target="_blank">gmx-developers-request@gromacs.org</a>.<br>
<br>
--<br>
Gromacs Developers mailing list<br>
<br>
* Please search the archive at <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" target="_blank">
http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a> before posting!<br>
<br>
* Can&#39;t post? Read <a href="http://www.gromacs.org/Support/Mailing_Lists" target="_blank">
http://www.gromacs.org/Support/Mailing_Lists</a><br>
<br>
* For (un)subscribe requests visit<br>
<a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" target="_blank">https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a> or send a mail to
<a href="mailto:gmx-developers-request@gromacs.org" target="_blank">gmx-developers-request@gromacs.org</a>.<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div></div></span>
</div>

<br>--<br>
Gromacs Developers mailing list<br>
<br>
* Please search the archive at <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" target="_blank">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a> before posting!<br>
<br>
* Can&#39;t post? Read <a href="http://www.gromacs.org/Support/Mailing_Lists" target="_blank">http://www.gromacs.org/Support/Mailing_Lists</a><br>
<br>
* For (un)subscribe requests visit<br>
<a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" target="_blank">https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a> or send a mail to <a href="mailto:gmx-developers-request@gromacs.org">gmx-developers-request@gromacs.org</a>.<br></blockquote></div><br></div>