[gmx-developers] random123 library portability issues

Szilárd Páll pall.szilard at gmail.com
Fri May 30 12:43:32 CEST 2014


A few days ago I did some sanity checks by compiling and
regressiontesting the 5.0 branch on ARM. This exercise made me realize
that the recently included Random123 library is now the single most
limiting factor when it comes to portability. In fact, as it is not
optional, v5.0 is ATM practically limited to x86* and Powerpc64 (BGQ)
architectures -- based on the docs (see http://goo.gl/YdKofG)
Random123 has not been tested (let alone optimized) on anything else.
Additionally, note that the code won't even compile on non-supported
architectures, so in its current state GROMACS 5.0 won't compile on
anything else but x86* and PPC64, e.g. with gcc compilation will be
aborted by the "#error" in features/gccfeatures.h:38. Removing these
sanity checks does let the code compile on ARM and regressiontests do
pass, though.

I've exchanged a couple of emails with the developers and they suggest
that in practice Threefry should work on ARM (and perhaps other
architectures too), but testing/validation is definitely necessary.
Performance is not optimized on unsupported architectures, I assume,
so some optimization may not hurt too - especially if there are cases
where we generate many PRNGs per step (BTW has the potential overhead
been assessed?).


More information about the gromacs.org_gmx-developers mailing list