Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{bio}[foss/2021a] GROMACS v2021.3 w/ Python 3.9.5 + CUDA 11.3.1 + PLUMED v2.7.2 #14409

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
#
# Copyright:: Copyright 2012-2016 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC,
# Ghent University / The Francis Crick Institute
# Authors::
# * Wiktor Jurkowski <wiktor.jurkowski@gmail.com>
# * Fotis Georgatos <fotis@cern.ch>
# * George Tsouloupas <g.tsouloupas@cyi.ac.cy>
# * Kenneth Hoste <kenneth.hoste@ugent.be>
# * Adam Huffman <adam.huffman@crick.ac.uk>
# * Ake Sandgren <ake.sandgren@hpc2n.umu.se>
# * J. Sassmannshausen <Crick HPC team>
# * Dugan Witherick <dugan.witherick@warwick.ac.uk>
# License:: MIT/GPL

name = 'GROMACS'
version = '2021.3'
_plumedver = '2.7.2'
versionsuffix = '-CUDA-%%(cudaver)s-PLUMED-%s' % _plumedver

homepage = 'https://www.gromacs.org'
description = """
GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the
Newtonian equations of motion for systems with hundreds to millions of
particles.

This is a GPU enabled build, containing both MPI and threadMPI builds.

It also contains the gmxapi extension for the single precision MPI build.
"""

toolchain = {'name': 'foss', 'version': '2021a'}
toolchainopts = {'openmp': True, 'usempi': True}

source_urls = [
'https://ftp.gromacs.org/pub/gromacs/',
'ftp://ftp.gromacs.org/pub/gromacs/',
]
sources = [SOURCELOWER_TAR_GZ]
patches = [
'GROMACS-2019_fix_omp_num_threads_and_google_test_death_style_in_tests.patch',
'GROMACS-2019_increase_test_timeout_for_GPU.patch',
'GROMACS-2021_fix_gmxapi_gmx_allowed_cmd_name.patch',
'GROMACS-2020.5_fix_threads_gpu_Gmxapitests.patch',
'GROMACS-2021.3_skip_test_for_plumed.patch',
]
checksums = [
'e109856ec444768dfbde41f3059e3123abdb8fe56ca33b1a83f31ed4575a1cc6', # gromacs-2021.3.tar.gz
# GROMACS-2019_fix_omp_num_threads_and_google_test_death_style_in_tests.patch
'406f5edd204be812f095a6f07ebc2673c5f6ddf1b1c1428fd336a80b9c629275',
# GROMACS-2019_increase_test_timeout_for_GPU.patch
'0d16f53d428155197a0ed0b0974ce03422f199d7c463c4a9156a3b99e3c86234',
# GROMACS-2021_fix_gmxapi_gmx_allowed_cmd_name.patch
'b7ffb292ec362e033db1bedd340353f0644dbaae872127750f3dda1ac7e87d49',
# GROMACS-2020.5_fix_threads_gpu_Gmxapitests.patch
'89fbb7e2754de45573632c74f53563bb979df9758c949238a35865391d6b53fb',
'c06d0a8c3e75b232224f46bc3b70e135c4c02ec4151712970f5edd85d890f018', # GROMACS-2021.3_skip_test_for_plumed.patch
]

builddependencies = [
('CMake', '3.20.1'),
('scikit-build', '0.11.1'),
]

dependencies = [
('Python', '3.9.5'),
('SciPy-bundle', '2021.05'),
('networkx', '2.5.1'),
('CUDA', '11.3.1', '', True),
('PLUMED', _plumedver),
]

exts_defaultclass = 'PythonPackage'

exts_default_options = {
'source_urls': [PYPI_SOURCE],
'use_pip': True,
'download_dep_fail': True,
'sanity_pip_check': True,
}

exts_list = [
('gmxapi', '0.2.0', {
'preinstallopts': "export GMXTOOLCHAINDIR=%(installdir)s/share/cmake/gromacs_mpi && ",
'checksums': ['3954bf123da12fc60bcfaeed8263f5e2d3e16e5136c2bb5c8207b20fa7406788'],
}),
]

# PLUMED-2.7.2 does not officially support GROMACS-2021.3, but seems to work fine
ignore_plumed_version_check = True

modextrapaths = {
'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
}

moduleclass = 'bio'
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Skip test checking output of 'mdrun -h' when patched with PLUMED, as it adds an extra option '-hrex'
Author: Samuel Moors (Vrije Universiteit Brussel)
diff -ur gromacs-2021.3.orig/src/programs/mdrun/tests/CMakeLists.txt gromacs-2021.3/src/programs/mdrun/tests/CMakeLists.txt
--- gromacs-2021.3.orig/src/programs/mdrun/tests/CMakeLists.txt 2021-08-18 11:49:23.000000000 +0200
+++ gromacs-2021.3/src/programs/mdrun/tests/CMakeLists.txt 2021-11-16 17:04:47.612357764 +0100
@@ -51,20 +51,6 @@
# To avoid running into test timeouts, some end-to-end tests of mdrun
# functionality are split off. This can be rearranged in future as we
# see fit.
-set(testname "MdrunOutputTests")
-set(exename "mdrun-output-test")
-
-gmx_add_gtest_executable(${exename}
- CPP_SOURCE_FILES
- compressed_x_output.cpp
- helpwriting.cpp
- outputfiles.cpp
- trajectory_writing.cpp
- # pseudo-library for code for mdrun
- $<TARGET_OBJECTS:mdrun_objlib>
- )
-target_link_libraries(${exename} PRIVATE mdrun_test_infrastructure)
-gmx_register_gtest_test(${testname} ${exename} OPENMP_THREADS 2 INTEGRATION_TEST IGNORE_LEAKS)

set(testname "MdrunModulesTests")
set(exename "mdrun-modules-test")