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:
parent
e5c665600c
commit
6550aeeafc
@ -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)
|
||||||
|
@ -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:
|
||||||
|
@ -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()
|
||||||
|
Loading…
Reference in New Issue
Block a user