Fantastisch ohne Sperre
Eine Sammlung von Ressourcen zur wartefreien und sperrenfreien Programmierung.
Noch bessere Ressource von MattPD: C++-Links: Atomics, Lock Free, Speichermodell.
Bibliotheken
- Boost.Lockfree – Verbessert sperrenfreie Datenstrukturen.
- ConcurrencyKit – Parallelitätsprimitive.
- Crossbeam – Rust-Bibliothek für gleichzeitige Programmierung.
- Folly – Facebook Open-Source-Bibliothek (mit guter Implementierung der MPMC-Warteschlange).
- Junction – Gleichzeitige Datenstrukturen in C++.
- MPMCQueue – Eine begrenzte, sperrenfreie Warteschlange für mehrere Produzenten und mehrere Konsumenten, geschrieben in C++11.
- SPSCQueue – Eine begrenzte, in C++11 geschriebene wartefreie und sperrenfreie Warteschlange für einen einzelnen Produzenten und einen einzelnen Verbraucher.
- Seqlock – Implementierung von Seqlock in C++.
- Userspace RCU – liburcu ist eine Userspace-RCU-Bibliothek (Read-Copy-Update).
- libcds – Eine C++-Bibliothek gleichzeitiger Datenstrukturen.
- liblfds – portable, lizenzfreie, sperrenfreie Datenstrukturbibliothek, geschrieben in C.
- xenium – Eine C++-Bibliothek, die verschiedene gleichzeitige Datenstrukturen und Wiederherstellungsschemata bereitstellt.
Websites
- 1024cores – Dmitry Vyukovs Website zur sperrenfreien Programmierung.
- LMAX-Disruptor
- Wikipedia: Nicht blockierender Algorithmus
- Wikipedia: Lesen-Kopieren-Update
- Wikipedia: Seqlock
Blogs
- Concurrency Freaks – Eine Website, die sich den gleichzeitigen Algorithmen und Mustern widmet.
- Dan Luu – Viele Informationen zur modernen Computerarchitektur.
- Webkit sperren
- Mechanische Sympathie
- Paul E. McKenney
- Preshing zum Programmieren
- Sutter's Mill – Herb Sutter über Softwareentwicklung.
- Paul Khuong
Bücher
- Paul E. McKenney . Ist paralleles Programmieren schwierig und wenn ja, was können Sie dagegen tun?
- Maurice Herlihy und Nir Shavit . Die Kunst der Multiprozessorprogrammierung
Papiere
- Eine Tutorial-Einführung in die ARM- und POWER-Relaxed-Memory-Modelle
- Paul E. McKenney . Speicherbarrieren: eine Hardware-Sicht für Software-Hacker.
- Einfache, schnelle und praktische nicht-blockierende und blockierende gleichzeitige Warteschlangenalgorithmen – Die Michael-Scott-Warteschlange
- Ulrich Drepper . Was jeder Programmierer über Speicher wissen sollte
- x86-TSO: Ein strenges und verwendbares Programmiermodell für x86-Multiprozessoren
Gespräche
- CppCon 2014: Herb Sutter „Lock-Free Programming (oder Jonglieren mit Rasierklingen), Teil I“
- CppCon 2014: Herb Sutter „Lock-Free Programming (oder Jonglieren mit Rasierklingen), Teil II“
- CppCon 2015: Fedor Pikus TEIL 1 „Live Lock-Free oder Deadlock (Praktische Lock-free-Programmierung)“
- CppCon 2015: Fedor Pikus TEIL 2 „Live Lock-Free or Deadlock (Praktische Lock-free-Programmierung)“
- CppCon 2015: Michael Wong „C++14.11.17 Atom- und Speichermodell …“
- CppCon 2015: Paul E. McKenney „C++ Atomics...“
- CppCon 2014: Tony Van Eerd „Lock-free by example“
- CppCon 2016: Fedor Pikus „Die Geschwindigkeit der Parallelität: Ist Lock-Free schneller?“
- CppCon 2016: Hans Boehm „Schwach geordnete C++-Atomics richtig verwenden“
- CppCon 2017: Fedor Pikus „C++-Atomics, von einfach bis fortgeschritten. Was machen sie wirklich?“
- CppCon 2017: Fedor Pikus „Lesen, kopieren, aktualisieren, was dann?“ RCU für Nicht-Kernel-Programmierer“
- CppCon 2017: P. McKenney, M. Michael und M. Wong „Ist paralleles Programmieren immer noch schwierig?“ TEIL 1 von 2“
- CppCon 2017: P. McKenney, M. Michael und M. Wong „Ist paralleles Programmieren immer noch schwierig?“ TEIL 2 von 2“
- CppCon 2018: „Die Landschaft und die aufregende neue Zukunft der sicheren Rückgewinnung für Höchstleistungen“
- C++ und darüber hinaus 2012: Herb Sutter – Atomwaffen, 1 von 2
- C++ und darüber hinaus 2012: Herb Sutter – Atomwaffen, 2 von 2
- „Aeron: Open-Source-Hochleistungs-Messaging“ von Martin Thompson
- Abenteuer mit gleichzeitiger Programmierung in Java: Eine Suche nach vorhersehbarer Latenz – Martin Thompson
- Den Disruptor verstehen, ein Leitfaden für Anfänger zur Hardcore-Parallelität – Trisha Gee & Mike Barker
Um
Diese Liste wurde von Erik Rigtorp <[email protected]> zusammengestellt.