Am 16.03.20 um 11:48 schrieb ioana:
Hi, I am computing a weight for each edge, in a graph of some million nodes and about 50 mil edges. Initially, it was doing 25000 edges per minute, so it should have finished processing in about 30+ hours. Now I check the server for results after more than 72 hours, and the process is still running, but very slowly, doing less than 1000 edges per minute. Is there anything I am doing wrong, or what could be the reason for such a slowdown?
It's hard to get to the bottom of things, since you are not even trying to explaining what you wan to do. But looking very briefly at your code, I can see the following problems:
You should not do a property map lookup inside the deeper loop, it's better to look it up outside and keep it around:
elabel = g.edge_properties["label_id"]
Avoid looking up edge descriptors like this:
This takes time O(k) where k is the degree of an endpoint. Since you are using array-based iteration, you should put the property map you want in the first call to g.get_edges().
These are just some things that pop out, but it might be that there is an altogether better way to achieve whatever it is you want do.