Okay, that is really odd. Your results indicate that it is really slow on the filtered graph, but fast on the pruned graph.

For me, the results are always the same for the filtered and pruned.

What I found out though is that my anaconda graph tool is much faster for the sample, different to the global graph tool installation. I am also running it with multiple threads. But anyways, the sample should seldomly be that much slower than the full dataset.

Strange, I'll try to find out more.

Best,

Philipp

On 27.07.2016 17:43, Alexandre Hannud Abdo wrote:
Hi Philipp,

Not with the sample you provided.

Trying here, time decreases below that for the original graph.

(I had to change the sample to increase n and sample size, otherwise it was just too fast to capture)

In [1]: %paste

import random
import graph_tool.all as gt
n=100000
g = gt.price_network(n,10,directed=False)
%time gt.eigenvector(g)
def node_sample(g, g_vertices, n_samples):
        return random.sample(g_vertices, n_samples)
sample = node_sample(g, [x for x in g.vertices()], int(n/10))
vfilt = g.new_vertex_property('bool')
for s in sample:
        vfilt[s] = True
g_sample = gt.GraphView(g, vfilt=vfilt)
%time gt.eigenvector(g_sample)
u = gt.Graph(g_sample, prune=True)
%time gt.eigenvector(u)

## -- End pasted text --
CPU times: user 747 ms, sys: 0 ns, total: 747 ms
Wall time: 748 ms
CPU times: user 12.2 s, sys: 0 ns, total: 12.2 s
Wall time: 12.2 s
CPU times: user 335 ms, sys: 0 ns, total: 335 ms
Wall time: 335 ms

Cheers
.~´



On Wed, Jul 27, 2016 at 5:35 PM, Philipp Singer <killver@gmail.com> wrote:

Thanks for the hint, I tried that but it is the same runtime as on the filtered graph.

Best, Philipp

On 27.07.2016 17:16, Tiago de Paula Peixoto wrote:
On 27.07.2016 17:06, Philipp Singer wrote:
g = gt.price_network(10000,10,directed=False)
%time gt.eigenvector(g)

def node_sample(g, g_vertices, n_samples):
    return random.sample(g_vertices, n_samples)
sample = node_sample(g, [x for x in g.vertices()], 1000)

vfilt = g.new_vertex_property('bool')
for s in sample:
    vfilt[s] = True
g_sample = gt.GraphView(g, vfilt=vfilt)

%time gt.eigenvector(g_sample)
If you want to check if the difference is due to graph filtering, you
can compare with:

    u = gt.Graph(g_sample, prune=True)
    gt.eigenvector(u)

Best,
Tiago



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


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




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