diff options
author | Joseph Ciurej <ciurej1@llnl.gov> | 2016-03-31 13:59:49 -0700 |
---|---|---|
committer | Joseph Ciurej <ciurej1@llnl.gov> | 2016-03-31 13:59:49 -0700 |
commit | b1b94d2b7f35e898489b0044beb22df249967548 (patch) | |
tree | 4a7b1aea36a19083042f0d2e49e33a6a18fbc8d6 | |
parent | 1f93c39c58f65b2b40e2f31509b488ea497ce9c0 (diff) | |
download | spack-b1b94d2b7f35e898489b0044beb22df249967548.tar.gz spack-b1b94d2b7f35e898489b0044beb22df249967548.tar.bz2 spack-b1b94d2b7f35e898489b0044beb22df249967548.tar.xz spack-b1b94d2b7f35e898489b0044beb22df249967548.zip |
Added the initial version of the 'zoltan' package.
-rw-r--r-- | var/spack/repos/builtin/packages/zoltan/package.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/zoltan/package.py b/var/spack/repos/builtin/packages/zoltan/package.py new file mode 100644 index 0000000000..91d3c305f8 --- /dev/null +++ b/var/spack/repos/builtin/packages/zoltan/package.py @@ -0,0 +1,52 @@ +from spack import * + +class Zoltan(Package): + """The Zoltan library is a toolkit of parallel combinatorial algorithms for + parallel, unstructured, and/or adaptive scientific applications. Zoltan's + largest component is a suite of dynamic load-balancing and paritioning + algorithms that increase applications' parallel performance by reducing + idle time. Zoltan also has graph coloring and graph ordering algorithms, + which are useful in task schedulers and parallel preconditioners.""" + + homepage = "http://www.cs.sandia.gov/zoltan" + base_url = "http://www.cs.sandia.gov/~kddevin/Zoltan_Distributions" + + version('3.83', '1ff1bc93f91e12f2c533ddb01f2c095f') + version('3.3', '5eb8f00bda634b25ceefa0122bd18d65') + + variant('fortran', default=True, description='Enable Fortran support') + variant('mpi', default=False, description='Enable MPI support') + + depends_on('mpi', when='+mpi') + + def install(self, spec, prefix): + config_args = [ + '--enable-f90interface' if '+fortan' in spec else '--disable-f90interface', + '--enable-mpi' if '+mpi' in spec else '--disable-mpi', + ] + + if '+mpi' in spec: + config_args.append('--with-mpi=%s' % spec['mpi'].prefix) + config_args.append('--with-mpi-compilers=%s' % spec['mpi'].prefix.bin) + + # NOTE: Early versions of Zoltan come packaged with a few embedded + # library packages (e.g. ParMETIS, Scotch), which messes with Spack's + # ability to descend directly into the package's source directory. + if spec.satisfies('@:3.3'): + cd('Zoltan_v%s' % self.version) + + mkdirp('build') + cd('build') + + config_zoltan = Executable('../configure') + config_zoltan('--prefix=%s' % pwd(), *config_args) + + make() + make('install') + + mkdirp(prefix) + move('include', prefix) + move('lib', prefix) + + def url_for_version(self, version): + return '%s/zoltan_distrib_v%s.tar.gz' % (Zoltan.base_url, version) |