git: c2fa0cfe1710 - main - math/superlu-dist: New port: Distributed memory, MPI based SuperLU
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 27 Aug 2022 07:37:38 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=c2fa0cfe17101f613e90b97b9384f0a7537cd281
commit c2fa0cfe17101f613e90b97b9384f0a7537cd281
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-08-27 07:36:52 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-08-27 07:37:34 +0000
math/superlu-dist: New port: Distributed memory, MPI based SuperLU
---
math/Makefile | 1 +
math/superlu-dist/Makefile | 59 +++++++++++++++++++++++++++++++++++++++++++++
math/superlu-dist/distinfo | 5 ++++
math/superlu-dist/pkg-descr | 12 +++++++++
math/superlu-dist/pkg-plist | 32 ++++++++++++++++++++++++
5 files changed, 109 insertions(+)
diff --git a/math/Makefile b/math/Makefile
index 4cff58d2ba9a..ca08e5d54f67 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -1095,6 +1095,7 @@
SUBDIR += suitesparse-umfpack
SUBDIR += sundials
SUBDIR += superlu
+ SUBDIR += superlu-dist
SUBDIR += symengine
SUBDIR += symmetrica
SUBDIR += symphony
diff --git a/math/superlu-dist/Makefile b/math/superlu-dist/Makefile
new file mode 100644
index 000000000000..d06944bcd2d1
--- /dev/null
+++ b/math/superlu-dist/Makefile
@@ -0,0 +1,59 @@
+PORTNAME= superlu-dist
+DISTVERSIONPREFIX= v
+DISTVERSION= 8.1.0
+CATEGORIES= math
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Distributed memory, MPI based SuperLU
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/License.txt
+
+USES= cmake:testing fortran pkgconfig
+USE_LDCONFIG= yes
+
+USE_GITHUB= yes
+GH_ACCOUNT= xiaoyeli
+GH_PROJECT= superlu_dist
+
+CMAKE_ON= USE_XSDK_DEFAULTS BUILD_SHARED_LIBS
+CMAKE_OFF= enable_tests enable_examples TPL_ENABLE_PARMETISLIB
+CMAKE_TESTING_ON= enable_tests # many tests fail, see https://github.com/xiaoyeli/superlu_dist/issues/113
+
+OPTIONS_DEFINE= DOCS FORTRAN
+OPTIONS_SINGLE= BLAS MPI
+OPTIONS_SINGLE_BLAS= ATLAS GOTOBLAS OPENBLAS REFERENCE
+OPTIONS_SINGLE_MPI= MPICH OPENMPI
+OPTIONS_DEFAULT= FORTRAN MPICH REFERENCE
+OPTIONS_SUB= yes
+
+# all BLAS-related options
+ATLAS_USES= blaslapack:atlas
+ATLAS_CMAKE_ON= -DBLA_VENDOR:STRING="ATLAS"
+GOTOBLAS_DESC= GotoBLAS blas implementation
+GOTOBLAS_USES= blaslapack:gotoblas
+GOTOBLAS_CMAKE_ON= -DBLA_VENDOR:STRING="Goto"
+OPENBLAS_USES= blaslapack:openblas
+OPENBLAS_CMAKE_ON= -DBLA_VENDOR:STRING="OpenBLAS"
+REFERENCE_DESC= Reference blas implementation
+REFERENCE_USES= blaslapack
+REFERENCE_CMAKE_ON= -DBLA_VENDOR:STRING="Generic"
+
+# other options
+FORTRAN_CMAKE_BOOL= XSDK_ENABLE_Fortran
+MPICH_USES= mpi:mpich
+OPENMPI_USES= mpi:openmpi
+
+post-install-DOCS-on:
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}
+ cd ${WRKSRC}/DOC && ${COPYTREE_SHARE} "ug.pdf" ${STAGEDIR}${DOCSDIR}
+
+post-install-FORTRAN-on:
+ # workaround for https://github.com/xiaoyeli/superlu_dist/issues/112
+ @${RM} -r ${STAGEDIR}${PREFIX}/include/FORTRAN/CMakeFiles
+ # move .mod files to a proper location
+ @cd ${STAGEDIR}${PREFIX}/include && \
+ ${MV} FORTRAN/* . && \
+ ${RMDIR} FORTRAN
+
+.include <bsd.port.mk>
diff --git a/math/superlu-dist/distinfo b/math/superlu-dist/distinfo
new file mode 100644
index 000000000000..979fbe207708
--- /dev/null
+++ b/math/superlu-dist/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1661580599
+SHA256 (xiaoyeli-superlu_dist-v8.1.0_GH0.tar.gz) = 9308844b99a7e762d5704934f7e9f79daf158b0bfc582994303c2e0b31518b34
+SIZE (xiaoyeli-superlu_dist-v8.1.0_GH0.tar.gz) = 2297109
+SHA256 (xiaoyeli-superlu_dist-v8.1.0_GH0.tar.gz) = 9308844b99a7e762d5704934f7e9f79daf158b0bfc582994303c2e0b31518b34
+SIZE (xiaoyeli-superlu_dist-v8.1.0_GH0.tar.gz) = 2297109
diff --git a/math/superlu-dist/pkg-descr b/math/superlu-dist/pkg-descr
new file mode 100644
index 000000000000..dc9081ff1a4c
--- /dev/null
+++ b/math/superlu-dist/pkg-descr
@@ -0,0 +1,12 @@
+SuperLU_DIST contains a set of subroutines to solve a sparse linear system
+A*X=B. It uses Gaussian elimination with static pivoting (GESP). Static pivoting
+is a technique that combines the numerical stability of partial pivoting with
+the scalability of Cholesky (no pivoting), to run accurately and efficiently on
+large numbers of processors.
+
+SuperLU_DIST is a parallel extension to the serial SuperLU library. It is
+targeted for the distributed memory parallel machines. SuperLU_DIST is
+implemented in ANSI C, with OpenMP for on-node parallelism and MPI for off-node
+communications. We are actively developing GPU acceleration capabilities.
+
+WWW: https://portal.nersc.gov/project/sparse/superlu/
diff --git a/math/superlu-dist/pkg-plist b/math/superlu-dist/pkg-plist
new file mode 100644
index 000000000000..ef969ecbce12
--- /dev/null
+++ b/math/superlu-dist/pkg-plist
@@ -0,0 +1,32 @@
+include/colamd.h
+include/dcomplex.h
+include/dlustruct_gpu.h
+include/gpu_api_utils.h
+include/gpu_wrapper.h
+include/machines.h
+include/psymbfact.h
+include/slustruct_gpu.h
+include/superlu_FCnames.h
+include/superlu_FortranCInterface.h
+include/superlu_ddefs.h
+include/superlu_defs.h
+%%FORTRAN%%include/superlu_dist_config.fh
+include/superlu_dist_config.h
+include/superlu_enum_consts.h
+%%FORTRAN%%include/superlu_mod.mod
+include/superlu_sdefs.h
+include/superlu_zdefs.h
+%%FORTRAN%%include/superlupara_mod.mod
+include/supermatrix.h
+include/util_dist.h
+include/zlustruct_gpu.h
+lib/libsuperlu_dist.a
+lib/libsuperlu_dist.so
+lib/libsuperlu_dist.so.8
+lib/libsuperlu_dist.so.8.1.0
+%%FORTRAN%%lib/libsuperlu_dist_fortran.a
+%%FORTRAN%%lib/libsuperlu_dist_fortran.so
+%%FORTRAN%%lib/libsuperlu_dist_fortran.so.8
+%%FORTRAN%%lib/libsuperlu_dist_fortran.so.8.1.0
+libdata/pkgconfig/superlu_dist.pc
+%%PORTDOCS%%%%DOCSDIR%%/ug.pdf