math/cosma 2.8.4 FreeBSD
Distributed communication-optimal matrix multiplication algorithm
- System
- FreeBSD
- Repository
- FreeBSD ports
- Maintainer
- [email protected]
- Last update
- Commit
91eafc4ac8- License
- BSD3CLAUSE
- Categories
- math
- Package size
- 290.1 KiB, 1274.5 KiB installed
Description
COSMA is a parallel, high-performance, GPU-accelerated, matrix-matrix multiplication algorithm that is communication-optimal for all combinations of matrix dimensions, number of processors and memory sizes, without the need for any parameter tuning. The key idea behind COSMA is to first derive a tight optimal sequential schedule and only then parallelize it, preserving I/O optimality between processes. This stands in contrast with the 2D and 3D algorithms, which fix process domain decomposition upfront and then map it to the matrix dimensions, which may result in asymptotically more communication. The final design of COSMA facilitates the overlap of computation and communication, ensuring speedups and applicability of modern mechanisms such as RDMA. COSMA allows to not utilize some processors in order to optimize the processor grid, which reduces the communication volume even further and increases the computation volume per processor.
Install
Binary package:
pkg install cosma
From the ports tree:
cd /usr/ports/math/cosma/ && make install clean
To depend on this port in another port's Makefile:
RUN_DEPENDS= cosma>0:math/cosma
LIB_DEPENDS= libcosma.so:math/cosma
Packages
The version each package repository carries. “-” means the repository builds no package of it, “n/a” that there is no such repository.
| Repository | aarch64 | amd64 | armv6 | armv7 | i386 |
|---|---|---|---|---|---|
| FreeBSD:14:latest | 2.8.4 | 2.8.4 | - | - | 2.8.4 |
| FreeBSD:14:quarterly | 2.8.4 | 2.8.4 | n/a | - | 2.8.4 |
| FreeBSD:15:latest | 2.8.4 | 2.8.4 | n/a | - | 2.6.2_5 |
| FreeBSD:15:quarterly | 2.8.4 | 2.8.4 | n/a | n/a | n/a |
| FreeBSD:16:latest | 2.8.4 | 2.8.4 | n/a | n/a | n/a |
| FreeBSD:16:quarterly | n/a | n/a | n/a | n/a | n/a |
Dependencies
As this port's Makefile names them.
Build 1
cxxopts>0: devel/cxxopts
Library 2
libcosta.so: math/costalibopenblas.so: math/openblas
The full lists below include those, and their dependencies in turn.
Build dependencies 36
- archivers/liblz4
- archivers/zstd
- devel/binutils
- devel/cmake-core
- devel/cxxopts
- devel/gettext-runtime
- devel/hwloc2
- devel/json-c
- devel/jsoncpp
- devel/level-zero
- devel/libepoll-shim
- devel/libffi
- devel/libpciaccess
- devel/libunistring
- devel/libuv
- devel/ninja
- devel/readline
- dns/libidn2
- lang/gcc14
- lang/perl5.42
- lang/python312
- math/costa
- math/gmp
- math/mpc
- math/mpdecimal
- math/mpfr
- math/openblas
- math/scalapack
- misc/hwdata
- net/libfabric
- net/mpich
- ports-mgmt/pkg
- print/indexinfo
- security/rhash
- textproc/expat2
- textproc/libxml2
Run dependencies 22
No port depends on this one.
Configuration
No options to configure.
- USES
- cmake:testing mpi:mpich
- Service scripts
- none
Files
pkg-plist 54
- bin/cosma_miniapp
- bin/cosma_statistics
- bin/layout_miniapp
- include/cosma/aligned_allocator.hpp
- include/cosma/blacs.hpp
- include/cosma/blas.hpp
- include/cosma/buffer.hpp
- include/cosma/cinterface.hpp
- include/cosma/communicator.hpp
- include/cosma/context.hpp
- include/cosma/cosma_pxgemm.hpp
- include/cosma/environment_variables.hpp
- include/cosma/gpu/gpu_aware_mpi_utils.hpp
- include/cosma/gpu/gpu_runtime_api.hpp
- include/cosma/gpu/nccl_mapper.hpp
- include/cosma/gpu/nccl_utils.hpp
- include/cosma/gpu/utils.hpp
- include/cosma/interval.hpp
- include/cosma/layout.hpp
- include/cosma/local_multiply.hpp
- include/cosma/mapper.hpp
- include/cosma/math_utils.hpp
- include/cosma/matrix.hpp
- include/cosma/memory_pool.hpp
- include/cosma/mpi_mapper.hpp
- include/cosma/multiply.hpp
- include/cosma/one_sided_communicator.hpp
- include/cosma/pinned_buffers.hpp
- include/cosma/profiler.hpp
- include/cosma/pxgemm_params.hpp
- include/cosma/random_generator.hpp
- include/cosma/scalapack.hpp
- include/cosma/statistics.hpp
- include/cosma/strategy.hpp
- include/cosma/timer.hpp
- include/cosma/two_sided_communicator.hpp
- lib/cmake/cosma/FindARMPL.cmake
- lib/cmake/cosma/FindATLAS.cmake
- lib/cmake/cosma/FindBLIS.cmake
- lib/cmake/cosma/FindBlas.cmake
- lib/cmake/cosma/FindCRAY_LIBSCI.cmake
- lib/cmake/cosma/FindFLEXIBLAS.cmake
- lib/cmake/cosma/FindGenericBLAS.cmake
- lib/cmake/cosma/FindMKL.cmake
- lib/cmake/cosma/FindNCCL.cmake
- lib/cmake/cosma/FindNVPL.cmake
- lib/cmake/cosma/FindOPENBLAS.cmake
- lib/cmake/cosma/FindSCALAPACK.cmake
- lib/cmake/cosma/cosmaConfig.cmake
- lib/cmake/cosma/cosmaConfigVersion.cmake
- lib/cmake/cosma/cosmaTargets-.cmake
- lib/cmake/cosma/cosmaTargets.cmake
- lib/libcosma.so
- libdata/pkgconfig/cosma.pc
distinfo 2
| File | Size | SHA256 |
|---|---|---|
| eth-cscs-COSMA-v2.8.4_GH0.tar.gz | 1.562576e+06 | b478cc239a99baf6fdf889d123308a6b01a4521330bdb3f4def457feb0f7dfa0 |
| eth-cscs-Tiled-MM-9e880f9_GH0.tar.gz | 139512 | bde0484ec241a393bb0fd82cb1d4ab0421ecbbfa85b50e442bf1c364803070a3 |