Document Type

Technical Report

Publication Date



Computer architecture -- Design, Software architecture, Synchronization


We propose and document a new concurrent programming model, relativistic programming. This model allows readers to run concurrently with writers, without blocking or using expensive synchronization. Relativistic programming builds on existing synchronization primitives that allow writers to wait for current readers to finish with minimal reader overhead. Our methodology models data structures as graphs, and reader algorithms as traversals of these graphs; from this foundation we show how writers can implement arbitrarily strong ordering guarantees for the visibility of their writes, up to and including total ordering.


Portland State University Computer Science Department Technical Report "11-03." A version of this report was presented at the 2nd Workshop on Determinism and Correctness in Parallel Programming (WoDet 2011).

Persistent Identifier