strumpack@3.1.1: add patch for Intel-19 build failure on cori (#11204)
Ref: https://github.com/spack/spack/issues/11202
This commit is contained in:
parent
01ada1a3de
commit
4731041f88
2 changed files with 48 additions and 0 deletions
|
@ -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));
|
||||||
|
}
|
||||||
|
}
|
|
@ -60,6 +60,8 @@ class Strumpack(CMakePackage):
|
||||||
|
|
||||||
conflicts('+parmetis', when='~mpi')
|
conflicts('+parmetis', when='~mpi')
|
||||||
|
|
||||||
|
patch('intel-19-compile.patch', when='@3.1.1')
|
||||||
|
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue