[gmx-users] Building full GROMACS and mdrun only with MPI and GPU: FFTW and regression tests

Mark Abraham mark.j.abraham at gmail.com
Fri Jan 10 16:00:48 CET 2020


Hi,

On Fri, 10 Jan 2020 at 10:49, João M. Damas <jmdamas at itqb.unl.pt> wrote:

> Hi all,
>
> I am trying to build GROMACS in a similar fashion to what is described in
> section 2.3.5 of the manual (weblink
> <
> http://manual.gromacs.org/documentation/2019.5/install-guide/index.html#testing-gromacs-for-correctness
> >),
> i.e. a full build of GROMACS without any particular flags, and then a build
> of mdrun only, with MPI and GPU enabled.
>
> My first issue would be with the compilation of the FFT library, namely the
> recommended FFTW through -DGMX_BUILD_OWN_FFTW=ON. I find that flag very
> useful, but with a recipe as described in section 2.3.5, it would mean
> compiling FFTW twice, which is a waste of time. Do you recommend for me to
> compile FFTW separately on my own or is there a way/flag to pass the
> compiled static library to the mdrun building step?
>

No, the only way to do that is to have installed FFTW somewhere and have
both builds pick it up, e.g. through using cmake
-DCMAKE_PREFIX_PATH=/path/to/your/fftw. It's also not a lot of time, for
something you do rarely, so I would just ignore the inefficiency.


> My second issue is with the regression tests. Using the procedure of
> section 2.3.5, with a mdrun building recipe like this:
>
> cmake3 .. \
>        -DCMAKE_INSTALL_PREFIX=${SOFTWARE_INSTALL_PREFIX} \
>        -DGMX_BUILD_OWN_FFTW=ON \
>        -DGMX_DEFAULT_SUFFIX=OFF \
>        -DGMX_BINARY_SUFFIX=_mpi \
>        -DGMX_LIBS_SUFFIX=_mpi \
>

There's no need to do this - you're turning off the suffixing and then
doing the default behaviour yourself. It should work, but we don't try to
test it :-)

       -DGMX_MPI=ON \
>        -DGMX_GPU=ON \
>        -DGMX_BUILD_MDRUN_ONLY=ON
> make -j ${NPROCS}
> make install
>
> there are issues with running `./gmxtest.pl all -np ${NPROCS} -mdrun
> mdrun_mpi`. Since I am using the same install prefix for both building
> steps, I am using the suffix flags stated, but then I need to fix
> gmxtest.pl (namely
> change the autosuffix variable from 1 to null) to make the tests run
> (succesfully). Am I doing something wrong with the suffixes? I believe I
> need them if I want to install on the same prefix.
>

No. ./gmxtest.pl -nosuffix is useful for testing in the case you are doing,
and even though you're over-managing the suffixes, nothing's wrong.


> Finally, is there a better way of doing this process to achieve the same
> result (i.e. a full build of GROMACS without any particular flags, and then
> a build of mdrun only, with MPI and GPU enabled)? In the case that section
> is outdated.
>

This is the current procedure. There's currently no significant difference
between gmx_mpi mdrun and mdrun_mpi, except that one could reasonably want
to try harder to build the latter to link in a fully static way (which can
be worth a percent or two of performance).

Mark

Thank you in advance,
> João
> --
> 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