Highlights:
-
This release re-implements the nonblocking ALP/GraphBLAS backend by Mastoras
et al. (GrAPL/IPDPSW '22, TACO '23) on the latest ALP code base. The use of
the nonblocking backend for some algorithms results in multiple-factor
speedups versus standard blocking execution as well as versus external
industry-standard frameworks. This includes Eigen, which, like nonblocking
ALP/GraphBLAS, perform cross-operation fusion. Simply compile your ALP
programs usinggrbcxx -b nonblocking
, and enjoy the speedups! -
We also introduce a new programming interface to the ALP software stack that
allows vertex-centric programming in addition to programming using
generalised sparse linear algebra. This new interface, ALP/Pregel,
translates vertex-centric programs to standard ALP/GraphBLAS primitives
during compilation, and thus benefits of all automatic optimisations
included with the ALP software stack. -
Support for software prefetching during
vxm
andmxv
has been added to
thereference
andreference_omp
backends. Since optimal prefetch
settings and its overall effectiveness relies strongly on 1) the structure
of the sparse matrices and graphs considered as well as on 2) the algorithms
used on those data, this new feature is turned off by default. To use it,
please enable it viainclude/graphblas/reference/config.hpp
and tune the
there-defined prefetch distances. -
Finally, this release includes another new backend, the
hyperdags
backend.
A program compiled with this backend will, after execution, dump a HyperDAG
representation of the ALP computations that the program executed.
More detailed changes since v0.6 are noted in the changelog.
This release has been thoroughly tested using various combinations of:
- OS: Fedora 31, CentOS Stream, Ubuntu 20.04 LTS;
- GCC: 8.5.0, 9.3.1, 9.4.0, and 12.2.0;
- MPI: MPICH 3.3.2, MPICH 3.4.2, and OpenMPI 4.1.1;
- Linux kernels: 4.18.0, 5.4.0, and 5.8.18;
- Architectures: x86_64 and ARMv8.2.