add pmi support and process managers to the MPIs

This commit is contained in:
Tom Scogland 2016-05-06 15:15:40 -07:00
parent 407920e40a
commit 86449790fe
2 changed files with 8 additions and 0 deletions

View file

@ -43,6 +43,8 @@ class Mpich(Package):
version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0') version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
variant('verbs', default=False, description='Build support for OpenFabrics verbs.') variant('verbs', default=False, description='Build support for OpenFabrics verbs.')
variant('pmi', default=True, description='Build with PMI support')
variant('hydra', default=True, description='Build the hydra process manager')
provides('mpi@:3.0', when='@3:') provides('mpi@:3.0', when='@3:')
provides('mpi@:1.3', when='@1:') provides('mpi@:1.3', when='@1:')
@ -62,6 +64,8 @@ def setup_dependent_package(self, module, dep_spec):
def install(self, spec, prefix): def install(self, spec, prefix):
config_args = ["--prefix=" + prefix, config_args = ["--prefix=" + prefix,
"--with-pmi=" + ("yes" if '+pmi' in spec else 'no'),
"--with-pm=" + ('hydra' if '+hydra' in spec else 'no'),
"--enable-shared"] "--enable-shared"]
# Variants # Variants

View file

@ -26,6 +26,7 @@ class Openmpi(Package):
patch('configure.patch', when="@1.10.0:1.10.1") patch('configure.patch', when="@1.10.0:1.10.1")
variant('psm', default=False, description='Build support for the PSM library.') variant('psm', default=False, description='Build support for the PSM library.')
variant('pmi', default=True, description='Build support for PMI-based launchers')
variant('verbs', default=False, description='Build support for OpenFabrics verbs.') variant('verbs', default=False, description='Build support for OpenFabrics verbs.')
# TODO : variant support for other schedulers is missing # TODO : variant support for other schedulers is missing
@ -67,6 +68,9 @@ def install(self, spec, prefix):
if '+psm' in spec: if '+psm' in spec:
config_args.append("--with-psm") config_args.append("--with-psm")
if '+pmi' in spec:
config_args.append("--with-pmi") #TODO: let user specify directory when possible
if '+verbs' in spec: if '+verbs' in spec:
# Up through version 1.6, this option was previously named --with-openib # Up through version 1.6, this option was previously named --with-openib
if spec.satisfies('@:1.6'): if spec.satisfies('@:1.6'):