Skip to content

Latest commit

 

History

History
93 lines (62 loc) · 2.82 KB

File metadata and controls

93 lines (62 loc) · 2.82 KB

Warning

This includes preliminary results and various notes for myself. Not necesarilly well structured or explained.

Fully-connected graphs with undirected edges.

$$\text{num edges} = \binom{n}{2} = \frac{n(n-1)}{2}$$

Rust Cuda libraries

Cuda in general

Run

See the main Readme for better installation instructions.

$ RUST_BACKTRACE=full cargo run --bin edges --profile release

Expected results

first 20: [2, 0, -2, -2, -2, -2, 0, -2, -2, -2, 2, -2, -2, 0, -2, -2, -2, 1, 0, -3]

# for 6000 elements total:
last 20: [-5, -4, -5, -5, -2, -4, -6, -4, -4, -4, 8, -8, -5, -8, -4, -4, -4, 7, -6, -5]

Timing

These are preliminary results. See the paper for the official results.

Number of nodes Time CPU Time GPU
10,000 12s 173.2ms
15,000 24s -
20,000 42s 438ms
30,000 93s 1.09s
35,000 132s 1.73s
40,000 159s (cannot sort anymore) -
50,000 couldn't test due to memory constraints (RAM) -
100,000 - 2.57s
200,000 - 3.80s
300,000 - 11.33s (weird alignment issue?)
350,000 - 5.88s
400,000 - 2.64s
500,000 - 2.21s
611,786 - 1.38s

1 to 46: 30 runs each
47 to 51: 12 runs each

Other useful stuff

Diff two binary files. Command from here:

cmp --silent ../data/graph/final/edges.cpu.bin ../data/graph/final/edges.gpu.bin # check error code (!)
diff <(xxd ../data/graph/final/edges.cpu.bin) <(xxd ../data/graph/final/edges.gpu.bin)

Show head of binary file.

head -c 100 ../data/graph/edges-new-gpu.bin | od -t d1

Graphs

We consider different ranges of edge weights. See the paper for more details.

Weight range Details
$[60, 100]$ puissant ego
$[40, 49]$ étirer ego
$[8, 10]$ $30,185$ nodes ($30.19%$), $306,473$ edges (big view)
only $-35$ does not give any good results
$[60, 100]$ emporter ego (based on $458,529$ edges, small graph: $449$ nodes, $5921$ edges)

Rendering via Gephi: node opacity 20, edge opacity 30