Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Efficient Lock-Free Work-stealing Iterators for...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

Efficient Lock-Free Work-stealing Iterators for Data-Parallel Collections

Avatar for Dmitry Petrashko

Dmitry Petrashko

March 05, 2015

Other Decks in Programming

Transcript

  1. WORKSTEALING SCHEDULER Threads steal work from each other. No cooperation

    from target thread needed, lock free. A. Prokopec and M. Odersky. Near optimal work-stealing tree scheduler for highly irregular data- parallel workloads. LCPC 2013
  2. DATA ACCESS OVERHEAD Data consumer abstracts over data source: Inefficiencies:

    iteration scheme(eg iterate over tree as if over indexed collection), redundant data copying, boxing (Jvm, Python, Ruby, JavaScript).
  3. SCHEDULING OVERHEAD Lets say we have a HashMap: Most HashMaps

    by nature create irregular workload. Efficient scheduling has to be data-structure aware.
  4. WORK-STEALING ITERATORS Define: how to iterate; how to steal work.

    Transparent for user. Easy to implement for developer.
  5. Eliminating abstraction penalties is necessary to realistically assess the scheduling

    quality. High abstraction penalties could entirely mask scheduling penalties. TAKEAWAY MESSAGE