~/talk

A Tale of Breadth-First Search

Talkat GopherCon Europe 2020 · 2020-06-15..06-18· [software-architecture]
slides:none on file

Starts from a baseline BFS over a social graph of 65 million nodes, 1.8 billion edges using a compact adjacency list that cuts memory from 15.9GB to 7GB. Uses measurement, profiling and iterative experiments: replacing visited set with level array, sorting node slices (uint32 specialization then radix), loop unrolling, fusing checks, and chunked parallelism to avoid load imbalance and cache fights. Results end up 48s → 3.8s on a 48-core NUMA box and 2× on one core (48s→24s); many failed attempts (bloom/cuckoo, naive parallel split).

AI-written summary · about

  1. 0:00Intro
  2. 2:04Basic Process
  3. 3:51Basic ideas for modern processors
  4. 6:23Breadth First Search
  5. 9:25Back of the envelope calculation...
  6. 11:52Reusing Level
  7. 15:21Random Access Part 2
  8. 18:09Cuckoo and Bloom Filter?
  9. 18:53Unrolling loops
  10. 20:22Basic ideas for modern processor parallelism
  11. 23:42Bottlenecks
  12. 26:34Multilevel bitmaps
  13. 27:57Single Core: 48s - 24s
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.