summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/openmpi/package.py25
1 files changed, 25 insertions, 0 deletions
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 @@ class Openmpi(AutotoolsPackage, CudaPackage):
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: