[graph-tool] shortest_distance / concurrency / graph view

François Kawala francois.kawala at gmail.com
Tue Oct 4 18:55:55 CEST 2016


Hello,

I have a rather fuzzy question about the topology.shortest_distance
function. I'll try to explain my problem as clearly as I can. If I fail to
be clear enough, don't waste your time, just let me know.

I have a pool of workers using one single graph view instance, each work
calls a function f described below. The graph view has an edge filter.

def f(g, origin, targets_ids, weights):
    d, p = topology.shortest_distance(g, source=origin, target=targets_ids,
weights=weights, pred_map=True)
    i = score(d)
    path = topology.shortest_path(g, source=origin, target=targets_ids[i],
pred_map=p)

    return path


Once in a while, the path from function f is not consistant with the graph
view (it goes through disabled edges).

I tried to reproduce the error in a single thread environment. The exact
same inputs do not fail as observed previously (ie. with multiple workers).

It seems highly unlikely, but would it be possible for the predecessor map
"p" to be overwritten by the actions of an another worker in the pool ? I'm
asking because I ran out of ideas to explain this problem, although it
sounds dumb.

Bests,
François.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.skewed.de/pipermail/graph-tool/attachments/20161004/6e7bd120/attachment.htm>


More information about the graph-tool mailing list