
2010/5/30 Jeremiah Willcock <jewillco@osl.iu.edu>:
On Sun, 30 May 2010, Giorgio Zoppi wrote:
2010/5/30 Adam Merz <adammerz@hotmail.com>:
Giorgio Zoppi <giorgio.zoppi <at> gmail.com> writes:
we're intersted in how to optimize BGL on Multicore for adding our standard Bellman-Ford algorithms for optical networks. How do the current boost work on Multicore? BGL is thread-safe? Which parts are required to optimize?
I believe what you're interested in is the Parallel BGL. See
http://www.boost.org/doc/libs/release/libs/graph_parallel/doc/html/index.htm... and http://osl.iu.edu/research/pbgl/
I skimmed the doc, however we're more fit in a multicore solution than a distributed process solution. I cannot find something about that in the doc. Any hints?
We are in the process of adding shared-memory/hybrid parallelism to PBGL, but that's still in a very early stage. You can run multiple MPI processes on the same machine (running them on different cores) and they will communicate using shared memory. One issue that comes up is that memory is often the limitation for graph algorithms, not CPU performance; in that case, multicores don't really do much for performance. Are you using more expensive algorithms that aren't memory intensive? If so, there might be ways to do simple things with existing BGL algorithms to make them run with shared memory (for example, adding OpenMP pragmas).
So if the graph is with sparse matrix, you could provide a more compact implementation and modify (parallelize) your algorithms. -- Quiero ser el rayo de sol que cada día te despierta para hacerte respirar y vivir en me. "Favola -Moda".