diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/openspeedshop-utils/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/openspeedshop-utils/package.py | 320 |
1 files changed, 0 insertions, 320 deletions
diff --git a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py deleted file mode 100644 index 63e8015437..0000000000 --- a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py +++ /dev/null @@ -1,320 +0,0 @@ -# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os - -import spack.store -from spack.package import * -from spack.pkg.builtin.boost import Boost - - -class OpenspeedshopUtils(CMakePackage): - """OpenSpeedShop is a community effort led by Trenza, Inc. - It builds on top of a broad list of community infrastructures, - most notably Dyninst and MRNet from UW, libmonitor from Rice, - and PAPI from UTK. OpenSpeedShop is an open source multi platform - Linux performance tool which is targeted to support performance - analysis of applications running on both single node and large - scale IA64, IA32, EM64T, AMD64, PPC, ARM, Power8, Intel Phi, Blue - Gene and Cray platforms. OpenSpeedShop development is hosted by - Trenza Inc.. The infrastructure and base components of OpenSpeedShop - are released as open source code primarily under LGPL. - openspeedshop-utils is a package that does not have the - qt3 gui. It was created to avoid a conflict between - openspeedshop and cbtf-argonavis-gui based on the fact - that spack will not allow a qt3 and qt4/qt5 dependency in a - packages dependency tree. - """ - - homepage = "http://www.openspeedshop.org" - git = "https://github.com/OpenSpeedShop/openspeedshop.git" - - version("develop", branch="master") - version("2.4.2.1", branch="2.4.2.1") - version("2.4.2", branch="2.4.2") - version("2.4.1", branch="2.4.1") - - variant( - "runtime", default=False, description="build only the runtime libraries and collectors." - ) - variant( - "crayfe", - default=False, - description="build only the FE tool using the runtime_dir \ - to point to target build.", - ) - variant("cuda", default=False, description="build with cuda packages included.") - - variant( - "build_type", - default="RelWithDebInfo", - description="The build type to build", - values=("Debug", "Release", "RelWithDebInfo"), - ) - - # MPI variants - variant( - "openmpi", - default=False, - description="Build mpi collector for openmpi \ - MPI when variant is enabled.", - ) - variant( - "mpt", - default=False, - description="Build mpi collector for SGI \ - MPT MPI when variant is enabled.", - ) - variant( - "mvapich2", - default=False, - description="Build mpi collector for mvapich2\ - MPI when variant is enabled.", - ) - variant( - "mpich2", - default=False, - description="Build mpi collector for mpich2\ - MPI when variant is enabled.", - ) - - depends_on("cmake@3.0.2:", type="build") - - # Dependencies for openspeedshop that are common to all - # the variants of the OpenSpeedShop build - depends_on("libtool", type="build") - depends_on("bison", type="build") - depends_on("flex@2.6.1", type="build") - - # For binutils - depends_on("binutils+plugins~gold@2.32", type="build") - - depends_on("elfutils", type="link") - depends_on("libdwarf") - - depends_on("sqlite") - - # For boost - depends_on("boost@1.66.0:1.69.0") - # TODO: replace this with an explicit list of components of Boost, - # for instance depends_on('boost +filesystem') - # See https://github.com/spack/spack/pull/22303 for reference - depends_on(Boost.with_default_variants) - - depends_on("dyninst@master", when="@develop") - depends_on("dyninst@10:", when="@2.4.0:9999") - - depends_on("python@2.7.14:2.7", type=("build", "run")) - - depends_on("libxml2") - - # Dependencies for the openspeedshop cbtf packages. - depends_on("cbtf@develop", when="@develop", type=("build", "link", "run")) - depends_on("cbtf@1.9.3:9999", when="@2.4.0:9999", type=("build", "link", "run")) - - depends_on("cbtf-krell@develop", when="@develop", type=("build", "link", "run")) - depends_on("cbtf-krell@1.9.3:9999", when="@2.4.0:9999", type=("build", "link", "run")) - - depends_on("cbtf-krell@develop+crayfe", when="@develop+crayfe", type=("build", "link", "run")) - depends_on( - "cbtf-krell@1.9.3:9999+crayfe", when="@2.4.0:9999+crayfe", type=("build", "link", "run") - ) - - depends_on("cbtf-krell@develop+mpich2", when="@develop+mpich2", type=("build", "link", "run")) - depends_on( - "cbtf-krell@1.9.3:9999+mpich2", when="@2.4.0:9999+mpich2", type=("build", "link", "run") - ) - - depends_on("cbtf-krell@develop+mpt", when="@develop+mpt", type=("build", "link", "run")) - depends_on("cbtf-krell@1.9.3:9999+mpt", when="@2.4.0:9999+mpt", type=("build", "link", "run")) - - depends_on( - "cbtf-krell@develop+mvapich2", when="@develop+mvapich2", type=("build", "link", "run") - ) - depends_on( - "cbtf-krell@1.9.3:9999+mvapich2", - when="@2.4.0:9999+mvapich2", - type=("build", "link", "run"), - ) - - depends_on( - "cbtf-krell@develop+openmpi", when="@develop+openmpi", type=("build", "link", "run") - ) - depends_on( - "cbtf-krell@1.9.3:9999+openmpi", when="@2.4.0:9999+openmpi", type=("build", "link", "run") - ) - - depends_on("cbtf-argonavis@develop", when="@develop+cuda", type=("build", "link", "run")) - depends_on("cbtf-argonavis@1.9.3:9999", when="@2.4.0:9999+cuda", type=("build", "link", "run")) - - # For MRNet - depends_on("mrnet@5.0.1-3:+lwthreads", when="@develop", type=("build", "link", "run")) - depends_on("mrnet@5.0.1-3:+lwthreads", when="@2.4.0:9999", type=("build", "link", "run")) - - patch("arm.patch", when="target=aarch64:") - parallel = False - - build_directory = "build_openspeedshop" - - def set_cray_login_node_cmake_options(self, spec, cmake_options): - # Appends to cmake_options the options that will enable the appropriate - # Cray login node libraries - - cray_login_node_options = [] - 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.4.0elease/compute) - cray_login_node_options.append("-DCBTF_KRELL_CN_RUNTIME_DIR=%s" % be_ck.prefix) - cray_login_node_options.append("-DRUNTIME_PLATFORM=%s" % rt_platform) - - cmake_options.extend(cray_login_node_options) - - def cmake_args(self): - # Appends base options to cmake_args - spec = self.spec - - compile_flags = "-O2 -g -Wall" - - cmake_args = [] - - # Indicate building cbtf vers (transfer rawdata files) - instrumentor_setting = "cbtf" - - if spec.satisfies("+runtime"): - self.set_defaultbase_cmake_options(spec, cmake_args) - - cmake_args.extend( - [ - "-DCMAKE_CXX_FLAGS=%s" % compile_flags, - "-DCMAKE_C_FLAGS=%s" % compile_flags, - "-DINSTRUMENTOR=%s" % instrumentor_setting, - "-DCBTF_DIR=%s" % spec["cbtf"].prefix, - "-DCBTF_KRELL_DIR=%s" % spec["cbtf-krell"].prefix, - "-DMRNET_DIR=%s" % spec["mrnet"].prefix, - ] - ) - - else: - - # Appends base options to cmake_args - self.set_defaultbase_cmake_options(spec, cmake_args) - cmake_args.extend( - [ - "-DCMAKE_CXX_FLAGS=%s" % compile_flags, - "-DCMAKE_C_FLAGS=%s" % compile_flags, - "-DINSTRUMENTOR=%s" % instrumentor_setting, - "-DSQLITE3_DIR=%s" % spec["sqlite"].prefix, - "-DCBTF_DIR=%s" % spec["cbtf"].prefix, - "-DCBTF_KRELL_DIR=%s" % spec["cbtf-krell"].prefix, - "-DMRNET_DIR=%s" % spec["mrnet"].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_cray_login_node_cmake_options(spec, cmake_args) - - cmake_args.extend(["-DBUILD_QT3_GUI=FALSE"]) - - return cmake_args - - def set_defaultbase_cmake_options(self, spec, cmake_options): - # Appends to cmake_options the options that will enable - # the appropriate base level options to the openspeedshop - # cmake build. - python_exe = spec["python"].command.path - python_library = spec["python"].libs[0] - python_include = spec["python"].headers.directories[0] - - base_options = [] - - base_options.append("-DBINUTILS_DIR=%s" % spec["binutils"].prefix) - base_options.append("-DLIBELF_DIR=%s" % spec["elfutils"].prefix) - base_options.append("-DLIBDWARF_DIR=%s" % spec["libdwarf"].prefix) - base_options.append("-DPYTHON_EXECUTABLE=%s" % python_exe) - base_options.append("-DPYTHON_INCLUDE_DIR=%s" % python_include) - base_options.append("-DPYTHON_LIBRARY=%s" % python_library) - base_options.append("-DBoost_NO_SYSTEM_PATHS=TRUE") - base_options.append("-DBoost_NO_BOOST_CMAKE=TRUE") - base_options.append("-DBOOST_ROOT=%s" % spec["boost"].prefix) - base_options.append("-DBoost_DIR=%s" % spec["boost"].prefix) - base_options.append("-DBOOST_LIBRARYDIR=%s" % spec["boost"].prefix.lib) - base_options.append("-DDYNINST_DIR=%s" % spec["dyninst"].prefix) - - cmake_options.extend(base_options) - - def set_mpi_cmake_options(self, spec, cmake_options): - # Appends to cmake_options the options that will enable - # the appropriate MPI implementations - - mpi_options = [] - - # openmpi - if spec.satisfies("+openmpi"): - mpi_options.append("-DOPENMPI_DIR=%s" % spec["openmpi"].prefix) - # mpich - if spec.satisfies("+mpich"): - mpi_options.append("-DMPICH_DIR=%s" % spec["mpich"].prefix) - # mpich2 - if spec.satisfies("+mpich2"): - mpi_options.append("-DMPICH2_DIR=%s" % spec["mpich2"].prefix) - # mvapich - if spec.satisfies("+mvapich"): - mpi_options.append("-DMVAPICH_DIR=%s" % spec["mvapich"].prefix) - # mvapich2 - if spec.satisfies("+mvapich2"): - mpi_options.append("-DMVAPICH2_DIR=%s" % spec["mvapich2"].prefix) - # mpt - if spec.satisfies("+mpt"): - mpi_options.append("-DMPT_DIR=%s" % spec["mpt"].prefix) - - cmake_options.extend(mpi_options) - - def setup_run_environment(self, env): - """Set up the compile and runtime environments for a package.""" - - # Find Dyninst library path, this is needed to - # set the DYNINSTAPI_RT_LIB library which is - # required for OpenSpeedShop to find loop level - # performance information - dyninst_libdir = find_libraries( - "libdyninstAPI_RT", root=self.spec["dyninst"].prefix, shared=True, recursive=True - ) - - # Set Dyninst RT library path to support OSS loop resolution code - env.set("DYNINSTAPI_RT_LIB", dyninst_libdir[0]) - - # Find openspeedshop library path - oss_libdir = find_libraries( - "libopenss-framework", - root=self.spec["openspeedshop-utils"].prefix, - shared=True, - recursive=True, - ) - env.prepend_path("LD_LIBRARY_PATH", os.path.dirname(oss_libdir.joined())) - - env.set("OPENSS_RAWDATA_DIR", ".") - - cbtf_mc = "/sbin/cbtf_mrnet_commnode" - cbtf_lmb = "/sbin/cbtf_libcbtf_mrnet_backend" - env.set("XPLAT_RSH", "ssh") - env.set("MRNET_COMM_PATH", join_path(self.spec["cbtf-krell"].prefix + cbtf_mc)) - env.set("CBTF_MRNET_BACKEND_PATH", join_path(self.spec["cbtf-krell"].prefix + cbtf_lmb)) - env.prepend_path("PATH", self.spec["mrnet"].prefix.bin) - env.prepend_path("PATH", self.spec["cbtf-krell"].prefix.bin) - env.prepend_path("PATH", self.spec["cbtf-krell"].prefix.sbin) - env.prepend_path("PATH", self.spec["python"].prefix.bin) |