Avalanche 0.99

Avalanche is a C++11 library for building fine-grained data flow graphs: graphs of nodes that communicate by sending large numbers of small messages. Unlike its inspiration tbb::flow, Avalanche is designed for graphs whose nodes send small elements frequently. It thus makes the choice to fix more of the data flow graph at compile-time, rather than enabling most of it to be changed at run-time; this choice allows the C++ compiler to optimize flow graphs to greatly reduce overheads. Both sequential and distributed-memory graphs are supported, with AM++ used for high-performance fine-grained message passing. More information is available in a paper at the Workshop on Functional High Performance Computing, 2012. The paper covers a previous version of Avalanche but the goals and concepts in use remain the same. The Avalanche distribution also contains a domain-specific language embedded in C++ for writing queries in lattice-valued Datalog. Avalanche requires a high-quality implementation of C++11; GCC 4.7 is the earliest tested version.

The current version of Avalanche can be downloaded here, and the documentation is also available as a separate file.

Authors:Jeremiah Willcock, Andrew Lumsdaine.
Copyright:Trustees of Indiana University, 2013.
License:Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)