summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorSatish Balay <balay@mcs.anl.gov>2019-04-17 12:10:05 -0500
committerGitHub <noreply@github.com>2019-04-17 12:10:05 -0500
commit4731041f88dd2feec5bad46b6128bfccc06ae628 (patch)
treed4c07ea769eb519527154739364c24170090f483 /var
parent01ada1a3de92c6768542122db7f487dbf0125e75 (diff)
downloadspack-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.patch46
-rw-r--r--var/spack/repos/builtin/packages/strumpack/package.py2
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