From c10d432a2e8d3dbb417c85e18d516e99f9805bdf Mon Sep 17 00:00:00 2001 From: Jim Galarowicz Date: Tue, 30 Oct 2018 20:41:08 -0500 Subject: [PATCH] Update openspeedshop and cbtf-krell module creation code (#9234) * Add the setting of CBTF_MPI_IMPLEMENTATION to the cbtf-krell and openspeeedshop package files, so that the mpi implementation can be found by the tool. This allows users to not have to set this manually if only one mpi implementation is specified in the build. * Update version ranges for dependencies of cbtf packages --- .../packages/cbtf-argonavis-gui/package.py | 6 +- .../packages/cbtf-argonavis/package.py | 7 +- .../builtin/packages/cbtf-krell/package.py | 72 ++++++++++---- .../builtin/packages/cbtf-lanl/package.py | 4 +- .../repos/builtin/packages/cbtf/package.py | 7 +- .../packages/openspeedshop-utils/package.py | 66 ++++++------- .../builtin/packages/openspeedshop/package.py | 98 ++++++++++--------- 7 files changed, 148 insertions(+), 112 deletions(-) diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py index 514a6eb61eb..3d4f0393715 100644 --- a/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py +++ b/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py @@ -22,8 +22,7 @@ class CbtfArgonavisGui(QMakePackage): depends_on('qt@5.10.0:', when='@develop') depends_on('qt@5.10.0', when='@1.3.0.0:9999') - depends_on("boost@1.50.0:", when='@develop') - depends_on("boost@1.66.0", when='@1.3.0.0:9999') + depends_on("boost@1.66.0:") # For MRNet depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') @@ -45,8 +44,7 @@ class CbtfArgonavisGui(QMakePackage): depends_on("openspeedshop-utils@2.3.1.3:+cuda", when='@1.3.0.0:9999') # For Xerces-C - depends_on("xerces-c@3.1.1:", when='@develop') - depends_on("xerces-c@3.1.4", when='@1.3.0.0:9999') + depends_on("xerces-c") depends_on("graphviz@2.40.1:", when='@develop') depends_on("graphviz@2.40.1", when='@1.3.0.0:9999') diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py index 5342daf8a6c..f56e01e46f3 100644 --- a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py +++ b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py @@ -14,6 +14,7 @@ class CbtfArgonavis(CMakePackage): git = "https://github.com/OpenSpeedShop/cbtf-argonavis.git" version('develop', branch='master') + version('1.9.2', branch='1.9.2') version('1.9.1.2', branch='1.9.1.2') version('1.9.1.1', branch='1.9.1.1') version('1.9.1.0', branch='1.9.1.0') @@ -36,8 +37,7 @@ class CbtfArgonavis(CMakePackage): depends_on("elf", type="link") # For boost - depends_on("boost@1.50.0:", when='@develop') - depends_on("boost@1.66.0", when='@1.9.1.0:9999') + depends_on("boost@1.66.0:") # For MRNet depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') @@ -61,8 +61,7 @@ class CbtfArgonavis(CMakePackage): depends_on("libmonitor@2013.02.18+krellpatch") # For PAPI - depends_on("papi", when='@develop') - depends_on("papi@5.5.1", when='@1.9.1.0:9999') + depends_on("papi@5.4.1:") # For CBTF-KRELL depends_on("cbtf-krell@develop", when='@develop') diff --git a/var/spack/repos/builtin/packages/cbtf-krell/package.py b/var/spack/repos/builtin/packages/cbtf-krell/package.py index 52ed0295021..d800df4bfa9 100644 --- a/var/spack/repos/builtin/packages/cbtf-krell/package.py +++ b/var/spack/repos/builtin/packages/cbtf-krell/package.py @@ -18,6 +18,7 @@ class CbtfKrell(CMakePackage): git = "https://github.com/OpenSpeedShop/cbtf-krell.git" version('develop', branch='master') + version('1.9.2', branch='1.9.2') version('1.9.1.2', branch='1.9.1.2') version('1.9.1.1', branch='1.9.1.1') version('1.9.1.0', branch='1.9.1.0') @@ -49,12 +50,10 @@ class CbtfKrell(CMakePackage): depends_on("cmake@3.0.2:", type='build') # For binutils - depends_on("binutils", when='@develop') - depends_on("binutils@2.29.1", when='@1.9.1.0:9999') + depends_on("binutils") # For boost - depends_on("boost@1.50.0:", when='@develop') - depends_on("boost@1.66.0", when='@1.9.1.0:9999') + depends_on("boost@1.66.0:") # For Dyninst depends_on("dyninst@develop", when='@develop') @@ -62,36 +61,34 @@ class CbtfKrell(CMakePackage): depends_on("dyninst@develop", when='@1.9.1.0:9999') # For MRNet - depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') - depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') + depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti', type=('build', 'link', 'run')) + depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop', type=('build', 'link', 'run')) - depends_on("mrnet@5.0.1-3+cti", when='@1.9.1.0:9999+cti') - depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0:9999') + depends_on("mrnet@5.0.1-3+cti", when='@1.9.1.0:9999+cti', type=('build', 'link', 'run')) + depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0:9999', type=('build', 'link', 'run')) # For Xerces-C - depends_on("xerces-c@3.1.1:", when='@develop') - depends_on("xerces-c@3.1.4", when='@1.9.1.0:9999') + depends_on("xerces-c") # For CBTF - depends_on("cbtf@develop", when='@develop') - depends_on("cbtf@1.9.1.0:9999", when='@1.9.1.0:9999') + depends_on("cbtf@develop", when='@develop', type=('build', 'link', 'run')) + depends_on("cbtf@1.9.1.0:9999", when='@1.9.1.0:9999', type=('build', 'link', 'run')) # For CBTF with cti - depends_on("cbtf@develop+cti", when='@develop+cti') - depends_on("cbtf@1.9.1.0:9999+cti", when='@1.9.1.0:9999+cti') + depends_on("cbtf@develop+cti", when='@develop+cti', type=('build', 'link', 'run')) + depends_on("cbtf@1.9.1.0:9999+cti", when='@1.9.1.0:9999+cti', type=('build', 'link', 'run')) # For CBTF with runtime - depends_on("cbtf@develop+runtime", when='@develop+runtime') - depends_on("cbtf@1.9.1.0:9999+runtime", when='@1.9.1.0:9999+runtime') + depends_on("cbtf@develop+runtime", when='@develop+runtime', type=('build', 'link', 'run')) + depends_on("cbtf@1.9.1.0:9999+runtime", when='@1.9.1.0:9999+runtime', type=('build', 'link', 'run')) # for services and collectors depends_on("libmonitor@2013.02.18+krellpatch") depends_on("libunwind", when='@develop') - depends_on("libunwind@1.1", when='@1.9.1.0:9999') + depends_on("libunwind@1.2.1", when='@1.9.1.0:9999') - depends_on("papi", when='@develop') - depends_on("papi@5.5.1", when='@1.9.1.0:9999') + depends_on("papi@5.4.1:") depends_on("llvm-openmp-ompt@tr6_forwards+standalone") @@ -103,6 +100,9 @@ class CbtfKrell(CMakePackage): depends_on("mvapich", when='+mvapich') depends_on("mpt", when='+mpt') + depends_on("python", when='@develop', type=('build', 'run')) + depends_on("python@2.7.14:2.7.15", when='@2.3.1.3:9999', type=('build', 'run')) + depends_on("gotcha") parallel = False @@ -226,3 +226,37 @@ def cmake_args(self): self.set_cray_login_node_cmake_options(spec, cmake_args) return cmake_args + + def setup_environment(self, spack_env, run_env): + """Set up the compile and runtime environments for a package.""" + + # Environment settings for cbtf-krell, bin is automatically + # added to the path in the module file + run_env.prepend_path('PATH', self.prefix.sbin) + + run_env.set('XPLAT_RSH', 'ssh') + run_env.set('MRNET_COMM_PATH', self.prefix.sbin.cbtf_mrnet_commnode) + + # Set CBTF_MPI_IMPLEMENTATON to the appropriate mpi implementation + # This is needed by CBTF tools to deploy the correct + # mpi runtimes for cbtfsummary + # Users may have to set the CBTF_MPI_IMPLEMENTATION variable + # manually if multiple mpi's are specified in the build + + if self.spec.satisfies('+mpich'): + run_env.set('CBTF_MPI_IMPLEMENTATION', "mpich") + + if self.spec.satisfies('+mvapich'): + run_env.set('CBTF_MPI_IMPLEMENTATION', "mvapich") + + if self.spec.satisfies('+mvapich2'): + run_env.set('CBTF_MPI_IMPLEMENTATION', "mvapich2") + + if self.spec.satisfies('+mpt'): + run_env.set('CBTF_MPI_IMPLEMENTATION', "mpt") + + if self.spec.satisfies('+openmpi'): + run_env.set('CBTF_MPI_IMPLEMENTATION', "openmpi") + + run_env.set('CBTF_MRNET_BACKEND_PATH', + self.prefix.sbin.cbtf_libcbtf_mrnet_backend) diff --git a/var/spack/repos/builtin/packages/cbtf-lanl/package.py b/var/spack/repos/builtin/packages/cbtf-lanl/package.py index 6c44638b733..460c8455521 100644 --- a/var/spack/repos/builtin/packages/cbtf-lanl/package.py +++ b/var/spack/repos/builtin/packages/cbtf-lanl/package.py @@ -14,6 +14,7 @@ class CbtfLanl(CMakePackage): git = "https://github.com/OpenSpeedShop/cbtf-lanl.git" version('develop', branch='master') + version('1.9.2', branch='1.9.2') version('1.9.1.2', branch='1.9.1.2') version('1.9.1.1', branch='1.9.1.1') version('1.9.1.0', branch='1.9.1.0') @@ -36,8 +37,7 @@ class CbtfLanl(CMakePackage): depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0:9999') # For Xerces-C - depends_on("xerces-c@3.1.1:", when='@develop') - depends_on("xerces-c@3.1.4", when='@1.9.1.0:9999') + depends_on("xerces-c") # For CBTF depends_on("cbtf@develop", when='@develop') diff --git a/var/spack/repos/builtin/packages/cbtf/package.py b/var/spack/repos/builtin/packages/cbtf/package.py index 0ab4703dc65..ba6cbd74770 100644 --- a/var/spack/repos/builtin/packages/cbtf/package.py +++ b/var/spack/repos/builtin/packages/cbtf/package.py @@ -17,6 +17,7 @@ class Cbtf(CMakePackage): git = "https://github.com/OpenSpeedShop/cbtf.git" version('develop', branch='master') + version('1.9.2', branch='1.9.2') version('1.9.1.2', branch='1.9.1.2') version('1.9.1.1', branch='1.9.1.1') version('1.9.1.0', branch='1.9.1.0') @@ -32,8 +33,7 @@ class Cbtf(CMakePackage): depends_on("cmake@3.0.2:", type='build') - depends_on("boost@1.66.0", when='@1.9.1.0:9999') - depends_on("boost@1.50.0:", when='@develop') + depends_on("boost@1.66.0:") # For MRNet depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') @@ -42,8 +42,7 @@ class Cbtf(CMakePackage): depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0:9999') # For Xerces-C - depends_on("xerces-c@3.1.1:", when='@develop') - depends_on("xerces-c@3.1.4:", when='@1.9.1.0:9999') + depends_on("xerces-c") # For XML2 depends_on("libxml2") diff --git a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py index fd994eb304f..afa480a8f3f 100644 --- a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py +++ b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py @@ -35,6 +35,8 @@ class OpenspeedshopUtils(CMakePackage): git = "https://github.com/OpenSpeedShop/openspeedshop.git" version('develop', branch='master') + version('2.4.0', branch='2.4.0') + version('2.3.1.5', branch='2.3.1.5') version('2.3.1.4', branch='2.3.1.4') version('2.3.1.3', branch='2.3.1.3') @@ -80,8 +82,7 @@ class OpenspeedshopUtils(CMakePackage): depends_on("flex@2.6.1", type='build') # For binutils - depends_on("binutils", when='@develop', type='build') - depends_on("binutils@2.29.1", when='@2.3.1.3:9999', type='build') + depends_on("binutils", type='build') depends_on("elf", type="link") depends_on("libdwarf") @@ -89,58 +90,57 @@ class OpenspeedshopUtils(CMakePackage): depends_on("sqlite") # For boost - depends_on("boost@1.50.0:", when='@develop') - depends_on("boost@1.66.0", when='@2.3.1.3:9999') + depends_on("boost@1.66.0:") depends_on("dyninst@develop", when='@develop') - # This will change to dyninst@10.0 when it is released + # This will change to version dyninst@10.0 when it is released depends_on("dyninst@develop", when='@2.3.1.3:9999') - depends_on("python", when='@develop') - depends_on("python@2.7.14:2.7.15", when='@2.3.1.3:9999') + depends_on("python", when='@develop', type=('build', 'run')) + depends_on("python@2.7.14:2.7.15", when='@2.3.1.3:9999', type=('build', 'run')) depends_on("libxml2") # Dependencies for the openspeedshop cbtf packages. - depends_on("cbtf@develop", when='@develop') - depends_on("cbtf@1.9.1.0:9999", when='@2.3.1.3:9999') + depends_on("cbtf@develop", when='@develop', type=('build', 'link', 'run')) + depends_on("cbtf@1.9.1.0:9999", when='@2.3.1.3:9999', type=('build', 'link', 'run')) - depends_on("cbtf-krell@develop", when='@develop') - depends_on("cbtf-krell@1.9.1.0:9999", when='@2.3.1.3:9999') + depends_on("cbtf-krell@develop", when='@develop', type=('build', 'link', 'run')) + depends_on("cbtf-krell@1.9.1.0:9999", when='@2.3.1.3:9999', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+crayfe', when='@develop+crayfe') - depends_on('cbtf-krell@1.9.1.0:9999+crayfe', when='@2.3.1.3:9999+crayfe') + depends_on('cbtf-krell@develop+crayfe', when='@develop+crayfe', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+crayfe', when='@2.3.1.3:9999+crayfe', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+cti', when='@develop+cti') - depends_on('cbtf-krell@1.9.1.0:9999+cti', when='@2.3.1.3:9999+cti') + depends_on('cbtf-krell@develop+cti', when='@develop+cti', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+cti', when='@2.3.1.3:9999+cti', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+mpich', when='@develop+mpich') - depends_on('cbtf-krell@1.9.1.0:9999+mpich', when='@2.3.1.3:9999+mpich') + depends_on('cbtf-krell@develop+mpich', when='@develop+mpich', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+mpich', when='@2.3.1.3:9999+mpich', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+mpich2', when='@develop+mpich2') - depends_on('cbtf-krell@1.9.1.0:9999+mpich2', when='@2.3.1.3:9999+mpich2') + depends_on('cbtf-krell@develop+mpich2', when='@develop+mpich2', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+mpich2', when='@2.3.1.3:9999+mpich2', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+mpt', when='@develop+mpt') - depends_on('cbtf-krell@1.9.1.0:9999+mpt', when='@2.3.1.3:9999+mpt') + depends_on('cbtf-krell@develop+mpt', when='@develop+mpt', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+mpt', when='@2.3.1.3:9999+mpt', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+mvapich', when='@develop+mvapich') - depends_on('cbtf-krell@1.9.1.0:9999+mvapich', when='@2.3.1.3:9999+mvapich') + depends_on('cbtf-krell@develop+mvapich', when='@develop+mvapich', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+mvapich', when='@2.3.1.3:9999+mvapich', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+mvapich2', when='@develop+mvapich2') - depends_on('cbtf-krell@1.9.1.0:9999+mvapich2', when='@2.3.1.3:9999+mvapich2') + depends_on('cbtf-krell@develop+mvapich2', when='@develop+mvapich2', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+mvapich2', when='@2.3.1.3:9999+mvapich2', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+openmpi', when='@develop+openmpi') - depends_on('cbtf-krell@1.9.1.0:9999+openmpi', when='@2.3.1.3:9999+openmpi') + depends_on('cbtf-krell@develop+openmpi', when='@develop+openmpi', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+openmpi', when='@2.3.1.3:9999+openmpi', type=('build', 'link', 'run')) - depends_on("cbtf-argonavis@develop", when='@develop+cuda') - depends_on("cbtf-argonavis@1.9.1.0:9999", when='@2.3.1.3:9999+cuda') + depends_on("cbtf-argonavis@develop", when='@develop+cuda', type=('build', 'link', 'run')) + depends_on("cbtf-argonavis@1.9.1.0:9999", when='@2.3.1.3:9999+cuda', type=('build', 'link', 'run')) # For MRNet - depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') - depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') + depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti', type=('build', 'link', 'run')) + depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop', type=('build', 'link', 'run')) - depends_on("mrnet@5.0.1-3:+cti", when='@2.3.1.3:9999+cti') - depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.3.1.3:9999') + depends_on("mrnet@5.0.1-3:+cti", when='@2.3.1.3:9999+cti', type=('build', 'link', 'run')) + depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.3.1.3:9999', type=('build', 'link', 'run')) parallel = False diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py index d0764e54dc6..90d55b168a8 100644 --- a/var/spack/repos/builtin/packages/openspeedshop/package.py +++ b/var/spack/repos/builtin/packages/openspeedshop/package.py @@ -7,9 +7,6 @@ import spack.store -import os -import os.path - class Openspeedshop(CMakePackage): """OpenSpeedShop is a community effort by The Krell Institute with @@ -29,6 +26,7 @@ class Openspeedshop(CMakePackage): git = "https://github.com/OpenSpeedShop/openspeedshop.git" version('develop', branch='master') + version('2.4.0', branch='2.4.0') version('2.3.1.5', branch='2.3.1.5') version('2.3.1.4', branch='2.3.1.4') version('2.3.1.3', branch='2.3.1.3') @@ -79,8 +77,7 @@ class Openspeedshop(CMakePackage): depends_on("flex@2.6.1", type='build') # For binutils - depends_on("binutils", when='@develop', type='build') - depends_on("binutils@2.29.1", when='@2.3.1.3:9999', type='build') + depends_on("binutils") depends_on("elf", type="link") depends_on("libdwarf") @@ -88,60 +85,59 @@ class Openspeedshop(CMakePackage): depends_on("sqlite") # For boost - depends_on("boost@1.50.0:", when='@develop') - depends_on("boost@1.66.0", when='@2.3.1.3:9999') + depends_on("boost@1.66.0:") depends_on("dyninst@develop", when='@develop') # This will change to version dyninst@10.0 when it is released depends_on("dyninst@develop", when='@2.3.1.3:9999') - depends_on("python", when='@develop') - depends_on("python@2.7.14:2.7.15", when='@2.3.1.3:9999') + depends_on("python", when='@develop', type=('build', 'run')) + depends_on("python@2.7.14:2.7.15", when='@2.3.1.3:9999', type=('build', 'run')) depends_on("libxml2") depends_on("qt@3.3.8b+krellpatch", when='gui=qt3') # Dependencies for the openspeedshop cbtf packages. - depends_on("cbtf@develop", when='@develop') - depends_on("cbtf@1.9.1.0:9999", when='@2.3.1.3:9999') + depends_on("cbtf@develop", when='@develop', type=('build', 'link', 'run')) + depends_on("cbtf@1.9.1.0:9999", when='@2.3.1.3:9999', type=('build', 'link', 'run')) - depends_on("cbtf-krell@develop", when='@develop') - depends_on("cbtf-krell@1.9.1.0:9999", when='@2.3.1.3:9999') + depends_on("cbtf-krell@develop", when='@develop', type=('build', 'link', 'run')) + depends_on("cbtf-krell@1.9.1.0:9999", when='@2.3.1.3:9999', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+crayfe', when='@develop+crayfe') - depends_on('cbtf-krell@1.9.1.0:9999+crayfe', when='@2.3.1.3:9999+crayfe') + depends_on('cbtf-krell@develop+crayfe', when='@develop+crayfe', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+crayfe', when='@2.3.1.3:9999+crayfe', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+cti', when='@develop+cti') - depends_on('cbtf-krell@1.9.1.0:9999+cti', when='@2.3.1.3:9999+cti') + depends_on('cbtf-krell@develop+cti', when='@develop+cti', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+cti', when='@2.3.1.3:9999+cti', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+mpich', when='@develop+mpich') - depends_on('cbtf-krell@1.9.1.0:9999+mpich', when='@2.3.1.3:9999+mpich') + depends_on('cbtf-krell@develop+mpich', when='@develop+mpich', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+mpich', when='@2.3.1.3:9999+mpich', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+mpich2', when='@develop+mpich2') - depends_on('cbtf-krell@1.9.1.0:9999+mpich2', when='@2.3.1.3:9999+mpich2') + depends_on('cbtf-krell@develop+mpich2', when='@develop+mpich2', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+mpich2', when='@2.3.1.3:9999+mpich2', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+mpt', when='@develop+mpt') - depends_on('cbtf-krell@1.9.1.0:9999+mpt', when='@2.3.1.3:9999+mpt') + depends_on('cbtf-krell@develop+mpt', when='@develop+mpt', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+mpt', when='@2.3.1.3:9999+mpt', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+mvapich', when='@develop+mvapich') - depends_on('cbtf-krell@1.9.1.0:9999+mvapich', when='@2.3.1.3:9999+mvapich') + depends_on('cbtf-krell@develop+mvapich', when='@develop+mvapich', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+mvapich', when='@2.3.1.3:9999+mvapich', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+mvapich2', when='@develop+mvapich2') - depends_on('cbtf-krell@1.9.1.0:9999+mvapich2', when='@2.3.1.3:9999+mvapich2') + depends_on('cbtf-krell@develop+mvapich2', when='@develop+mvapich2', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+mvapich2', when='@2.3.1.3:9999+mvapich2', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+openmpi', when='@develop+openmpi') - depends_on('cbtf-krell@1.9.1.0:9999+openmpi', when='@2.3.1.3:9999+openmpi') + depends_on('cbtf-krell@develop+openmpi', when='@develop+openmpi', type=('build', 'link', 'run')) + depends_on('cbtf-krell@1.9.1.0:9999+openmpi', when='@2.3.1.3:9999+openmpi', type=('build', 'link', 'run')) - depends_on("cbtf-argonavis@develop", when='@develop+cuda') - depends_on("cbtf-argonavis@1.9.1.0:9999", when='@2.3.1.3:9999+cuda') + depends_on("cbtf-argonavis@develop", when='@develop+cuda', type=('build', 'link', 'run')) + depends_on("cbtf-argonavis@1.9.1.0:9999", when='@2.3.1.3:9999+cuda', type=('build', 'link', 'run')) # For MRNet - depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') - depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') + depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti', type=('build', 'link', 'run')) + depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop', type=('build', 'link', 'run')) - depends_on("mrnet@5.0.1-3:+cti", when='@2.3.1.3:9999+cti') - depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.3.1.3:9999') + depends_on("mrnet@5.0.1-3:+cti", when='@2.3.1.3:9999+cti', type=('build', 'link', 'run')) + depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.3.1.3:9999', type=('build', 'link', 'run')) parallel = False @@ -283,10 +279,6 @@ def set_mpi_cmake_options(self, spec, cmake_options): def setup_environment(self, spack_env, run_env): """Set up the compile and runtime environments for a package.""" - # Common settings to both offline and cbtf versions - # of OpenSpeedShop - run_env.prepend_path('PATH', self.prefix.bin) - # Find Dyninst library path, this is needed to # set the DYNINSTAPI_RT_LIB library which is # required for OpenSpeedShop to find loop level @@ -298,19 +290,33 @@ def setup_environment(self, spack_env, run_env): # Set Dyninst RT library path to support OSS loop resolution code run_env.set('DYNINSTAPI_RT_LIB', dyninst_libdir) - # Find openspeedshop library path - oss_libdir = find_libraries('libopenss-framework', - root=self.spec['openspeedshop'].prefix, - shared=True, recursive=True) - run_env.prepend_path('LD_LIBRARY_PATH', - os.path.dirname(oss_libdir.joined())) - run_env.set('OPENSS_RAWDATA_DIR', '.') cbtf_mc = '/sbin/cbtf_mrnet_commnode' cbtf_lmb = '/sbin/cbtf_libcbtf_mrnet_backend' run_env.set('XPLAT_RSH', 'ssh') run_env.set('MRNET_COMM_PATH', join_path(self.spec['cbtf-krell'].prefix + cbtf_mc)) + + # Set CBTF_MPI_IMPLEMENTATON to the appropriate mpi implementation + # This is needed by O|SS and CBTF tools to deploy the correct + # mpi runtimes for ossmpi, ossmpit, ossmpip, and cbtfsummary + # Users may have to set the CBTF_MPI_IMPLEMENTATION variable + # manually if multiple mpi's are specified in the build + if self.spec.satisfies('+mpich'): + run_env.set('CBTF_MPI_IMPLEMENTATION', "mpich") + + if self.spec.satisfies('+mvapich'): + run_env.set('CBTF_MPI_IMPLEMENTATION', "mvapich") + + if self.spec.satisfies('+mvapich2'): + run_env.set('CBTF_MPI_IMPLEMENTATION', "mvapich2") + + if self.spec.satisfies('+mpt'): + run_env.set('CBTF_MPI_IMPLEMENTATION', "mpt") + + if self.spec.satisfies('+openmpi'): + run_env.set('CBTF_MPI_IMPLEMENTATION', "openmpi") + run_env.set('CBTF_MRNET_BACKEND_PATH', join_path(self.spec['cbtf-krell'].prefix + cbtf_lmb)) run_env.prepend_path('PATH', self.spec['mrnet'].prefix.bin)