diff options
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/maths.scm | 13 | ||||
-rw-r--r-- | gnu/packages/patches/superlu-dist-awpm-grid.patch | 31 |
2 files changed, 18 insertions, 26 deletions
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 26625d5f50..7d841af8f5 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2975,18 +2975,21 @@ also provides threshold-based ILU factorization preconditioners.") (define-public superlu-dist (package (name "superlu-dist") - (version "6.2.0") + (version "6.4.0") (source (origin - (method url-fetch) - (uri (string-append "https://portal.nersc.gov/project/sparse/superlu/" - "superlu_dist_" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/xiaoyeli/superlu_dist") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "1ynmwqajc9sc3my2hssa5k9s58ggvizqv9rdss0j7w99pbh5mnvw")) + (base32 "0fa29yr72p4yq5ln4rgfsawmi5935n4qcr5niz6864bjladz4lql")) (modules '((guix build utils))) (snippet ;; Replace the non-free implementation of MC64 with a stub '(begin + (make-file-writable "SRC/mc64ad_dist.c") (call-with-output-file "SRC/mc64ad_dist.c" (lambda (port) (display " diff --git a/gnu/packages/patches/superlu-dist-awpm-grid.patch b/gnu/packages/patches/superlu-dist-awpm-grid.patch index d6cb8e521d..42d1683cc4 100644 --- a/gnu/packages/patches/superlu-dist-awpm-grid.patch +++ b/gnu/packages/patches/superlu-dist-awpm-grid.patch @@ -1,8 +1,8 @@ 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 +--- a/SRC/dHWPM_CombBLAS.hpp ++++ b/SRC/dHWPM_CombBLAS.hpp @@ -52,7 +52,7 @@ { printf("AWPM only supports square process grid. Retuning without a permutation.\n"); @@ -12,25 +12,14 @@ This prevents a warning/error from CombBLAS about using MPI_COMM_WORLD. 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) +--- a/SRC/zHWPM_CombBLAS.hpp ++++ b/SRC/zHWPM_CombBLAS.hpp +@@ -52,7 +52,7 @@ { -@@ -112,7 +111,7 @@ + printf("AWPM only supports square process grid. Retuning without a permutation.\n"); } - 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); +- 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); - delete[] rdispls; - delete[] recvcnt; + /* ------------------------------------------------------------ |