Parallel programming in Ruby3 with Guild
summary
Guild is a new concurrent abstraction for Ruby 3 that prohibits sharing mutable objects by default and defines four kinds of shareable values plus copy and move semantics for sending data between Guilds. A buggy prototype implements master‑worker Guilds and shows a surprising 15–16× speedup on a 40‑virtual‑CPU Fibonacci workload but also a real problem where a word‑count demo runs slower because GC causes slowdowns due to naive locking and incomplete GC/VM synchronization.
AI-written summary · about
chapters (39)
- 0:00Introduction
- 0:16Presentation
- 1:43Photo
- 2:06Performance improvement
- 3:02Transient Heap
- 6:31Transient Hip
- 7:29Summary
- 8:14Guild background
- 9:57Guild concurrent abstraction
- 12:02Sharing mutable objects
- 13:13Sharing local objects
- 13:33Non shareable projects
- 14:28Non shareable objects
- 15:14Immutable objects
- 18:10Special objects
- 19:47Isolation
- 21:20Shared Project
- 21:57Shared Objects
- 24:53Copy Semantics
- 26:21IO Objects
- 26:55IO Summary
- 27:31CSP Model
- 29:05Retrieve multiple channels
- 29:59Retrieve multichannel
- 30:24JavaScript
- 30:43Channel Toggle
- 31:21Channel Case
- 31:52Special Context
- 32:02Finegrained synchronization
- 32:29Garbage collection
- 32:46Features
- 33:49Naming
- 34:04Guild name
- 34:17Guild code name
- 34:39Preparing the 40 virtual CPUs
- 35:04Worker model
- 36:26Execution time
- 36:56Speedup ratio
- 38:27QA Session
related talks
42mRuby 3 Concurrency
40mRUBY 3.0 - SINGLE PROCESS, MULIPLE POSSIBILITIES
23mParallel Processing With Ruby
38m"Parallel and Thread-Safe Ruby at High-Speed with TruffleRuby"
28mConcurrency for Rubyists
23mParallelization of Dynamic Languages - Synchronizing Built-in Collections
43mParallel and Thread-Safe Ruby at High-Speed with TruffleRuby
54mConcurrency: Rubies, plural
