aboutsummaryrefslogtreecommitdiff
path: root/Tools/machines/desktop/spack-macos-openmp.yaml
blob: 820cf7069fdc138c2e73f70bbba2c1bef8b4e25f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# This is a Spack environment file.
#
# This environment can be used to install all dependencies to build the manual
# locally.
#
# Activating and installing this environment will provide all dependencies
# that are needed for full-feature development.
#   https://spack.readthedocs.io/en/latest/environments.html
#
# Inside the directory of this file
#   spack env create warpx-openmp-dev spack-macos-openmp.yaml
#   spack env activate warpx-openmp-dev
#   spack install  # only needed the first time
#
spack:
  specs:
  - adios2 ~fortran
  - ascent +adios2 +python ~fortran
  - blaspp ~cuda +openmp ~rocm
  - boost
  - ccache
  - cmake
  - conduit ~fortran
  - fftw
  - hdf5 ~fortran
  - lapackpp ~cuda ~rocm ^blaspp ~cuda +openmp ~rocm
  - mpi
  - llvm-openmp
  - pkgconfig
  - python
  - py-cython
  - py-h5py
  - py-libensemble +nlopt
  - py-mpi4py
  - py-numpy
  - py-pip
  - py-setuptools
  - py-wheel
  - sensei +ascent ~catalyst +python
# not yet ready for macOS prime time
#   https://github.com/spack/spack/issues/32283
#   https://github.com/spack/spack/pull/32285
#   https://github.com/spack/spack/pull/32284
#  - ecp-data-vis-sdk +adios2 +ascent +hdf5 +sensei
# skipped to save time: 3D post-processing
#  - paraview +adios2 +python3 +qt
# skipped to save time, because they are faster installed via pip afterwards
# python3 -m pip install jupyter matplotlib numpy openpmd-api openpmd-viewer pandas scipy yt
#  - py-jupyter
#  - py-matplotlib +animation +fonts +latex +movies backend=macosx
#  - openpmd-api +python
#  - py-openpmd-viewer +numba +jupyter
#  - py-pandas
#  - py-pyqt5
#  - py-scipy
#  - py-yt

  packages:
    all:
      variants: +mpi ~fortran ~cuda ~rocm
      # BLAS/LAPACK: the default (accelerate) pulls veclibfort@0.4.2 for
      #              py-numpy, which fails to build on M1
      # MPI: the default (openmpi) triggers annoying firewall warnings when
      #      running executables
      providers:
        blas: [openblas]
        lapack: [openblas]
        mpi: [mpich]
    # default blocks at HDF5 1.8, resulting in unmergable solution
    conduit:
      variants: ~hdf5_compat ~fortran
    # otherwise concretization error between ccache and all other variants
    zstd:
      variants: +programs

  compilers:
  # macOS
  # preparation: you first need to install xcode (app store) and gcc (homebrew) and gpg2 (homebrew)
  - compiler:
      spec: apple-clang@13.1.6
      paths:
        cc: /usr/bin/clang
        cxx: /usr/bin/clang++
        f77: /opt/homebrew/bin/gfortran
        fc: /opt/homebrew/bin/gfortran
      flags: {}
      operating_system: monterey
      target: aarch64
      modules: []
      environment: {}
      extra_rpaths: []
  - compiler:
      spec: apple-clang@13.1.6
      paths:
        cc: /usr/bin/clang
        cxx: /usr/bin/clang++
        f77: /opt/homebrew/bin/gfortran
        fc: /opt/homebrew/bin/gfortran
      flags: {}
      operating_system: monterey
      target: x86_64
      modules: []
      environment: {}
      extra_rpaths: []

  # binary caches
  mirrors:
    E4S: https://cache.e4s.io
    LLNL: https://mirror.spack.io
# needs boto3
#    E4Smac: s3://spack-binaries/develop/e4s-mac

  # do not try to reuse existing packages, which can confuse the concretizer
  concretizer:
    reuse: false
    unify: true

  # limit the build parallelism (default: call virtual cores)
#  config:
#    build_jobs: 6