aboutsummaryrefslogtreecommitdiff
path: root/Tools/machines/lxplus-cern/spack.yaml
blob: 399714e97efc16c927731e9eaf37e85703f0574e (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
spack:
  # variations of this environment can be controlled via environment variables during `spack env create`
  definitions:
  # CUDA
  - cuda: []
  - cuda: [cuda, blaspp +cuda, lapackpp ^blaspp +cuda]
    when: env.get("SPACK_STACK_USE_CUDA", "1") == "1"
  - cuda: [cuda, blaspp, lapackpp]
    when: env.get("SPACK_STACK_USE_CUDA", "1") != "1"

  # basic Python dependencies for WarpX Python PICMI bindings
  - python: []
  - python: [python, py-pip, openpmd-api +python]
    when: env.get("SPACK_STACK_USE_PYTHON", "1") == "1"
  - python: [openpmd-api]
    when: env.get("SPACK_STACK_USE_PYTHON", "1") != "1"
  specs:
  - adios2
  - ccache
  - cmake
  - fftw
  - hdf5
  - mpi
  - pkgconfig
  - $cuda
  - $python

  packages:
    all:
      # since lxplus has multiple CPU micro-architectures, we do not tune for a specific one
      # in the future, if highest on-CPU performance is needed, we should not limit this to generic x86_64,
      # otherwise the compiler will not use recent vector operations, among other recent CPU hardware features.
      target: [x86_64]
      compiler: [gcc@11.2.0]
      variants: ~fortran
      providers:
        mpi: [openmpi]
    ncurses:
      # This is needed for any build of ncurses on lxplus, due to its AFS filesystem
      variants: +symlinks

  compilers:
  - compiler:
      environment: {}
      extra_rpaths: []
      spec: gcc@11.2.0
      paths:
        cc: /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-ad950/x86_64-centos7/bin/gcc
        cxx: /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-ad950/x86_64-centos7/bin/g++
        f77: /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-ad950/x86_64-centos7/bin/gfortran
        fc: /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-ad950/x86_64-centos7/bin/gfortran
      flags: {}
      operating_system: centos7
      target: x86_64
      modules: []
  config:
    build_jobs: 6
    # Spack defaults will try to set permissions in a way which is forbidden on the LXPLUS file system (AFS)
    allow_sgid: false