I am at it.  It is currently building the module :)   Needed to do some syntax 
fixes.  The user will be pleased to get it today.  Since I do not yet know how 
to import into git, I attach my easyconfig.

However I am wondering, having separate easy blocks for (single, double) * (mt, 
hybrid) is that really what we want.  They have a lot of common info - 
regarding future maintenance there should be one “thingy” which sort of does it 
all.

Best wishes
  Joachim



On 27 May 2016, at 15:24, [email protected]<mailto:[email protected]> wrote:

Hi Kenneth,

Will first test it on the latest version of GROMACS (5.1.2) and then create a 
pull request.

Kind regards,

Pieter de Rijk, HPCS R&D Engineer

From: [email protected]<mailto:[email protected]> 
[mailto:[email protected]] On Behalf Of Kenneth Hoste
Sent: Friday, May 27, 2016 15:06
To: [email protected]<mailto:[email protected]>
Subject: Re: [easybuild] Double precision gromacs


Hi Joachim & Pieter,

On 27/05/16 14:58, [email protected]<mailto:[email protected]> wrote:
Hi Joachim/others,

Been through this as well the last few days, but that was with GROMACS 5.1 
(this version was specific requested by the user, but assume this will work for 
the newer versions the same way).

This is what I did.

1)      I updated the easyconfig file by adding the following lines:

versionsuffix='dp'
configopts='-DGMX_DOUBLE=on'

And removed the dependencies on NVML and CUDA, since DP and GPU support are not 
good friends:
dependencies = [
  ('Boost', '1.59.0'),
  ]

2)      Updated the easyblock sanity_check_setp for GROMACS:

    def sanity_check_step(self):
        """Custom sanity check for GROMACS."""

        suff = ''
        if self.toolchain.options.get('usempi', None):
            suff = '_mpi'

        # Add the _d suffix to the suffix, in case of the double precision
        if '-DGMX_DOUBLE=on' in self.cfg['configopts']:
      suff = suff+'_d'
#Rest of the easyblock

This will work indeed, and we'd love to see a pull request for this so we can 
get it included 'upstream'. :-)

There's (again) another way though, solely by touching the easyconfig file (as 
a workaround for the easyblock not being aware of -DGMX_DOUBLE and the _d 
suffix.

You can specify a custom value for sanity_check_paths, for example:

    sanity_check_paths = {
        'files': ['bin/gmx_mpi_d', 'lib/libgromacs_mpi_d.a'],
        'dirs: [],
    }

Of course, you can extend this further.

Please don't try and side-step the sanity check with providing dummy or too 
simple paths; it's there for a very good reason, and specifying actual paths 
that should be there after the installation may save you quite a bit of time in 
the end...


regards,

Kenneth





Kind regards,

Pieter de Rijk, HPCS R&D Engineer

From: [email protected]<mailto:[email protected]> 
[mailto:[email protected]] On Behalf Of Joachim Hein
Sent: Friday, May 27, 2016 14:43
To: [email protected]<mailto:[email protected]>
Subject: Re: [easybuild] Double precision gromacs


However, you should be able to do this straight from the easyconfig, without 
any required modifications to the easyblock for GROMACS:

    configopts = "-DGMX_DOUBLE=ON"

Be careful you don't hard overwrite possible other 'configopts' specifications 
that may be already there…

Hi

Feedback on this, it now fails the sanity check.  Sanity checking seems to be 
looking for an exe named “gmx_mpi” in this case but, as I outlined this is now 
called “gmx_mpi_d”.  It is also looking for a library "libgromacs_mpi.a” but 
that is now “libgromacs_mpi_d.a”.  I checked the d-versions have been build but 
since it fails the sanity check, I don not get a module :(

Based on that a “double” feature needs to be developed deeper into the 
framework, I see no way how to modify the setup for the modified filename :(

Best wishes
  Joachim



Attachment: GROMACS-5.1.2-foss-2016a-hybrid-dbl.eb
Description: GROMACS-5.1.2-foss-2016a-hybrid-dbl.eb

Reply via email to