About the run time in cloud computing scenario my measure might be useless. A cloud instance is a VM that runs on I don't know what hardware and might be shared with I don't know who. So even if inside my VM the CPU was idle, I don't now how the CPU was used by other VMs. That being said, for our particular cloud service provider we observe (on a daily basis for several months) that the performances are below what we have on our modern workstations. 

Just to be clear : I'm neither complaining about graph tool performances, nor thinking about improvements that would be cloud computing driven. I just wanted to make clear that modest improvement (as measured on a modern work station) might be very meaningful in another environment. 

In order to profile the initialization I moved the initialization code in two functions init_pmap and init_dist, and did 100 runs of shortest_distance with identical parameters, cProfiles gives : 

23484 function calls (23331 primitive calls) in 6.733 seconds
Ordered by: cumulative time

ncalls  tottime  percall  cumtime  percall filename:lineno(function)
100     3.723    0.037    6.731    0.067   graph_tool/topology/__init__.py:1512(shortest_distance)
100     0.001    0.000    1.833    0.018   graph_tool/topology/__init__.py:1507(init_pmap)
100     0.000    0.000    1.833    0.018   graph_tool/decorators.py:1(copy_property)
200/100 0.003    0.000    1.832    0.018   graph_tool/decorators.py:126(wrapper)
100     1.275    0.013    1.827    0.018   graph_tool/__init__.py:2348(copy_property)
100     0.001    0.000    1.163    0.012   graph_tool/topology/__init__.py:1500(init_dist)
100     0.000    0.000    0.645    0.006   graph_tool/__init__.py:661(<lambda>)
100     0.643    0.006    0.644    0.006   graph_tool/__init__.py:614(__get_set_f_array)
700     0.001    0.000    0.540    0.001   graph_tool/__init__.py:166(_prop)
700     0.003    0.000    0.538    0.001   graph_tool/__init__.py:392(_get_any)
700     0.534    0.001    0.534    0.001   graph_tool/__init__.py:814(reserve)
200     0.000    0.000    0.518    0.003   graph_tool/__init__.py:559(get_array)
200     0.515    0.003    0.517    0.003   graph_tool/__init__.py:581(_get_data)
200     0.004    0.000    0.011    0.000   graph_tool/__init__.py:2289(new_vertex_property)
200     0.002    0.000    0.010    0.000   graph_tool/__init__.py:3071(__init__)
600     0.002    0.000    0.008    0.000   graph_tool/__init__.py:377(__init__)
200     0.002    0.000    0.007    0.000   graph_tool/__init__.py:1531(__init__)
100     0.000    0.000    0.006    0.000   graph_tool/__init__.py:2274(new_property)
800     0.002    0.000    0.004    0.000   graph_tool/__init__.py:202(_type_alias)
599     0.001    0.000    0.003    0.000   graph_tool/__init__.py:437(__del__)
600     0.001    0.000    0.002    0.000   graph_tool/__init__.py:264(_converter)
599     0.002    0.000    0.002    0.000   graph_tool/__init__.py:432(__unregister_map)
200     0.001    0.000    0.002    0.000   graph_tool/__init__.py:909(__new__)

The complete cprofile output is attached to this mail.

Le jeu. 29 juin 2017 à 13:16, Tiago de Paula Peixoto <tiago@skewed.de> a écrit :
On 29.06.2017 11:58, François Kawala wrote:
> I did the above timings on a modern work station, to switch to a cloud
> provider induces a non negligible overhead (+63% for the distances / +469%
> for the pred map).

This I don't understand at all. Why would the behavior in a "cloud"
environment be any different?

--
Tiago de Paula Peixoto <tiago@skewed.de>

_______________________________________________
graph-tool mailing list
graph-tool@skewed.de
https://lists.skewed.de/mailman/listinfo/graph-tool