From 9ffd508d7c28f3c02e1231a916bc32f23fdf3ac8 Mon Sep 17 00:00:00 2001 From: Stas Sergienko Date: Mon, 11 Mar 2019 20:10:02 -0500 Subject: mpich: add psm2 fabric support (#10814) psm2 is only supported for versions 2.2 and up, so a conflict is added for earlier versions --- var/spack/repos/builtin/packages/mvapich2/package.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/mvapich2/package.py b/var/spack/repos/builtin/packages/mvapich2/package.py index 1c4a91d777..cd9eece7a3 100644 --- a/var/spack/repos/builtin/packages/mvapich2/package.py +++ b/var/spack/repos/builtin/packages/mvapich2/package.py @@ -75,8 +75,8 @@ class Mvapich2(AutotoolsPackage): description='The fabric enabled for this build', default='psm', values=( - 'psm', 'sock', 'nemesisib', 'nemesis', 'mrail', 'nemesisibtcp', - 'nemesistcpib', 'nemesisofi' + 'psm', 'psm2', 'sock', 'nemesisib', 'nemesis', 'mrail', + 'nemesisibtcp', 'nemesistcpib', 'nemesisofi' ) ) @@ -100,12 +100,15 @@ class Mvapich2(AutotoolsPackage): depends_on('libxml2') depends_on('cuda', when='+cuda') depends_on('psm', when='fabrics=psm') + depends_on('opa-psm2', when='fabrics=psm2') depends_on('rdma-core', when='fabrics=mrail') depends_on('rdma-core', when='fabrics=nemesisib') depends_on('rdma-core', when='fabrics=nemesistcpib') depends_on('rdma-core', when='fabrics=nemesisibtcp') depends_on('libfabric', when='fabrics=nemesisofi') + conflicts('fabrics=psm2', when='@:2.1') # psm2 support was added at version 2.2 + filter_compiler_wrappers( 'mpicc', 'mpicxx', 'mpif77', 'mpif90', 'mpifort', relative_root='bin' ) @@ -153,6 +156,11 @@ class Mvapich2(AutotoolsPackage): "--with-device=ch3:psm", "--with-psm={0}".format(self.spec['psm'].prefix) ] + elif 'fabrics=psm2' in self.spec: + opts = [ + "--with-device=ch3:psm", + "--with-psm2={0}".format(self.spec['opa-psm2'].prefix) + ] elif 'fabrics=sock' in self.spec: opts = ["--with-device=ch3:sock"] elif 'fabrics=nemesistcpib' in self.spec: -- cgit v1.2.3-60-g2f50