Потрясающе без блокировки
Коллекция ресурсов по программированию без ожидания и блокировки.
Еще лучший ресурс от MattPD: ссылки на C++: атомарность, без блокировок, модель памяти.
Библиотеки
- Boost.Lockfree — Усиление структур данных без блокировок.
- ConcurrencyKit — примитивы параллелизма.
- crossbeam — библиотека Rust для параллельного программирования.
- Folly — библиотека с открытым исходным кодом Facebook (имеет хорошую реализацию очереди MPMC).
- Соединение — параллельные структуры данных в C++.
- MPMCQueue — ограниченная очередь без блокировок с несколькими производителями и потребителями, написанная на C++11.
- SPSCQueue — ограниченная очередь без ожидания и блокировки с одним производителем и одним потребителем, написанная на C++11.
- Seqlock — реализация Seqlock на C++.
- Пользовательское пространство RCU — liburcu — это библиотека пользовательского пространства RCU (чтение-копирование-обновление).
- libcds — библиотека C++ параллельных структур данных.
- liblfds — портативная, не требующая лицензий и блокировки библиотека структур данных, написанная на C.
- xenium — библиотека C++, предоставляющая различные параллельные структуры данных и схемы восстановления.
Веб-сайты
- 1024cores — сайт Дмитрия Вьюкова по lock-free программированию.
- LMAX разрушитель
- Википедия: Неблокирующий алгоритм
- Википедия: Читать-копировать-обновлять
- Википедия: Сиклок
Блоги
- Concurrency Freaks — веб-сайт, посвященный параллельным алгоритмам и шаблонам.
- Дэн Луу — Много информации о современной компьютерной архитектуре.
- Блокировка в Webkit
- Механическая симпатия
- Пол Э. Маккенни
- Прешинг по программированию
- Sutter's Mill - Херб Саттер о разработке программного обеспечения.
- Пол Хуонг
Книги
- Пол Э. Маккенни . Трудно ли параллельное программирование, и если да, то что с этим можно сделать?
- Морис Херлихи и Нир Шавит . Искусство многопроцессорного программирования
Статьи
- Учебное введение в модели расслабленной памяти ARM и POWER
- Пол Э. Маккенни . Барьеры памяти: аппаратный взгляд для хакеров программного обеспечения.
- Простые, быстрые и практичные неблокирующие и блокирующие алгоритмы параллельной очереди — Очередь Майкла — Скотта
- Ульрих Дреппер . Что каждый программист должен знать о памяти
- x86-TSO: строгая и удобная модель программиста для мультипроцессоров x86
Переговоры
- CppCon 2014: Херб Саттер «Программирование без блокировок (или жонглирование лезвиями), часть I»
- CppCon 2014: Херб Саттер «Программирование без блокировок (или жонглирование лезвиями), часть II»
- CppCon 2015: Федор Пикус ЧАСТЬ 1 «Живой Lock-Free или Deadlock (Практическое безблокировочное программирование)»
- CppCon 2015: Федор Пикус ЧАСТЬ 2 «Live Lock-Free или Deadlock (Практическое программирование без блокировки)»
- CppCon 2015: Майкл Вонг «Атомика C++ и модель памяти 14.11.17…»
- CppCon 2015: Пол Э. Маккенни «Атомика C++…»
- CppCon 2014: Тони Ван Эрд «Пример безблокировок»
- CppCon 2016: Федор Пикус «Скорость параллелизма: без блокировок быстрее?»
- CppCon 2016: Ханс Бём «Правильное использование слабоупорядоченных атомов C++»
- CppCon 2017: Федор Пикус «Атомика C++: от базового к продвинутому. Что они на самом деле делают?»
- CppCon 2017: Федор Пикус «Читать, копировать, обновлять, а потом что? RCU для программистов, не использующих ядро»
- CppCon 2017: П. Маккенни, М. Майкл и М. Вонг «Параллельное программирование все еще сложно? ЧАСТЬ 1 из 2»
- CppCon 2017: П. Маккенни, М. Майкл и М. Вонг «Параллельное программирование все еще сложно? ЧАСТЬ 2 из 2»
- CppCon 2018: «Пейзаж и захватывающее новое будущее безопасной рекультивации для высокой производительности»
- C++ и далее 2012: Херб Саттер — атомное <> оружие, 1 из 2
- C++ и далее 2012: Херб Саттер — атомное <> оружие, 2 из 2
- «Aeron: высокопроизводительный обмен сообщениями с открытым исходным кодом», Мартин Томпсон
- Приключения с параллельным программированием на Java: В поисках предсказуемой задержки - Мартин Томпсон
- Понимание Disruptor: руководство для начинающих по жесткому параллелизму – Триша Джи и Майк Баркер
О
Этот список был составлен Эриком Ригторпом <[email protected]>.