diff options
author | Todd Gamblin <tgamblin@llnl.gov> | 2014-09-18 21:39:41 -0700 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2014-09-18 21:39:41 -0700 |
commit | e46e1d51c289afd0427ec45df31e04a11c97f07f (patch) | |
tree | 8a78f67eea9545d89e4eca08cef425a9b5240685 /var | |
parent | 8c4db76c3a32efdb1527da4534c80df8d9489b2c (diff) | |
parent | 4d2ccfa02842eb152cf7a9bfd3e91cde6e8c6816 (diff) | |
download | spack-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.py | 20 | ||||
-rw-r--r-- | var/spack/packages/libarchive/package.py | 16 | ||||
-rw-r--r-- | var/spack/packages/libcircle/package.py | 18 | ||||
-rw-r--r-- | var/spack/packages/lwgrp/package.py | 18 | ||||
-rw-r--r-- | var/spack/packages/mvapich2/package.py | 86 |
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") |