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