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
This commit is contained in:
Jim Galarowicz
2018-10-30 20:41:08 -05:00
committed by Peter Scheibel
parent 72fa122101
commit c10d432a2e
7 changed files with 148 additions and 112 deletions

View File

@@ -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)