~/talk

"Parallel and Thread-Safe Ruby at High-Speed with TruffleRuby"

Talkat RubyC 2019 · 2019-09-14..09-15· [ruby]
slides:none on file

TruffleRuby on GraalVM and SubstrateVM makes Array and Hash thread-safe without a global lock, using write barrier marking objects shared and dual storage strategies (shared fixed, shared dynamic) plus a layout lock with read/write/layout-change modes. Benchmarks show 200 FPS on a NES emulator (vs ~30–60), up to 7× faster than MRI, 30× on microbenchmarks, and 30 billion array accesses/sec on 144 cores, with single-thread overhead negligible and parallel scaling comparable to Fortran/Java.

AI-written summary · about

  1. 0:00Intro
  2. 1:42Two Modes to Run Truffle Ruby
  3. 3:06Ruby 33 Project
  4. 3:37OptCarrot: Demonstration
  5. 7:34OptCarrot Warmup
  6. 8:17Classic Benchmarks
  7. 8:45MJIT Micro-Benchmarks
  8. 9:57Rails benchmarks? Discourse?
  9. 11:18How Truffle Ruby achieves great performance
  10. 11:47From Ruby code to Abstract Syntax Tree
  11. 13:37Partial Evaluation of foo
  12. 17:31Loop unrolling
  13. 18:05Truffle Ruby: Partial Evaluation + Graal Compilation
  14. 18:38MJIT: The Method JIT for CRuby
  15. 20:40Ruby Performance Summary
  16. 21:48The Problem
  17. 23:57Guilds
  18. 25:28Appending concurrently
  19. 26:24A Workaround: using a Mutex
  20. 26:37Problems of the Workarounds
  21. 27:51Similar Problem with Objects
  22. 28:09Lost Object Field Updates
  23. 29:53Write Barrier Tracking the set of shared objects
  24. 30:19Single-Threaded Performance for Objects
  25. 31:11Array Storage Strategies
  26. 32:35Concurrent Array Strategies
  27. 33:19Scalability of Array Reads and Writes
  28. 34:56NASA Parallel Benchmarks
  29. 35:32Conclusion
~/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.