$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] Boost.Graph Metagraph project
From: Gordon Woodhull (gordon_at_[hidden])
Date: 2011-01-16 03:10:17
On Jan 15, 2011, at 11:23 PM, caustik wrote:
> This sounds relevant to my interests -- Can these meta-graphs be recursive?
> In other words, can a meta-graph contain a subgraph of itself as a node?
Those sorts of higher-order graph problems are why I started thinking about metagraphs many years ago. When I found out about MPL I realized that all kinds of - graphs at levels of detail, subgraphs, bipartite graphs, graphs within graphs, graphs of graphs - could be implemented by using graph metadata graphs to describe the structure of the runtime graphs.
The higher-order runtime graph data structure ("metagraph") is no longer simply vertices and edges, it is many types, but the way those types are connected is a compile-time graph "pattern". (Or even several overlaid patterns. For instance, a node in one pattern is also a subgraph in another pattern.)
Expect progress on this in 2011.
> Also curious if, and to what extent, the project might support MPI?
Not sure which way you mean this.
* MPL.Graph is purely compile-time (wish we could parallelize that!).
* I haven't thought about parallelizing metagraphs yet because I haven't written them yet - I'll be sure to get some ideas from Parallel BGL.
* Joel Falcou has this intriguing Quaff project to build up compile-time skeletons of data flow for parallelized algorithms and IIRC we talked at BoostCon about how it would be neat to generalize skeletons to compile-time graphs. Anywhere you know the whole contents of the graph at compile time - in that case, the contents of some expressions - you might want to consider MPL.Graph for paying the abstraction penalty upfront instead of passing it on to your users.
Thanks for the interest!
Gordon