[gmx-developers] build configurations and binary file suffixes

Eric Irrgang ericirrgang at gmail.com
Fri Mar 6 13:13:39 CET 2020

Hi Devs,

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.

Is there an issue tracking the discussion or a link to any related road map?

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.

Some thoughts:
* 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
"real" but whose symbols are indistinguishable. It would make sense to
update these to use a template parameter (e.g. "Scalar").
* The "gmx" 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.
* 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().

I would like to link to or introduce further discussion at
https://redmine.gromacs.org/issues/3152 but I wanted to poll for initial
background or feedback here first.

M. Eric Irrgang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20200306/086be971/attachment.html>

More information about the gromacs.org_gmx-developers mailing list