summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2015-12-31 15:27:39 -0800
committerTodd Gamblin <tgamblin@llnl.gov>2015-12-31 15:27:39 -0800
commit7062b216b84ec48cc441cf11bd216dea9ae2f111 (patch)
tree2a51adcc6affd259bf6bd18f924486a35d548e19
parent99a73cb4facb4010242cf1d92a55427b17ceab1f (diff)
parenta411c497abe3dbc0e98f4278a2d5908058802e38 (diff)
downloadspack-7062b216b84ec48cc441cf11bd216dea9ae2f111.tar.gz
spack-7062b216b84ec48cc441cf11bd216dea9ae2f111.tar.bz2
spack-7062b216b84ec48cc441cf11bd216dea9ae2f111.tar.xz
spack-7062b216b84ec48cc441cf11bd216dea9ae2f111.zip
Merge pull request #258 from epfl-scitas/packages/scalasca
Packages/scalasca
-rw-r--r--var/spack/packages/cube/package.py79
-rw-r--r--var/spack/packages/opari2/package.py81
-rw-r--r--var/spack/packages/otf2/package.py85
-rw-r--r--var/spack/packages/scalasca/package.py96
-rw-r--r--var/spack/packages/scorep/package.py20
5 files changed, 153 insertions, 208 deletions
diff --git a/var/spack/packages/cube/package.py b/var/spack/packages/cube/package.py
index cc1c684594..17d388c33d 100644
--- a/var/spack/packages/cube/package.py
+++ b/var/spack/packages/cube/package.py
@@ -1,58 +1,55 @@
-# FIXME: Add copyright statement
+##############################################################################
+# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
#
+# This file is part of Spack.
+# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# 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 Foundation) version 2.1 dated February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
from spack import *
-from contextlib import closing
+
class Cube(Package):
- """Cube the profile viewer for Score-P and Scalasca profiles. It
- displays a multi-dimensional performance space consisting
- of the dimensions (i) performance metric, (ii) call path,
- and (iii) system resource."""
+ """
+ Cube the profile viewer for Score-P and Scalasca profiles. It displays a multi-dimensional performance space
+ consisting of the dimensions:
+ - performance metric
+ - call path
+ - system resource
+ """
homepage = "http://www.scalasca.org/software/cube-4.x/download.html"
- url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz"
+ url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz"
version('4.3.3', '07e109248ed8ffc7bdcce614264a2909',
url='http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-4.3.3.tar.gz')
- version('4.2.3', '8f95b9531f5a8f8134f279c2767c9b20')
-
- version('4.3TP1', 'a2090fbc7b2ba394bd5c09ba971e237f',
- url = 'http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-4.3-TP1.tar.gz')
-
- # Using CC as C++ compiler provides quirky workaround for a Score-P build system attempt
- # to guess a matching C compiler when configuring scorep-score
- backend_user_provided = """\
-CC=cc
-CXX=CC
-F77=f77
-FC=f90
-#CFLAGS=-fPIC
-#CXXFLAGS=-fPIC
-"""
- frontend_user_provided = """\
-CC_FOR_BUILD=cc
-CXX_FOR_BUILD=CC
-F77_FOR_BUILD=f70
-FC_FOR_BUILD=f90
-"""
+ version('4.2.3', '8f95b9531f5a8f8134f279c2767c9b20',
+ url="http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz")
- def install(self, spec, prefix):
- # Use a custom compiler configuration, otherwise the score-p
- # build system messes with spack's compiler settings.
- # Create these three files in the build directory
-
- with closing(open("vendor/common/build-config/platforms/platform-backend-user-provided", "w")) as backend_file:
- backend_file.write(self.backend_user_provided)
- with closing(open("vendor/common/build-config/platforms/platform-frontend-user-provided", "w")) as frontend_file:
- frontend_file.write(self.frontend_user_provided)
+ # TODO : add variant that builds GUI on top of Qt
+ def install(self, spec, prefix):
configure_args = ["--prefix=%s" % prefix,
- "--with-custom-compilers",
- "--without-paraver",
+ "--without-paraver",
"--without-gui"]
-
configure(*configure_args)
-
make(parallel=False)
make("install", parallel=False)
diff --git a/var/spack/packages/opari2/package.py b/var/spack/packages/opari2/package.py
index 3f8c65377d..c68978f5c0 100644
--- a/var/spack/packages/opari2/package.py
+++ b/var/spack/packages/opari2/package.py
@@ -1,18 +1,38 @@
-# FIXME: Add copyright statement here
+##############################################################################
+# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# 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 Foundation) version 2.1 dated February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
from spack import *
-from contextlib import closing
class Opari2(Package):
- """OPARI2 is a source-to-source instrumentation tool for OpenMP and
- hybrid codes. It surrounds OpenMP directives and runtime library
- calls with calls to the POMP2 measurement interface.
- OPARI2 will provide you with a new initialization method that allows
- for multi-directory and parallel builds as well as the usage of
- pre-instrumented libraries. Furthermore, an efficient way of
- tracking parent-child relationships was added. Additionally, we
- extended OPARI2 to support instrumentation of OpenMP 3.0
- tied tasks. """
+ """
+ OPARI2 is a source-to-source instrumentation tool for OpenMP and hybrid codes. It surrounds OpenMP directives and
+ runtime library calls with calls to the POMP2 measurement interface. OPARI2 will provide you with a new
+ initialization method that allows for multi-directory and parallel builds as well as the usage of pre-instrumented
+ libraries. Furthermore, an efficient way of tracking parent-child relationships was added. Additionally, we extended
+ OPARI2 to support instrumentation of OpenMP 3.0 tied tasks.
+ """
homepage = "http://www.vi-hps.org/projects/score-p"
url = "http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.2.tar.gz"
@@ -21,47 +41,8 @@ class Opari2(Package):
url='http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.4.tar.gz')
version('1.1.2', '9a262c7ca05ff0ab5f7775ae96f3539e')
- backend_user_provided = """\
-CC=cc
-CXX=c++
-F77=f77
-FC=f90
-CFLAGS=-fPIC
-CXXFLAGS=-fPIC
-"""
- frontend_user_provided = """\
-CC_FOR_BUILD=cc
-CXX_FOR_BUILD=c++
-F77_FOR_BUILD=f70
-FC_FOR_BUILD=f90
-CFLAGS_FOR_BUILD=-fPIC
-CXXFLAGS_FOR_BUILD=-fPIC
-"""
- mpi_user_provided = """\
-MPICC=mpicc
-MPICXX=mpicxx
-MPIF77=mpif77
-MPIFC=mpif90
-MPI_CFLAGS=-fPIC
-MPI_CXXFLAGS=-fPIC
-"""
-
def install(self, spec, prefix):
- # Use a custom compiler configuration, otherwise the score-p
- # build system messes with spack's compiler settings.
- # Create these three files in the build directory
- with closing(open("platform-backend-user-provided", "w")) as backend_file:
- backend_file.write(self.backend_user_provided)
- with closing(open("platform-frontend-user-provided", "w")) as frontend_file:
- frontend_file.write(self.frontend_user_provided)
- with closing(open("platform-mpi-user-provided", "w")) as mpi_file:
- mpi_file.write(self.mpi_user_provided)
-
- # FIXME: Modify the configure line to suit your build system here.
configure("--prefix=%s" % prefix,
- "--with-custom-compilers",
"--enable-shared")
-
- # FIXME: Add logic to build and install here
make()
make("install")
diff --git a/var/spack/packages/otf2/package.py b/var/spack/packages/otf2/package.py
index b3d3a5b663..c3d61bc228 100644
--- a/var/spack/packages/otf2/package.py
+++ b/var/spack/packages/otf2/package.py
@@ -1,12 +1,35 @@
-# FIXME: Add copyright
+##############################################################################
+# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# 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 Foundation) version 2.1 dated February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
from spack import *
-from contextlib import closing
-import os
+
class Otf2(Package):
- """The Open Trace Format 2 is a highly scalable, memory efficient event
- trace data format plus support library."""
+ """
+ The Open Trace Format 2 is a highly scalable, memory efficient event trace data format plus support library.
+ """
homepage = "http://www.vi-hps.org/score-p"
url = "http://www.vi-hps.org/upload/packages/otf2/otf2-1.4.tar.gz"
@@ -22,57 +45,11 @@ class Otf2(Package):
version('1.2.1', '8fb3e11fb7489896596ae2c7c83d7fc8',
url="http://www.vi-hps.org/upload/packages/otf2/otf2-1.2.1.tar.gz")
- backend_user_provided = """\
-CC=cc
-CXX=c++
-F77=f77
-FC=f90
-CFLAGS=-fPIC
-CXXFLAGS=-fPIC
-"""
- frontend_user_provided = """\
-CC_FOR_BUILD=cc
-CXX_FOR_BUILD=c++
-F77_FOR_BUILD=f70
-FC_FOR_BUILD=f90
-CFLAGS_FOR_BUILD=-fPIC
-CXXFLAGS_FOR_BUILD=-fPIC
-"""
- mpi_user_provided = """\
-MPICC=cc
-MPICXX=c++
-MPIF77=f77
-MPIFC=f90
-MPI_CFLAGS=-fPIC
-MPI_CXXFLAGS=-fPIC
-"""
-
- @when('@:1.2.1')
- def version_specific_args(self):
- return ["--with-platform=disabled", "CC=cc", "CXX=c++", "F77=f77", "F90=f90", "CFLAGS=-fPIC", "CXXFLAGS=-fPIC"]
-
- @when('@1.3:')
- def version_specific_args(self):
- # TODO: figure out what scorep's build does as of otf2 1.3
- return ["--with-custom-compilers"]
-
def install(self, spec, prefix):
- # Use a custom compiler configuration, otherwise the score-p
- # build system messes with spack's compiler settings.
- # Create these three files in the build directory
- with closing(open("platform-backend-user-provided", "w")) as backend_file:
- backend_file.write(self.backend_user_provided)
- with closing(open("platform-frontend-user-provided", "w")) as frontend_file:
- frontend_file.write(self.frontend_user_provided)
- with closing(open("platform-mpi-user-provided", "w")) as mpi_file:
- mpi_file.write(self.mpi_user_provided)
-
configure_args=["--prefix=%s" % prefix,
- "--enable-shared"]
-
- configure_args.extend(self.version_specific_args())
-
+ "--enable-shared",
+ "CFLAGS=-fPIC",
+ "CXXFLAGS=-fPIC"]
configure(*configure_args)
-
make()
make("install")
diff --git a/var/spack/packages/scalasca/package.py b/var/spack/packages/scalasca/package.py
index cf7a40c1f5..6de14564b2 100644
--- a/var/spack/packages/scalasca/package.py
+++ b/var/spack/packages/scalasca/package.py
@@ -1,65 +1,63 @@
-# FIXME: Add copyright
+##############################################################################
+# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# 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 Foundation) version 2.1 dated February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
from spack import *
+
class Scalasca(Package):
- """Scalasca is a software tool that supports the performance optimization
- of parallel programs by measuring and analyzing their runtime behavior.
- The analysis identifies potential performance bottlenecks - in
- particular those concerning communication and synchronization - and
- offers guidance in exploring their causes."""
+ """
+ Scalasca is a software tool that supports the performance optimization of parallel programs by measuring and
+ analyzing their runtime behavior. The analysis identifies potential performance bottlenecks - in particular those
+ concerning communication and synchronization - and offers guidance in exploring their causes.
+ """
- # FIXME: add a proper url for your package's homepage here.
homepage = "http://www.scalasca.org"
- url = "http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz"
+ url = "http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz"
- version('2.1', 'bab9c2b021e51e2ba187feec442b96e6',
- url = 'http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz' )
+ version('2.2.2', '2bafce988b0522d18072f7771e491ab9',
+ url='http://apps.fz-juelich.de/scalasca/releases/scalasca/2.2/dist/scalasca-2.2.2.tar.gz')
- depends_on("mpi")
- depends_on("otf2@1.4")
- depends_on("cube@4.2.3")
+ version('2.1', 'bab9c2b021e51e2ba187feec442b96e6',
+ url='http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz')
- backend_user_provided = """\
-CC=cc
-CXX=c++
-F77=f77
-FC=f90
-CFLAGS=-fPIC
-CXXFLAGS=-fPIC
-"""
- frontend_user_provided = """\
-CC_FOR_BUILD=cc
-CXX_FOR_BUILD=c++
-F77_FOR_BUILD=f70
-FC_FOR_BUILD=f90
-CFLAGS_FOR_BUILD=-fPIC
-CXXFLAGS_FOR_BUILD=-fPIC
-"""
- mpi_user_provided = """\
-MPICC=mpicc
-MPICXX=mpicxx
-MPIF77=mpif77
-MPIFC=mpif90
-MPI_CFLAGS=-fPIC
-MPI_CXXFLAGS=-fPIC
-"""
+ depends_on("mpi")
+ ##########
+ # Hard-code dependencies for Scalasca according to what stated in the release page
+ # The OTF2 library path should be detected automatically from SCOREP
+ # SCALASCA 2.2.2
+ depends_on("scorep@1.4:", when='@2.2.2')
+ depends_on("cube@4.3:", when='@2.2.2')
+ # SCALASCA 2.1
+ depends_on("scorep@1.3", when='@2.1')
+ depends_on("cube@4.2:", when='@2.1')
+ ##########
def install(self, spec, prefix):
configure_args = ["--prefix=%s" % prefix,
- "--with-custom-compilers",
- "--with-otf2=%s" % spec['otf2'].prefix.bin,
"--with-cube=%s" % spec['cube'].prefix.bin,
"--enable-shared"]
-
configure(*configure_args)
-
- make()
- make("install")
-
- # FIXME: Modify the configure line to suit your build system here.
- configure("--prefix=%s" % prefix)
-
- # FIXME: Add logic to build and install here
make()
- make("install")
+ make("install") \ No newline at end of file
diff --git a/var/spack/packages/scorep/package.py b/var/spack/packages/scorep/package.py
index 0820f2d8ac..5127e814b6 100644
--- a/var/spack/packages/scorep/package.py
+++ b/var/spack/packages/scorep/package.py
@@ -28,9 +28,9 @@ from spack import *
class Scorep(Package):
"""
- The Score-P measurement infrastructure is a highly scalable and
- easy-to-use tool suite for profiling, event tracing, and online
- analysis of HPC applications."""
+ The Score-P measurement infrastructure is a highly scalable and easy-to-use tool suite for profiling, event
+ tracing, and online analysis of HPC applications.
+ """
homepage = "http://www.vi-hps.org/projects/score-p"
url = "http://www.vi-hps.org/upload/packages/scorep/scorep-1.2.3.tar.gz"
@@ -55,15 +55,6 @@ class Scorep(Package):
depends_on("mpi")
depends_on("papi")
- def get_compiler_config_line(self):
- backend_user_provided = ['CC=%s' % self.compiler.cc_names[0],
- 'CXX=%s' % self.compiler.cxx_names[0],
- 'F77=%s' % self.compiler.f77_names[0] if len(self.compiler.f77_names) else "",
- 'FC=%s' % self.compiler.fc_names[0] if len(self.compiler.fc_names) else "",
- 'CFLAGS=-fPIC %s' % self.rpath_args,
- 'CXXFLAGS=-fPIC %s'% self.rpath_args]
- return backend_user_provided
-
def install(self, spec, prefix):
configure = Executable( join_path(self.stage.source_path, 'configure') )
with working_dir('spack-build', create=True):
@@ -73,8 +64,9 @@ class Scorep(Package):
"--with-cube=%s" % spec['cube'].prefix.bin,
"--with-papi-header=%s" % spec['papi'].prefix.include,
"--with-papi-lib=%s" % spec['papi'].prefix.lib,
- "--enable-shared"]
- configure_args.extend(self.get_compiler_config_line())
+ "--enable-shared",
+ "CFLAGS=-fPIC",
+ "CXXFLAGS=-fPIC"]
configure(*configure_args)
make()
make("install")