sci-libs/superlu_dist: new package, add 7.2.0, 8.0.0

Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
Alessandro Barbieri
2022-05-24 17:50:25 +02:00
parent ee3a398a6e
commit e61c0b6ec9
4 changed files with 201 additions and 0 deletions

View File

@@ -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

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<description>co-maintainers welcome</description>
<name>Alessandro Barbieri</name>
<email>lssndrbarbieri@gmail.com</email>
</maintainer>
<use>
<flag name="combblas">Use CombBLAS as dependency</flag>
<flag name="complex-precision">Enable complex16 precision library</flag>
<flag name="double-precision">Enable double precision library</flag>
<flag name="hip">Enable the HIP libraries</flag>
<flag name="metis">Use parmetis as dependency</flag>
<flag name="single-precision">Enable single precision library</flag>
</use>
<longdescription lang="en">
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).
</longdescription>
</pkgmetadata>

View File

@@ -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
}

View File

@@ -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
}