Stretch: A Fault-Driven DSM Runtime for Distributed Multithreaded Applications
summary
Stretch is a userspace, page-granularity DSM runtime that uses userfaultfd-based fault interception, centralized MSI-style coherence, and CRIU-driven thread placement to extend a process across machines. Evaluation on four CloudLab servers shows compute-heavy workloads (Matrix Multiply) gain 3.39× speedup, while fine-grained write sharing (KMeans) triggers invalidation storms and collapses performance. RDMA cuts key coherence operations by up to 4× versus TCP but loses its edge when the central server becomes CPU-bound.
AI-written summary · about
chapters (9)
- 0:00Introduction
- 3:30Linux primitives for DSM
- 7:04Stretch architecture
- 12:23Page faults and sync
- 15:11Performance setup
- 16:57Homogeneous scaling
- 19:03Heterogeneous performance
- 20:05Key takeaways
- 21:13Q&A
related talks
23mTeRM: Extending RDMA-Attached Memory with SSD
25mElastic Scaling of Stateful Network Functions
16mDRust: Language-Guided Distributed Shared Memory with Fine Granularity, Full...
17mDuhu: Shared Disaggregated Memory for Distributed Data Processing Frameworks
39mTrust Deterministic Execution to Scale & Simplify Your Systems
16mPreview: Cloud Computing
32mStretch Clusters in Ceph: Algorithms, Use Cases, and Improvements
15mCollie: Finding Performance Anomalies in RDMA Subsystems
