stingergraph / StingerGraphs.jl

Julialang bindings to the STINGER graph database
http://www.stingergraph.com
Other
5 stars 3 forks source link

Parallel BFS #23

Closed rohitvarkey closed 7 years ago

rohitvarkey commented 7 years ago

This uses UnsafeAtomics.jl to implement Level Synchronous BFS in Julia for Stinger.

Initial benchmarks obtained (These are Julia/C numbers):

Scale/Threads 1 2 4 8 32 64
10 1.5859 0.0104 99.9372 0.692 1.4707 3.5134
11 1.1607 0.0217 38.5463 0.3151 1.4657 1.8696
12 1.1402 0.041 0.1108 1.3321 42.6524 1.4289
13 1.0981 1.3229 1.156 1.187 19.6739 2.2734
14 1.1803 0.1913 0.1708 1.2786 11.1331 1.3569
15 1.1596 0.3282 1.2608 1.3237 1.9055 1.5542
16 1.0708 0.6158 0.4762 1.3801 1.1388 1.5599
17 1.0831 1.4996 0.766 1.4089 1.1401 1.3816
18 1.0968 1.7159 1.4202 1.4567 1.2391 1.6354
19 1.1733 1.6895 1.3711 1.6127 1.4332 1.2869
20 1.1709 1.4653 1.3411 1.4465 1.2679 1.6138

cc: @jpfairbanks @ehein6

jpfairbanks commented 7 years ago

These numbers along with the plots you emailed me look great. This really will be good for HPEC. The next step is to run this UnsafeAtomics for level synchronous BFS on the LightGraphs data structure.

Then we can make the comparison Julia Native / Stinger.jl + @threads/ Stinger + OpenMP.

rohitvarkey commented 7 years ago

@jpfairbanks Cool! I'll work on that as the next PR. Can you review this in the meantime?