summary refs log tree commit diff
path: root/gnu/packages/patches/superlu-dist-awpm-grid.patch
diff options
context:
space:
mode:
authorEric Bavier <bavier@cray.com>2018-10-31 14:58:51 -0500
committerEric Bavier <bavier@member.fsf.org>2019-01-25 13:10:05 -0600
commit6161141e9181ca82f151779f8048b28e093a025f (patch)
tree26d8392c024c18e41b7e3443a9483738c043bbf3 /gnu/packages/patches/superlu-dist-awpm-grid.patch
parentfd3733432b531c7e4ef34f06c896bd27fcafb2f9 (diff)
downloadguix-6161141e9181ca82f151779f8048b28e093a025f.tar.gz
superlu-dist: Upgrade to 6.1.0.
* gnu/packages/patches/superlu-dist-awpm-grid.patch: New file.
* gnu/packages/maths.scm (superlu-dist)[source]: Upgrade to 6.0.0.  Remove
extraneous 'use-modules' in snippet.
[build-system]: Change to cmake-build-system.
[propagated-inputs]:   Replace pt-scotch with pt-scotch32 to match integer
sizes.  Add "parmetis" input, from pt-scotch32.  Move lapack to ...
[inputs]: ...here.  Add openblas and combinatorial-blas.
[arguments]: Replace 'configure' phase with #:configure-flags.  Add
'set-c++-standard' and 'omp-setup' phases.  Remove
'create-install-directories, 'check', and 'install' phases, which are now
handled by cmake.
* gnu/local.mk (dist_patch_DATA): Add patch.
Diffstat (limited to 'gnu/packages/patches/superlu-dist-awpm-grid.patch')
-rw-r--r--gnu/packages/patches/superlu-dist-awpm-grid.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/gnu/packages/patches/superlu-dist-awpm-grid.patch b/gnu/packages/patches/superlu-dist-awpm-grid.patch
new file mode 100644
index 0000000000..d6cb8e521d
--- /dev/null
+++ b/gnu/packages/patches/superlu-dist-awpm-grid.patch
@@ -0,0 +1,36 @@
+Create the CombBLAS::SpParMat with the MPI_Comm from the input 'gridinfo_t'.
+This prevents a warning/error from CombBLAS about using MPI_COMM_WORLD.
+
+--- a/SRC/AWPM_CombBLAS.hpp
++++ b/SRC/AWPM_CombBLAS.hpp
+@@ -52,7 +52,7 @@
+     {
+         printf("AWPM only supports square process grid. Retuning without a permutation.\n");
+     }
+-    combblas::SpParMat < int_t, double, combblas::SpDCCols<int_t,double> > Adcsc;
++    combblas::SpParMat < int_t, double, combblas::SpDCCols<int_t,double> > Adcsc(grid->comm);
+     std::vector< std::vector < std::tuple<int_t,int_t,double> > > data(procs);
+     
+     /* ------------------------------------------------------------
+@@ -100,11 +100,10 @@
+     combblas::AWPM(Adcsc, mateRow2Col, mateCol2Row,true);
+     
+     // now gather the matching vector
+-    MPI_Comm World = mateRow2Col.getcommgrid()->GetWorld();
+     int * rdispls = new int[procs];
+     int sendcnt = mateRow2Col.LocArrSize();
+     int * recvcnt = new int[procs];
+-    MPI_Allgather(&sendcnt, 1, MPI_INT, recvcnt, 1, MPI_INT, World);
++    MPI_Allgather(&sendcnt, 1, MPI_INT, recvcnt, 1, MPI_INT, grid->comm);
+     rdispls[0] = 0;
+     for(int i=0; i<procs-1; ++i)
+     {
+@@ -112,7 +111,7 @@
+     }
+     int_t *senddata = (int_t *)mateRow2Col.GetLocArr();
+     
+-    MPI_Allgatherv(senddata, sendcnt, combblas::MPIType<int_t>(), ScalePermstruct->perm_r, recvcnt, rdispls, combblas::MPIType<int_t>(), World);
++    MPI_Allgatherv(senddata, sendcnt, combblas::MPIType<int_t>(), ScalePermstruct->perm_r, recvcnt, rdispls, combblas::MPIType<int_t>(), grid->comm);
+     
+     delete[] rdispls;
+     delete[] recvcnt;