
Dave Abrahams <dave <at> boostpro.com> writes:
At Wed, 5 Jan 2011 13:35:59 -0500 (EST), Jeremiah Willcock wrote:
On Mon, 3 Jan 2011, caustik wrote:
Is it currently possible to represent a highly connected graph where any given vertex may contain more directed edges than can be held in a single process' OutEdgeListS?
I see that the distributed version of adjacency_list allows vertices to be distributed across multiple processes in a process group, but I don't see the ability to allow directed edges to be distributed across multiple processes. Is this an intentional limitation?
No, it is not possible. PBGL currently distributes graph vertices (a so-called 1-D distribution) and keeps each edge with its source vertex. To do what you are describing, we would need to implement 2-D (edge-based) distributions, which do not fit into the current PBGL design.
Another thought I had, if graph connectivity is really super-high, is that you might be able to use the inverse graph representation.
Caustik, what kind of kernels and/or algorithms you want to run on the distributed graph? Combinatorial BLAS has evolved quite a bit (with many more primitives, more flexible vector distributions, a few more example algorithms, and numerous bug fixes) from the 1.0 alpha version that is on the web. Until the next release (likely to happen in a month or two), I can share the active branch with you if your application seems to fit well. If it doesn't, it'll still be very useful for us to see what kind of primitives we do not support so that we can include them in the future. Cheers, - Aydin