diff --git a/sci-libs/superlu_dist/Manifest b/sci-libs/superlu_dist/Manifest new file mode 100644 index 0000000000..9d18fdf538 --- /dev/null +++ b/sci-libs/superlu_dist/Manifest @@ -0,0 +1,2 @@ +DIST superlu_dist-7.2.0.tar.gz 2187572 BLAKE2B 93e848e7146022030d8d55fef74b090d6998553d5114b136c38fc95873941f5fe20a2a3f7af30cf4465fac4306da41dc41f27614397f77f9e08b57f8705c9312 SHA512 89d2480e2c200e4588171b24ce21c9f1556c3ba917a561bdb6ac89e88c73ea982ba133ffddba632494098b68d8ad59ca28ec215f2cb92da12c518e87a2e1d5f7 +DIST superlu_dist-8.0.0.tar.gz 2291245 BLAKE2B 059b737d9286fa43a5eee0f6b2719571c07f8176dce2055846646a37fedeff39816e673271f76fcedff739b766404aa3f74ce9bb02b7a51be043c449de578848 SHA512 c4e4df9b077bc24f587121c05c60a9521f9afe2f1a15acb2e1ea17b34df33c155a423f89c520c43f7953889a8ae90d8e358f95e99e901d3097e9df6a992c482e diff --git a/sci-libs/superlu_dist/metadata.xml b/sci-libs/superlu_dist/metadata.xml new file mode 100644 index 0000000000..2183e6dd49 --- /dev/null +++ b/sci-libs/superlu_dist/metadata.xml @@ -0,0 +1,35 @@ + + + + + co-maintainers welcome + Alessandro Barbieri + lssndrbarbieri@gmail.com + + + Use CombBLAS as dependency + Enable complex16 precision library + Enable double precision library + Enable the HIP libraries + Use parmetis as dependency + Enable single precision library + + +SuperLU is a general purpose library for the direct solution of +large, sparse, nonsymmetric systems of linear equations on high +performance machines. The library is written in C and is callable +from either C or Fortran. The library routines will perform an LU +decomposition with partial pivoting and triangular system solves +through forward and back substitution. The LU factorization routines +can handle non-square matrices but the triangular solves are +performed only for square matrices. The matrix columns may be +preordered (before factorization) either through library or user +supplied routines. This preordering for sparsity is completely +separate from the factorization. Working precision iterative +refinement subroutines are provided for improved backward +stability. Routines are also provided to equilibrate the system, +estimate the condition number, calculate the relative backward +error, and estimate error bounds for the refined solutions. +This is the distributed version (MPI based). + + diff --git a/sci-libs/superlu_dist/superlu_dist-7.2.0.ebuild b/sci-libs/superlu_dist/superlu_dist-7.2.0.ebuild new file mode 100644 index 0000000000..c3a3fcf1fd --- /dev/null +++ b/sci-libs/superlu_dist/superlu_dist-7.2.0.ebuild @@ -0,0 +1,79 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DOCS_BUILDER="doxygen" +DOCS_CONFIG_NAME="DoxyConfig" +FORTRAN_NEEDED="fortran" + +inherit cmake docs fortran-2 + +DESCRIPTION="MPI distributed sparse LU factorization library" +HOMEPAGE=" + https://portal.nersc.gov/project/sparse/superlu/ + https://github.com/xiaoyeli/superlu_dist +" +SRC_URI="https://github.com/xiaoyeli/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64" +IUSE="combblas +complex-precision +double-precision examples lapack fortran metis single-precision test" +# TODO: cuda + +RDEPEND=" + virtual/blas + virtual/mpi + + combblas? ( sci-libs/CombBLAS ) + lapack? ( virtual/lapack ) + metis? ( sci-libs/parmetis ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +RESTRICT="!test? ( test )" + +src_prepare() { + rm -r CBLAS || die + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -Denable_openmp=ON + -DBUILD_SHARED_LIBS=ON + -DBUILD_STATIC_LIBS=OFF + -DTPL_ENABLE_CUDALIB=OFF + -DTPL_ENABLE_INTERNAL_BLASLIB=OFF + + -Denable_complex16=$(usex complex-precision) + -Denable_double=$(usex double-precision) + -Denable_examples=$(usex examples ON OFF) + -Denable_single=$(usex single-precision) + -Denable_tests=$(usex test ON OFF) + -DTPL_ENABLE_COMBBLASLIB=$(usex combblas) + -DTPL_ENABLE_LAPACKLIB=$(usex lapack) + -DTPL_ENABLE_PARMETISLIB=$(usex metis) + -DXSDK_ENABLE_Fortran=$(usex fortran) + ) + if use combblas; then + mycmakeargs+=( + -DTPL_COMBBLAS_LIBRARIES="${EPREFIX}/usr/$(get_libdir)/libCombBLAS.so" + -DTPL_COMBBLAS_INCLUDE_DIRS="${EPREFIX}/usr/include/CombBLAS/" + ) + fi + if use metis; then + mycmakeargs+=( + -DTPL_PARMETIS_LIBRARIES="${EPREFIX}/usr/$(get_libdir)/libparmetis.so" + -DTPL_PARMETIS_INCLUDE_DIRS="${EPREFIX}/usr/include" + ) + fi + cmake_src_configure +} + +src_compile() { + cmake_src_compile + default +} diff --git a/sci-libs/superlu_dist/superlu_dist-8.0.0.ebuild b/sci-libs/superlu_dist/superlu_dist-8.0.0.ebuild new file mode 100644 index 0000000000..77b3ebd75e --- /dev/null +++ b/sci-libs/superlu_dist/superlu_dist-8.0.0.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DOCS_BUILDER="doxygen" +DOCS_CONFIG_NAME="DoxyConfig" +FORTRAN_NEEDED="fortran" + +inherit cmake docs fortran-2 + +DESCRIPTION="MPI distributed sparse LU factorization library" +HOMEPAGE=" + https://portal.nersc.gov/project/sparse/superlu/ + https://github.com/xiaoyeli/superlu_dist +" +SRC_URI="https://github.com/xiaoyeli/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64" +IUSE="combblas +complex-precision +double-precision examples hip lapack fortran metis single-precision test" +# TODO: cuda + +RDEPEND=" + virtual/blas + virtual/mpi + + combblas? ( sci-libs/CombBLAS ) + hip? ( + sci-libs/hipBLAS + sci-libs/rocBLAS + sci-libs/rocSOLVER + ) + lapack? ( virtual/lapack ) + metis? ( sci-libs/parmetis ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +RESTRICT="!test? ( test )" + +src_prepare() { + rm -r CBLAS || die + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -Denable_openmp=ON + -DBUILD_SHARED_LIBS=ON + -DBUILD_STATIC_LIBS=OFF + -DTPL_ENABLE_CUDALIB=OFF + -DTPL_ENABLE_INTERNAL_BLASLIB=OFF + + -Denable_complex16=$(usex complex-precision) + -Denable_double=$(usex double-precision) + -Denable_examples=$(usex examples ON OFF) + -Denable_single=$(usex single-precision) + -Denable_tests=$(usex test ON OFF) + -DTPL_ENABLE_COMBBLASLIB=$(usex combblas) + -DTPL_ENABLE_HIPLIB=$(usex hip) + -DTPL_ENABLE_LAPACKLIB=$(usex lapack) + -DTPL_ENABLE_PARMETISLIB=$(usex metis) + -DXSDK_ENABLE_Fortran=$(usex fortran) + ) + if use combblas; then + mycmakeargs+=( + -DTPL_COMBBLAS_LIBRARIES="${EPREFIX}/usr/$(get_libdir)/libCombBLAS.so" + -DTPL_COMBBLAS_INCLUDE_DIRS="${EPREFIX}/usr/include/CombBLAS/" + ) + fi + if use metis; then + mycmakeargs+=( + -DTPL_PARMETIS_LIBRARIES="${EPREFIX}/usr/$(get_libdir)/libparmetis.so" + -DTPL_PARMETIS_INCLUDE_DIRS="${EPREFIX}/usr/include" + ) + fi + cmake_src_configure +} + +src_compile() { + cmake_src_compile + default +}