add libs property to IntelMkl and IntelParallelStudio (#10993)
* add libs property to IntelMkl and IntelParallelStudio * fix scalapack_libs when MPI is provided by intel-parallel-studio
This commit is contained in:
parent
03d39ed34c
commit
def5b23763
@ -10,7 +10,7 @@
|
|||||||
import tempfile
|
import tempfile
|
||||||
import re
|
import re
|
||||||
import inspect
|
import inspect
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ElementTree
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
|
|
||||||
from llnl.util.filesystem import \
|
from llnl.util.filesystem import \
|
||||||
@ -227,7 +227,7 @@ def _filtered_components(self):
|
|||||||
#
|
#
|
||||||
# https://software.intel.com/en-us/articles/configuration-file-format
|
# https://software.intel.com/en-us/articles/configuration-file-format
|
||||||
#
|
#
|
||||||
xmltree = ET.parse('pset/mediaconfig.xml')
|
xmltree = ElementTree.parse('pset/mediaconfig.xml')
|
||||||
for entry in xmltree.getroot().findall('.//Abbr'): # XPath expression
|
for entry in xmltree.getroot().findall('.//Abbr'): # XPath expression
|
||||||
name_present = entry.text
|
name_present = entry.text
|
||||||
for name_requested in requested:
|
for name_requested in requested:
|
||||||
@ -790,7 +790,8 @@ def scalapack_libs(self):
|
|||||||
blacs_lib = 'libmkl_blacs'
|
blacs_lib = 'libmkl_blacs'
|
||||||
elif ('^mpich@2:' in spec_root or
|
elif ('^mpich@2:' in spec_root or
|
||||||
'^mvapich2' in spec_root or
|
'^mvapich2' in spec_root or
|
||||||
'^intel-mpi' in spec_root):
|
'^intel-mpi' in spec_root or
|
||||||
|
'^intel-parallel-studio' in spec_root):
|
||||||
blacs_lib = 'libmkl_blacs_intelmpi'
|
blacs_lib = 'libmkl_blacs_intelmpi'
|
||||||
elif '^mpt' in spec_root:
|
elif '^mpt' in spec_root:
|
||||||
blacs_lib = 'libmkl_blacs_sgimpt'
|
blacs_lib = 'libmkl_blacs_sgimpt'
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
from spack import *
|
from spack import *
|
||||||
|
from spack.build_systems.intel import debug_print
|
||||||
|
|
||||||
|
|
||||||
class IntelMkl(IntelPackage):
|
class IntelMkl(IntelPackage):
|
||||||
@ -64,3 +65,16 @@ class IntelMkl(IntelPackage):
|
|||||||
if sys.platform == 'darwin':
|
if sys.platform == 'darwin':
|
||||||
# there is no libmkl_gnu_thread on macOS
|
# there is no libmkl_gnu_thread on macOS
|
||||||
conflicts('threads=openmp', when='%gcc')
|
conflicts('threads=openmp', when='%gcc')
|
||||||
|
|
||||||
|
@property
|
||||||
|
def libs(self):
|
||||||
|
libs = LibraryList([])
|
||||||
|
if self.provides('blas'):
|
||||||
|
libs = self.blas_libs
|
||||||
|
if self.provides('lapack'):
|
||||||
|
libs = self.lapack_libs + libs
|
||||||
|
if self.provides('scalapack'):
|
||||||
|
libs = self.scalapack_libs + libs
|
||||||
|
|
||||||
|
debug_print(libs)
|
||||||
|
return libs
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
from spack import *
|
from spack import *
|
||||||
|
from spack.build_systems.intel import debug_print
|
||||||
|
|
||||||
|
|
||||||
class IntelParallelStudio(IntelPackage):
|
class IntelParallelStudio(IntelPackage):
|
||||||
@ -195,3 +196,16 @@ def setup_dependent_environment(self, *args):
|
|||||||
'F90': spack_fc,
|
'F90': spack_fc,
|
||||||
'FC': spack_fc,
|
'FC': spack_fc,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@property
|
||||||
|
def libs(self):
|
||||||
|
libs = LibraryList([])
|
||||||
|
if self.provides('blas'):
|
||||||
|
libs = self.blas_libs
|
||||||
|
if self.provides('lapack'):
|
||||||
|
libs = self.lapack_libs + libs
|
||||||
|
if self.provides('scalapack'):
|
||||||
|
libs = self.scalapack_libs + libs
|
||||||
|
|
||||||
|
debug_print(libs)
|
||||||
|
return libs
|
||||||
|
Loading…
Reference in New Issue
Block a user