<br><br><div class="gmail_quote">On Wed, Apr 4, 2012 at 9:31 AM, Berk Hess <span dir="ltr">&lt;<a href="mailto:hess@kth.se" target="_blank">hess@kth.se</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">






<div bgcolor="#FFFFFF" text="#000000"><div><div>
On 04/04/2012 03:22 PM, Roland Schulz wrote:
<blockquote type="cite">
Hi,
<div><br>
</div>
<div>we are looking how to best tackle the issue of packing data for MPI communication in 5.0. We believe this is an important issue because the two current approaches (serializing in serial buffer (e.g. global_stat) or sending in many small messages (e.g.
 initial bcast)) are both slow and produces difficult to read code code (global_stat). The many small messages is for large systems a serious issue for scaling and even the serializing is unnecessary slow because it means a potentially unnecessary copy. </div>



<div><br>
</div>
<div>We first looked into Boost::MPI but while it is very nice in some aspects, it also has disadvantages. Thus we&#39;re looking at alternatives. </div>
<div>Most interesting alternatives use MPI Datatypes to get high performance and avoid the unnecessary copy of serialization. The problem is that TMPI doesn&#39;t support MPI Datatypes. </div>
<div><br>
</div>
<div>Thus my question: Is it planned to add Datatypes to TMPI? If not is TMPI still required in 5.0? Would it be sufficient to support OpenMP for non-MPI multi-core installations in 5.0? What was the reason for TMPI in the first place? Why did we not just bundle
 e.g. OpenMPI for those users missing an MPI implementation?</div>
</blockquote></div></div>
Nothing is planned, but if it isn&#39;t much work, Sander might do it.</div></blockquote><div>Not sure how much work it would be. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div bgcolor="#FFFFFF" text="#000000">
<br>
For the old code path/kernels we still like to have TMPI, as this makes it far easier for normal users to get maximum performance.<br>
For the new Verlet scheme OpenMP seems to do very well, but with multiple CPUs and/or GPUs TMPI is still very nice,<br></div></blockquote><div>I see. </div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div bgcolor="#FFFFFF" text="#000000">
as it makes configuring and starting runs trivial.<br></div></blockquote><div>In case it turns out too much work to implement in tMPI would it be a solution to make it as trivial with OpenMPI/Mpich? I think it could be made as simple to configure by bundling the library. It could be made as simple to run if mdrun automatically spawns additional MPI processes (with the same logic as currently tMPI does). This is supported by OpenMPI see: <a href="http://www.open-mpi.org/community/lists/users/2010/02/12143.php">http://www.open-mpi.org/community/lists/users/2010/02/12143.php</a></div>

<div> </div><div>Roland</div><div><br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
<br>
Cheers,<br>
<br>
Berk<div><br>
<blockquote type="cite">
<div><br>
</div>
<div>Roland</div>
<div>
<div><br>
</div>
-- <br>
ORNL/UT Center for Molecular Biophysics <a href="http://cmb.ornl.gov" target="_blank">
cmb.ornl.gov</a><br>
<a href="tel:865-241-1537" value="+18652411537" target="_blank">865-241-1537</a>, ORNL PO BOX 2008 MS6309<br>
</div>
<br>
<fieldset></fieldset> <br>
</blockquote>
<br>
</div></div>

</blockquote></div><br><br clear="all"><div><br></div>-- <br>ORNL/UT Center for Molecular Biophysics <a href="http://cmb.ornl.gov" target="_blank">cmb.ornl.gov</a><br><a href="tel:865-241-1537" value="+18652411537" target="_blank">865-241-1537</a>, ORNL PO BOX 2008 MS6309<br>