aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2022-08-26 18:05:49 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2022-08-26 18:06:38 +0000
commit0a2156ecebc082c4019d5b3a8b1d8b5c85b52d61 (patch)
tree73b5b65454864bb089aabcbe4ad470cec8b4cdc0
parent1f43020b38ccef94ab333227e333821306367cdd (diff)
downloadports-0a2156ecebc082c4019d5b3a8b1d8b5c85b52d61.tar.gz
ports-0a2156ecebc082c4019d5b3a8b1d8b5c85b52d61.zip
math/costa: New port: Distributed Communication-Optimal Shuffle and Transpose Algorithm
-rw-r--r--math/Makefile1
-rw-r--r--math/costa/Makefile41
-rw-r--r--math/costa/distinfo3
-rw-r--r--math/costa/pkg-descr5
-rw-r--r--math/costa/pkg-plist35
5 files changed, 85 insertions, 0 deletions
diff --git a/math/Makefile b/math/Makefile
index 9e44df632a50..008963df91fc 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -248,6 +248,7 @@
SUBDIR += convertall
SUBDIR += coq
SUBDIR += cosma
+ SUBDIR += costa
SUBDIR += couenne
SUBDIR += coxeter3
SUBDIR += cppad
diff --git a/math/costa/Makefile b/math/costa/Makefile
new file mode 100644
index 000000000000..bb2298b1b8ad
--- /dev/null
+++ b/math/costa/Makefile
@@ -0,0 +1,41 @@
+PORTNAME= costa
+DISTVERSIONPREFIX= v
+DISTVERSION= 2.1
+CATEGORIES= math
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Distributed Communication-Optimal Shuffle and Transpose Algorithm
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+LIB_DEPENDS= libopenblas.so:math/openblas \
+ libscalapack.so:math/scalapack
+
+USES= cmake:testing pkgconfig
+USE_LDCONFIG= yes
+
+USE_GITHUB= yes
+GH_ACCOUNT= eth-cscs
+GH_PROJECT= COSTA
+
+CMAKE_ON= BUILD_SHARED_LIBS
+CMAKE_ARGS= -DCOSTA_SCALAPACK=CUSTOM
+CMAKE_OFF= COSTA_WITH_TESTS
+CMAKE_TESTING_ON= COSTA_WITH_TESTS
+
+OPTIONS_SINGLE= MPI
+OPTIONS_SINGLE_MPI= MPICH OPENMPI
+OPTIONS_DEFAULT= MPICH
+
+MPICH_USES= mpi:mpich
+
+OPENMPI_USES= mpi:openmpi
+
+post-install: # workaround for https://github.com/eth-cscs/COSTA/issues/9
+ @cd ${STAGEDIR}${PREFIX} && ${RMDIR} \
+ include/costa/pxtran \
+ include/costa/pxtranc \
+ include/costa/pxtranu
+
+.include <bsd.port.mk>
diff --git a/math/costa/distinfo b/math/costa/distinfo
new file mode 100644
index 000000000000..1f6c58c82e01
--- /dev/null
+++ b/math/costa/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1661524865
+SHA256 (eth-cscs-COSTA-v2.1_GH0.tar.gz) = c1e86452415083f7470b292d93ec60708b7c8dbafc2bac383636bb4b28135866
+SIZE (eth-cscs-COSTA-v2.1_GH0.tar.gz) = 804671
diff --git a/math/costa/pkg-descr b/math/costa/pkg-descr
new file mode 100644
index 000000000000..7caa56d5abef
--- /dev/null
+++ b/math/costa/pkg-descr
@@ -0,0 +1,5 @@
+COSTA is a communication-optimal, highly-optimised algorithm for data
+redistribution accross multiple processors, using MPI and OpenMP and
+offering the possibility to transpose and scale some or all data.
+
+WWW: https://github.com/eth-cscs/COSTA
diff --git a/math/costa/pkg-plist b/math/costa/pkg-plist
new file mode 100644
index 000000000000..04d919bd461b
--- /dev/null
+++ b/math/costa/pkg-plist
@@ -0,0 +1,35 @@
+include/costa/blacs.hpp
+include/costa/cinterface/transform.hpp
+include/costa/grid2grid/block.hpp
+include/costa/grid2grid/cantor_mapping.hpp
+include/costa/grid2grid/comm_volume.hpp
+include/costa/grid2grid/communication_data.hpp
+include/costa/grid2grid/grid2D.hpp
+include/costa/grid2grid/grid_cover.hpp
+include/costa/grid2grid/grid_layout.hpp
+include/costa/grid2grid/interval.hpp
+include/costa/grid2grid/memory_utils.hpp
+include/costa/grid2grid/mpi_type_wrapper.hpp
+include/costa/grid2grid/profiler.hpp
+include/costa/grid2grid/ranks_reordering.hpp
+include/costa/grid2grid/scalapack_layout.hpp
+include/costa/grid2grid/threads_workspace.hpp
+include/costa/grid2grid/transform.hpp
+include/costa/grid2grid/transformer.hpp
+include/costa/grid2grid/utils.hpp
+include/costa/layout.hpp
+include/costa/pxgemr2d/costa_pxgemr2d.hpp
+include/costa/pxgemr2d/pxgemr2d_params.hpp
+include/costa/pxtran_op/costa_pxtran_op.hpp
+include/costa/pxtran_op/pxtran_op_params.hpp
+include/costa/random_generator.hpp
+include/costa/scalapack.hpp
+lib/cmake/costa/FindMKL.cmake
+lib/cmake/costa/costaConfig.cmake
+lib/cmake/costa/costaConfigVersion.cmake
+lib/cmake/costa/costaTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/costa/costaTargets.cmake
+lib/libcosta.so
+lib/libcosta_prefixed_scalapack.so
+lib/libcosta_scalapack.so
+libdata/pkgconfig/costa.pc