Cytoscape.js GPU benchmarks

v4 executor 'cpu' vs 'gpu' · times are per-call p50 · 2026-08-10 22:13 · 44e55dc9 (v4) · chromium v24.18.0 · algorithms-gpu profile

Machine and provenance
CPUIntel(R) Core(TM) i9-9900K CPU @ 3.60GHz
Cores8 physical / 16 logical · 3.6 GHz base · 5 GHz max
Memory62.6 GiB
GPUCoffeeLake-S GT2 [UHD Graphics 630] i915
Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] (8.0 GiB) amdgpu
Adapteramd gcn-4
Browserchromium 149.0.7827.55
OSFedora Linux 43 (Workstation Edition) · 6.19.14-200.fc43.x86_64 · x64
Nodev24.18.0 (v8 13.6.233.17-node.50)
Commit44e55dc9
perf(65.10): the CPU takes two families back — flat hierarchical merges, sparse PageRank, and honest re-routing (+ the wide benchmark page)
Machine id5cf3f79c
Median speedup (geo-mean) 4.4× 30 cpu-vs-gpu comparisons
Biggest win 647× markovClustering @ N=1.024k
cpu still ahead 8 comparisons
Total run time 4.9 min algorithms-gpu profile

Speedup overview cpu p50 ÷ gpu p50, log scale · right of the 1× line = gpu faster

markovClustering @ 1.024k
647×
markovClustering @ 512
285×
kMedoids @ 4.096k
121×
markovClustering @ 256
70×
fuzzyCMeans @ 65.536k
70×
kMedoids @ 2.048k
53×
fuzzyCMeans @ 16.384k
38×
floydWarshall @ 1.024k
29×
fuzzyCMeans @ 4.096k
27×
kMeans @ 65.536k
22×
kMedoids @ 1.024k
20×
betweennessCentrality @ 2.048k
17×
kMeans @ 16.384k
14×
floydWarshall @ 512
12×
betweennessCentrality @ 1.024k
9.6×
kMeans @ 4.096k
7.6×
betweennessCentrality @ 512
4.0×
affinityPropagation @ 1.024k
3.7×
floydWarshall @ 256
3.4×
affinityPropagation @ 256
2.5×
affinityPropagation @ 512
1.84×
hierarchicalClustering @ 1.024k
1.00×
hierarchicalClustering @ 4.096k
0.93×
hierarchicalClustering @ 2.048k
0.92×
pageRankDense @ 2.048k
0.18×
pageRankDense @ 1.024k
0.18×
pageRankDense @ 512
0.13×
pageRank @ 512
0.06×
pageRank @ 1.024k
0.01×
pageRank @ 2.048k
0.00×
0.001×0.01×0.1×10×100×1000×

Scaling speedup vs graph size

algorithms-gpu

group× @ N=256× @ N=512× @ N=1.024k× @ N=2.048k× @ N=4.096k× @ N=16.384k× @ N=65.536k
markovClustering70×285×647×
floydWarshall3.4×12×29×
affinityPropagation2.5×1.84×3.7×
pageRank0.06×0.01×0.00×
pageRankDense0.13×0.18×0.18×
betweennessCentrality4.0×9.6×17×
kMedoids20×53×121×
hierarchicalClustering1.00×0.92×0.93×
kMeans7.6×14×22×
fuzzyCMeans27×38×70×

algorithms-gpu N=256 · 4.5 sv4 (gpu) v4 (cpu)

markovClustering
70×
floydWarshall
3.4×
affinityPropagation
2.5×
1 ms10 ms100 ms1 s
All stats (table view)
groupbenchp50avgp99minsamples
markovClusteringcpu 615 ms615 ms 617 ms611 ms 5
markovClusteringgpu 8.80 ms9.16 ms 8.90 ms8.50 ms 5
markovClusteringgpu first call 28.0 ms28.0 ms 28.0 ms28.0 ms 1
floydWarshallcpu 23.4 ms23.4 ms 23.4 ms23.2 ms 5
floydWarshallgpu 6.90 ms6.94 ms 7.00 ms6.80 ms 5
floydWarshallgpu first call 20.1 ms20.1 ms 20.1 ms20.1 ms 1
affinityPropagationcpu 39.5 ms40.8 ms 40.1 ms38.0 ms 5
affinityPropagationgpu 15.5 ms15.7 ms 15.8 ms14.7 ms 5
affinityPropagationgpu first call 27.9 ms27.9 ms 27.9 ms27.9 ms 1

algorithms-gpu N=512 · 32.7 sv4 (gpu) v4 (cpu)

markovClustering
285×
pageRank
0.06×
pageRankDense
0.13×
floydWarshall
12×
betweennessCentrality
4.0×
affinityPropagation
1.84×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
markovClusteringcpu 4.79 s4.78 s 4.80 s4.76 s 5
markovClusteringgpu 16.8 ms17.9 ms 16.8 ms16.7 ms 5
markovClusteringgpu first call 25.8 ms25.8 ms 25.8 ms25.8 ms 1
pageRankcpu 400 µs460 µs 400 µs300 µs 5
pageRankgpu 6.90 ms6.76 ms 6.90 ms6.30 ms 5
pageRankgpu first call 13.5 ms13.5 ms 13.5 ms13.5 ms 1
pageRankDensecpu 900 µs900 µs 900 µs800 µs 5
pageRankDensegpu 6.80 ms7.00 ms 7.20 ms6.50 ms 5
pageRankDensegpu first call 31.5 ms31.5 ms 31.5 ms31.5 ms 1
floydWarshallcpu 179 ms218 ms 180 ms179 ms 5
floydWarshallgpu 15.5 ms15.3 ms 15.5 ms14.6 ms 5
floydWarshallgpu first call 16.7 ms16.7 ms 16.7 ms16.7 ms 1
betweennessCentralitycpu 36.0 ms36.1 ms 36.3 ms35.5 ms 5
betweennessCentralitygpu 9.00 ms9.30 ms 9.30 ms8.70 ms 5
betweennessCentralitygpu first call 19.3 ms19.3 ms 19.3 ms19.3 ms 1
affinityPropagationcpu 206 ms206 ms 207 ms203 ms 5
affinityPropagationgpu 112 ms113 ms 113 ms111 ms 5
affinityPropagationgpu first call 117 ms117 ms 117 ms117 ms 1

algorithms-gpu N=1,024 · 3.4 minv4 (gpu) v4 (cpu)

markovClustering
647×
pageRank
0.01×
pageRankDense
0.18×
floydWarshall
29×
betweennessCentrality
9.6×
affinityPropagation
3.7×
kMedoids
20×
hierarchicalClustering
1.00×
100 µs1 ms10 ms100 ms1 s10 s100 s
All stats (table view)
groupbenchp50avgp99minsamples
markovClusteringcpu 30.3 s30.3 s 30.3 s30.2 s 5
markovClusteringgpu 46.8 ms50.2 ms 46.9 ms46.3 ms 5
markovClusteringgpu first call 62.1 ms62.1 ms 62.1 ms62.1 ms 1
pageRankcpu 100 µs120 µs 100 µs100 µs 5
pageRankgpu 17.8 ms18.0 ms 18.2 ms17.7 ms 5
pageRankgpu first call 19.8 ms19.8 ms 19.8 ms19.8 ms 1
pageRankDensecpu 3.60 ms3.62 ms 3.60 ms3.60 ms 5
pageRankDensegpu 20.5 ms21.6 ms 20.9 ms20.5 ms 5
pageRankDensegpu first call 96.6 ms96.6 ms 96.6 ms96.6 ms 1
floydWarshallcpu 1.41 s1.95 s 2.97 s1.17 s 5
floydWarshallgpu 48.0 ms50.8 ms 50.2 ms38.8 ms 5
floydWarshallgpu first call 51.5 ms51.5 ms 51.5 ms51.5 ms 1
betweennessCentralitycpu 149 ms151 ms 151 ms149 ms 5
betweennessCentralitygpu 15.6 ms16.5 ms 15.7 ms15.0 ms 5
betweennessCentralitygpu first call 17.1 ms17.1 ms 17.1 ms17.1 ms 1
affinityPropagationcpu 1.11 s1.54 s 2.18 s1.08 s 5
affinityPropagationgpu 297 ms296 ms 298 ms292 ms 5
affinityPropagationgpu first call 296 ms296 ms 296 ms296 ms 1
kMedoidscpu 82.5 ms74.5 ms 84.6 ms52.9 ms 5
kMedoidsgpu 4.10 ms3.82 ms 4.30 ms3.00 ms 5
kMedoidsgpu first call 12.7 ms12.7 ms 12.7 ms12.7 ms 1
hierarchicalClusteringcpu 27.9 ms30.0 ms 33.8 ms23.7 ms 5
hierarchicalClusteringgpu 27.8 ms27.6 ms 28.1 ms26.4 ms 5
hierarchicalClusteringgpu first call 37.3 ms37.3 ms 37.3 ms37.3 ms 1

algorithms-gpu N=2,048 · 9.7 sv4 (gpu) v4 (cpu)

pageRank
0.00×
pageRankDense
0.18×
betweennessCentrality
17×
kMedoids
53×
hierarchicalClustering
0.92×
100 µs1 ms10 ms100 ms1 s
All stats (table view)
groupbenchp50avgp99minsamples
pageRankcpu 300 µs260 µs 300 µs200 µs 5
pageRankgpu 73.2 ms72.2 ms 73.8 ms67.6 ms 5
pageRankgpu first call 87.8 ms87.8 ms 87.8 ms87.8 ms 1
pageRankDensecpu 14.8 ms15.7 ms 14.8 ms14.7 ms 5
pageRankDensegpu 81.8 ms81.6 ms 82.8 ms79.8 ms 5
pageRankDensegpu first call 395 ms395 ms 395 ms395 ms 1
betweennessCentralitycpu 650 ms658 ms 651 ms634 ms 5
betweennessCentralitygpu 37.5 ms39.2 ms 40.1 ms36.1 ms 5
betweennessCentralitygpu first call 43.7 ms43.7 ms 43.7 ms43.7 ms 1
kMedoidscpu 246 ms260 ms 310 ms163 ms 5
kMedoidsgpu 4.60 ms5.88 ms 4.90 ms3.70 ms 5
kMedoidsgpu first call 6.00 ms6.00 ms 6.00 ms6.00 ms 1
hierarchicalClusteringcpu 99.3 ms99.8 ms 100 ms98.1 ms 5
hierarchicalClusteringgpu 108 ms113 ms 113 ms105 ms 5
hierarchicalClusteringgpu first call 103 ms103 ms 103 ms103 ms 1

algorithms-gpu N=4,096 · 15.0 sv4 (gpu) v4 (cpu)

kMeans
7.6×
fuzzyCMeans
27×
kMedoids
121×
hierarchicalClustering
0.93×
1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
kMeanscpu 30.5 ms31.2 ms 30.9 ms29.9 ms 5
kMeansgpu 4.00 ms4.06 ms 4.20 ms3.70 ms 5
kMeansgpu first call 14.1 ms14.1 ms 14.1 ms14.1 ms 1
fuzzyCMeanscpu 156 ms160 ms 161 ms153 ms 5
fuzzyCMeansgpu 5.80 ms5.78 ms 6.00 ms5.50 ms 5
fuzzyCMeansgpu first call 18.8 ms18.8 ms 18.8 ms18.8 ms 1
kMedoidscpu 1.46 s1.37 s 1.47 s926 ms 5
kMedoidsgpu 12.0 ms13.3 ms 12.4 ms9.80 ms 5
kMedoidsgpu first call 12.0 ms12.0 ms 12.0 ms12.0 ms 1
hierarchicalClusteringcpu 420 ms421 ms 423 ms417 ms 5
hierarchicalClusteringgpu 452 ms454 ms 457 ms444 ms 5
hierarchicalClusteringgpu first call 478 ms478 ms 478 ms478 ms 1

algorithms-gpu N=16,384 · 4.7 sv4 (gpu) v4 (cpu)

kMeans
14×
fuzzyCMeans
38×
1 ms10 ms100 ms1 s
All stats (table view)
groupbenchp50avgp99minsamples
kMeanscpu 127 ms128 ms 128 ms125 ms 5
kMeansgpu 9.00 ms9.24 ms 9.10 ms7.90 ms 5
kMeansgpu first call 17.7 ms17.7 ms 17.7 ms17.7 ms 1
fuzzyCMeanscpu 616 ms621 ms 631 ms606 ms 5
fuzzyCMeansgpu 16.3 ms15.4 ms 18.4 ms11.4 ms 5
fuzzyCMeansgpu first call 22.8 ms22.8 ms 22.8 ms22.8 ms 1

algorithms-gpu N=65,536 · 20.0 sv4 (gpu) v4 (cpu)

kMeans
22×
fuzzyCMeans
70×
10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
kMeanscpu 613 ms613 ms 614 ms606 ms 5
kMeansgpu 27.7 ms27.7 ms 27.8 ms27.4 ms 5
kMeansgpu first call 78.4 ms78.4 ms 78.4 ms78.4 ms 1
fuzzyCMeanscpu 2.57 s2.57 s 2.58 s2.54 s 5
fuzzyCMeansgpu 36.8 ms38.3 ms 37.2 ms36.4 ms 5
fuzzyCMeansgpu first call 84.8 ms84.8 ms 84.8 ms84.8 ms 1