<div dir="ltr">Hi Eric,<div><br></div><div>The fundamental challenge we need to solve first is how to handle the fundamentally incompatible different hardware architectures smoothly, i.e. how to support e.g. both CUDA, SYCL, HIP and all the various SIMD flavours. That will require some fairly major changes both to library design and CMake, and in particular likely rely on dynamic binding with multiple libraries. </div><div><br></div><div>Being able to have both precisions and e.g. MPI in the same library are more of convenience features compared to that (but far from trivial; in some cases you cannot execute an MPI binary outside of a queue), and I don&#39;t think that&#39;s any at least the Stockholm team will have any resources to focus on that part right now.</div><div><br></div><div>Cheers,</div><div><br></div><div>Erik</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 6, 2020 at 1:13 PM Eric Irrgang &lt;<a href="mailto:ericirrgang@gmail.com">ericirrgang@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Hi Devs,<br><div><br></div><div>There has been some discussion in the past about potentially making a fatter libgromacs or other binaries to provide support for multiple architectures in a single binary. I think this was mostly in reference to different SIMD architecture intrinsics, but maybe also things like floating point precision or MPI flavor.</div><div><br></div><div>Is there an issue tracking the discussion or a link to any related road map?</div><div><br></div><div>There may be two separate discussions here (or more), but my real question regards the future of resolving the correct sets of binaries and choices for FP precision and MPI flavor.</div><div><br></div><div>Some thoughts:</div><div>* We can and should do more to distinguish binary incompatibilities through some combination of namespacing and templating. For instance, there are several cases of public structures whose size depends on the definition of &quot;real&quot; but whose symbols are indistinguishable. It would make sense to update these to use a template parameter (e.g. &quot;Scalar&quot;).</div><div>* The &quot;gmx&quot; command line wrapper could take optional flags to dispatch fp-precision and MPI flavor. For backwards compatibility, the suffixed versions can be retained as hard links or basic wrappers to the main binary.</div><div>* Important compatibility aspects like precision and MPI flavor can be enforced with COMPATIBLE_INTERFACE_* properties on the CMake library targets and pre-checked with COMPONENTS arguments to find_package().</div><div><br></div><div>I would like to link to or introduce further discussion at <a href="https://redmine.gromacs.org/issues/3152" target="_blank">https://redmine.gromacs.org/issues/3152</a> but I wanted to poll for initial background or feedback here first.</div><div><br></div><div>Best,</div><div>M. Eric Irrgang</div></div></div>
-- <br>
Gromacs Developers mailing list<br>
<br>
* Please search the archive at <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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>.</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>Erik Lindahl &lt;<a href="mailto:erik.lindahl@dbb.su.se" target="_blank">erik.lindahl@dbb.su.se</a>&gt;</div><div>Professor of Biophysics, Dept. Biochemistry &amp; Biophysics, Stockholm University</div><div>Science for Life Laboratory, Box 1031, 17121 Solna, Sweden</div></div></div></div></div></div></div></div></div>