HiPACE: new package (#24070)

Co-authored-by: Severin Diederichs <65728274+SeverinDiederichs@users.noreply.github.com>
This commit is contained in:
Axel Huebl 2021-06-14 10:34:24 -07:00 committed by GitHub
parent 9cfcc16084
commit 22fe56ad24
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 70 additions and 1 deletions

View file

@ -0,0 +1,66 @@
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Hipace(CMakePackage):
"""Highly efficient Plasma Accelerator Emulation, quasistatic
particle-in-cell code
"""
homepage = "https://hipace.readthedocs.io"
# url = "https://github.com/Hi-PACE/hipace/archive/refs/tags/21.06.tar.gz"
git = "https://github.com/Hi-PACE/hipace.git"
maintainers = ['ax3l', 'MaxThevenet', 'SeverinDiederichs']
version('develop', branch='development')
variant('compute',
default='omp',
values=('omp', 'cuda', 'hip', 'sycl', 'noacc'),
multi=False,
description='On-node, accelerated computing backend')
variant('mpi', default=True,
description='Enable MPI support')
variant('openpmd', default=True,
description='Enable openPMD I/O')
variant('precision',
default='double',
values=('single', 'double'),
multi=False,
description='Floating point precision (single/double)')
depends_on('cmake@3.15.0:', type='build')
depends_on('cuda@9.2.88:', when='compute=cuda')
depends_on('fftw@3:', when='compute=omp')
depends_on('fftw +mpi', when='+mpi compute=omp')
depends_on('mpi', when='+mpi')
depends_on('openpmd-api@hipace', when='+openpmd')
depends_on('openpmd-api ~mpi', when='+openpmd ~mpi')
depends_on('openpmd-api +mpi', when='+openpmd +mpi')
depends_on('pkgconfig', type='build', when='compute=omp')
depends_on('rocfft', when='compute=hip')
depends_on('rocprim', when='compute=hip')
depends_on('rocrand', when='compute=hip')
depends_on('llvm-openmp', when='%apple-clang compute=omp')
def cmake_args(self):
spec = self.spec
args = [
# do not super-build dependencies
'-HiPACE_openpmd_internal=OFF',
# variants
'-DHiPACE_COMPUTE={0}'.format(
spec.variants['compute'].value.upper()),
self.define_from_variant('HiPACE_MPI', 'mpi'),
self.define_from_variant('HiPACE_OPENPMD', 'openpmd'),
'-DHiPACE_PRECISION={0}'.format(
spec.variants['precision'].value.upper()),
]
return args

View file

@ -15,12 +15,15 @@ class OpenpmdApi(CMakePackage):
maintainers = ['ax3l']
# C++14 up until here
version('dev', branch='dev')
# temporary, pre 0.14.0 version for HiPACE++
version('hipace', commit='ac083025ee662469b8cad1adf93eef48cde35f58')
version('0.13.4', sha256='46c013be5cda670f21969675ce839315d4f5ada0406a6546a91ec3441402cf5e')
version('0.13.3', sha256='4b8f84bd89cd540c73ffe8c21085970453cb7f0e4f125f11a4e288433f64b58c')
version('0.13.2', sha256='2e5170d41bb7b2c0608ec833eee7f9adf8175b46734743f6e46dcce6f6685fb0')
version('0.13.1', sha256='81ff79419982eb1b0865d1736f73f950f5d4c356d3c78200ceeab7f54dc07fd7')
version('0.13.0', sha256='97c2e43d80ee5c5288f278bd54f0dcb40e7f48a575b278fcef9660214b779bb0') # C++14 required
version('0.13.0', sha256='97c2e43d80ee5c5288f278bd54f0dcb40e7f48a575b278fcef9660214b779bb0')
# C++11 up until here
version('0.12.0', tag='0.12.0-alpha')
version('0.11.1', tag='0.11.1-alpha')