From 1fd4353289ec58913a4faf70e4851f66767bb623 Mon Sep 17 00:00:00 2001 From: Loic Hausammann Date: Sun, 24 Mar 2024 01:00:38 +0100 Subject: [PATCH] openmpi: Add new variant: romio-filesystem=string (#43265) Co-authored-by: loikki --- .../repos/builtin/packages/openmpi/package.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py index 6fb017ae02..a995a271b4 100644 --- a/var/spack/repos/builtin/packages/openmpi/package.py +++ b/var/spack/repos/builtin/packages/openmpi/package.py @@ -499,6 +499,26 @@ class Openmpi(AutotoolsPackage, CudaPackage): variant("lustre", default=False, description="Lustre filesystem library support") variant("romio", default=True, when="@:5", description="Enable ROMIO support") variant("romio", default=False, when="@5:", description="Enable ROMIO support") + variant( + "romio-filesystem", + description="Add the filesystem to romio", + values=disjoint_sets( + ( + "daos", + "nfs", + "ufs", + "pvfs2", + "testfs", + "xfs", + "panfs", + "lustre", + "gpfs", + "ime", + "quobytefs", + ) + ).with_non_feature_values("none"), + ) + variant("rsh", default=True, description="Enable rsh (openssh) process lifecycle management") variant( "orterunprefix", @@ -1035,9 +1055,14 @@ def configure_args(self): elif spec.satisfies("@1.7.4:"): config_args.extend(["--disable-java", "--disable-mpi-java"]) + # Romio if "~romio" in spec: config_args.append("--disable-io-romio") + if not spec.satisfies("romio-filesystem=none"): + args = "+".join(spec.variants["romio-filesystem"].value) + config_args.append(f"--with-io-romio-flags=--with-file-system={args}") + if "+gpfs" in spec: config_args.append("--with-gpfs") else: