summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorJoseph Ciurej <ciurej1@llnl.gov>2016-03-31 13:59:49 -0700
committerJoseph Ciurej <ciurej1@llnl.gov>2016-03-31 13:59:49 -0700
commitb1b94d2b7f35e898489b0044beb22df249967548 (patch)
tree4a7b1aea36a19083042f0d2e49e33a6a18fbc8d6 /var
parent1f93c39c58f65b2b40e2f31509b488ea497ce9c0 (diff)
downloadspack-b1b94d2b7f35e898489b0044beb22df249967548.tar.gz
spack-b1b94d2b7f35e898489b0044beb22df249967548.tar.bz2
spack-b1b94d2b7f35e898489b0044beb22df249967548.tar.xz
spack-b1b94d2b7f35e898489b0044beb22df249967548.zip
Added the initial version of the 'zoltan' package.
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/zoltan/package.py52
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)