Added more FASTMath packages.

This commit is contained in:
Saravan Pantham 2015-05-27 17:39:17 -07:00 committed by Todd Gamblin
parent 454d06c25c
commit fd34f4b119
13 changed files with 278 additions and 19 deletions

View file

@ -0,0 +1,22 @@
from spack import *
class Arpack(Package):
"""FIXME: put a proper description of your package here."""
homepage = "http://www.caam.rice.edu/software/ARPACK/"
url = "http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz"
version('96', 'fffaa970198b285676f4156cebc8626e')
depends_on('blas')
depends_on('lapack')
def install(self, spec, prefix):
move('./ARMAKES/ARmake.CRAY', './ARmake.inc')
filter_file('PLAT = CRAY', 'PLAT = ', './ARmake.inc', string=True)
filter_file('home = $(HOME)/ARPACK', 'home = %s' % pwd(), './ARmake.inc', string=True)
filter_file('BLASdir = $(home)/BLAS', 'BLASdir = %s' % spec['blas'].prefix, './ARmake.inc', string=True)
filter_file('LAPACKdir = $(home)/LAPACK', 'LAPACKdir = %s' % spec['lapack'].prefix, './ARmake.inc', string=True)
filter_file('ARPACKLIB = $(home)/libarpack_$(PLAT).a', 'ARPACKLIB = %s/lib/libarpack.a' % prefix, './ARmake.inc', string=True)
cd('./SRC')
make('all')

View file

@ -0,0 +1,15 @@
from spack import *
class Arpack(Package):
"""ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems."""
homepage = "http://www.caam.rice.edu/software/ARPACK/"
url = "http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz"
version('96', 'fffaa970198b285676f4156cebc8626e')
depends_on("blas")
depends_on("lapack")
def install(self, spec, prefix):

View file

@ -0,0 +1,15 @@
from spack import *
class Boxlib(Package):
"""BoxLib, a software framework for massively parallel block-structured adaptive mesh refinement (AMR) codes."""
homepage = "https://ccse.lbl.gov/BoxLib/"
url = "https://ccse.lbl.gov/pub/Downloads/BoxLib.git";
version('master', 'https://ccse.lbl.gov/pub/Downloads/BoxLib.git')
def install(self, spec, prefix):
#configure("--prefix=%s" % prefix)
#make()
#make("install")
cd(pwd())

View file

@ -0,0 +1,22 @@
from spack import *
import os
class Cblas(Package):
"""The BLAS (Basic Linear Algebra Subprograms) are routines that provide standard
building blocks for performing basic vector and matrix operations."""
homepage = "http://www.netlib.org/blas/_cblas/"
version('unversioned', '1e8830f622d2112239a4a8a83b84209a',
url='http://www.netlib.org/blas/blast-forum/cblas.tgz')
depends_on('blas')
parallel = False
def install(self, spec, prefix):
filter_file('BLLIB = /Users/julie/Documents/Boulot/lapack-dev/lapack/trunk/blas_LINUX.a', 'BLLIB = %s/libblas.a' % spec['blas'].prefix.lib, './Makefile.in', string=True)
make('all') # Compile.
mkdirp('%s' % prefix.lib) # Create the lib dir inside the install dir.
move('./lib/cblas_LINUX.a', '%s/libcblas.a' % prefix.lib) # Rename the generated lib file to libcblas.a

View file

@ -0,0 +1,22 @@
from spack import *
class Cgm(Package):
"""The Common Geometry Module, Argonne (CGMA) is a code library which provides geometry functionality used for mesh generation and other applications."""
homepage = "http://trac.mcs.anl.gov/projects/ITAPS/wiki/CGM"
url = "http://ftp.mcs.anl.gov/pub/fathom/cgm13.1.1.tar.gz"
version('13.1.1', '4e8dbc4ba8f65767b29f985f7a23b01f')
version('13.1.0', 'a6c7b22660f164ce893fb974f9cb2028')
version('13.1' , '95f724bda04919fc76818a5b7bc0b4ed')
depends_on("openmpi")
def install(self, spec, prefix):
configure("--with-mpi",
"--prefix=%s" % prefix,
"CFLAGS=-static",
"CXXFLAGS=-static",
"FCFLAGS=-static")
make()
make("install")

View file

@ -0,0 +1,15 @@
from spack import *
class Fastmath(Package):
"""Dummy groupinstall package that installs all packages in the fastmath suite."""
homepage = "http://redmine.scorec.rpi.edu/projects/fastmath"
url = "http://www.netlib.org/blas/blas.tgz"
version('1.0', '5e99e975f7a1e3ea6abcad7c6e7e42e6')
depends_on('blas')
depends_on('lapack')
def install(self, spec, prefix):
pwd()

View file

@ -23,9 +23,9 @@ def install(self, spec, prefix):
"--prefix=%s" % prefix, "--prefix=%s" % prefix,
"--with-zlib=%s" % spec['zlib'].prefix, "--with-zlib=%s" % spec['zlib'].prefix,
"--enable-parallel", "--enable-parallel",
"--enable-shared", "--enable-shared")
"CC=%s" % spec['mpich'].prefix.bin + "/mpicc", # "CC=%s" % spec['mpich'].prefix.bin + "/mpicc",
"CXX=%s" % spec['mpich'].prefix.bin + "/mpic++") # "CXX=%s" % spec['mpich'].prefix.bin + "/mpic++")
make() make()
make("install") make("install")

View file

@ -0,0 +1,33 @@
from spack import *
class Hypre(Package):
"""Hypre is a library of high performance preconditioners that features parallel multigrid
methods for both structured and unstructured grid problems."""
homepage = "https://computation.llnl.gov/project/linear_solvers/software.php"
url = "https://computation.llnl.gov/project/linear_solvers/download/hypre-2.10.0b.tar.gz"
version('2.10.0b', '768be38793a35bb5d055905b271f5b8e')
depends_on("openmpi")
depends_on("blas")
depends_on("lapack")
def install(self, spec, prefix):
blas_dir = spec['blas'].prefix
lapack_dir = spec['lapack'].prefix
# Hypre's source is staged under ./src so we'll have to manually
# cd into it.
cd("./src")
configure(
"--prefix=%s" % prefix,
"--with-blas-libs=blas",
"--with-blas-lib-dirs=%s/lib" % blas_dir,
"--with-lapack-libs=\"lapack blas\"",
"--with-lapack-lib-dirs=%s/lib" % lapack_dir,
"--with-MPI")
make()
make("install")

View file

@ -0,0 +1,26 @@
from spack import *
class Hypre(Package):
"""Hypre is a library of high performance preconditioners that features parallel multigrid
methods for both structured and unstructured grid problems."""
homepage = "https://computation.llnl.gov/project/linear_solvers/software.php"
url = "https://computation.llnl.gov/project/linear_solvers/download/hypre-2.10.0b.tar.gz"
version('2.10.0b', '768be38793a35bb5d055905b271f5b8e')
depends_on("openmpi")
depends_on("blas")
depends_on("lapack")
def install(self, spec, prefix):
lapack_dir = spec['lapack'].prefix
configure(
"--prefix=%s" % prefix,
"--with-blas-libs=blas",
"--with-blas-lib-dirs=%s/lib" % spec['blas'].prefix,
"--with-lapack-libs=lapack blas",
"--with-lapack-lib-dirs=%s/lib" % lapack_dir)
make()
make("install")

View file

@ -5,28 +5,23 @@ class Metis(Package):
partitioning finite element meshes, and producing fill reducing partitioning finite element meshes, and producing fill reducing
orderings for sparse matrices. The algorithms implemented in orderings for sparse matrices. The algorithms implemented in
METIS are based on the multilevel recursive-bisection, METIS are based on the multilevel recursive-bisection,
multilevel k-way, and multi-constraint partitioning schemes multilevel k-way, and multi-constraint partitioning schemes."""
developed in our lab."""
homepage = "http://glaros.dtc.umn.edu/gkhome/metis/metis/overview" homepage = "http://glaros.dtc.umn.edu/gkhome/metis/metis/overview"
url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz" url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz"
version('5.1.0', '5465e67079419a69e0116de24fce58fe') version('5.1.0', '5465e67079419a69e0116de24fce58fe')
# FIXME: Add dependencies if this package requires them. depends_on('mpi')
# depends_on("foo")
def patch(self):
filter_file(r'#define IDXTYPEWIDTH 32', '#define IDXTYPEWIDTH 64', 'include/metis.h',
string=True)
def install(self, spec, prefix): def install(self, spec, prefix):
with working_dir('spack-build', create=True): cmake(".",
cmake('..', '-DGKLIB_PATH=%s/GKlib' % pwd(),
'-DGKLIB_PATH=../GKlib', '-DSHARED=1',
'-DBUILD_SHARED_LIBS=TRUE', '-DCMAKE_C_COMPILER=mpicc',
'-DCMAKE_CXX_COMPILER=mpicxx',
'-DSHARED=1',
*std_cmake_args) *std_cmake_args)
make() make()
make("install") make("install")

View file

@ -0,0 +1,26 @@
from spack import *
class Parpack(Package):
"""ARPACK is a collection of Fortran77 subroutines designed to solve large
scale eigenvalue problems."""
homepage = "http://www.caam.rice.edu/software/ARPACK/download.html"
url = "http://www.caam.rice.edu/software/ARPACK/SRC/parpack96.tar.Z"
version('96', 'a175f70ff71837a33ff7e4b0b6054f43')
depends_on('blas')
depends_on('lapack')
def install(self, spec, prefix):
move("./ARMAKES/ARmake.CJ", "./ARmake.inc");
filter_file('home = /home1/Netlib/ARPACK', 'home = %s' % pwd(), './ARmake.inc', string=True)
filter_file('PLAT = CJ', 'PLAT = ', './ARmake.inc', string=True)
filter_file('LAPACKdir = $(home)/LAPACK', 'LAPACKLIB = %s' % spec['lapack'].prefix, './ARmake.inc', string=True)
filter_file('BLASdir = $(home)/BLAS', 'BLASLIB = %s' % spec['blas'].prefix, './ARmake.inc', string=True)
filter_file('ARPACKLIB = $(home)/libarpack_$(PLAT).a', 'ARPACKLIB = %s/libarpack.a' % prefix, './ARmake.inc', string=True)
filter_file('MAKE = /bin/make', 'MAKE = make', './ARmake.inc', string=True)
filter_file('FFLAGS', '#FFLAGS', './ARmake.inc', string=True)
filter_file('FC = f77', 'FC = gfortran', './ARmake.inc', string=True)
cd('./PARPACK/SRC/MPI')
make('all')

View file

@ -0,0 +1,35 @@
from spack import *
class Petsc(Package):
"""PETSc is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations."""
homepage = "http://www.mcs.anl.gov/petsc/index.html"
url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.5.3.tar.gz"
version('3.5.3', 'd4fd2734661e89f18ac6014b5dd1ef2f')
version('3.5.2', 'ad170802b3b058b5deb9cd1f968e7e13')
version('3.5.1', 'a557e029711ebf425544e117ffa44d8f')
depends_on("blas")
depends_on("lapack")
depends_on("hypre")
depends_on("parmetis")
depends_on("metis")
depends_on("hdf5")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
"--with-blas-lib=%s/lib/libblas.a" % spec['blas'].prefix,
"--with-lapack-lib=%s/lib/liblapack.a" % spec['lapack'].prefix,
"--with-hypre-lib=%s/lib/libhypre.a" % spec['hypre'].prefix,
"--with-hypre-include=%s/include" % spec['hypre'].prefix,
"--with-parmetis-lib=%s/lib/libparmetis.a" % spec['parmetis'].prefix,
"--with-parmetis-include=%s/include" % spec['parmetis'].prefix,
"--with-metis-lib=%s/lib/libmetis.a" % spec['metis'].prefix,
"--with-metis-include=%s/include" % spec['metis'].prefix,
"--with-hdf5-lib=%s/lib/libhdf5.a" % spec['hdf5'].prefix,
"--with-hdf5-include=%s/include" % spec['hdf5'].prefix,
"--with-shared-libraries=0")
make()
make("install")

View file

@ -0,0 +1,33 @@
# FIXME:
# This is a template package file for Spack. We've conveniently
# put "FIXME" labels next to all the things you'll want to change.
#
# Once you've edited all the FIXME's, delete this whole message,
# save this file, and test out your package like this:
#
# spack install zoltan_distrib
#
# You can always get back here to change things with:
#
# spack edit zoltan_distrib
#
# See the spack documentation for more information on building
# packages.
#
from spack import *
class ZoltanDistrib(Package):
"""FIXME: put a proper description of your package here."""
homepage = "http://www.example.com"
url = "http://www.cs.sandia.gov/~kddevin/Zoltan_Distributions/zoltan_distrib_v3.81.tar.gz"
version('3.81', 'e0587ac69dbc3b17d28f515ed0933719')
def install(self, spec, prefix):
# 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")