profile_lg.py 1.31 KB
Newer Older
GaiYu0's avatar
GaiYu0 committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import argparse
import time

import dgl
import dgl.backend as F
import igraph
import networkx as nx
import numpy as np
import scipy.sparse as sp

parser = argparse.ArgumentParser()
parser.add_argument('--bt', action='store_true', help='BackTracking')
parser.add_argument('--n-nodes', type=int, help='Number of NODES')
args = parser.parse_args()

n = args.n_nodes
a = sp.random(n, n, 1 / n, data_rvs=lambda n: np.ones(n))
b = sp.triu(a, 1) + sp.triu(a, 1).transpose()
g = dgl.DGLGraph()
g.from_scipy_sparse_matrix(b)

N = 10

t0 = time.time()
for i in range(N):
    lg_sparse = g.line_graph(args.bt)
    g._graph._cache.clear()
t = (time.time() - t0) / N
print('dgl.DGLGraph.line_graph: %f' % t)

t0 = time.time()
for i in range(N):
    lg = g._line_graph(args.bt)
    g._graph._cache.clear()
t = (time.time() - t0) / N
print('dgl.DGLGraph._line_graph: %f' % t)

g = igraph.Graph()
g.add_vertices(n)
g.add_edges(list(zip(a.row.tolist(), a.col.tolist())))

'''
t0 = time.time()
for i in range(N):
    lg = g.linegraph()
t = (time.time() - t0) / N
print('igraph.Graph._line_graph: %f' % t)
'''

t = 0
for i in range(N):
    g = igraph.Graph()
    g.add_vertices(n)
    g.add_edges(list(zip(a.row.tolist(), a.col.tolist())))
    t0 = time.time()
    lg = g.linegraph()
    t += time.time() - t0
t /= N
print('igraph.Graph.linegraph: %f' % t)