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