add memalign option to petsc to be used with tandem (#37282)

This commit is contained in:
Thomas-Ulrich 2023-08-25 16:03:53 +02:00 committed by GitHub
parent 4502351659
commit ecfd9ef12b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 2 deletions

View file

@ -139,6 +139,13 @@ class Petsc(Package, CudaPackage, ROCmPackage):
) )
variant("cgns", default=False, description="Activates support for CGNS (only parallel)") variant("cgns", default=False, description="Activates support for CGNS (only parallel)")
variant("memkind", default=False, description="Activates support for Memkind") 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("p4est", default=False, description="Activates support for P4Est (only parallel)")
variant("saws", default=False, description="Activates support for Saws") variant("saws", default=False, description="Activates support for Saws")
variant("libyaml", default=False, description="Activates support for YAML") variant("libyaml", default=False, description="Activates support for YAML")
@ -413,6 +420,10 @@ def configure_options(self):
if "+knl" in spec: if "+knl" in spec:
options.append("--with-avx-512-kernels") options.append("--with-avx-512-kernels")
options.append("--with-memalign=64") 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: if "+X" in spec:
options.append("--with-x=1") options.append("--with-x=1")
else: else:

View file

@ -43,9 +43,9 @@ class Tandem(CMakePackage):
depends_on("libxsmm@1.17 +generator", when="+libxsmm target=x86_64:") depends_on("libxsmm@1.17 +generator", when="+libxsmm target=x86_64:")
depends_on("lua@5.3.2:5.4.4") depends_on("lua@5.3.2:5.4.4")
depends_on("eigen@3.4.0") depends_on("eigen@3.4.0")
depends_on("zlib-api") 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 memalign=32")
depends_on("petsc@3.14.6:3.18.5 +int64 +mumps +scalapack")
depends_on("petsc@3.14.6:3.18.5 +int64 +mumps +scalapack +knl", when="target=skylake:") 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 # see https://github.com/TEAR-ERC/tandem/issues/45
conflicts("%intel") conflicts("%intel")