FWIW, there are some example -dp .eb's  here:

http://www.siliconslick.com/easybuild/ebfiles_repo_cleaned/ada/GROMACS/

Note that none of them should be trusted since they all include:

skipsteps = ['test']

Jack Perdue
Lead Systems Administrator
High Performance Research Computing
TAMU Division of Research
[email protected]    http://hprc.tamu.edu
HPRC Helpdesk: [email protected]

On 05/27/2016 08:38 AM, Joachim Hein wrote:
I forgot to say “Thanks” to Pieter and Kenneth. This was extremely helpful.

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


Reply via email to