summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2014-09-18 21:39:41 -0700
committerTodd Gamblin <tgamblin@llnl.gov>2014-09-18 21:39:41 -0700
commite46e1d51c289afd0427ec45df31e04a11c97f07f (patch)
tree8a78f67eea9545d89e4eca08cef425a9b5240685 /var
parent8c4db76c3a32efdb1527da4534c80df8d9489b2c (diff)
parent4d2ccfa02842eb152cf7a9bfd3e91cde6e8c6816 (diff)
downloadspack-e46e1d51c289afd0427ec45df31e04a11c97f07f.tar.gz
spack-e46e1d51c289afd0427ec45df31e04a11c97f07f.tar.bz2
spack-e46e1d51c289afd0427ec45df31e04a11c97f07f.tar.xz
spack-e46e1d51c289afd0427ec45df31e04a11c97f07f.zip
Merge branch 'features/fileutils-deps' into develop
Diffstat (limited to 'var')
-rw-r--r--var/spack/packages/dtcmp/package.py20
-rw-r--r--var/spack/packages/libarchive/package.py16
-rw-r--r--var/spack/packages/libcircle/package.py18
-rw-r--r--var/spack/packages/lwgrp/package.py18
-rw-r--r--var/spack/packages/mvapich2/package.py86
5 files changed, 154 insertions, 4 deletions
diff --git a/var/spack/packages/dtcmp/package.py b/var/spack/packages/dtcmp/package.py
new file mode 100644
index 0000000000..9d940583c1
--- /dev/null
+++ b/var/spack/packages/dtcmp/package.py
@@ -0,0 +1,20 @@
+import os
+from spack import *
+
+class Dtcmp(Package):
+ """The Datatype Comparison Library provides comparison operations and
+ parallel sort algorithms for MPI applications."""
+
+ homepage = "https://github.com/hpc/dtcmp"
+ url = "https://github.com/hpc/dtcmp/releases/download/v1.0.3/dtcmp-1.0.3.tar.gz"
+
+ version('1.0.3', 'cdd8ccf71e8ff67de2558594a7fcd317')
+
+ depends_on('mpi')
+ depends_on('lwgrp')
+
+ def install(self, spec, prefix):
+ configure("--prefix=" + prefix,
+ "--with-lwgrp=" + spec['lwgrp'].prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/libarchive/package.py b/var/spack/packages/libarchive/package.py
new file mode 100644
index 0000000000..cbd4b89cd0
--- /dev/null
+++ b/var/spack/packages/libarchive/package.py
@@ -0,0 +1,16 @@
+from spack import *
+
+class Libarchive(Package):
+ """libarchive: C library and command-line tools for reading and
+ writing tar, cpio, zip, ISO, and other archive formats."""
+ homepage = "http://www.libarchive.org"
+ url = "http://www.libarchive.org/downloads/libarchive-3.1.2.tar.gz"
+
+ version('3.1.2', 'efad5a503f66329bb9d2f4308b5de98a')
+ version('3.1.1', '1f3d883daf7161a0065e42a15bbf168f')
+ version('3.1.0', '095a287bb1fd687ab50c85955692bf3a')
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/libcircle/package.py b/var/spack/packages/libcircle/package.py
new file mode 100644
index 0000000000..3f7c996fb0
--- /dev/null
+++ b/var/spack/packages/libcircle/package.py
@@ -0,0 +1,18 @@
+import os
+from spack import *
+
+class Libcircle(Package):
+ """libcircle provides an efficient distributed queue on a cluster,
+ using self-stabilizing work stealing."""
+
+ homepage = "https://github.com/hpc/libcircle"
+
+ version('0.2.1-rc.1', '2b1369a5736457239f908abf88143ec2',
+ url='https://github.com/hpc/libcircle/releases/download/0.2.1-rc.1/libcircle-0.2.1-rc.1.tar.gz')
+
+ depends_on('mpi')
+
+ def install(self, spec, prefix):
+ configure("--prefix=" + prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/lwgrp/package.py b/var/spack/packages/lwgrp/package.py
new file mode 100644
index 0000000000..5963382b92
--- /dev/null
+++ b/var/spack/packages/lwgrp/package.py
@@ -0,0 +1,18 @@
+import os
+from spack import *
+
+class Lwgrp(Package):
+ """Thie light-weight group library provides process group
+ representations using O(log N) space and time."""
+
+ homepage = "https://github.com/hpc/lwgrp"
+ url = "https://github.com/hpc/lwgrp/releases/download/v1.0.2/lwgrp-1.0.2.tar.gz"
+
+ version('1.0.2', 'ab7ba3bdd8534a651da5076f47f27d8a')
+
+ depends_on('mpi')
+
+ def install(self, spec, prefix):
+ configure("--prefix=" + prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/mvapich2/package.py b/var/spack/packages/mvapich2/package.py
index 0f0f849c51..ca0b1287c1 100644
--- a/var/spack/packages/mvapich2/package.py
+++ b/var/spack/packages/mvapich2/package.py
@@ -1,3 +1,4 @@
+import os
from spack import *
class Mvapich2(Package):
@@ -6,21 +7,98 @@ class Mvapich2(Package):
version('1.9', '5dc58ed08fd3142c260b70fe297e127c',
url="http://mvapich.cse.ohio-state.edu/download/mvapich2/mv2/mvapich2-1.9.tgz")
+ patch('ad_lustre_rwcontig_open_source.patch', when='@1.9')
+
version('2.0', '9fbb68a4111a8b6338e476dc657388b4',
url='http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.0.tar.gz')
- provides('mpi@:1', when='@1.9:')
+ provides('mpi@:2.2', when='@1.9') # MVAPICH2-1.9 supports MPI 2.2
+ provides('mpi@:3.0', when='@2.0') # MVAPICH2-2.0 supports MPI 3.0
+
def install(self, spec, prefix):
+ # we'll set different configure flags depending on our environment
+ configure_args = []
+
+ # TODO: The MPICH*_FLAGS have a different name for 1.9
+
+ if '+debug' in spec:
+ # set configure flags for debug build
+ configure_args.append("--disable-fast")
+ configure_args.append("--enable-g=dbg")
+ configure_args.append("--enable-error-checking=runtime")
+ configure_args.append("--enable-error-messages=all")
+ configure_args.append("--enable-nmpi-as-mpi")
+
+ if "%gnu" in spec:
+ # set variables for GNU compilers
+ os.environ['MPICHLIB_CFLAGS'] = "-g -O0"
+ os.environ['MPICHLIB_CXXFLAGS'] = "-g -O0"
+ os.environ['MPICHLIB_FFLAGS'] = "-g -O0 -fno-second-underscore"
+ os.environ['MPICHLIB_F90FLAGS'] = "-g -O0 -fno-second-underscore"
+ elif "%intel" in spec:
+ # set variables for Inel compilers
+ os.environ['MPICHLIB_CFLAGS'] = "-g -O0"
+ os.environ['MPICHLIB_CXXFLAGS'] = "-g -O0"
+ os.environ['MPICHLIB_FFLAGS'] = "-g -O0"
+ os.environ['MPICHLIB_F90FLAGS'] = "-g -O0"
+ elif "%pgi" in spec:
+ # set variables for PGI compilers
+ os.environ['MPICHLIB_CFLAGS'] = "-g -O0 -fPIC"
+ os.environ['MPICHLIB_CXXFLAGS'] = "-g -O0 -fPIC"
+ os.environ['MPICHLIB_FFLAGS'] = "-g -O0 -fPIC"
+ os.environ['MPICHLIB_F90FLAGS'] = "-g -O0 -fPIC"
+
+ else:
+ # set configure flags for normal optimizations
+ configure_args.append("--enable-fast=all")
+ configure_args.append("--enable-g=dbg")
+ configure_args.append("--enable-nmpi-as-mpi")
+
+ if "%gnu" in spec:
+ # set variables for what compilers
+ os.environ['MPICHLIB_CFLAGS'] = "-g -O2"
+ os.environ['MPICHLIB_CXXFLAGS'] = "-g -O2"
+ os.environ['MPICHLIB_FFLAGS'] = "-g -O2 -fno-second-underscore"
+ os.environ['MPICHLIB_F90FLAGS'] = "-g -O2 -fno-second-underscore"
+ elif "%intel" in spec:
+ # set variables for Inel compilers
+ os.environ['MPICHLIB_CFLAGS'] = "-g -O2"
+ os.environ['MPICHLIB_CXXFLAGS'] = "-g -O2"
+ os.environ['MPICHLIB_FFLAGS'] = "-g -O2"
+ os.environ['MPICHLIB_F90FLAGS'] = "-g -O2"
+ elif "%pgi" in spec:
+ # set variables for PGI compilers
+ os.environ['MPICHLIB_CFLAGS'] = "-g -O2 -fPIC"
+ os.environ['MPICHLIB_CXXFLAGS'] = "-g -O2 -fPIC"
+ os.environ['MPICHLIB_FFLAGS'] = "-g -O2 -fPIC"
+ os.environ['MPICHLIB_F90FLAGS'] = "-g -O2 -fPIC"
+
+ # determine network type by variant
+ if "+psm" in spec:
+ # throw this flag on QLogic systems to use PSM
+ configure_args.append("--with-device=ch3:psm")
+ else:
+ # throw this flag on IB systems
+ configure_args.append("--with-device=ch3:mrail", "--with-rdma=gen2")
+
+ # TODO: shared-memory build
+
+ # TODO: CUDA
+
+ # TODO: other file systems like panasis
+
configure(
"--prefix=" + prefix,
"--enable-f77", "--enable-fc", "--enable-cxx",
- "--enable-fast=all", "--enable-g=dbg", "--enable-nmpi-as-mpi",
"--enable-shared", "--enable-sharedlibs=gcc",
"--enable-debuginfo",
"--with-pm=no", "--with-pmi=slurm",
- "--with-device=ch3:psm",
"--enable-romio", "--with-file-system=lustre+nfs+ufs",
- "--disable-mpe", "--without-mpe")
+ "--disable-mpe", "--without-mpe",
+ "--disable-silent-rules",
+ *configure_args)
+
make()
+
make("install")