[gmx-users] Is version 5.0 generating portable binaries?

Szilárd Páll pall.szilard at gmail.com
Fri Jan 31 12:00:53 CET 2014


Note that both Opteron 2354 K10/Barcelona (http://goo.gl/6hyfO) and
the Xeon 53xx / Clovertown (http://goo.gl/6hyfO) are quite old and
none of them supports SSE4.1. Hence, pick SSE2 and build distributable
binaries (AFAIK Clovertown does not support the rdtscp instructions).


Also note that GROMACS does not have a "portability problem" - it's a
tradeoff between avoiding code complexity, performance and
portability. For obvious reasons, we pick the first two. We seem to
have a documentation problem though, I can't find the
GMX_DISTRIBUTABLE_BUILD option anywhere on the website.

Cheers,
--
Szilárd


On Fri, Jan 31, 2014 at 8:53 AM, Erik Lindahl
<erik.lindahl at scilifelab.se> wrote:
> Hi Raffaella,
>
> First: You absolutely shouldn't remove all acceleration in cases like this - that would hit your performance by ~50%. Instead, you can pick the greatest common divisor, which is SSE4.1.
>
> Second, the segfault happens because we use a timing instruction. You can disable this by using the Cmake argument
>
> cmake  -DGMX_DISTRIBUTABLE_BUILD ...
>
> Which creates a binary that will work on most x86 machines.
>
>
> This will be more automated in 5.0, but by not using AVX_128_FMA on your new AMD nodes you will lose ~30% performance compared to what is possible, so you might want to consider installing at least two mdrun binaries (renamed to, say, mdrun_intel and mdrun_amd).
>
> Cheers,
>
> Erik
>
>
> On 30 Jan 2014, at 23:35, Raffaella D'Auria <rdauria at ucla.edu> wrote:
>
>> Hello All,
>>
>> I have just performed a fresh installation of gromacs version 4.6.5 on a heterogeneous linux cluster (running centos 6.4) . After the installation I see that the binaries, for say mdrun,  work on all the machines with hardware similar to the one on which they were installed (namely AMD processor such as: Quad-Core AMD Opteron Processor 2354) but produce an "illegal instruction (core dumped)" when run on nodes with intel processors (such as: Intel Xeon CPU E5335  @ 2.00GHz).
>>
>> As suggested in the documentation (http://www.gromacs.org/Documentation/Acceleration_and_parallelization#CPU_acceleration.3a_SSE.2c_AVX.2c_etc) I have tried to compile with GMX_CPU_ACCELERATION set to "none" (I have also turned down the optimization levels) with always the same result (illegal instruction) across different hardware.
>>
>> Is this expected behavior? If so will the binaries of version 5.* have the same portability problem?
>>
>> One more thing the situation described above occurs with both the gnu 4.4.7 compiler and the intel 13.1.1.
>>
>> Any feedback would be greatly appreciated.
>>
>> Thanks,
>>
>> Raffaella.
>>
>> --
>> Gromacs Users mailing list
>>
>> * Please search the archive at http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before posting!
>>
>> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>>
>> * For (un)subscribe requests visit
>> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or send a mail to gmx-users-request at gromacs.org.
>
> --
> Gromacs Users mailing list
>
> * Please search the archive at http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before posting!
>
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>
> * For (un)subscribe requests visit
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or send a mail to gmx-users-request at gromacs.org.


More information about the gromacs.org_gmx-users mailing list