summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorJim Galarowicz <jeg@krellinst.org>2018-03-07 16:26:07 -0600
committerscheibelp <scheibel1@llnl.gov>2018-03-07 14:26:07 -0800
commit7f3a72fb33df5bb954728b1f1468059d2899944b (patch)
tree9a08321201bc006fb029d72c6221475616e87a8c /var
parentf393a2c146d089341c9efebdfe789804b547f06e (diff)
downloadspack-7f3a72fb33df5bb954728b1f1468059d2899944b.tar.gz
spack-7f3a72fb33df5bb954728b1f1468059d2899944b.tar.bz2
spack-7f3a72fb33df5bb954728b1f1468059d2899944b.tar.xz
spack-7f3a72fb33df5bb954728b1f1468059d2899944b.zip
OpenSpeedShop package: add support for building on cray (#7338)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py6
-rw-r--r--var/spack/repos/builtin/packages/cbtf-argonavis/package.py37
-rw-r--r--var/spack/repos/builtin/packages/cbtf-krell/package.py96
-rw-r--r--var/spack/repos/builtin/packages/cbtf-lanl/package.py14
-rw-r--r--var/spack/repos/builtin/packages/cbtf/package.py12
-rw-r--r--var/spack/repos/builtin/packages/elfutils/package.py1
-rw-r--r--var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py10
-rw-r--r--var/spack/repos/builtin/packages/mrnet/package.py12
-rw-r--r--var/spack/repos/builtin/packages/openspeedshop/package.py107
-rw-r--r--var/spack/repos/builtin/packages/qt/qt3krell.patch20
10 files changed, 233 insertions, 82 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 42f40c63ea..05b8ebe537 100644
--- a/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
##########################################################################
-# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2018 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
@@ -49,7 +49,7 @@ class CbtfArgonavisGui(QMakePackage):
"""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
- version('0.8.1', branch='master',
+ version('1.3.0', branch='master',
git='https://github.com/OpenSpeedShop/cbtf-argonavis-gui.git')
depends_on("cmake@3.0.2", type='build')
diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
index a335754537..b7b2dfa52a 100644
--- a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
##########################################################################
-# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2018 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
@@ -41,6 +41,7 @@
##########################################################################
from spack import *
+import os
class CbtfArgonavis(CMakePackage):
@@ -50,18 +51,31 @@ class CbtfArgonavis(CMakePackage):
"""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
- version('1.8', branch='master',
+ version('1.9.1', branch='master',
git='https://github.com/OpenSpeedShop/cbtf-argonavis.git')
+ variant('cti', default=False,
+ description="Build MRNet with the CTI startup option")
+ variant('crayfe', default=False,
+ description="build only the FE tool using the runtime_dir \
+ to point to target build.")
+ variant('runtime', default=False,
+ description="build only the runtime libraries and collectors.")
variant('build_type', default='None', values=('None'),
description='CMake build type')
depends_on("cmake@3.0.2:", type='build')
depends_on("boost@1.50.0:1.59.0")
depends_on("papi")
+ depends_on("libmonitor")
depends_on("mrnet@5.0.1:+lwthreads")
+ depends_on("mrnet@5.0.1:+cti", when='+cti')
depends_on("cbtf")
+ depends_on("cbtf+cti", when='+cti')
+ depends_on("cbtf+runtime", when='+runtime')
depends_on("cbtf-krell")
+ depends_on("cbtf-krell+cti", when="+cti")
+ depends_on("cbtf-krell+runtime", when="+runtime")
depends_on("cuda")
parallel = False
@@ -87,6 +101,23 @@ class CbtfArgonavis(CMakePackage):
'-DBoost_DIR=%s' % spec['boost'].prefix,
'-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+ '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
'-DBoost_NO_SYSTEM_PATHS=ON']
return cmake_args
+
+ def setup_environment(self, spack_env, run_env):
+ """Set up the compile and runtime environments for a package."""
+
+ if os.environ.get('LD_LIBRARY_PATH'):
+ cupti_path = self.spec['cuda'].prefix + '/extras/CUPTI/lib64'
+ os.environ['LD_LIBRARY_PATH'] += cupti_path
+ else:
+ os.environ['LD_LIBRARY_PATH'] = cupti_path
+
+ run_env.prepend_path(
+ 'LD_LIBRARY_PATH',
+ self.spec['cuda'].prefix + '/extras/CUPTI/lib64')
+ spack_env.prepend_path(
+ 'LD_LIBRARY_PATH',
+ self.spec['cuda'].prefix + '/extras/CUPTI/lib64')
diff --git a/var/spack/repos/builtin/packages/cbtf-krell/package.py b/var/spack/repos/builtin/packages/cbtf-krell/package.py
index 1716d83188..42938c3713 100644
--- a/var/spack/repos/builtin/packages/cbtf-krell/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-krell/package.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
##########################################################################
-# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2018 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
@@ -41,6 +41,8 @@
##########################################################################
from spack import *
+import spack
+import spack.store
class CbtfKrell(CMakePackage):
@@ -52,7 +54,7 @@ class CbtfKrell(CMakePackage):
"""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
- version('1.8', branch='master',
+ version('1.9.1', branch='master',
git='https://github.com/OpenSpeedShop/cbtf-krell.git')
# MPI variants
@@ -68,8 +70,15 @@ class CbtfKrell(CMakePackage):
description="Build mpi experiment collector for mpich2 MPI.")
variant('mpich', default=False,
description="Build mpi experiment collector for mpich MPI.")
+ variant('runtime', default=False,
+ description="build only the runtime libraries and collectors.")
variant('build_type', default='None', values=('None'),
description='CMake build type')
+ variant('cti', default=False,
+ description="Build MRNet with the CTI startup option")
+ variant('crayfe', default=False,
+ description="build only the FE tool using the runtime_dir \
+ to point to target build.")
# Dependencies for cbtf-krell
depends_on("cmake@3.0.2:", type='build')
@@ -80,16 +89,19 @@ class CbtfKrell(CMakePackage):
# collectionTool
depends_on("boost@1.50.0:1.59.0")
depends_on("dyninst@9.3.2")
+ depends_on("mrnet@5.0.1:+cti", when='+cti')
depends_on("mrnet@5.0.1:+lwthreads")
depends_on("xerces-c@3.1.1:")
depends_on("cbtf")
+ depends_on("cbtf+cti", when='+cti')
+ depends_on("cbtf+runtime", when='+runtime')
# for services and collectors
depends_on("libmonitor+krellpatch")
depends_on("libunwind")
depends_on("papi")
- depends_on("llvm-openmp-ompt@towards_tr4+standalone")
+ depends_on("llvm-openmp-ompt@tr6_forwards+standalone")
# MPI Installations
# These have not worked either for build or execution, commenting out for
@@ -105,6 +117,14 @@ class CbtfKrell(CMakePackage):
build_directory = 'build_cbtf_krell'
+ def set_RTOnly_cmakeOptions(self, spec, cmakeOptions):
+ # Appends to cmakeOptions the options that will enable the appropriate
+ # MPI implementations
+
+ RTOnlyOptions = []
+ RTOnlyOptions.append('-DRUNTIME_ONLY=true')
+ cmakeOptions.extend(RTOnlyOptions)
+
def set_mpi_cmakeOptions(self, spec, cmakeOptions):
# Appends to cmakeOptions the options that will enable the appropriate
# MPI implementations
@@ -112,26 +132,74 @@ class CbtfKrell(CMakePackage):
MPIOptions = []
# openmpi
- if '+openmpi' in spec:
+ if spec.satisfies('+openmpi'):
MPIOptions.append('-DOPENMPI_DIR=%s' % spec['openmpi'].prefix)
# mpich
- if '+mpich' in spec:
+ if spec.satisfies('+mpich'):
MPIOptions.append('-DMPICH_DIR=%s' % spec['mpich'].prefix)
# mpich2
- if '+mpich2' in spec:
+ if spec.satisfies('+mpich2'):
MPIOptions.append('-DMPICH2_DIR=%s' % spec['mpich2'].prefix)
# mvapich
- if '+mvapich' in spec:
+ if spec.satisfies('+mvapich'):
MPIOptions.append('-DMVAPICH_DIR=%s' % spec['mvapich'].prefix)
# mvapich2
- if '+mvapich2' in spec:
+ if spec.satisfies('+mvapich2'):
MPIOptions.append('-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix)
# mpt
- if '+mpt' in spec:
+ if spec.satisfies('+mpt'):
MPIOptions.append('-DMPT_DIR=%s' % spec['mpt'].prefix)
cmakeOptions.extend(MPIOptions)
+ def set_CrayLoginNode_cmakeOptions(self, spec, cmakeOptions):
+ # Appends to cmakeOptions the options that will enable
+ # the appropriate Cray login node libraries
+
+ CrayLoginNodeOptions = []
+ rt_platform = "cray"
+ # How do we get the compute node (CNL) cbtf package
+ # install directory path. spec['cbtf'].prefix is the
+ # login node path for this build, as we are building
+ # the login node components with this spack invocation. We
+ # need these paths to be the ones created in the CNL
+ # spack invocation.
+ be_cbtf = spack.store.db.query_one('cbtf arch=cray-CNL-haswell')
+ be_cbtfk = spack.store.db.query_one('cbtf-krell arch=cray-CNL-haswell')
+ be_papi = spack.store.db.query_one('papi arch=cray-CNL-haswell')
+ be_boost = spack.store.db.query_one('boost arch=cray-CNL-haswell')
+ be_mont = spack.store.db.query_one('libmonitor arch=cray-CNL-haswell')
+ be_unw = spack.store.db.query_one('libunwind arch=cray-CNL-haswell')
+ be_xer = spack.store.db.query_one('xerces-c arch=cray-CNL-haswell')
+ be_dyn = spack.store.db.query_one('dyninst arch=cray-CNL-haswell')
+ be_mrnet = spack.store.db.query_one('mrnet arch=cray-CNL-haswell')
+
+ CrayLoginNodeOptions.append('-DCN_RUNTIME_PLATFORM=%s'
+ % rt_platform)
+
+ # Use install directories as CMAKE args for the building
+ # of login cbtf-krell
+ CrayLoginNodeOptions.append('-DCBTF_CN_RUNTIME_DIR=%s'
+ % be_cbtf.prefix)
+ CrayLoginNodeOptions.append('-DCBTF_KRELL_CN_RUNTIME_DIR=%s'
+ % be_cbtfk.prefix)
+ CrayLoginNodeOptions.append('-DPAPI_CN_RUNTIME_DIR=%s'
+ % be_papi.prefix)
+ CrayLoginNodeOptions.append('-DBOOST_CN_RUNTIME_DIR=%s'
+ % be_boost.prefix)
+ CrayLoginNodeOptions.append('-DLIBMONITOR_CN_RUNTIME_DIR=%s'
+ % be_mont.prefix)
+ CrayLoginNodeOptions.append('-DLIBUNWIND_CN_RUNTIME_DIR=%s'
+ % be_unw.prefix)
+ CrayLoginNodeOptions.append('-DXERCESC_CN_RUNTIME_DIR=%s'
+ % be_xer.prefix)
+ CrayLoginNodeOptions.append('-DDYNINST_CN_RUNTIME_DIR=%s'
+ % be_dyn.prefix)
+ CrayLoginNodeOptions.append('-DMRNET_CN_RUNTIME_DIR=%s'
+ % be_mrnet.prefix)
+
+ cmakeOptions.extend(CrayLoginNodeOptions)
+
def cmake_args(self):
spec = self.spec
@@ -153,7 +221,15 @@ class CbtfKrell(CMakePackage):
'-DLIBIOMP_DIR=%s' % spec['llvm-openmp-ompt'].prefix,
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix]
+ if self.spec.satisfies('+runtime'):
+ self.set_RTOnly_cmakeOptions(spec, cmake_args)
+
# Add any MPI implementations coming from variant settings
self.set_mpi_cmakeOptions(spec, cmake_args)
+ if self.spec.satisfies('+crayfe'):
+ # We need to build target/compute node components/libraries first
+ # then pass those libraries to the cbtf-krell login node build
+ self.set_CrayLoginNode_cmakeOptions(spec, cmake_args)
+
return cmake_args
diff --git a/var/spack/repos/builtin/packages/cbtf-lanl/package.py b/var/spack/repos/builtin/packages/cbtf-lanl/package.py
index 19b00e00df..0c6bf54b4c 100644
--- a/var/spack/repos/builtin/packages/cbtf-lanl/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-lanl/package.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
##########################################################################
-# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2018 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
@@ -48,18 +48,26 @@ class CbtfLanl(CMakePackage):
command monitoring tool."""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
- version('1.8', branch='master',
+ version('1.9.1', branch='master',
git='http://git.code.sf.net/p/cbtf-lanl/cbtf-lanl')
variant('build_type', default='None', values=('None'),
description='CMake build type')
+ variant('runtime', default=False,
+ description="build only the runtime libraries and collectors.")
+ variant('cti', default=False,
+ description="Build MRNet with the CTI startup option")
depends_on("cmake@3.0.2:", type='build')
# Dependencies for cbtf-krell
depends_on("mrnet@5.0.1:+lwthreads")
depends_on("xerces-c@3.1.1:")
depends_on("cbtf")
+ depends_on("cbtf+cti", when='+cti')
+ depends_on("cbtf+runtime", when='+runtime')
depends_on("cbtf-krell")
+ depends_on("cbtf-krell+cti", when='+cti')
+ depends_on("cbtf-krell+runtime", when='+runtime')
parallel = False
diff --git a/var/spack/repos/builtin/packages/cbtf/package.py b/var/spack/repos/builtin/packages/cbtf/package.py
index 2f0b3b275d..4e68e21d5b 100644
--- a/var/spack/repos/builtin/packages/cbtf/package.py
+++ b/var/spack/repos/builtin/packages/cbtf/package.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
##########################################################################
-# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2018 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
@@ -53,9 +53,11 @@ class Cbtf(CMakePackage):
homepage = "http://sourceforge.net/p/cbtf/wiki/Home"
# Use when the git repository is available
- version('1.8', branch='master',
+ version('1.9.1', branch='master',
git='https://github.com/OpenSpeedShop/cbtf.git')
+ variant('cti', default=False,
+ description="Build MRNet with the CTI startup option")
variant('runtime', default=False,
description="build only the runtime libraries and collectors.")
variant('build_type', default='None', values=('None'),
@@ -64,6 +66,7 @@ class Cbtf(CMakePackage):
depends_on("cmake@3.0.2:", type='build')
depends_on("boost@1.50.0:1.59.0")
depends_on("mrnet@5.0.1:+lwthreads")
+ depends_on("mrnet@5.0.1:+cti", when='+cti')
depends_on("xerces-c@3.1.1:")
# Work around for spack libxml2 package bug, take off python when fixed
depends_on("libxml2+python")
@@ -83,7 +86,8 @@ class Cbtf(CMakePackage):
compile_flags = "-O2 -g"
- if '+runtime' in spec:
+ if spec.satisfies('+runtime'):
+
# Install message tag include file for use in Intel MIC
# cbtf-krell build
# FIXME
diff --git a/var/spack/repos/builtin/packages/elfutils/package.py b/var/spack/repos/builtin/packages/elfutils/package.py
index 2db5d71d3a..726c53a032 100644
--- a/var/spack/repos/builtin/packages/elfutils/package.py
+++ b/var/spack/repos/builtin/packages/elfutils/package.py
@@ -46,6 +46,7 @@ class Elfutils(AutotoolsPackage):
depends_on('flex', type='build')
depends_on('bison', type='build')
depends_on('gettext')
+ conflicts('%gcc@7.2.0:', when='@0.163')
provides('elf@1')
diff --git a/var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py b/var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py
index 2526cd4d03..310df251aa 100644
--- a/var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py
+++ b/var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
@@ -33,8 +33,8 @@ class LlvmOpenmpOmpt(CMakePackage):
homepage = "https://github.com/OpenMPToolsInterface/LLVM-openmp"
- # towards_tr4 branch
- version('towards_tr4', branch='towards_tr4',
+ # tr6_forwards branch
+ version('tr6_forwards', branch='tr6_forwards',
git='https://github.com/OpenMPToolsInterface/LLVM-openmp.git')
version('3.9.2b2',
@@ -79,9 +79,9 @@ class LlvmOpenmpOmpt(CMakePackage):
'-DCMAKE_BUILD_WITH_INSTALL_RPATH=true',
'-DLIBOMP_USE_DEBUGGER=false'])
- # Build llvm-openmp-ompt using the toward_tr4 branch
+ # Build llvm-openmp-ompt using the tr6_forwards branch
# This requires the version to be 5.0 (50)
- if '@towards_tr4' in self.spec:
+ if '@tr6_forwards' in self.spec:
cmake_args.extend(
['-DLIBOMP_OMP_VERSION=50'])
diff --git a/var/spack/repos/builtin/packages/mrnet/package.py b/var/spack/repos/builtin/packages/mrnet/package.py
index 6569934817..97637bf9fa 100644
--- a/var/spack/repos/builtin/packages/mrnet/package.py
+++ b/var/spack/repos/builtin/packages/mrnet/package.py
@@ -31,17 +31,21 @@ class Mrnet(AutotoolsPackage):
url = "http://ftp.cs.wisc.edu/pub/paradyn/mrnet/mrnet_5.0.1.tar.gz"
list_url = "http://ftp.cs.wisc.edu/paradyn/mrnet"
+ version('5.0.1-3', git='https://github.com/dyninst/mrnet.git')
version('5.0.1-2', git='https://github.com/dyninst/mrnet.git',
commit='20b1eacfc6d680d9f6472146d2dfaa0f900cc2e9')
version('5.0.1', '17f65738cf1b9f9b95647ff85f69ecdd')
version('4.1.0', '5a248298b395b329e2371bf25366115c')
version('4.0.0', 'd00301c078cba57ef68613be32ceea2f')
+ variant('cti', default=False,
+ description="Build the MRNet with the CTI startup option")
variant('lwthreads', default=False,
description="Also build the MRNet LW threadsafe libraries")
parallel = False
depends_on("boost")
+ depends_on("cti", when='+cti')
def configure_args(self):
spec = self.spec
@@ -51,5 +55,11 @@ class Mrnet(AutotoolsPackage):
# lwthreads variant is present
if '+lwthreads' in spec:
config_args.append('--enable-ltwt-threadsafe')
-
+ # Build the MRNet with CTI based start-up when
+ # the cti variant is present
+ if '+cti' in spec:
+ config_args.append('--with-startup=cray-cti')
+ cti = self.spec['cti'].prefix
+ config_args.append('--with-craycti-inc=-I%s/include' % cti)
+ config_args.append('--with-craycti-lib=-I%s/lib' % cti)
return config_args
diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py
index 60d5a1c1b7..39df30afd2 100644
--- a/var/spack/repos/builtin/packages/openspeedshop/package.py
+++ b/var/spack/repos/builtin/packages/openspeedshop/package.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
##############################################################################
-# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2018 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
@@ -41,6 +41,10 @@
##############################################################################
from spack import *
+
+import spack
+import spack.store
+
import os
import os.path
@@ -63,7 +67,7 @@ class Openspeedshop(CMakePackage):
url = "https://github.com/OpenSpeedShop"
# Use when the git repository is available
- version('2.3', branch='master',
+ version('2.3.1', branch='master',
git='https://github.com/OpenSpeedShop/openspeedshop.git')
variant('offline', default=False,
@@ -72,7 +76,9 @@ class Openspeedshop(CMakePackage):
description="build with cbtf instrumentor enabled.")
variant('runtime', default=False,
description="build only the runtime libraries and collectors.")
- variant('frontend', default=False,
+ variant('cti', default=False,
+ description="Build MRNet with the CTI startup option")
+ variant('crayfe', default=False,
description="build only the FE tool using the runtime_dir \
to point to target build.")
variant('cuda', default=False,
@@ -117,6 +123,7 @@ class Openspeedshop(CMakePackage):
depends_on("sqlite")
depends_on("boost@1.50.0:1.59.0")
depends_on("dyninst@9.3.2")
+ depends_on("python")
depends_on("libxml2+python")
depends_on("qt@3.3.8b+krellpatch", when='gui=qt3')
# Actively working on adding this gui package
@@ -136,6 +143,8 @@ class Openspeedshop(CMakePackage):
# Dependencies only for the openspeedshop cbtf package.
depends_on("cbtf", when='+cbtf')
depends_on('cbtf-krell', when='+cbtf')
+ depends_on('cbtf-krell+crayfe', when='+crayfe')
+ depends_on('cbtf-krell+cti', when='+cti')
depends_on('cbtf-krell+mpich', when='+cbtf+mpich')
depends_on('cbtf-krell+mpich2', when='+cbtf+mpich2')
depends_on('cbtf-krell+mpt', when='+cbtf+mpt')
@@ -144,19 +153,45 @@ class Openspeedshop(CMakePackage):
depends_on('cbtf-krell+openmpi', when='+cbtf+openmpi')
depends_on("cbtf-argonavis", when='+cbtf+cuda')
depends_on("mrnet@5.0.1:+lwthreads", when='+cbtf')
+ depends_on("mrnet@5.0.1:+cti", when='+cti+cbtf')
parallel = False
build_directory = 'build_openspeedshop'
+ def set_CrayLoginNode_cmakeOptions(self, spec, cmakeOptions):
+ # Appends to cmakeOptions the options that will enable the appropriate
+ # Cray login node libraries
+
+ CrayLoginNodeOptions = []
+ rt_platform = "cray"
+ # How do we get the compute node (CNL) cbtf package install
+ # directory path?
+ # spec['cbtf'].prefix is the login node value for this build, as
+ # we only get here when building the login node components and
+ # that is all that is known to spack.
+ be_ck = spack.store.db.query_one('cbtf-krell arch=cray-CNL-haswell')
+
+ # Equivalent to install-tool cmake arg:
+ # '-DCBTF_KRELL_CN_RUNTIME_DIR=%s'
+ # % <base dir>/cbtf_v2.3.1.release/compute)
+ CrayLoginNodeOptions.append('-DCBTF_KRELL_CN_RUNTIME_DIR=%s'
+ % be_ck.prefix)
+ CrayLoginNodeOptions.append('-DRUNTIME_PLATFORM=%s'
+ % rt_platform)
+
+ cmakeOptions.extend(CrayLoginNodeOptions)
+
def cmake_args(self):
+
spec = self.spec
+
compile_flags = "-O2 -g"
- if '+offline' in spec:
+ if spec.satisfies('+offline'):
# Indicate building offline vers (writes rawdata files)
instrumentor_setting = "offline"
- if '+runtime' in spec:
+ if spec.satisfies('+runtime'):
cmake_args = [
'-DCMAKE_CXX_FLAGS=%s' % compile_flags,
'-DCMAKE_C_FLAGS=%s' % compile_flags,
@@ -173,7 +208,6 @@ class Openspeedshop(CMakePackage):
# Appends base options to cmake_args
self.set_defaultbase_cmakeOptions(spec, cmake_args)
-
cmake_args.extend(
['-DCMAKE_CXX_FLAGS=%s' % compile_flags,
'-DCMAKE_C_FLAGS=%s' % compile_flags,
@@ -187,11 +221,14 @@ class Openspeedshop(CMakePackage):
# Add any MPI implementations coming from variant settings
self.set_mpi_cmakeOptions(spec, cmake_args)
- elif '+cbtf' in spec:
+ elif spec.satisfies('+cbtf'):
+
+ cmake_args = []
+
# Indicate building cbtf vers (transfer rawdata files)
instrumentor_setting = "cbtf"
- if '+runtime' in spec:
+ if spec.satisfies('+runtime'):
# Appends base options to cmake_args
self.set_defaultbase_cmakeOptions(spec, cmake_args)
@@ -204,7 +241,6 @@ class Openspeedshop(CMakePackage):
'-DMRNET_DIR=%s' % spec['mrnet'].prefix])
else:
- cmake_args = []
# Appends base options to cmake_args
self.set_defaultbase_cmakeOptions(spec, cmake_args)
@@ -229,6 +265,13 @@ class Openspeedshop(CMakePackage):
['-DQTLIB_DIR=%s'
% spec['qt'].prefix])
+ if spec.satisfies('+crayfe'):
+ # We need to build target/compute node
+ # components/libraries first then pass
+ # those libraries to the openspeedshop
+ # login node build
+ self.set_CrayLoginNode_cmakeOptions(spec, cmake_args)
+
return cmake_args
def set_defaultbase_cmakeOptions(self, spec, cmakeOptions):
@@ -263,22 +306,22 @@ class Openspeedshop(CMakePackage):
MPIOptions = []
# openmpi
- if '+openmpi' in spec:
+ if spec.satisfies('+openmpi'):
MPIOptions.append('-DOPENMPI_DIR=%s' % spec['openmpi'].prefix)
# mpich
- if '+mpich' in spec:
+ if spec.satisfies('+mpich'):
MPIOptions.append('-DMPICH_DIR=%s' % spec['mpich'].prefix)
# mpich2
- if '+mpich2' in spec:
+ if spec.satisfies('+mpich2'):
MPIOptions.append('-DMPICH2_DIR=%s' % spec['mpich2'].prefix)
# mvapich
- if '+mvapich' in spec:
+ if spec.satisfies('+mvapich'):
MPIOptions.append('-DMVAPICH_DIR=%s' % spec['mvapich'].prefix)
# mvapich2
- if '+mvapich2' in spec:
+ if spec.satisfies('+mvapich2'):
MPIOptions.append('-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix)
# mpt
- if '+mpt' in spec:
+ if spec.satisfies('+mpt'):
MPIOptions.append('-DMPT_DIR=%s' % spec['mpt'].prefix)
cmakeOptions.extend(MPIOptions)
@@ -308,26 +351,13 @@ class Openspeedshop(CMakePackage):
run_env.prepend_path('LD_LIBRARY_PATH',
os.path.dirname(oss_libdir.joined()))
+ run_env.set('OPENSS_RAWDATA_DIR', '.')
# Settings specific to the version, checking here
- # for the cbtf instrumentor
- if '+cbtf' in self.spec:
- 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))
-
- 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)
- run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin)
- run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin)
-
- elif '+offline' in self.spec:
+ # for the offline instrumentor, otherwise use cbtf instrumentor
+ # settings. MPI for the cbtf instrumentor is setup in cbtf-krell
+ if '+offline' in self.spec:
# Had to use this form of syntax self.prefix.lib and
# self.prefix.lib64 returned None all the time
- run_env.set('OPENSS_RAWDATA_DIR', '.')
run_env.set('OPENSS_PLUGIN_PATH',
join_path(oss_libdir + '/openspeedshop'))
run_env.prepend_path('PATH', self.spec['papi'].prefix.bin)
@@ -341,3 +371,14 @@ class Openspeedshop(CMakePackage):
run_env.set('OPENSS_MPI_IMPLEMENTATION', 'mvapich2')
if '+openmpi' in self.spec:
run_env.set('OPENSS_MPI_IMPLEMENTATION', 'openmpi')
+ else:
+ 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))
+ 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)
+ run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin)
+ run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin)
diff --git a/var/spack/repos/builtin/packages/qt/qt3krell.patch b/var/spack/repos/builtin/packages/qt/qt3krell.patch
index 4f1c12e43e..cee94b3cbc 100644
--- a/var/spack/repos/builtin/packages/qt/qt3krell.patch
+++ b/var/spack/repos/builtin/packages/qt/qt3krell.patch
@@ -1,23 +1,3 @@
---- qt-x11-free-3.3.8b/src/tools/qmap.h 2008-01-15 13:09:13.000000000 -0600
-+++ qt-x11-free-3.3.8b-fixes/src/tools/qmap.h 2015-07-08 15:47:34.757565247 -0500
-@@ -52,6 +52,7 @@
- #ifndef QT_NO_STL
- #include <iterator>
- #include <map>
-+#include <cstddef>
- #endif
-
- //#define QT_CHECK_MAP_RANGE
---- qt-x11-free-3.3.8b/src/tools/qvaluelist.h 2008-01-15 13:09:13.000000000 -0600
-+++ qt-x11-free-3.3.8b-fixes/src/tools/qvaluelist.h 2015-07-08 15:47:34.758565247 -0500
-@@ -50,6 +50,7 @@
- #ifndef QT_NO_STL
- #include <iterator>
- #include <list>
-+#include <cstddef>
- #endif
-
- //#define QT_CHECK_VALUELIST_RANGE
--- qt-x11-free-3.3.8b/src/tools/qvaluevector.h 2008-01-15 13:09:13.000000000 -0600
+++ qt-x11-free-3.3.8b-fixes/src/tools/qvaluevector.h 2015-07-08 15:47:34.758565247 -0500
@@ -47,6 +47,7 @@