Parallelization of Dynamic Languages - Synchronizing Built-in Collections
summary
An implementation in TruffleRuby adds a local vs shared heap tag and applies gradual synchronization to Ruby Array and Hash instances, switching from no locks to a lightweight layout lock and lock-free bucket/list structures. Benchmarks up to 44 CPUs show near-zero single-thread overhead, linear scaling for Array/Hash accesses, and scalability comparable to Fortran/Java on NAS parallel kernels; the system is implemented and the measurements support the main claims.
AI-written summary · about
chapters (7)
- 0:00Start
- 0:17Contribution Parallelization of Dynamic Languages
- 1:23Background Concurrency in Dynamic Languages
- 2:44Challenges
- 5:12Concurrent Strategies
- 17:30Lightweight Layout Lock Concurrent Accesses
- 18:32Summary Dynamic Languages Built-in Collections
related talks
38m"Parallel and Thread-Safe Ruby at High-Speed with TruffleRuby"
43mParallel and Thread-Safe Ruby at High-Speed with TruffleRuby
25mMaking Hash Parallel, Thread-Safe and Fast!
28mConcurrency for Rubyists
23mParallel Processing With Ruby
34mWriting concurrent libraries for all Ruby runtimes
40mRUBY 3.0 - SINGLE PROCESS, MULIPLE POSSIBILITIES
39mParallel programming in Ruby3 with Guild
