<br><br>----- Original Message -----<br>From: Roland Schulz &lt;roland@utk.edu&gt;<br>Date: Friday, October 1, 2010 16:58<br>Subject: Re: [gmx-developers] Collective IO<br>To: Discussion list for GROMACS development &lt;gmx-developers@gromacs.org&gt;<br><br><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font><br><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font><br><div class="gmail_quote"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>On Thu, Sep 30, 2010 at 9:19 PM, Mark Abraham <span dir="ltr">&lt;<a href="javascript:main.compose('new', 't=mark.abraham@anu.edu.au')">mark.abraham@anu.edu.au</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">  <div class="im"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font><br><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font><br><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>----- Original Message -----<br><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>From: Roland Schulz &lt;<a href="javascript:main.compose('new', 't=roland@utk.edu')" target="1">roland@utk.edu</a>&gt;<br><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>Date: Friday, October 1, 2010 9:04<br><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>Subject: Re: [gmx-developers] Collective IO<br><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>  To: Discussion list for GROMACS development &lt;<a href="javascript:main.compose('new', 't=gmx-developers@gromacs.org')" target="1">gmx-developers@gromacs.org</a>&gt;<br><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font><br><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>&gt; </font><br>  <font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>&gt; </font><br></div><div class="gmail_quote"><div class="im"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>&gt; </font>On Thu, Sep 30, 2010 at 6:21 PM, Szilárd Páll <span dir="ltr">&lt;<a>szilard.pall@cbr.su.se</a>&gt;</span> wrote:<br>  <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>&gt; </font>  Hi Roland,<br>   <font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>&gt; </font><br><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>&gt; </font> Nice work, I'll definitely take a look at it!<br>   <font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>&gt; </font><br><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>&gt; </font> Any idea on how does this improve scaling in general and at what<br>  <font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>&gt; </font> problem size starts to really matter? Does it introduce and overhead<br><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>&gt; </font> in smaller simulations or it is only conditionally turned on?<br>  </blockquote><div><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>&gt; </font><br></div><div><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>&gt; </font>At the moment it is always turned on for XTC when compiled with MPI. In serial or with threads nothing changes.&nbsp;At the moment we&nbsp;buffer&nbsp;at maximum 100 frames. If one uses less than 100 PP nodes than we buffer as many frames as the number of PP nodes. We also make sure that we don't buffer more than 250MB per node.</div>    <div><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>&gt; </font><br></div></div><div><div class="im"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;"><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>&gt; </font>The 100 frames and 250MB are both constants which should probably still be tuned.<br>  <font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font><br></div><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>Indeed - and the user should be able to tune them, too. They won't want to exceed their available physical memory, since buffering frames to virtual memory (if any) loses any gains from collective I/O.<br></div>  </div></blockquote><div><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>Honestly we hadn't thought much about the 250MB limit. We first wanted to get feedback on the approach and the code before doing more benchmarks and tuning these parameters. It is very likely that their are no cases which benefit from using more than 2MB per MPI process.</div>  <div><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font><br></div><div><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>In case we limit the memory usage to 2MB should we still make it configurable? I think adding to many mdrun option gets confusing. Should we make the number of buffered frames a hidden mdrun option or an&nbsp;environment&nbsp;variable (the default would be that the number is auto-tuned)?<br><br></div>Hmmm. 2MB feels like quite a low lower bound. Collective I/O requires of the order of several MB per process per operation to be worthwhile. OTOH you don't want to buffer excessively, because that loses more when hardware crashes occur. You do have the checkpoint interval as another upper bound, so that's probably fine. 250MB concerned me, because the BlueGene cpus have up to about 1GB per cpu...<br><br>I think a hidden option is probably best.<br><br>Mark<br></div>