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

Adding GROMACS #61

Closed
wants to merge 35 commits into from
Closed
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
acce1d6
Create gromacs/application.py
pearce8 Nov 29, 2023
720b176
Add gromacs openmp config (#62)
rfhaque Nov 30, 2023
6b70948
Merge remote-tracking branch 'origin/develop' into feature-gromacs
rfhaque Dec 1, 2023
06c2b29
Update repo/gromacs/application.py
pearce8 Dec 5, 2023
0f98c77
Update repo/gromacs/application.py
pearce8 Dec 5, 2023
68e7d28
Merge branch 'develop' into feature-gromacs
pearce8 Dec 5, 2023
1679d15
Merge branch 'develop' into feature-gromacs
pearce8 Dec 14, 2023
f5f723a
copyright
pearce8 Dec 18, 2023
e73ec42
copyright
pearce8 Dec 18, 2023
fa765a6
copyright
pearce8 Dec 18, 2023
aea9180
Merging develop
pearce8 Jan 8, 2024
aeb966c
Merge branch 'develop' into feature-gromacs
pearce8 Jan 16, 2024
05dc3b2
Merge branch 'develop' into feature-gromacs
pearce8 Jan 17, 2024
c1e2112
Merge branch 'develop' into feature-gromacs
pearce8 Jan 20, 2024
992421a
Draft ADAC experiment setup
Jan 30, 2024
7eba856
Merge branch 'develop' into feature-gromacs
pearce8 Feb 5, 2024
1762eea
Merge branch 'develop' into feature-gromacs
pearce8 Feb 6, 2024
4347564
Merge remote-tracking branch 'origin/develop' into feature-gromacs
Feb 8, 2024
0738ba5
CUDA experiment for LLNL-Sierra-IBM-power9-V100-Infiniband
Feb 10, 2024
9f13277
CUDA config for LLNL-Pascal-Penguin-broadwell-P100-OmniPat
Feb 11, 2024
32f84ee
Fix target name
Feb 11, 2024
ee940e6
CUDA config for lassen
Feb 16, 2024
c065093
Fix cuda config
Feb 17, 2024
b8ca5a2
Set Openmp thread affinity to cores
Feb 17, 2024
5f334fe
Fix cuda compiler for gromacs
Feb 17, 2024
5b695ca
Merge branch 'develop' into feature-gromacs
pearce8 Feb 20, 2024
72ff192
gromacs rocm config
Feb 21, 2024
078c4a5
Merge branch 'feature-gromacs' of github.com:LLNL/benchpark into feat…
Feb 21, 2024
5de5699
gromacs rocm config
Feb 22, 2024
3fbc244
Remove spack_setup
Feb 22, 2024
379bac6
Merge with develop
Feb 23, 2024
89ff45a
Merge remote-tracking branch 'origin/develop' into feature-gromacs
Feb 26, 2024
2d4f924
ROCm packages: externals consistency (#150)
scheibelp Mar 4, 2024
5bd8821
Merge remote-tracking branch 'origin/develop' into feature-gromacs
Apr 3, 2024
90ccdd9
Merge with develop
Jun 20, 2024
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
Expand Up @@ -28,6 +28,16 @@ packages:
- spec: [email protected]
prefix: /usr/tce/backend/installations/linux-rhel8-x86_64/intel-19.0.4/intel-oneapi-mkl-2022.1.0-sksz67twjxftvwchnagedk36gf7plkrp
buildable: false
hwloc:
externals:
- spec: [email protected]
prefix: /usr
buildable: false
fftw:
externals:
- spec: [email protected]
prefix: /usr/tce/packages/fftw/fftw-3.3.10
buildable: false
mpi:
externals:
- spec: [email protected]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,6 @@ packages:
externals:
- spec: [email protected]
prefix: /usr
mpi:
buildable: false
mvapich2:
buildable: false
externals:
- spec: [email protected]%[email protected]
prefix: /usr/tce/packages/mvapich2/mvapich2-2.3.7-intel-classic-2021.6.0/
cuda:
buildable: false
externals:
- spec: [email protected]
prefix: /usr/tce/packages/cuda/cuda-11.8.0/
curand:
externals:
- spec: [email protected]
Expand All @@ -49,16 +37,47 @@ packages:
- spec: [email protected]
prefix: /usr/tce/packages/cuda/cuda-11.8.0
buildable: false
cuda:
externals:
- spec: [email protected]
prefix: /usr/tce/packages/cuda/cuda-11.8.0
buildable: false
cublas:
externals:
- spec: [email protected]
prefix: /usr/tce/packages/cuda/cuda-11.8.0
buildable: false
cusolver:
externals:
- spec: [email protected]
prefix: /usr/tce/packages/cuda/cuda-11.8.0
buildable: false
blas:
externals:
- spec: [email protected]
prefix: /usr/tce/packages/mkl/mkl-2022.1.0
buildable: false
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it will be cleaner to reorganize

  blas:
    externals:
    - spec: [email protected]
      prefix: /usr/tce/packages/mkl/mkl-2022.1.0
    buildable: false
  lapack:
    externals:
    - spec: [email protected]
      prefix: /usr/tce/packages/mkl/mkl-2022.1.0
    buildable: false
  intel-oneapi-mkl:
    externals:
    - spec: [email protected]
      prefix: /usr/tce/packages/mkl/mkl-2022.1.0/
    buildable: false

as

  blas:
    buildable: false
  lapack:
    buildable: false
  intel-oneapi-mkl:
    externals:
    - spec: [email protected]
      prefix: /usr/tce/packages/mkl/mkl-2022.1.0/
    buildable: false

intel-oneapi-mkl provides both blas and lapack, so this reduces redundancy.

fftw:
externals:
- spec: [email protected]
prefix: /usr/tce/packages/mkl/mkl-2022.1.0
buildable: false
lapack:
externals:
- spec: [email protected]
prefix: /usr/tce/packages/mkl/mkl-2022.1.0
buildable: false
intel-oneapi-mkl:
externals:
- spec: [email protected]
prefix: /usr/tce/packages/mkl/mkl-2022.1.0/
buildable: false
mpi:
buildable: false
mvapich2:
externals:
- spec: [email protected]
prefix: /usr/tce/packages/mvapich2/mvapich2-2.3.7-gcc-11.2.1
- spec: [email protected]
prefix: /usr/tce/packages/mvapich2/mvapich2-2.3.7-intel-classic-2021.6.0/
buildable: false
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@ spack:
default-compiler:
spack_spec: gcc@=11.2.1
default-mpi:
spack_spec: [email protected]
spack_spec: [email protected]-gcc1121
compiler-gcc:
spack_spec: gcc@=11.2.1
blas:
spack_spec: [email protected]
cublas-cuda:
spack_spec: cublas@{default_cuda_version}
lapack:
spack_spec: [email protected]
fftw:
spack_spec: [email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,21 @@ compilers:
modules: []
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(for another PR) I noticed when looking above that there are 3 xl/cuda compiler combos - is that still necessary?

environment: {}
extra_rpaths: []
- compiler:
spec: [email protected]
paths:
cc: /usr/tce/packages/clang/clang-16.0.6-cuda-11.8.0-gcc-11.2.1/bin/clang
cxx: /usr/tce/packages/clang/clang-16.0.6-cuda-11.8.0-gcc-11.2.1/bin/clang++
f77: /usr/tce/packages/gcc/gcc-11.2.1/bin/gfortran
fc: /usr/tce/packages/gcc/gcc-11.2.1/bin/gfortran
flags:
cflags: -g -O2
cxxflags: -g -O2 -std=c++17
fflags: ''
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(minor) you can remove this line entirely if you want.

operating_system: rhel7
target: ppc64le
modules: []
environment:
set:
GXX_PREFIX: "/usr/tce/packages/gcc/gcc-11.2.1"
extra_rpaths: []
Original file line number Diff line number Diff line change
Expand Up @@ -48,26 +48,45 @@ packages:
- spec: [email protected]
prefix: /usr/tce/packages/cuda/cuda-11.8.0
buildable: false
blas:
cublas:
externals:
- spec: [email protected]
prefix: /usr/tce/packages/cuda/cuda-10.1.243
- spec: [email protected]
prefix: /usr/tce/packages/cuda/cuda-11.8.0
buildable: false
cusolver:
externals:
- spec: [email protected]
prefix: /usr/tce/packages/cuda/cuda-11.8.0
buildable: false
blas:
externals:
- spec: [email protected]
prefix: /usr/tcetmp/packages/blas/blas-3.6.0-gfortran-4.8.5
buildable: false
fftw:
externals:
- spec: [email protected]
prefix: /usr/tcetmp/packages/fftw/fftw-3.3.10-xl-2023.06.28
buildable: false
lapack:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While this PR disables use of external blas/lapack, I think it would be worth reorganizing it:

  blas:
    buildable: false
  lapack:
    buildable: false
  netlib-lapack:
    externals:
    - spec: [email protected]
      prefix: /usr/tcetmp/packages/lapack/lapack-3.11.0-gcc-11.2.1/

(this config worked for me when using external blas/lapack and also avoids any potential issues with listing lapack-xl as an external, which isn't a Spack package).

externals:
- spec: lapack-xl@3.9.0
prefix: /usr/tcetmp/packages/lapack/lapack-3.9.0-xl-2020.03.18
- spec: lapack-xl@3.6.0
prefix: /usr/tcetmp/packages/lapack/lapack-3.6.0-gfortran-4.8.5
buildable: false
mpi:
externals:
- spec: [email protected]cuda-11.8.0
- spec: [email protected]cuda11.8.0
prefix: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-xl-2022.08.19-cuda-11.8.0
extra_attributes:
ldflags: "-lmpiprofilesupport -lmpi_ibm_usempi -lmpi_ibm_mpifh -lmpi_ibm"
- spec: [email protected]cuda-10.1.243
- spec: [email protected]cuda10.1.243
prefix: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-xl-2022.08.19-cuda-10.1.243
extra_attributes:
ldflags: "-lmpiprofilesupport -lmpi_ibm_usempi -lmpi_ibm_mpifh -lmpi_ibm"
- spec: [email protected]
prefix: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-clang-16.0.6-cuda-11.8.0-gcc-11.2.1
extra_attributes:
ldflags: "-lmpiprofilesupport -lmpi_ibm_usempi -lmpi_ibm_mpifh -lmpi_ibm"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not aware of Spack being able to make use of extra_attributes in this way (only to do things with environment set/unset/prepend operations etc.). Did you find that you needed it?

buildable: false
12 changes: 8 additions & 4 deletions configs/LLNL-Sierra-IBM-power9-V100-Infiniband/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,16 @@
spack:
packages:
default-compiler:
spack_spec: xl@16.1.1-2022.08.19-cuda{default_cuda_version}
spack_spec: clang@16.0.6-cuda{default_cuda_version}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

xl should be the default compiler on sierra. Please create compiler-clang to use for Gromacs if you must.

default-mpi:
spack_spec: [email protected]
spack_spec: [email protected]-clang16.0.6-cuda{default_cuda_version}
compiler-gcc:
spack_spec: [email protected]
blas:
spack_spec: [email protected]
cublas-cuda:
spack_spec: cublas@{default_cuda_version}
spack_spec: cublas@{default_cuda_version}
lapack:
spack_spec: [email protected]
spack_spec: [email protected]
fftw:
spack_spec: [email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ variables:
mpi_command: '/usr/tcetmp/bin/lrun -n {n_ranks} -T {processes_per_node} {gtl_flag}'
batch_submit: 'bsub -q pdebug {execute_experiment}'
batch_nodes: '#BSUB -nnodes {n_nodes}'
batch_ranks: '#BSUB -nnodes {n_nodes}'
batch_ranks: ''
batch_timeout: '#BSUB -W {batch_time}'
default_cuda_version: '11.8.0'
cuda_arch: '70'
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,13 @@ packages:
prefix: /opt/cray/pe/libsci/23.05.1.4/gnu/10.3/x86_64/
lapack:
buildable: false
hypre:
Copy link
Collaborator Author

@pearce8 pearce8 Feb 20, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove hypre from this list. All variants are already set to amdgpu_target=gfx90a

variants: amdgpu_target=gfx90a
hwloc:
externals:
- spec: [email protected]
prefix: /usr
buildable: false
mpi:
buildable: false
cray-mpich:
Expand Down
16 changes: 16 additions & 0 deletions experiments/gromacs/cuda/execute_experiment.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash

## Copyright 2023 Lawrence Livermore National Security, LLC and other
## Benchpark Project Developers. See the top-level COPYRIGHT file for details.
##
## SPDX-License-Identifier: Apache-2.0

{batch_nodes}
{batch_ranks}
{batch_timeout}

cd {experiment_run_dir}

{experiment_setup}

{command}
61 changes: 61 additions & 0 deletions experiments/gromacs/cuda/ramble.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Copyright 2023 Lawrence Livermore National Security, LLC and other
# Benchpark Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: Apache-2.0

ramble:
config:
deprecated: true
spack_flags:
install: '--add --keep-stage'
concretize: '-U -f'

applications:
gromacs:
workloads:
water_gmx50_adac:
env_vars:
set:
OMP_PROC_BIND: close
OMP_PLACES: threads
OMP_NUM_THREADS: '{omp_num_threads}'
variables:
experiment_setup: ''
n_ranks: '{processes_per_node} * {n_nodes}'
processes_per_node: '2'
n_nodes: '4'
omp_num_threads: '10'
target: 'gpu'
experiments:
gromacs_water_gmx50_adac_size{size}_dlb{dlb}_pin{pin}_target{target}_maxh{maxh}_nsteps{nsteps}_nstlist{nstlist}_npme{npme}:
variables:
dlb: 'no'
pin: 'off'
nb: '{target}'
pme: 'auto'
bonded: 'cpu'
update: '{target}'
maxh: '0.05'
nsteps: '1000'
nstlist: '200'
npme: '1'
size: '1536'

spack:
concretized: true
packages:
gromacs:
spack_spec: [email protected] +mpi+openmp+cuda~hwloc~double cuda_arch=={cuda_arch}
compiler: default-compiler
cuda:
spack_spec: cuda@{default_cuda_version}+allow-unsupported-compilers
compiler: default-compiler
environments:
gromacs:
packages:
- cuda
- blas
- lapack
- default-mpi
- fftw
- gromacs
18 changes: 18 additions & 0 deletions experiments/gromacs/openmp/execute_experiment.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/bash

## Copyright 2023 Lawrence Livermore National Security, LLC and other
## Benchpark Project Developers. See the top-level COPYRIGHT file for details.
##
## SPDX-License-Identifier: Apache-2.0

{batch_nodes}
{batch_ranks}
{batch_timeout}

cd {experiment_run_dir}

{spack_setup}

{experiment_setup}

{command}
59 changes: 59 additions & 0 deletions experiments/gromacs/openmp/ramble.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Copyright 2023 Lawrence Livermore National Security, LLC and other
# Benchpark Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: Apache-2.0

ramble:
config:
deprecated: true
spack_flags:
install: '--add --keep-stage'
concretize: '-U -f'

applications:
gromacs:
workloads:
water_gmx50_adac:
env_vars:
set:
OMP_PROC_BIND: close
OMP_PLACES: threads
OMP_NUM_THREADS: '{omp_num_threads}'
variables:
experiment_setup: ''
n_ranks: '{processes_per_node} * {n_nodes}'
processes_per_node: '4'
n_nodes: '2'
omp_num_threads: '16'
target: 'cpu'
experiments:
gromacs_water_gmx50_adac_size{size}_dlb{dlb}_pin{pin}_target{target}_maxh{maxh}_nsteps{nsteps}_nstlist{nstlist}_npme{npme}:
variables:
dlb: 'no'
pin: 'off'
nb: '{target}'
pme: 'auto'
bonded: '{target}'
update: '{target}'
maxh: '0.05'
nsteps: '1000'
nstlist: '200'
npme: '0'
size: '1536'

spack:
concretized: true
packages:
fftw:
spack_spec: [email protected] +mpi+openmp
compiler: default-compiler
gromacs:
spack_spec: gromacs@main +mpi+openmp~hwloc
compiler: default-compiler
environments:
gromacs:
packages:
- lapack
- default-mpi
- fftw
- gromacs
11 changes: 11 additions & 0 deletions repo/cusolver/package.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Copyright 2023 Lawrence Livermore National Security, LLC and other
# Benchpark Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: Apache-2.0

from spack.package import *


class Cusolver(Package):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does anything use this? Is it still needed?


provides("lapack")
Loading
Loading