diff options
author | Satish Balay <balay@mcs.anl.gov> | 2019-04-17 12:10:05 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-17 12:10:05 -0500 |
commit | 4731041f88dd2feec5bad46b6128bfccc06ae628 (patch) | |
tree | d4c07ea769eb519527154739364c24170090f483 /var | |
parent | 01ada1a3de92c6768542122db7f487dbf0125e75 (diff) | |
download | spack-4731041f88dd2feec5bad46b6128bfccc06ae628.tar.gz spack-4731041f88dd2feec5bad46b6128bfccc06ae628.tar.bz2 spack-4731041f88dd2feec5bad46b6128bfccc06ae628.tar.xz spack-4731041f88dd2feec5bad46b6128bfccc06ae628.zip |
strumpack@3.1.1: add patch for Intel-19 build failure on cori (#11204)
Ref: https://github.com/spack/spack/issues/11202
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/strumpack/intel-19-compile.patch | 46 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/strumpack/package.py | 2 |
2 files changed, 48 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/strumpack/intel-19-compile.patch b/var/spack/repos/builtin/packages/strumpack/intel-19-compile.patch new file mode 100644 index 0000000000..c5d56aec72 --- /dev/null +++ b/var/spack/repos/builtin/packages/strumpack/intel-19-compile.patch @@ -0,0 +1,46 @@ +commit 1b0c5884856709077d1130384ab0841f44f0f07b +Author: Pieter Ghysels <pghysels@lbl.gov> +Date: Mon Apr 8 11:09:37 2019 -0700 + + Fix for openmp collapse(2), the loop bounds should be constants, + cannot be functions. + + This fixes a compilation issue with the Intel 19 compiler. + Thanks to Satish for reporting. + +diff --git a/src/BLR/BLRMatrix.hpp b/src/BLR/BLRMatrix.hpp +index 75eb817..3b6b803 100644 +--- a/src/BLR/BLRMatrix.hpp ++++ b/src/BLR/BLRMatrix.hpp +@@ -461,11 +461,13 @@ namespace strumpack { + + DenseM_t dense() const { + DenseM_t A(rows(), cols()); ++ auto cb = colblocks(); ++ auto rb = rowblocks(); + #if defined(STRUMPACK_USE_OPENMP_TASKLOOP) + #pragma omp taskloop collapse(2) default(shared) + #endif +- for (std::size_t j=0; j<colblocks(); j++) +- for (std::size_t i=0; i<rowblocks(); i++) { ++ for (std::size_t j=0; j<cb; j++) ++ for (std::size_t i=0; i<rb; i++) { + DenseMW_t Aij = tile(A, i, j); + tile(i, j).dense(Aij); + } +@@ -473,11 +475,13 @@ namespace strumpack { + } + + void draw(std::ostream& of, std::size_t roff, std::size_t coff) const { ++ auto cb = colblocks(); ++ auto rb = rowblocks(); + #if defined(STRUMPACK_USE_OPENMP_TASKLOOP) + #pragma omp taskloop collapse(2) default(shared) + #endif +- for (std::size_t j=0; j<colblocks(); j++) +- for (std::size_t i=0; i<rowblocks(); i++) { ++ for (std::size_t j=0; j<cb; j++) ++ for (std::size_t i=0; i<rb; i++) { + tile(i, j).draw(of, roff+tileroff(i), coff+tilecoff(j)); + } + } diff --git a/var/spack/repos/builtin/packages/strumpack/package.py b/var/spack/repos/builtin/packages/strumpack/package.py index 9e6cdfa0a7..741d00a4fb 100644 --- a/var/spack/repos/builtin/packages/strumpack/package.py +++ b/var/spack/repos/builtin/packages/strumpack/package.py @@ -60,6 +60,8 @@ class Strumpack(CMakePackage): conflicts('+parmetis', when='~mpi') + patch('intel-19-compile.patch', when='@3.1.1') + def cmake_args(self): spec = self.spec |