BSD Ports

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.

Repositoryaarch64amd64armv6armv7i386
FreeBSD:14:latest2.8.42.8.4--2.8.4
FreeBSD:14:quarterly2.8.42.8.4n/a-2.8.4
FreeBSD:15:latest2.8.42.8.4n/a-2.6.2_5
FreeBSD:15:quarterly2.8.42.8.4n/an/an/a
FreeBSD:16:latest2.8.42.8.4n/an/an/a
FreeBSD:16:quarterlyn/an/an/an/an/a

Dependencies

As this port's Makefile names them.

Build 1

Library 2

The full lists below include those, and their dependencies in turn.

Build dependencies 36
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
FileSizeSHA256
eth-cscs-COSMA-v2.8.4_GH0.tar.gz1.562576e+06b478cc239a99baf6fdf889d123308a6b01a4521330bdb3f4def457feb0f7dfa0
eth-cscs-Tiled-MM-9e880f9_GH0.tar.gz139512bde0484ec241a393bb0fd82cb1d4ab0421ecbbfa85b50e442bf1c364803070a3

Commit history 1

DateCommitCreditsLog message
91eafc4ac8 Yuri Victorovich math/cosma: update 2.6.2 → 2.8.4