ValeevGroup/tiledarray

A massively-parallel, block-sparse tensor framework written in C++

What it solves

TiledArray is a scalable, block-sparse tensor framework designed for high-performance tensor arithmetic. It simplifies the composition of complex tensor expressions in C++ while ensuring the system can scale from a single multicore computer to massive distributed-memory multiprocessors, which is particularly useful for fields like many-body quantum mechanics.

How it works

Built on top of the MADNESS parallel runtime (MADWorld), the framework allows users to write tensor expressions using a notation that closely resembles standard mathematical notation and the Einstein summation convention. It supports both dense and block-sparse tensors and provides a highly customizable framework where tile types and sparse tensor structures can be customized to support features like on-disk storage or compute-on-the-fly tensors.

Who it’s for

It is intended for researchers and developers working in scientific computing and high-performance computing (HPC) who need to perform massive tensor operations on distributed-memory systems.

Highlights

  • Math-like Syntax: Uses C++ code that mimics mathematical notation and Einstein summation for intuitive expression composition.
  • Massive Parallelism: Scales across shared- and distributed-memory systems, outperforming some standard libraries like ScaLAPACK in specific benchmarks.
  • Block-Sparse Support: Efficiently handles both dense and block-sparse tensors.
  • Extensible Design: Allows customization of tile types and the description of sparse tensor structures.

Related

  • Project
  • Project
  • Project
  • Project
  • Project