mpich: Update PMI configure options (#43551)

Add a "default" option that passes no option to configure. Existing
options changed in the MPICH 4.2.0 release, so update the package to
reflect those changes.
This commit is contained in:
Ken Raffenetti 2024-04-15 11:40:37 -05:00 committed by GitHub
parent e72d4075bd
commit c3c63e5ca4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -61,9 +61,9 @@ class Mpich(AutotoolsPackage, CudaPackage, ROCmPackage):
variant("wrapperrpath", default=True, description="Enable wrapper rpath")
variant(
"pmi",
default="pmi",
default="default",
description="""PMI interface.""",
values=("pmi", "pmi2", "pmix", "cray"),
values=("default", "pmi", "pmi2", "pmix", "cray"),
multi=False,
)
variant(
@ -388,10 +388,16 @@ def is_disabled(text):
if re.search(r"--with-thread-package=argobots", output):
variants.append("+argobots")
if re.search(r"--with-pmi=simple", output):
if re.search(r"--with-pmi=default", output):
variants.append("pmi=default")
elif re.search(r"--with-pmi=simple", output):
variants.append("pmi=pmi")
elif re.search(r"--with-pmi=pmi2/simple", output):
variants.append("pmi=pmi2")
elif re.search(r"--with-pmi=pmi", output):
variants.append("pmi=pmi")
elif re.search(r"--with-pmi=pmi2", output):
variants.append("pmi=pmi2")
elif re.search(r"--with-pmix", output):
variants.append("pmi=pmix")
@ -555,14 +561,32 @@ def configure_args(self):
else:
config_args.append("--with-slurm=no")
if "pmi=pmi" in spec:
config_args.append("--with-pmi=simple")
elif "pmi=pmi2" in spec:
config_args.append("--with-pmi=pmi2/simple")
elif "pmi=pmix" in spec:
config_args.append("--with-pmix={0}".format(spec["pmix"].prefix))
elif "pmi=cray" in spec:
config_args.append("--with-pmi=cray")
# PMI options changed in 4.2.0
if spec.satisfies("@4.2:"):
# default (no option) is to build both PMIv1 and PMI2 client interfaces
if "pmi=pmi" in spec:
# make PMI1 the default client interface
config_args.append("--with-pmi=pmi")
elif "pmi=pmi2" in spec:
# make PMI2 the default client interface
config_args.append("--with-pmi=pmi2")
elif "pmi=pmix" in spec:
# use the PMIx client interface with an external PMIx library
config_args.append("--with-pmi=pmix")
config_args.append(f"--with-pmix={spec['pmix'].prefix}")
elif "pmi=cray" in spec:
# use PMI2 interface of the Cray PMI library
config_args.append("--with-pmi=pmi2")
config_args.append(f"--with-pmi2={spec['cray-pmi'].prefix}")
else:
if "pmi=pmi" in spec:
config_args.append("--with-pmi=simple")
elif "pmi=pmi2" in spec:
config_args.append("--with-pmi=pmi2/simple")
elif "pmi=pmix" in spec:
config_args.append(f"--with-pmix={spec['pmix'].prefix}")
elif "pmi=cray" in spec:
config_args.append("--with-pmi=cray")
if "+cuda" in spec:
config_args.append("--with-cuda={0}".format(spec["cuda"].prefix))