Requested changes related to mumps compilation (#4614)

*  * add mpii* wrappers for use with intel compilers

 * in mumps package, scotch is compiled without metis option when
   ptscotch variant is selected. This removes confusion over which
   metis.h to use

 * for intel mkl, add SPACK_COMPILER_EXTRA_RPATHS ending in 'intel64'

 * scotch lib requires libz when compression is turned on.  This
   caused a link issue on some Ubuntu distributions (not
   redhat). Change Scotch package to add -lz when needed

*  * intel-mkl append to SPACK_COMPILER_EXTRA_RPATHS rather than setting

 * use more concise method to obtain libz libraries for scotch

* remove changes to intel mpi

* remove commented out depends_on

* fix flake8 errors
This commit is contained in:
Darach Golden 2017-06-28 19:22:18 +01:00 committed by Adam J. Stewart
parent e5c665600c
commit 6550aeeafc
3 changed files with 10 additions and 3 deletions

View File

@ -142,6 +142,8 @@ def install(self, spec, prefix):
def setup_dependent_environment(self, spack_env, run_env, dependent_spec): def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
# set up MKLROOT for everyone using MKL package # set up MKLROOT for everyone using MKL package
spack_env.set('MKLROOT', self.prefix) spack_env.set('MKLROOT', self.prefix)
spack_env.append_path('SPACK_COMPILER_EXTRA_RPATHS',
join_path(self.prefix.lib, 'intel64'))
def setup_environment(self, spack_env, run_env): def setup_environment(self, spack_env, run_env):
run_env.set('MKLROOT', self.prefix) run_env.set('MKLROOT', self.prefix)

View File

@ -61,7 +61,7 @@ class Mumps(Package):
variant('shared', default=True, description='Build shared libraries') variant('shared', default=True, description='Build shared libraries')
depends_on('scotch + esmumps', when='~ptscotch+scotch') depends_on('scotch + esmumps', when='~ptscotch+scotch')
depends_on('scotch + esmumps + mpi', when='+ptscotch') depends_on('scotch + esmumps ~ metis + mpi', when='+ptscotch')
depends_on('metis@5:', when='+metis') depends_on('metis@5:', when='+metis')
depends_on('parmetis', when="+parmetis") depends_on('parmetis', when="+parmetis")
depends_on('blas') depends_on('blas')
@ -160,7 +160,7 @@ def write_makefile_inc(self):
'FC = {0}'.format(self.spec['mpi'].mpifc), 'FC = {0}'.format(self.spec['mpi'].mpifc),
"SCALAP = %s" % scalapack.ld_flags, "SCALAP = %s" % scalapack.ld_flags,
"MUMPS_TYPE = par"]) "MUMPS_TYPE = par"])
if (self.spec.satisfies('%xl_r' or '%xl')) and self.spec.satisfies('^spectrum-mpi'): # noqa if (self.spec.satisfies('%xl_r' or '%xl')) and self.spec.satisfies('^spectrum-mpi'): # noqa
makefile_conf.extend( makefile_conf.extend(
['FL = {0}'.format(self.spec['mpi'].mpicc)]) ['FL = {0}'.format(self.spec['mpi'].mpicc)])
else: else:

View File

@ -81,6 +81,7 @@ def libs(self):
shared = '+shared' in self.spec shared = '+shared' in self.spec
libraries = ['libscotch', 'libscotcherr'] libraries = ['libscotch', 'libscotcherr']
zlibs = []
if '+mpi' in self.spec: if '+mpi' in self.spec:
libraries = ['libptscotch', 'libptscotcherr'] + libraries libraries = ['libptscotch', 'libptscotcherr'] + libraries
@ -89,9 +90,13 @@ def libs(self):
elif '~mpi+esmumps' in self.spec: elif '~mpi+esmumps' in self.spec:
libraries = ['libesmumps'] + libraries libraries = ['libesmumps'] + libraries
return find_libraries( scotchlibs = find_libraries(
libraries, root=self.prefix, recurse=True, shared=shared libraries, root=self.prefix, recurse=True, shared=shared
) )
if '+compression' in self.spec:
zlibs = self.spec['zlib'].libs
return scotchlibs + zlibs
def patch(self): def patch(self):
self.configure() self.configure()