<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">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>