git: 9de810561899 - main - math/spla: New port: Specialized Parallel Linear Algebra

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Fri, 26 Aug 2022 08:17:54 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9de810561899dde848ba00fc6527b35725e0474a

commit 9de810561899dde848ba00fc6527b35725e0474a
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-08-26 08:17:29 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-08-26 08:17:29 +0000

    math/spla: New port: Specialized Parallel Linear Algebra
---
 math/Makefile       |  1 +
 math/spla/Makefile  | 39 +++++++++++++++++++++++++++++++++++++++
 math/spla/distinfo  |  3 +++
 math/spla/pkg-descr | 10 ++++++++++
 math/spla/pkg-plist | 40 ++++++++++++++++++++++++++++++++++++++++
 5 files changed, 93 insertions(+)

diff --git a/math/Makefile b/math/Makefile
index e60a503a6fd2..34f6640e4e5a 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -1063,6 +1063,7 @@
     SUBDIR += spectra
     SUBDIR += speedcrunch
     SUBDIR += spfft
+    SUBDIR += spla
     SUBDIR += spooles
     SUBDIR += spooles-mpich
     SUBDIR += spot
diff --git a/math/spla/Makefile b/math/spla/Makefile
new file mode 100644
index 000000000000..e9dd6fd9ef1e
--- /dev/null
+++ b/math/spla/Makefile
@@ -0,0 +1,39 @@
+PORTNAME=	spla
+DISTVERSIONPREFIX=	v
+DISTVERSION=	1.5.4
+CATEGORIES=	math
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Specialized Parallel Linear Algebra
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+LIB_DEPENDS=	libopenblas.so:math/openblas
+TEST_DEPENDS=	scalapack>0:math/scalapack
+
+USES=		cmake:testing compiler:c++11-lang
+USE_LDCONFIG=	yes
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	eth-cscs
+
+CMAKE_TESTING_ON=	SPLA_BUILD_TESTS # tests fail to link, see https://github.com/eth-cscs/spla/issues/24
+CMAKE_TESTING_TARGET=	${ALL_TARGET}
+
+OPTIONS_DEFINE=		FORTRAN OPENMP
+OPTIONS_SINGLE=		MPI
+OPTIONS_SINGLE_MPI=	MPICH OPENMPI
+OPTIONS_DEFAULT=	FORTRAN MPICH OPENMP
+OPTIONS_SUB=		yes
+
+FORTRAN_USES=		fortran
+FORTRAN_CMAKE_BOOL=	SPLA_FORTRAN
+
+MPICH_USES=		mpi:mpich
+
+OPENMPI_USES=		mpi:openmpi
+
+OPENMP_CMAKE_BOOL=	SPLA_OMP
+
+.include <bsd.port.mk>
diff --git a/math/spla/distinfo b/math/spla/distinfo
new file mode 100644
index 000000000000..445c4defcd82
--- /dev/null
+++ b/math/spla/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1661500900
+SHA256 (eth-cscs-spla-v1.5.4_GH0.tar.gz) = de30e427d24c741e2e4fcae3d7668162056ac2574afed6522c0bb49d6f1d0f79
+SIZE (eth-cscs-spla-v1.5.4_GH0.tar.gz) = 519572
diff --git a/math/spla/pkg-descr b/math/spla/pkg-descr
new file mode 100644
index 000000000000..2460b639d631
--- /dev/null
+++ b/math/spla/pkg-descr
@@ -0,0 +1,10 @@
+SPLA provides specialized functions for linear algebra computations with a C++
+and C interface, which are inspired by requirements in computational material
+science codes.
+
+Currently, SPLA provides functions for distributed matrix multiplications with
+specific matrix distributions, which cannot be used directly with a ScaLAPACK
+interface. All computations can optionally utilize GPUs through CUDA or ROCm,
+where matrices can be located either in host or device memory.
+
+WWW: https://github.com/eth-cscs/spla
diff --git a/math/spla/pkg-plist b/math/spla/pkg-plist
new file mode 100644
index 000000000000..5ee6697bed35
--- /dev/null
+++ b/math/spla/pkg-plist
@@ -0,0 +1,40 @@
+include/spla/config.h
+include/spla/context.h
+include/spla/context.hpp
+include/spla/errors.h
+include/spla/exceptions.hpp
+include/spla/gemm.h
+include/spla/gemm.hpp
+include/spla/matrix_distribution.h
+include/spla/matrix_distribution.hpp
+include/spla/pgemm_sbs.h
+include/spla/pgemm_sbs.hpp
+include/spla/pgemm_ssb.h
+include/spla/pgemm_ssb.hpp
+include/spla/pgemm_ssbtr.h
+include/spla/pgemm_ssbtr.hpp
+include/spla/spla.f90
+include/spla/spla.h
+include/spla/spla.hpp
+%%FORTRAN%%include/spla/spla.mod
+include/spla/spla_export.h
+include/spla/types.h
+lib/cmake/SPLA/SPLAConfig.cmake
+lib/cmake/SPLA/SPLAConfigVersion.cmake
+lib/cmake/SPLA/SPLASharedConfig.cmake
+lib/cmake/SPLA/SPLASharedConfigVersion.cmake
+lib/cmake/SPLA/SPLASharedTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/SPLA/SPLASharedTargets.cmake
+lib/cmake/SPLA/SPLATargets.cmake
+lib/cmake/SPLA/modules/FindARMPL.cmake
+lib/cmake/SPLA/modules/FindATLAS.cmake
+lib/cmake/SPLA/modules/FindBLIS.cmake
+lib/cmake/SPLA/modules/FindGenericBLAS.cmake
+lib/cmake/SPLA/modules/FindMKL.cmake
+lib/cmake/SPLA/modules/FindOPENBLAS.cmake
+lib/cmake/SPLA/modules/FindSCALAPACK.cmake
+lib/cmake/SPLA/modules/FindSCI.cmake
+lib/libspla.so
+lib/libspla.so.1
+lib/libspla.so.1.5.4
+libdata/pkgconfig/SPLA.pc