diff options
author | Aaron Fisher <fisher47@llnl.gov> | 2018-03-31 00:47:32 -0700 |
---|---|---|
committer | Veselin Dobrev <v-dobrev@users.noreply.github.com> | 2018-03-31 00:47:32 -0700 |
commit | b62ed20f3ff4052a6fb6a6fd81e70f3fc9b7dfdf (patch) | |
tree | 4b4a5cef3d7a1e2675d9b7d9c71fdce4cfda25e5 /var/spack/repos/builtin/packages/ceed | |
parent | b3f6015e32f8b91044e1cdb3de5211dc4ddf1bb4 (diff) | |
download | spack-b62ed20f3ff4052a6fb6a6fd81e70f3fc9b7dfdf.tar.gz spack-b62ed20f3ff4052a6fb6a6fd81e70f3fc9b7dfdf.tar.bz2 spack-b62ed20f3ff4052a6fb6a6fd81e70f3fc9b7dfdf.tar.xz spack-b62ed20f3ff4052a6fb6a6fd81e70f3fc9b7dfdf.zip |
CEED 1.0 (#7423)
* ceed bundle package including OCCA, MAGMA, Nek5000, mfem, and PETSc
Very preliminary, a lot of ad hoc decisions, fragile, missing functionality
All packages do build on my MacOS laptop with Cuda
Funded-by: ECP
Project: CEED
Time: 4 hours
Reported-by: Tzanio Kolev <kolev1@llnl.gov>
* Some adjustments in a few CEED-related packages.
This is still very preliminary, but with these changes I'm able to build from
scratch on a Mac laptop and a Linux desktop (RHEL7).
Note that there doesn't seem to be a good way to support CUDA in Spack, so
you'll have to install that manually yourself. You will also need a Fortran
compiler, in particular on a Mac where you also have to make sure that it
is being picked up in ~/.spack/darwin/compilers.yaml.
* ceed bundle package including OCCA, MAGMA, Nek5000, mfem, and PETSc
Very preliminary, a lot of ad hoc decisions, fragile, missing functionality
All packages do build on my MacOS laptop with Cuda
Funded-by: ECP
Project: CEED
Time: 4 hours
Reported-by: Tzanio Kolev <kolev1@llnl.gov>
* Reverting Mac-related CUDA checks in the OCCA and MAGMA packages.
A much better solution is to install CUDA manually and add it to
~/.spack/darwin/packages.yaml:
packages:
cuda:
paths:
cuda@8.0.54: /usr/local/cuda
* Fix flake8 warnings
Funded-by: CEED
Project: CEED/Spack
* remove unneeded commented out code
Funded-by: CEED
Project: CEED/Spack
* Don't have PETSc use MUMPS to speedup install time, try parallel installs for Magma
Funded-by: CEED
Project: CEED/Spack
* Added libceed package and made changes to get the ceed metapackage up and running.
* Get the ceed package up and running and added installing the .h file in the libceed package.
* All packages are now pointed at specific versions (either tagged or git hashed.
* Changed some of the specific versions in the CEED metapackage.
* Some version updates.
* Applied Cameron Smith's patch for the latest pumi.
* Merge
* Nek5000: Use tarball instead of git tag
* Major update of the mfem package - needs more testing. Add a testing
shell script for mfem, test_builds.sh, in the mfem directory. It builds
a number of mfem configurations to ensure they all work.
Add 'suite-sparse' variant to petsc.
Add 'develop' version of libceed.
Add 'metis' variant of laghos.
Update the dependencies of ceed.
* Changes in petsc's handling of zlib to make the latest build work on Mac.
* [MFEM] When using '+libunwind', mfem needs '-ldl'.
* [OCCA] Remove debug print statements.
* [PETSc] Replace the check ('zlib' in spec) with ('+zlib' in spec) - the
latter checks if 'zlib' variant of petsc is enabled which is incorrect;
the former checks if petsc is configured to depend on 'zlib'.
* [MFEM] Add conduit variant.
* [libCEED] Enable testing using 'make prove'.
* [MFEM] Tweak test_builds.sh - all builds pass on fedora 27.
* Add a post install test
* Add a post installation check for NekCEM
* pumi: bump git hash, remove unused patch
* Fixed testing of Laghos package
* Adding variants in CEED package
* Empty file for URL didn't work on LLNL/LC. Replacing with bundle-package.txt -> README.md.
* [MFEM] If the spec defines the 'cxxflags' compiler flags, use that value
to set the CXXFLAGS value in the mfem build system.
* Disabling HDF5 by default.
You can still build it with "spack install ceed+hdf5".
* libceed: fix use of prefix versus DESTDIR
* Added cuda variant for libCEED (off by default)
* [libCEED] When building v0.1, fix ceed.pc before installing it.
* [CEED] Add variants for OCCA and PUMI. Replace the hdf5 variant with
a variant called quickbuild that disables variants in packages to
speedup the build - currently hdf5, boost, and superlu-dist in PETSc.
* [libCEED] Remove unused 'import os'.
* [MAGMA] Add version 2.3.0.
* [OCCA] Major update of occa/package.py.
* [libCEED] Several improvements.
* [CEED] Use fixed versions for occa and libceed.
* [OCCA] Fix a bug in CUDA setup.
* NekCEM doesn't need depends_on('python')
* [OCCA,libCEED,MFEM,CEED] Update occa and libceed versions plus a few
tweaks in occa and mfem.
* Switching to gslib-1.0.2 to fix summitdev bug.
* [Nek5000] Use the Fortran 77 compiler instead of the 'fc' compiler.
Propagate any 'fflags' and 'cflags' specifications to the Nek tools.
* [MFEM] Tweak for 'ppc64le'.
* attempt to override fips compatibility error for md5
* Compiler option changes in libCEED to fix summitdev build.
* Disable the nekcem install test until it can be fixed.
* [NekCEM] Major update of the package to fix various issues.
* [NekCEM] Fix formatting
* zoltan: remove non-portable -g0 flag
the pgi compiler does not accept it
* pumi: specify dependency on cmake > 3
* [Nek5000] Add dependency on libx11 when needed. Various hacks to
support IBM XL compilers.
* [NekCEM] Link with the pthreads library - it is required.
* [MAGMA] Add a patch for magma v2.3.0 when building with gcc <= 4.8.
Add dependency on BLAS.
* [CEED] Update to magma 2.3.0. When building with gcc < 4.9 constrain
the used suite-sparse version to <= 5.1.0 - starting with v5.2.0,
suite-sparse requires gcc >= 4.9.
* Small updates
* [libceed, gslib] Fix style
* [Nek5000] Need 'libxt' as a dependency as well.
* [MUMPS] Temporary workaround for ray.
* Updating occa and libceed to laters pre-1.0.0 and pre-0.2 hashes
* petsc: add pkg-config patch for variable quoting
Variable definitions in pkg-config are processed more like make than a
shell, so don't need quoting. Older versions of pkg-config (<= 0.28)
did not remove the quotes when printing the value.
Freedesktop #67904 (https://bugs.freedesktop.org/show_bug.cgi?id=67904)
Reported-by: Tzanio Kolev <kolev1@llnl.gov>
* petsc: add 3.8.4 and myself as co-maintainer
* Updating libceed to latest pre-0.2 hash.
* [PETSc] Add the 'headers' and 'libs' properties.
* [MFEM] Explicitly add rpaths to link flags for external packages.
This is necessary when MFEM's exported options (in config.mk) are
used outside of Spack for linking against MFEM.
* Unset MFEM_DIR before building MFEM
* [PETSc] As observed by @jedbrown, there is no need to define the 'libs'
property explicitly - the default handler works fine too.
* Build MAGMA shared by default, install a few additional headers
* Forgot a self
* Switching to OCCA tag v1.0.0-alpha.4.
Adding urls for OCCA and libCEED ('spack uninstall' complains otherwise).
* Removed FIXMEs for OCCA tag
* [occa] Cleaned up tagged versions
* [libceed] Updated occa to v1.0.0-alpha.5
* [ceed] Updated occa to v1.0.0-alpha.5
* [libCEED] Always define the 'NDEBUG' makefile option based on the
'debug' variant setting - this should always work regardless of the
default setting inside the libceed makefile.
* [MUMPS] Revert a temporary workaround.
* [CEED, libCEED] Minor tweaks.
* libCEED v0.2 release
* [CEED] Use version 0.2 of libCEED.
* [HPGMG] Remove duplicate version.
* [CEED] Update the hpgmg version
* hpgmg: use tarball for 0.3
The Git repository contains somewhat heavy documentation so the tarballs
are much faster.
* hpgmg: +fe was default for the 0.3 release
* hpgmg: explicitly name build directory to avoid use of ambient PETSC_ARCH
* [HPGMG] Fix flake8 formatting
* libceed@0.2: work around occaFree issue
Diffstat (limited to 'var/spack/repos/builtin/packages/ceed')
-rw-r--r-- | var/spack/repos/builtin/packages/ceed/README.md | 3 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/ceed/package.py | 111 |
2 files changed, 114 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/ceed/README.md b/var/spack/repos/builtin/packages/ceed/README.md new file mode 100644 index 0000000000..74bcae1d17 --- /dev/null +++ b/var/spack/repos/builtin/packages/ceed/README.md @@ -0,0 +1,3 @@ +This is a bundle for the CEED software suite. + +See https://ceed.exascaleproject.org for details. diff --git a/var/spack/repos/builtin/packages/ceed/package.py b/var/spack/repos/builtin/packages/ceed/package.py new file mode 100644 index 0000000000..f6569a324c --- /dev/null +++ b/var/spack/repos/builtin/packages/ceed/package.py @@ -0,0 +1,111 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * +import os + + +class Ceed(Package): + """Ceed is a collection of benchmarks, miniapps, software libraries and + APIs for efficient high-order finite element and spectral element + discretizations for exascale applications developed in the Department of + Energy (DOE) and partially supported by the Exascale Computing Project + (ECP). This is a Spack bundle package that installs the CEED software + components.""" + + homepage = "https://ceed.exascaleproject.org" + + url = 'file://' + os.path.dirname(__file__) + '/README.md' + sha1 = 'b2eefd95c09ba573f663a761b84811a2d7e39788' + + version('1.0.0', sha1, expand=False) + + variant('cuda', default=False, + description='Build MAGMA; enable CUDA support in libCEED and OCCA') + variant('mfem', default=True, description='Build MFEM and Laghos') + variant('nek', default=True, + description='Build Nek5000, GSLIB, Nekbone, and NekCEM') + variant('occa', default=True, + description='Build OCCA; enable OCCA support in libCEED') + variant('petsc', default=True, + description='Build PETSc and HPGMG') + variant('pumi', default=True, + description='Build PUMI') + variant('quickbuild', default=True, + description='Speed-up the build by disabling variants in packages') + # TODO: Add 'int64' variant? + + # LibCEED + depends_on('libceed@0.2~cuda', when='@1.0.0~cuda') + depends_on('libceed@0.2+cuda', when='@1.0.0+cuda') + depends_on('libceed@0.2+occa', when='@1.0.0+occa') + depends_on('libceed@0.2~occa', when='@1.0.0~occa') + + # OCCA + depends_on('occa@v1.0.0-alpha.5~cuda', when='@1.0.0+occa~cuda') + depends_on('occa@v1.0.0-alpha.5+cuda', when='@1.0.0+occa+cuda') + + # Nek5000, GSLIB, Nekbone, and NekCEM + depends_on('nek5000@17.0', when='@1.0.0+nek') + depends_on('gslib@1.0.2', when='@1.0.0+nek') + depends_on('nekbone@17.0', when='@1.0.0+nek') + depends_on('nekcem@0b8bedd', when='@1.0.0+nek') + + # PETSc, HPGMG + # For a +quickbuild we disable boost, hdf5, and superlu-dist in PETSc. + # Ideally, these can be turned into recommendations to Spack for + # concretizing the PETSc spec, if Spack ever supports recommendations. + depends_on('petsc@3.8.3~boost~hdf5~superlu-dist', + when='@1.0.0+petsc+quickbuild') + depends_on('petsc@3.8.3+mpi+double~int64', when='@1.0.0+petsc~mfem') + # The mfem petsc examples need the petsc variants +hypre, +suite-sparse, + # and +mumps: + depends_on('petsc@3.8.3+mpi+hypre+suite-sparse+mumps+double~int64', + when='@1.0.0+petsc+mfem') + depends_on('hpgmg@a0a5510df23b+fe', when='@1.0.0+petsc') + + # MAGMA + depends_on('magma@2.3.0', when='@1.0.0+cuda') + + # PUMI + depends_on('pumi@2.1.0', when='@1.0.0+pumi') + + # MFEM, Laghos + depends_on('mfem@3.3.2+mpi+examples+miniapps', when='@1.0.0+mfem~petsc') + depends_on('mfem@3.3.2+mpi+petsc+examples+miniapps', + when='@1.0.0+mfem+petsc') + depends_on('laghos@1.0', when='@1.0.0+mfem') + # The next line seems to be necessary because the concretizer somehow + # decides that mfem requires 'hypre+internal-superlu' even though the mfem + # package lists simply 'hypre' as dependency. This is only an issue because + # petsc explicitly requires 'hypre~internal-superlu' which for the + # concretizer is a conflict. + depends_on('hypre~internal-superlu', when='@1.0.0+mfem') + + # If using gcc version <= 4.8 build suite-sparse version <= 5.1.0 + depends_on('suite-sparse@:5.1.0', when='@1.0.0%gcc@:4.8+mfem+petsc') + + # Dummy install + def install(self, spec, prefix): + install('README.md', prefix) |