diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py index 61acffb77c..498a3723f9 100644 --- a/var/spack/repos/builtin/packages/petsc/package.py +++ b/var/spack/repos/builtin/packages/petsc/package.py @@ -139,6 +139,13 @@ class Petsc(Package, CudaPackage, ROCmPackage): ) variant("cgns", default=False, description="Activates support for CGNS (only parallel)") variant("memkind", default=False, description="Activates support for Memkind") + variant( + "memalign", + default="none", + description="Specify alignment of allocated arrays", + values=("4", "8", "16", "32", "64", "none"), + multi=False, + ) variant("p4est", default=False, description="Activates support for P4Est (only parallel)") variant("saws", default=False, description="Activates support for Saws") variant("libyaml", default=False, description="Activates support for YAML") @@ -413,6 +420,10 @@ def configure_options(self): if "+knl" in spec: options.append("--with-avx-512-kernels") options.append("--with-memalign=64") + elif self.spec.variants["memalign"].value != "none": + alignement = self.spec.variants["memalign"].value + options.append(f"--with-memalign={alignement}") + if "+X" in spec: options.append("--with-x=1") else: diff --git a/var/spack/repos/builtin/packages/tandem/package.py b/var/spack/repos/builtin/packages/tandem/package.py index bb294834db..7d1dd42a45 100644 --- a/var/spack/repos/builtin/packages/tandem/package.py +++ b/var/spack/repos/builtin/packages/tandem/package.py @@ -43,9 +43,9 @@ class Tandem(CMakePackage): depends_on("libxsmm@1.17 +generator", when="+libxsmm target=x86_64:") depends_on("lua@5.3.2:5.4.4") depends_on("eigen@3.4.0") + depends_on("zlib-api") - depends_on("zlib@1.2.8:1.2.13", when="^zlib") - depends_on("petsc@3.14.6:3.18.5 +int64 +mumps +scalapack") + depends_on("petsc@3.14.6:3.18.5 +int64 +mumps +scalapack memalign=32") depends_on("petsc@3.14.6:3.18.5 +int64 +mumps +scalapack +knl", when="target=skylake:") # see https://github.com/TEAR-ERC/tandem/issues/45 conflicts("%intel")