Relativistic programming: Difference between revisions

Content deleted Content added
bolding
change paradigms template to navbox (see Template talk:Programming paradigms#too long)
 
(18 intermediate revisions by 16 users not shown)
Line 1:
{{multiple issues|
{{Programming paradigms}}
{{Refimprove|date=May 2011}}
{{Notability|date=May 2011}}
}}
 
'''Relativistic programming''' ('''RP''') is a style of [[concurrent programming]] where instead of trying to avoid conflicts between readers and writers (or writers and writers in some cases) the algorithm is designed to tolerate them and get a correct result regardless of the order of events. Also, relativistic programming algorithms are designed to work without the presences of a global order of events. That is, inthere somemay therebe maybesome cases where one thread sees a two events in a different order thenthan another thread (hence the term relativistic because in [[Special relativity|Einstein's theory of special relativity]]{{citation needed|reason=This is not referenced in the source|date=December 2015}} the order of events is not always the same to different viewers). This essentially implies working under [[causal consistency]] instead of a stronger model.
 
Relativistic programming provides advantages in performance compared to other concurrency paradigms because it does not require one thread to wait for another nearly as often. Because of this, forms of it ([[Read-Copy-Update]] for instance) are now used extensively in the [[Linux kernel]] (moreover than 518,000 times {{as of|20112021|04|lc=on}} and has grown from nothing to 11.8% of all locking primitives in just under two decades).<ref>{{Cite web|title=RCU Linux Usage|url=http://www.rdrop.com/users/paulmck/RCU/linuxusage.html|author=Paul E. McKenney|access-date=2021-08-28|website=www.rdrop.com}}</ref>
 
== See also ==
* [[Non-blocking algorithm]]
 
== References ==
Line 9 ⟶ 15:
 
== External links ==
* [http://wiki.cs.pdx.edu/rp/ Relativistic Programming] Atat [[Portland State University]]
 
{{Programming paradigms navbox}}
{{comp-sci-stub}}
 
[[Category:Concurrent computing]]
 
{{comp-sci-stub}}