summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
Diffstat (limited to 'var')
-rw-r--r--var/spack/packages/automaded/package.py51
-rw-r--r--var/spack/packages/bib2xhtml/package.py27
-rw-r--r--var/spack/packages/callpath/package.py1
-rw-r--r--var/spack/packages/cmake/package.py2
-rw-r--r--var/spack/packages/dyninst/package.py2
-rw-r--r--var/spack/packages/launchmon/package.py2
-rw-r--r--var/spack/packages/libNBC/package.py43
-rw-r--r--var/spack/packages/libunwind/package.py2
-rw-r--r--var/spack/packages/mpich/package.py40
-rw-r--r--var/spack/packages/netgauge/package.py43
-rw-r--r--var/spack/packages/openmpi/package.py30
-rw-r--r--var/spack/packages/scalasca/package.py38
-rw-r--r--var/spack/packages/scr/package.py3
-rw-r--r--var/spack/packages/spindle/package.py5
-rw-r--r--var/spack/packages/stat/package.py4
-rw-r--r--var/spack/packages/sundials/package.py39
16 files changed, 307 insertions, 25 deletions
diff --git a/var/spack/packages/automaded/package.py b/var/spack/packages/automaded/package.py
new file mode 100644
index 0000000000..9fbd93e3b3
--- /dev/null
+++ b/var/spack/packages/automaded/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# 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://scalability-llnl.github.io/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 Automaded(Package):
+ """AutomaDeD (Automata-based Debugging for Dissimilar parallel
+ tasks) is a tool for automatic diagnosis of performance and
+ correctness problems in MPI applications. It creates
+ control-flow models of each MPI process and, when a failure
+ occurs, these models are leveraged to find the origin of
+ problems automatically. MPI calls are intercepted (using
+ wrappers) to create the models. When an MPI application hangs,
+ AutomaDeD creates a progress-dependence graph that helps
+ finding the process (or group of processes) that caused the hang.
+ """
+
+ homepage = "https://github.com/scalability-llnl/AutomaDeD"
+ url = "https://github.com/scalability-llnl/AutomaDeD/archive/v1.0.tar.gz"
+
+ version('1.0', '16a3d4def2c4c77d0bc4b21de8b3ab03')
+
+ depends_on('mpi')
+ depends_on('boost')
+ depends_on('callpath')
+
+ def install(self, spec, prefix):
+ cmake("-DSTATE_TRACKER_WITH_CALLPATH=ON", *std_cmake_args)
+ make()
+ make("install")
diff --git a/var/spack/packages/bib2xhtml/package.py b/var/spack/packages/bib2xhtml/package.py
new file mode 100644
index 0000000000..7f8e0cfe5a
--- /dev/null
+++ b/var/spack/packages/bib2xhtml/package.py
@@ -0,0 +1,27 @@
+from spack import *
+from glob import glob
+
+class Bib2xhtml(Package):
+ """bib2xhtml is a program that converts BibTeX files into HTML."""
+ homepage = "http://www.spinellis.gr/sw/textproc/bib2xhtml/"
+ url='http://www.spinellis.gr/sw/textproc/bib2xhtml/bib2xhtml-v3.0-15-gf506.tar.gz'
+
+ version('3.0-15-gf506', 'a26ba02fe0053bbbf2277bdf0acf8645')
+
+ def url_for_version(self, v):
+ return ('http://www.spinellis.gr/sw/textproc/bib2xhtml/bib2xhtml-v%s.tar.gz' % v)
+
+ def install(self, spec, prefix):
+ # Add the bst include files to the install directory
+ bst_include = join_path(prefix.share, 'bib2xhtml')
+ mkdirp(bst_include)
+ for bstfile in glob('html-*bst'):
+ install(bstfile, bst_include)
+
+ # Install the script and point it at the user's favorite perl
+ # and the bst include directory.
+ mkdirp(prefix.bin)
+ install('bib2xhtml', prefix.bin)
+ filter_file(r'#!/usr/bin/perl',
+ '#!/usr/bin/env BSTINPUTS=%s perl' % bst_include,
+ join_path(prefix.bin, 'bib2xhtml'))
diff --git a/var/spack/packages/callpath/package.py b/var/spack/packages/callpath/package.py
index 6102458291..f8a1eab9f7 100644
--- a/var/spack/packages/callpath/package.py
+++ b/var/spack/packages/callpath/package.py
@@ -31,6 +31,7 @@ class Callpath(Package):
homepage = "https://github.com/scalability-llnl/callpath"
url = "https://github.com/scalability-llnl/callpath/archive/v1.0.1.tar.gz"
+ version('1.0.2', 'b1994d5ee7c7db9d27586fc2dcf8f373')
version('1.0.1', '0047983d2a52c5c335f8ba7f5bab2325')
depends_on("libelf")
diff --git a/var/spack/packages/cmake/package.py b/var/spack/packages/cmake/package.py
index ca6553df84..890af9baa9 100644
--- a/var/spack/packages/cmake/package.py
+++ b/var/spack/packages/cmake/package.py
@@ -25,6 +25,8 @@
from spack import *
class Cmake(Package):
+ """A cross-platform, open-source build system. CMake is a family of
+ tools designed to build, test and package software."""
homepage = 'https://www.cmake.org'
url = 'http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz'
diff --git a/var/spack/packages/dyninst/package.py b/var/spack/packages/dyninst/package.py
index 069237f7ff..df19ac7bc0 100644
--- a/var/spack/packages/dyninst/package.py
+++ b/var/spack/packages/dyninst/package.py
@@ -25,6 +25,8 @@
from spack import *
class Dyninst(Package):
+ """API for dynamic binary instrumentation. Modify programs while they
+ are executing without recompiling, re-linking, or re-executing."""
homepage = "https://paradyn.org"
url = "http://www.dyninst.org/sites/default/files/downloads/dyninst/8.1.2/DyninstAPI-8.1.2.tgz"
list_url = "http://www.dyninst.org/downloads/dyninst-8.x"
diff --git a/var/spack/packages/launchmon/package.py b/var/spack/packages/launchmon/package.py
index b6773a85bc..bdf988bdd3 100644
--- a/var/spack/packages/launchmon/package.py
+++ b/var/spack/packages/launchmon/package.py
@@ -25,6 +25,8 @@
from spack import *
class Launchmon(Package):
+ """Software infrastructure that enables HPC run-time tools to
+ co-locate tool daemons with a parallel job."""
homepage = "http://sourceforge.net/projects/launchmon"
url = "http://downloads.sourceforge.net/project/launchmon/launchmon/1.0.1%20release/launchmon-1.0.1.tar.gz"
diff --git a/var/spack/packages/libNBC/package.py b/var/spack/packages/libNBC/package.py
new file mode 100644
index 0000000000..6d08f3219c
--- /dev/null
+++ b/var/spack/packages/libNBC/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# 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://scalability-llnl.github.io/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 Libnbc(Package):
+ """LibNBC is a prototypic implementation of a nonblocking
+ interface for MPI collective operations. Based on ANSI C and
+ MPI-1, it supports all MPI-1 collective operations in a
+ nonblocking manner. LibNBC is distributed under the BSD license.
+ """
+ homepage = "http://unixer.de/research/nbcoll/libnbc/"
+ url = "http://unixer.de/research/nbcoll/libnbc/libNBC-1.1.1.tar.gz"
+
+ version('1.1.1', 'ece5c94992591a9fa934a90e5dbe50ce')
+
+ depends_on("mpi")
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/libunwind/package.py b/var/spack/packages/libunwind/package.py
index aeadc85eb3..239fcbcfd5 100644
--- a/var/spack/packages/libunwind/package.py
+++ b/var/spack/packages/libunwind/package.py
@@ -25,6 +25,8 @@
from spack import *
class Libunwind(Package):
+ """A portable and efficient C programming interface (API) to determine
+ the call-chain of a program."""
homepage = "http://www.nongnu.org/libunwind/"
url = "http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz"
diff --git a/var/spack/packages/mpich/package.py b/var/spack/packages/mpich/package.py
index 19a1efe9c3..57378626ab 100644
--- a/var/spack/packages/mpich/package.py
+++ b/var/spack/packages/mpich/package.py
@@ -23,6 +23,7 @@
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+import os
class Mpich(Package):
"""MPICH is a high performance and widely portable implementation of
@@ -38,8 +39,41 @@ class Mpich(Package):
provides('mpi@:1', when='@1:')
def install(self, spec, prefix):
- configure(
- "--prefix=" + prefix,
- "--enable-shared")
+ config_args = ["--prefix=" + prefix,
+ "--enable-shared"]
+
+ # TODO: Spack should make it so that you can't actually find
+ # these compilers if they're "disabled" for the current
+ # compiler configuration.
+ if not self.compiler.f77:
+ config_args.append("--disable-f77")
+
+ if not self.compiler.fc:
+ config_args.append("--disable-fc")
+
+ configure(*config_args)
make()
make("install")
+
+ self.filter_compilers()
+
+
+ def filter_compilers(self):
+ """Run after install to make the MPI compilers use the
+ compilers that Spack built the package with.
+
+ If this isn't done, they'll have CC, CXX, F77, and FC set
+ to Spack's generic cc, c++, f77, and f90. We want them to
+ be bound to whatever compiler they were built with.
+ """
+ bin = self.prefix.bin
+ mpicc = os.path.join(bin, 'mpicc')
+ mpicxx = os.path.join(bin, 'mpicxx')
+ mpif77 = os.path.join(bin, 'mpif77')
+ mpif90 = os.path.join(bin, 'mpif90')
+
+ kwargs = { 'ignore_absent' : True, 'backup' : False, 'string' : True }
+ filter_file('CC="cc"', 'CC="%s"' % self.compiler.cc, mpicc, **kwargs)
+ filter_file('CXX="c++"', 'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs)
+ filter_file('F77="f77"', 'F77="%s"' % self.compiler.f77, mpif77, **kwargs)
+ filter_file('FC="f90"', 'FC="%s"' % self.compiler.fc, mpif90, **kwargs)
diff --git a/var/spack/packages/netgauge/package.py b/var/spack/packages/netgauge/package.py
new file mode 100644
index 0000000000..c2378b0718
--- /dev/null
+++ b/var/spack/packages/netgauge/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# 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://scalability-llnl.github.io/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 Netgauge(Package):
+ """Netgauge is a high-precision network parameter measurement
+ tool. It supports benchmarking of many different network protocols
+ and communication patterns. The main focus lies on accuracy,
+ statistical analysis and easy extensibility.
+ """
+ homepage = "http://unixer.de/research/netgauge/"
+ url = "http://unixer.de/research/netgauge/netgauge-2.4.6.tar.gz"
+
+ version('2.4.6', 'e0e040ec6452e93ca21ccc54deac1d7f')
+
+ depends_on("mpi")
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/openmpi/package.py b/var/spack/packages/openmpi/package.py
index 0ce09bdd8d..1ef8a8f000 100644
--- a/var/spack/packages/openmpi/package.py
+++ b/var/spack/packages/openmpi/package.py
@@ -10,22 +10,32 @@ class Openmpi(Package):
"""
homepage = "http://www.open-mpi.org"
- url = "http://www.open-mpi.org/software/ompi/v1.6/downloads/openmpi-1.6.5.tar.bz2"
- version('1.6.5', '03aed2a4aa4d0b27196962a2a65fc475')
+ version('1.8.2', 'ab538ed8e328079d566fc797792e016e',
+ url='http://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8.2.tar.gz')
- provides('mpi@:2')
+ version('1.6.5', '03aed2a4aa4d0b27196962a2a65fc475',
+ url = "http://www.open-mpi.org/software/ompi/v1.6/downloads/openmpi-1.6.5.tar.bz2")
+ patch('ad_lustre_rwcontig_open_source.patch', when="@1.6.5")
+ patch('llnl-platforms.patch', when="@1.6.5")
- patch('ad_lustre_rwcontig_open_source.patch')
- patch('llnl-platforms.patch')
+ provides('mpi@:2')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix,
- "--with-platform=contrib/platform/lanl/tlcc2/optimized-nopanasas")
+ config_args = ["--prefix=%s" % prefix]
+
+ # TODO: use variants for this, e.g. +lanl, +llnl, etc.
+ # use this for LANL builds, but for LLNL builds, we need:
+ # "--with-platform=contrib/platform/llnl/optimized"
+ if self.version == ver("1.6.5"):
+ confg_args.append("--with-platform=contrib/platform/lanl/tlcc2/optimized-nopanasas")
- # TODO: implement variants next, so we can have LLNL and LANL options.
- # use above for LANL builds, but for LLNL builds, we need this
- # "--with-platform=contrib/platform/llnl/optimized")
+ # TODO: Spack should make it so that you can't actually find
+ # these compilers if they're "disabled" for the current
+ # compiler configuration.
+ if not self.compiler.f77 and not self.compiler.fc:
+ config_args.append("--enable-mpi-fortran=no")
+ configure(*config_args)
make()
make("install")
diff --git a/var/spack/packages/scalasca/package.py b/var/spack/packages/scalasca/package.py
index b76d0a7df5..cf7a40c1f5 100644
--- a/var/spack/packages/scalasca/package.py
+++ b/var/spack/packages/scalasca/package.py
@@ -11,25 +11,47 @@ class Scalasca(Package):
# 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-rc2.tar.gz"
+ url = "http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz"
- version('2.1-rc2', '1a95a39e5430539753e956a7524a756b')
+ version('2.1', 'bab9c2b021e51e2ba187feec442b96e6',
+ url = 'http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz' )
depends_on("mpi")
depends_on("otf2@1.4")
- depends_on("cube")
+ depends_on("cube@4.2.3")
+
+ 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):
configure_args = ["--prefix=%s" % prefix,
+ "--with-custom-compilers",
"--with-otf2=%s" % spec['otf2'].prefix.bin,
"--with-cube=%s" % spec['cube'].prefix.bin,
"--enable-shared"]
- if spec.satisfies('%gcc'):
- configure_args.append('--with-nocross-compiler-suite=gcc')
- if spec.satisfies('%intel'):
- configure_args.append('--with-nocross-compiler-suite=intel')
-
configure(*configure_args)
make()
diff --git a/var/spack/packages/scr/package.py b/var/spack/packages/scr/package.py
index d480dba62f..d456ecaba0 100644
--- a/var/spack/packages/scr/package.py
+++ b/var/spack/packages/scr/package.py
@@ -25,6 +25,9 @@
from spack import *
class Scr(Package):
+ """SCR caches checkpoint data in storage on the compute nodes of a
+ Linux cluster to provide a fast, scalable checkpoint/restart
+ capability for MPI codes"""
homepage = "https://computation-rnd.llnl.gov/scr"
url = "http://downloads.sourceforge.net/project/scalablecr/releases/scr-1.1-7.tar.gz"
diff --git a/var/spack/packages/spindle/package.py b/var/spack/packages/spindle/package.py
index bb0b74ab6f..fd59282ebb 100644
--- a/var/spack/packages/spindle/package.py
+++ b/var/spack/packages/spindle/package.py
@@ -25,6 +25,11 @@
from spack import *
class Spindle(Package):
+ """Spindle improves the library-loading performance of dynamically
+ linked HPC applications. Without Spindle large MPI jobs can
+ overload on a shared file system when loading dynamically
+ linked libraries, causing site-wide performance problems.
+ """
homepage = "https://computation-rnd.llnl.gov/spindle"
url = "https://github.com/hpc/Spindle/archive/v0.8.1.tar.gz"
list_url = "https://github.com/hpc/Spindle/releases"
diff --git a/var/spack/packages/stat/package.py b/var/spack/packages/stat/package.py
index fbd1418d41..05e74b6a84 100644
--- a/var/spack/packages/stat/package.py
+++ b/var/spack/packages/stat/package.py
@@ -27,9 +27,5 @@ class Stat(Package):
"--with-stackwalker=%s" % spec['dyninst'].prefix,
"--with-libdwarf=%s" % spec['libdwarf'].prefix)
- # TODO: remove once SPACK-19 is fixed
- import shutil
- shutil.copy2('/usr/bin/libtool', 'libtool')
-
make(parallel=False)
make("install")
diff --git a/var/spack/packages/sundials/package.py b/var/spack/packages/sundials/package.py
new file mode 100644
index 0000000000..8b784c8c3c
--- /dev/null
+++ b/var/spack/packages/sundials/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# 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://scalability-llnl.github.io/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 Sundials(Package):
+ """SUNDIALS (SUite of Nonlinear and DIfferential/ALgebraic equation Solvers)"""
+ homepage = "http://computation.llnl.gov/casc/sundials/"
+ url = "http://computation.llnl.gov/casc/sundials/download/code/sundials-2.5.0.tar.gz"
+
+ version('2.5.0', 'aba8b56eec600de3109cfb967aa3ba0f')
+
+ depends_on("mpi")
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make("install")