aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2018-10-31 21:49:24 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2018-10-31 21:49:24 +0000
commite0071402cb6b0b4299e14748e1ccf09dacfa3682 (patch)
tree3a3b86e47d5dd0a6205efcd0219c9f1fcec0a5a7
parentf5d1c12ed11484b9b182e3c6e17c645ae47e731e (diff)
downloadports-e0071402cb6b0b4299e14748e1ccf09dacfa3682.tar.gz
ports-e0071402cb6b0b4299e14748e1ccf09dacfa3682.zip
New port: math/dbcsr: Distributed Block Compressed Sparse Row matrix library
Notes
Notes: svn path=/head/; revision=483620
-rw-r--r--math/Makefile1
-rw-r--r--math/dbcsr/Makefile40
-rw-r--r--math/dbcsr/distinfo3
-rw-r--r--math/dbcsr/pkg-descr13
-rw-r--r--math/dbcsr/pkg-plist8
5 files changed, 65 insertions, 0 deletions
diff --git a/math/Makefile b/math/Makefile
index c85b3530838f..aa0c72ac8e60 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -175,6 +175,7 @@
SUBDIR += cryptominisat
SUBDIR += cvc3
SUBDIR += cvc4
+ SUBDIR += dbcsr
SUBDIR += deal.ii
SUBDIR += diehard
SUBDIR += dieharder
diff --git a/math/dbcsr/Makefile b/math/dbcsr/Makefile
new file mode 100644
index 000000000000..2eba3152cf16
--- /dev/null
+++ b/math/dbcsr/Makefile
@@ -0,0 +1,40 @@
+# $FreeBSD$
+
+PORTNAME= dbcsr
+DISTVERSIONPREFIX= v
+DISTVERSION= 1.0.0-rc.0-40
+DISTVERSIONSUFFIX= -gd9c0dd54
+CATEGORIES= math
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Distributed Block Compressed Sparse Row matrix library
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= fypp:devel/py-fypp@${PY_FLAVOR}
+
+USES= blaslapack:openblas cmake:outsource,noninja fortran python:build
+USE_GITHUB= yes
+GH_ACCOUNT= cp2k
+USE_LDCONFIG= yes
+
+CMAKE_ON= BUILD_SHARED_LIBS
+CMAKE_ARGS= -DBLA_VENDOR:STRING="OpenBLAS"
+
+TEST_TARGET= test # tests hang: https://github.com/cp2k/dbcsr/issues/72
+
+OPTIONS_DEFINE= MPI OPENMP C_API # libxsmm is supposed to be supported, but cmake build lacks the corresponding option: https://github.com/cp2k/dbcsr/issues/73
+OPTIONS_DEFAULT= MPI OPENMP C_API
+OPTIONS_SUB= yes
+
+MPI_CMAKE_BOOL= USE_MPI
+MPI_LIB_DEPENDS= libmpi.so:net/openmpi
+
+OPENMP_CMAKE_BOOL= USE_OPENMP
+OPENMP_LIB_DEPENDS= libomp.so:devel/openmp
+
+C_API_DESC= Build the C API library
+C_API_CMAKE_BOOL= WITH_C_API
+
+.include <bsd.port.mk>
diff --git a/math/dbcsr/distinfo b/math/dbcsr/distinfo
new file mode 100644
index 000000000000..3a91ea528fba
--- /dev/null
+++ b/math/dbcsr/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1541005905
+SHA256 (cp2k-dbcsr-v1.0.0-rc.0-40-gd9c0dd54_GH0.tar.gz) = 31ce9b790f3339c82a49993e0a8f483ccb1fac473e01a2694a44c8f0aeadd3d0
+SIZE (cp2k-dbcsr-v1.0.0-rc.0-40-gd9c0dd54_GH0.tar.gz) = 764223
diff --git a/math/dbcsr/pkg-descr b/math/dbcsr/pkg-descr
new file mode 100644
index 000000000000..872fccb3e81b
--- /dev/null
+++ b/math/dbcsr/pkg-descr
@@ -0,0 +1,13 @@
+libDBCSR (or DBCSR for short) is a sparse matrix library designed to efficiently
+perform sparse matrix matrix multiplication, among other operations. It is MPI
+and OpenMP parallel, and can exploit accelerators. It is developed as part of
+CP2K , where it provides core functionality for linear scaling electronic
+structure theory. A general overview of the library has been published.
+A discussion of recent developments, in particular GPU work, has appeared as a
+chapter in 'Electronic Structure Calculations on Graphics Processing Units',
+John Wiley and Sons, ISBN 9781118661789, and is available as a preprint. The use
+of one-sided MPI and a 2.5D algorithm to reduce communication is shown to be
+effective for sparse matrix matrix multiplication in this manuscript. libDBCSR
+is made available for integration in other projects, see the github webpage.
+
+WWW: https://www.cp2k.org/dbcsr
diff --git a/math/dbcsr/pkg-plist b/math/dbcsr/pkg-plist
new file mode 100644
index 000000000000..3d2af9bec11e
--- /dev/null
+++ b/math/dbcsr/pkg-plist
@@ -0,0 +1,8 @@
+%%C_API%%include/dbcsr.h
+include/dbcsr_api.mod
+%%C_API%%lib/dbcsr/DBCSRCTargets-%%CMAKE_BUILD_TYPE%%.cmake
+%%C_API%%lib/dbcsr/DBCSRCTargets.cmake
+lib/dbcsr/DBCSRTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/dbcsr/DBCSRTargets.cmake
+lib/libdbcsr.so
+%%C_API%%lib/libdbcsr_c.so