Subject: Re: [boost] Flow-based programming library for Boost?
From: Jeremiah Willcock (jewillco_at_[hidden])
Date: 2012-12-05 21:56:36
On Wed, 5 Dec 2012, Dave Abrahams wrote:
> on Wed Dec 05 2012, Marcus Tomlinson <themarcustomlinson-AT-gmail.com> wrote:
>> Is there any interest out there for a library that allows you to create
>> fast, efficient flow-based programs with an easy-to-use object-oriented
>> interface? (http://en.wikipedia.org/wiki/Flow-based_programming)
>> I've created an open-source library that does this, called "DSPatch" (
>> http://sourceforge.net/projects/dspatch) and would like to contribute it to
>> the Boost Libraries.
>> Please let me know if this sounds like something you'd like to see in Boost.
> If you want such a library to be truly efficient, you should be able to
> wire together the dataflows at compile-time and not pay any overhead for
> composing large computations out of smaller ones. The accumulators
> library uses something like a dataflow model, with the "wiring" done
> completely at compile-time.
I have written a prototype for that type of framework, with inlining of
adjacent flow nodes and both compile-time and run-time wiring available,
but it is in C++11 and would need to be cleaned up before it is ready to
release. I experience some performance loss when compared to hand-written
code, but that may be a function of exactly the benchmarks chosen for
testing and details of the version of GCC I used for the tests. See
for some information and performance results; although the paper is about
using it in a parallel context, the system itself is not heavily tied to
parallelism and could be adapted to work purely sequentially (I have done
that for testing just by creating stub implementations of the few parallel
constructs it uses).
-- Jeremiah Willcock
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk