Search code examples
c++multithreadingboostgraphboost-graph

boost graph removing edges vs filtered_graph performance


A single threaded boost graph that repeatedly removes and then adds same edges later seems to be faster than a multi-threaded filtered_graph that uses edge predicates to concurrently do the same on multiple filtered graphs of the same underlying graph.

Possibly, filtered_graph traverses each and every edge and applies the predicate.

Is there a way to directly generate a filtered_graph without predicates i.e. use functions like remove_edge but actually create a filtered_graph?


Solution

  • Just use copy_graph on the filtered graph: