From 0b52dac4c6e0626553927ce1a67d0118fbc153ca Mon Sep 17 00:00:00 2001 From: Caubet Serrabou Marc Date: Thu, 18 Oct 2018 14:35:57 +0200 Subject: [PATCH 1/8] Gromacs 2018.3 MPI, remove Gromacs from SandBox --- MPI/gromacs/2018/variants | 2 ++ MPI/gromacs/build | 18 ++++++++++-------- MPI/gromacs/modulefile | 3 +-- SandBox/gromacs/build | 21 --------------------- SandBox/gromacs/files/variants | 3 --- SandBox/gromacs/modulefile | 18 ------------------ 6 files changed, 13 insertions(+), 52 deletions(-) create mode 100644 MPI/gromacs/2018/variants delete mode 100755 SandBox/gromacs/build delete mode 100644 SandBox/gromacs/files/variants delete mode 100644 SandBox/gromacs/modulefile diff --git a/MPI/gromacs/2018/variants b/MPI/gromacs/2018/variants new file mode 100644 index 0000000..725e70e --- /dev/null +++ b/MPI/gromacs/2018/variants @@ -0,0 +1,2 @@ +gromacs/2018.3_sp unstable gcc/8.2.0 openmpi/3.1.1 Python/2.7.14 b:cmake/3.9.6 +gromacs/2018.3_dp unstable gcc/8.2.0 openmpi/3.1.1 Python/2.7.14 b:cmake/3.9.6 diff --git a/MPI/gromacs/build b/MPI/gromacs/build index eaec276..ec1db42 100755 --- a/MPI/gromacs/build +++ b/MPI/gromacs/build @@ -3,17 +3,19 @@ pbuild::set_download_url "http://ftp.gromacs.org/pub/$P/$P-${V_PKG}.tar.gz" pbuild::add_to_group 'MPI' -pbuild::install_docfiles \ - AUTHORS \ - COPYING \ - README + +pbuild::install_docfiles ACKNOWLEDGMENTS COPYING MANIFEST README.txt pbuild::pre_configure() { pbuild::add_configure_args "-DCMAKE_BUILD_TYPE=RELEASE" pbuild::add_configure_args "-DGMX_MPI=on" - pbuild::add_configure_args "-DGMX_GPU=off" - pbuild::add_configure_args "-DGMX_SIMD=SSE2" + + if pbuild::use_flag dp ; then + pbuild::add_configure_args "-DGFMX_DOUBLE=on" + else # pbuild::use_flag sp + pbuild::add_configure_args "-DGFMX_DOUBLE=off" + fi + pbuild::add_configure_args "-DGMX_GPU=off" + # To remove: pbuild::add_configure_args "-DGMX_SIMD=SSE2" pbuild::add_configure_args "-DGMX_BUILD_OWN_FFTW=on" } - - diff --git a/MPI/gromacs/modulefile b/MPI/gromacs/modulefile index 8c57b45..2c86760 100644 --- a/MPI/gromacs/modulefile +++ b/MPI/gromacs/modulefile @@ -3,7 +3,7 @@ module-whatis "GROMACS is a versatile package to perform molecular dynamics" module-url "http://www.gromacs.org/" module-license "See PREFIX/share/doc/COPYING" -module-maintainer "Antonio Benedetto " +module-maintainer "Marc Caubet " module-help " GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of @@ -15,4 +15,3 @@ GROMACS is extremely fast at calculating the nonbonded interactions (that usually dominate simulations) many groups are also using it for research on non-biological systems, e.g. polymers. " - diff --git a/SandBox/gromacs/build b/SandBox/gromacs/build deleted file mode 100755 index c0d261b..0000000 --- a/SandBox/gromacs/build +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env modbuild - -pbuild::set_download_url "http://ftp.gromacs.org/pub/$P/$P-${V_PKG}.tar.gz" - -pbuild::add_to_group 'SandBox' - -pbuild::install_docfiles ACKNOWLEDGMENTS COPYING MANIFEST README.txt - -pbuild::pre_configure() { - pbuild::add_configure_args "-DCMAKE_BUILD_TYPE=RELEASE" - pbuild::add_configure_args "-DGMX_MPI=on" - - if pbuild::use_flag dp ; then - pbuild::add_configure_args "-DGFMX_DOUBLE=on" - fi - if pbuild::use_flag sp ; then - pbuild::add_configure_args "-DGFMX_DOUBLE=off" - fi - pbuild::add_configure_args "-DGMX_GPU=off" - pbuild::add_configure_args "-DGMX_BUILD_OWN_FFTW=on" -} diff --git a/SandBox/gromacs/files/variants b/SandBox/gromacs/files/variants deleted file mode 100644 index d05d535..0000000 --- a/SandBox/gromacs/files/variants +++ /dev/null @@ -1,3 +0,0 @@ -gromacs/2018.3_dp unstable gcc/8.2.0 openmpi/3.1.1 Python/2.7.14 b:cmake/3.9.6 -gromacs/2018.3_sp unstable gcc/8.2.0 openmpi/3.1.1 Python/2.7.14 b:cmake/3.9.6 - diff --git a/SandBox/gromacs/modulefile b/SandBox/gromacs/modulefile deleted file mode 100644 index c8d4b82..0000000 --- a/SandBox/gromacs/modulefile +++ /dev/null @@ -1,18 +0,0 @@ -#%Module1.0 - -module-whatis "GROMACS is a versatile package to perform molecular dynamics" -module-url "http://www.gromacs.org/" -module-license "See PREFIX/share/doc/COPYING" -module-maintainer "Marc Caubet " -module-help " -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. - -It is primarily designed for biochemical molecules like proteins, lipids and -nucleic acids that have a lot of complicated bonded interactions, but since -GROMACS is extremely fast at calculating the nonbonded interactions (that -usually dominate simulations) many groups are also using it for research on -non-biological systems, e.g. polymers. -" - From e1f7292d71f76607d8bf6ba3434fecbebe5cb974 Mon Sep 17 00:00:00 2001 From: Hans-Christian Stadler Kleeb Date: Thu, 25 Oct 2018 11:57:05 +0200 Subject: [PATCH 2/8] Adaptions to Pmodules 0.9.16 --- Compiler/hdf5_serial/build | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Compiler/hdf5_serial/build b/Compiler/hdf5_serial/build index 776dba7..4146003 100755 --- a/Compiler/hdf5_serial/build +++ b/Compiler/hdf5_serial/build @@ -3,10 +3,10 @@ pbuild::set_download_url "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${V_MAJOR}.${V_MINOR}/hdf5-$V/src/hdf5-$V.tar.bz2" pbuild::add_to_group 'Compiler' -pbuild::add_docfiles ACKNOWLEDGMENTS -pbuild::add_docfiles COPYING -pbuild::add_docfiles MANIFEST -pbuild::add_docfiles README.txt +pbuild::install_docfiles ACKNOWLEDGMENTS +pbuild::install_docfiles COPYING +pbuild::install_docfiles MANIFEST +pbuild::install_docfiles README.txt pbuild::pre_configure() { pbuild::add_configure_args "--enable-shared" @@ -43,6 +43,3 @@ pbuild::pre_configure() { pbuild::add_configure_args "--enable-fortran" fi } - -pbuild::make_all - From 972313186cbff20ac835f6a5875db8a42757ad2a Mon Sep 17 00:00:00 2001 From: Hans-Christian Stadler Kleeb Date: Thu, 25 Oct 2018 11:57:45 +0200 Subject: [PATCH 3/8] openmpi/3.1.2 for gcc/8.2.0 and intel/18.4 --- Compiler/openmpi/3/variants.Linux | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Compiler/openmpi/3/variants.Linux b/Compiler/openmpi/3/variants.Linux index 4eeb47d..d5026a5 100644 --- a/Compiler/openmpi/3/variants.Linux +++ b/Compiler/openmpi/3/variants.Linux @@ -14,3 +14,5 @@ openmpi/3.1.1 stable gcc/8.1.0 openmpi/3.1.1 stable gcc/8.2.0 openmpi/3.1.2 stable gcc/7.3.0 +openmpi/3.1.2 stable gcc/8.2.0 +openmpi/3.1.2 stable intel/18.4 From 78b48960bf9b5f05153e6741ef7caa0c5bb1ea9b Mon Sep 17 00:00:00 2001 From: Hans-Christian Stadler Kleeb Date: Thu, 25 Oct 2018 11:58:23 +0200 Subject: [PATCH 4/8] hdf5_serial/1.10.4 for gcc/8.2.0 and intel/18.4 --- Compiler/hdf5_serial/1/variants.Linux | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Compiler/hdf5_serial/1/variants.Linux b/Compiler/hdf5_serial/1/variants.Linux index fa619c4..a143ff8 100644 --- a/Compiler/hdf5_serial/1/variants.Linux +++ b/Compiler/hdf5_serial/1/variants.Linux @@ -72,3 +72,6 @@ hdf5_serial/1.10.2 stable gcc/7.3.0 hdf5_serial/1.10.2 stable intel/18.2 hdf5_serial/1.10.2 unstable pgi/18.5 hdf5_serial/1.10.2 stable intel/18.3 + +hdf5_serial/1.10.4 stable gcc/8.2.0 +hdf5_serial/1.10.4 stable intel/18.4 From 83aac7f8c7781d61ffe71f7fd491f51e2663d221 Mon Sep 17 00:00:00 2001 From: Caubet Serrabou Marc Date: Fri, 23 Nov 2018 11:09:28 +0100 Subject: [PATCH 5/8] New lammps 2018.11_merlin --- MPI/gromacs/2018/variants | 2 +- MPI/lammps/2018/variants | 4 ++- MPI/lammps/build | 76 ++++++++++++++++++++++++++++++++------- MPI/lammps/modulefile | 20 +++-------- 4 files changed, 72 insertions(+), 30 deletions(-) diff --git a/MPI/gromacs/2018/variants b/MPI/gromacs/2018/variants index 725e70e..f2bec74 100644 --- a/MPI/gromacs/2018/variants +++ b/MPI/gromacs/2018/variants @@ -1,2 +1,2 @@ gromacs/2018.3_sp unstable gcc/8.2.0 openmpi/3.1.1 Python/2.7.14 b:cmake/3.9.6 -gromacs/2018.3_dp unstable gcc/8.2.0 openmpi/3.1.1 Python/2.7.14 b:cmake/3.9.6 +gromacs/2018.3_dp unstable gcc/8.2.0 openmpi/3.1.1 Python/2.7.14 b:cmake/3.9.6 diff --git a/MPI/lammps/2018/variants b/MPI/lammps/2018/variants index b74e7a5..1939329 100644 --- a/MPI/lammps/2018/variants +++ b/MPI/lammps/2018/variants @@ -1 +1,3 @@ -lammps/2018.3 unstable gcc/7.3.0 openmpi/3.0.1 +lammps/2018.3 unstable gcc/7.3.0 openmpi/3.0.1 +lammps/2018.3_merlin unstable gcc/8.2.0 openmpi/3.1.1 b:cmake/3.9.6 +lammps/2018.11_merlin unstable gcc/8.2.0 openmpi/3.1.1 b:cmake/3.9.6 diff --git a/MPI/lammps/build b/MPI/lammps/build index 3fb772b..29e4d73 100755 --- a/MPI/lammps/build +++ b/MPI/lammps/build @@ -1,25 +1,75 @@ #!/usr/bin/env modbuild +# pbuild::set_download_url "https://gitlab.psi.ch/caubet_m/merlin-software/raw/master/$P/$P-${V_PKG}.tar.gz" +pbuild::set_download_url "https://github.com/lammps/lammps/archive/patch_15Nov2018.tar.gz" + pbuild::add_to_group 'MPI' -pbuild::set_download_url https://gitlab.psi.ch/Pmodules/download/raw/master/$P-$V.tar.gz -pbuild::install_docfiles \ - LICENSE \ - README + +pbuild::install_docfiles README LICENSE + pbuild::compile_in_sourcetree -pbuild::configure() { - cp -v "${BUILDBLOCK_DIR}/files/Makefile.PSI" "${BUILD_DIR}/src/MAKE/MINE" -} +# pbuild::pre_configure() { +# pbuild::add_configure_args "-D CMAKE_BUILD_TYPE=RELEASE" +# +# pbuild::add_configure_args "-D BUILD_MPI=yes" +# pbuild::add_configure_args "-D BUILD_OMP=yes" +# pbuild::add_configure_args "-D PKG_USER-OMP=yes" +# pbuild::add_configure_args "-D PKG_BODY=yes" +# pbuild::add_configure_args "-D PKG_DIPOLE=yes" +# pbuild::add_configure_args "-D PKG_MOLECULE=yes" +# pbuild::add_configure_args "-D PKG_MPIIO=yes" +# pbuild::add_configure_args "-D PKG_REPLICA=yes" +# # pbuild::add_configure_args "-D PKG_REAX=yes" +# pbuild::add_configure_args "-D PKG_RIGID=yes" +# pbuild::add_configure_args "-D PKG_USER-REAXC=yes" +# +# } + +# pbuild::configure() { +# cp -v "${BUILDBLOCK_DIR}/files/Makefile.PSI" "${BUILD_DIR}/src/MAKE/MINE" +# } +# pbuild::compile() { - make -C src PSI + echo BEGIN COMPILE + cd src + # make clean-all + # make no-all + make yes-user-omp + make yes-asphere + make yes-body + make yes-compress + make yes-coreshell + make yes-dipole + make yes-granular + make yes-manybody + make yes-mc + make yes-misc + make yes-molecule + make yes-mpiio + make yes-opt + make yes-python + make yes-replica + make yes-rigid + make yes-snap + make yes-user-eff + make yes-user-drude + make yes-user-reaxc + make yes-user-reaxc args="-m serial" + make yes-user-reaxc args="-m mpi" + make mpi + echo ENDCOMPILE } pbuild::install() { install -m 0755 -d "${PREFIX}/bin" - install -m 0755 "${BUILD_DIR}/src/lmp_PSI" "${PREFIX}/bin/lmp_omp" - strip "${PREFIX}/bin/lmp_omp" + # Modify this for installing individual binaries + install -m 0755 "${BUILD_DIR}/src/lmp_mpi" "${PREFIX}/bin/" + + # Strip all present binaries + for file in $(ls ${PREFIX}/bin/lmp_*) + do + strip "$file" + done } - -pbuild::make_all - diff --git a/MPI/lammps/modulefile b/MPI/lammps/modulefile index 3f4eb34..86b7305 100644 --- a/MPI/lammps/modulefile +++ b/MPI/lammps/modulefile @@ -1,22 +1,12 @@ #%Module1.0 -module-whatis "an accelerator modeling code th" -module-url "http://www.aps.anl.gov/Accelerator_Systems_Division/Accelerator_Operations_Physics/elegant.html" -module-license "See: http://www.aps.anl.gov/epics/license/index.php" -module-maintainer "Achim Gsell " +module-whatis "An accelerator modeling code th" +module-url "https://lammps.sandia.gov/" +module-license "See: https://lammps.sandia.gov/doc/Intro_opensource.html" +module-maintainer "Marc Caubet Serrabou " module-help " -elegant is an accelerator modeling code that performs many functions. Its -basic function is 6D tracking, which it performs using matrices (up to -second order), symplectic integration, numerical integration, or a user- -defined mixture. It computes Twiss parameters, transport matrices, radiation -integrals, correction matrices, amplification factors, and floor coordinates. -It also performs optimization, including optimization of radiation integrals, -floor coordinates, transport matrices, and beam properties from tracking. A -number of time-dependent elements are supported, such as rf cavities, kickers, -and ramping machines. The code provides simulation of various collective -effects, such as wakes and coherent synchrotron radiation. -" +LAMMPS is a classical molecular dynamics (MD) code that models ensembles of particles in a liquid, solid, or gaseous state. It can model atomic, polymeric, biological, solid-state (metals, ceramics, oxides), granular, coarse-grained, or macroscopic systems using a variety of interatomic potentials (force fields) and boundary conditions. It can model 2d or 3d systems with only a few particles up to millions or billions. LAMMPS can be built and run on a laptop or desktop machine, but is designed for parallel computers. It will run on any parallel machine that supports the MPI message-passing library. This includes shared-memory boxes and distributed-memory clusters and supercomputers. LAMMPS is written in C++. Earlier versions were written in F77 and F90. See the History page of the website for details. All versions can be downloaded from the LAMMPS website. LAMMPS is designed to be easy to modify or extend with new capabilities, such as new force fields, atom types, boundary conditions, or diagnostics. See the Modify doc page for more details. In the most general sense, LAMMPS integrates Newton’s equations of motion for a collection of interacting particles. A single particle can be an atom or molecule or electron, a coarse-grained cluster of atoms, or a mesoscopic or macroscopic clump of material. The interaction models that LAMMPS includes are mostly short-range in nature; some long-range models are included as well. LAMMPS uses neighbor lists to keep track of nearby particles. The lists are optimized for systems with particles that are repulsive at short distances, so that the local density of particles never becomes too large. This is in contrast to methods used for modeling plasma or gravitational bodies (e.g. galaxy formation). On parallel machines, LAMMPS uses spatial-decomposition techniques to partition the simulation domain into small sub-domains of equal computational cost, one of which is assigned to each processor. Processors communicate and store “ghost” atom information for atoms that border their sub-domain." setenv RPN_DEFNS $PREFIX/RPN-DEFNS setenv HOST_ARCH linux-x86_64 From fb8eca99c8e35536257bda50cb707d2c8ed4a5f6 Mon Sep 17 00:00:00 2001 From: Caubet Serrabou Marc Date: Fri, 23 Nov 2018 16:27:43 +0100 Subject: [PATCH 6/8] Added qe/6.3 Quantum Espresso --- MPI/lammps/2018/variants | 1 + MPI/lammps/build | 4 ++++ MPI/qe/6/variants | 1 + MPI/qe/build | 20 ++++++++++++++++++++ MPI/qe/modulefile | 9 +++++++++ 5 files changed, 35 insertions(+) create mode 100644 MPI/qe/6/variants create mode 100755 MPI/qe/build create mode 100644 MPI/qe/modulefile diff --git a/MPI/lammps/2018/variants b/MPI/lammps/2018/variants index 1939329..96c6549 100644 --- a/MPI/lammps/2018/variants +++ b/MPI/lammps/2018/variants @@ -1,3 +1,4 @@ lammps/2018.3 unstable gcc/7.3.0 openmpi/3.0.1 lammps/2018.3_merlin unstable gcc/8.2.0 openmpi/3.1.1 b:cmake/3.9.6 lammps/2018.11_merlin unstable gcc/8.2.0 openmpi/3.1.1 b:cmake/3.9.6 +lammps/2018.11_merlin2 unstable gcc/8.2.0 openmpi/3.1.1 b:cmake/3.9.6 diff --git a/MPI/lammps/build b/MPI/lammps/build index 29e4d73..c5a4b86 100755 --- a/MPI/lammps/build +++ b/MPI/lammps/build @@ -30,6 +30,10 @@ pbuild::compile_in_sourcetree # cp -v "${BUILDBLOCK_DIR}/files/Makefile.PSI" "${BUILD_DIR}/src/MAKE/MINE" # } # +pbuild::configure() { + sed -i '/^CCFLAGS.*/ s/$/ -fopenmp/' ${BUILD_DIR}/src/MAKE/Makefile.mpi + sed -i '/^LINKFLAGS.*/ s/$/ -fopenmp/' ${BUILD_DIR}/src/MAKE/Makefile.mpi +} pbuild::compile() { echo BEGIN COMPILE diff --git a/MPI/qe/6/variants b/MPI/qe/6/variants new file mode 100644 index 0000000..5b9e1a5 --- /dev/null +++ b/MPI/qe/6/variants @@ -0,0 +1 @@ +qe/6.3 unstable gcc/8.2.0 openmpi/3.1.1 b:cmake/3.9.6 diff --git a/MPI/qe/build b/MPI/qe/build new file mode 100755 index 0000000..ad86331 --- /dev/null +++ b/MPI/qe/build @@ -0,0 +1,20 @@ +#!/usr/bin/env modbuild + +pbuild::set_download_url "https://github.com/QEF/q-e/archive/$P-$V.tar.gz" +echo "https://github.com/QEF/q-e/archive/$P-$V.tar.gz" + +pbuild::add_to_group 'MPI' + +pbuild::install_docfiles License README.md CONTRIBUTING.md + +pbuild::compile_in_sourcetree + + +pbuild::configure() { + ./configure -enable-openmp +} + +pbuild::compile() { + make all +} + diff --git a/MPI/qe/modulefile b/MPI/qe/modulefile new file mode 100644 index 0000000..a25ccda --- /dev/null +++ b/MPI/qe/modulefile @@ -0,0 +1,9 @@ +#%Module1.0 + +module-whatis "is an integrated suite of Open-Source computer codes for electronic-structure calculations and materials modeling at the nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials." +module-url "https://www.quantum-espresso.org" +module-license "See PREFIX/share/doc/COPYING" +module-maintainer "Marc Caubet " +module-help " +QUANTUM ESPRESSOR is an integrated suite of Open-Source computer codes for electronic-structure calculations and materials modeling at the nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials. +" From 969dab3d53b03a04478cd0f6069649c67719b059 Mon Sep 17 00:00:00 2001 From: Caubet Serrabou Marc Date: Wed, 28 Nov 2018 11:46:57 +0100 Subject: [PATCH 7/8] Added Quantum Espresso --- MPI/qe/build | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/MPI/qe/build b/MPI/qe/build index ad86331..ac176ba 100755 --- a/MPI/qe/build +++ b/MPI/qe/build @@ -11,10 +11,22 @@ pbuild::compile_in_sourcetree pbuild::configure() { - ./configure -enable-openmp + mkdir -p ${PREFIX} + ./configure -enable-openmp --with-prefix="${PREFIX}/bin" --prefix="${PREFIX}/bin" } pbuild::compile() { make all } +pbuild::install() { + # Due to bug in: https://gitlab.com/QEF/q-e/commit/88e6558646dbbcfcafa5f3fa758217f6062ab91c.diff + # Deploying custom install procedure + mkdir -p ${PREFIX}/bin + cd ${BUILD_DIR} + for x in `find * ! -path "test-suite/*" -name *.x -type f` ; do + cp $x ${PREFIX}/bin/ + done + echo 'Quantum ESPRESSO binaries installed in ${PREFIX}/bin' + # make install +} From 1a8cae91b6749b441a3b5d678f8dc6e498a476da Mon Sep 17 00:00:00 2001 From: Caubet Serrabou Marc Date: Thu, 29 Nov 2018 16:23:21 +0100 Subject: [PATCH 8/8] Added package KSPACE for LAMMPS --- MPI/lammps/2018/variants | 3 +-- MPI/lammps/build | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MPI/lammps/2018/variants b/MPI/lammps/2018/variants index 96c6549..04afffc 100644 --- a/MPI/lammps/2018/variants +++ b/MPI/lammps/2018/variants @@ -1,4 +1,3 @@ lammps/2018.3 unstable gcc/7.3.0 openmpi/3.0.1 lammps/2018.3_merlin unstable gcc/8.2.0 openmpi/3.1.1 b:cmake/3.9.6 -lammps/2018.11_merlin unstable gcc/8.2.0 openmpi/3.1.1 b:cmake/3.9.6 -lammps/2018.11_merlin2 unstable gcc/8.2.0 openmpi/3.1.1 b:cmake/3.9.6 +lammps/2018.11_merlin unstable gcc/8.2.0 openmpi/3.1.1 Python/2.7.14 b:cmake/3.9.6 diff --git a/MPI/lammps/build b/MPI/lammps/build index c5a4b86..f83b881 100755 --- a/MPI/lammps/build +++ b/MPI/lammps/build @@ -48,6 +48,7 @@ pbuild::compile() { make yes-dipole make yes-granular make yes-manybody + make yes-kspace make yes-mc make yes-misc make yes-molecule