Le lun. 3 juil. 2017 à 13:00, Tiago de Paula Peixoto <[email protected]> a
écrit :

> On 03.07.2017 12:16, François Kawala wrote:
> > I cProfiled old versus your last commit. The graph has 7 953 158
> vertices, I
> > sample 100 vertices and do shortest_distance from each one. I specify no
> > target, and set the max_dist parameter. After each call to
> > shortest_distance, I use the reached array to reset the predecessor map.
> In
> > average each search reaches 120177 vertices.
> >
> >   * 2.22 : 9.101 seconds
> >   * commit 26404ef4 :  4.536 seconds
> >   * commit 26404ef4 + no dist map init : 4.141 seconds
>
> Well, the last improvement is only about 9%... We're clearly seeing
> diminishing returns. As I had expected, numpy initialization is pretty
> fast.
>

Yes, numpy does its job quite well, still 9% is non-negligible to me.


> > About the third configuration (no dist map init), I removed the distance
> map
> > initialization (graph_tool/topology/__init__.py L1779
> > <
> https://git.skewed.de/count0/graph-tool/blob/master/src/graph_tool/topology/__init__.py#L1779
> >)
> > and used the reached array to reset dist_map to infinity.
>
> Did you do the same with the predecessor map as well?
>
>
Yep (see above).


> > We could have a do_initialization parameter, I think it would be more
> > explicit, see my proposal
> > <
> https://git.skewed.de/francois/graph-tool/commit/946826546a80f1f080681a4eaaa5fb2590b5abd4
> >.
>
> I don't like this very much. The list of reached vertices might be useful
> even if the user is not interested in the no_init optimization, so I think
> it is better decoupled. Furthermore, you are ignoring the predecessor map,
> which will give a cryptic error if the user chooses do_initialization=False
> and forgets to pass pred_map, and will ignore the value passed by the user
> otherwise.
>
>
I agree. We could split the function into "shortest_distance" and
"shortest_distance_no_init". But, if I'm the sole user of this function
it'll be much more sensible that I implement it my projet.

Another related question, why it is necessary to copy the reached array ?

Regards,
François


> --
> Tiago de Paula Peixoto <[email protected]>
>
> _______________________________________________
> graph-tool mailing list
> [email protected]
> https://lists.skewed.de/mailman/listinfo/graph-tool
>
_______________________________________________
graph-tool mailing list
[email protected]
https://lists.skewed.de/mailman/listinfo/graph-tool

Reply via email to