ALP User Documentation  0.8.preview
Algebraic Programming User Documentation
ALP User Documentation Documentation

The Algebraic Programming (ALP) project is a modern and humble C++ programming framework that achieves scalable and high performance.With ALP, programmers are encouraged to express programs using algebraic concepts directly. ALP is a humble programming model in that it hides all optimisations pertaining to parallelisation, vectorisation, and other complexities with programming large-scale and heterogeneous systems.

ALP presently exposes the following interfaces:

  1. generalised sparse linear algebra, ALP/GraphBLAS;
  2. vertex-centric programming, ALP/Pregel.

Several other programming interfaces are under design at present.

Additionally, to ease integration with existing software, ALP defines so-called Transition path libraries. Such libraries may be employed to replace existing libraries, therefore benefitting of ALP-optimised software without having to change any source code– simply switch out the library linked against, and transparently enjoy speedups such as enabled by the nonblocking backend.

The Transition path libraries are presently in a prototype stage. Presently, the following interfaces are (partially) implemented:

  1. the SparseBLAS standard (partial);
  2. the SpBLAS de-facto standard (partial);
  3. the Solvers CRS/CSR-based sparse solver API (CG and PCG); and
  4. the KML Sparse Solver API.

These transition path libraries are built and installed by default. Both sequential and shared-memory parallel libraries are provided.

The maintainers are happy to consider requests for expanding the currently available transition paths, both in terms of missing functions in the presently available libraries, as well as of additional libraries; please feel free to submit feature requests on GitHub or Gitee, and/or to contact the maintainers.

For the many authors who contributed to ALP, please see the NOTICE file distributed with ALP. The underwrited would like to take the opportunity here to express their sincere thanks for the many contributors over the years.

Project contact information:

Author
A. N. Yzelman, Huawei Technologies France (2016-2020)
A. N. Yzelman, Huawei Technologies Switzerland AG (2020-current)