Is Parallel Programming Hard, And, If So, What Can You Do About It?(Release v2023. 06.11 a)
PE McKenney - arxiv preprint arxiv:1701.00854, 2017 - arxiv.org
The purpose of this book is to help you program shared-memory parallel systems without
risking your sanity. Nevertheless, you should think of the information in this book as a …
risking your sanity. Nevertheless, you should think of the information in this book as a …
Scalable concurrent hash tables via relativistic programming
J Triplett, PE McKenney, J Walpole - ACM SIGOPS Operating Systems …, 2010 - dl.acm.org
This paper presents a novel concurrent hash table implementation which supports wait-free,
near-linearly scalable lookup, even in the presence of concurrent modifications. In particular …
near-linearly scalable lookup, even in the presence of concurrent modifications. In particular …
Harmonizing speculative and non-speculative execution in architectures for ordered parallelism
Multicore systems should support both speculative and non-speculative parallelism.
Speculative parallelism is easy to use and is crucial to scale many challenging applications …
Speculative parallelism is easy to use and is crucial to scale many challenging applications …
xCalls: Safe I/O in memory transactions
Memory transactions, similar to database transactions, allow a programmer to focus on the
logic of their program and let the system ensure that transactions are atomic and isolated …
logic of their program and let the system ensure that transactions are atomic and isolated …
A new analysis of the value of unlabeled data in semi-supervised learning for image retrieval
There has been an increasing interest in using unlabeled data in semi-supervised learning
for various classification problems. Previous work shows that unlabeled data can improve or …
for various classification problems. Previous work shows that unlabeled data can improve or …
Applying transactional memory to concurrency bugs
Multithreaded programs often suffer from synchronization bugs such as atomicity violations
and deadlocks. These bugs arise from complicated locking strategies and ad hoc …
and deadlocks. These bugs arise from complicated locking strategies and ad hoc …
Distributed computing and the multicore revolution
Changes in technology can have far-reaching effects on theory. For example, while Turing's
work on computability predated the first electronic computers, complexity theory flowered …
work on computability predated the first electronic computers, complexity theory flowered …
Nepaltm: design and implementation of nested parallelism for transactional memory systems
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel
programming: NePalTM: design and implementa Page 1 NePaLTM: Design and …
programming: NePalTM: design and implementa Page 1 NePaLTM: Design and …
Towards transactional memory semantics for c++
T Shpeisman, AR Adl-Tabatabai, R Geva, Y Ni… - Proceedings of the …, 2009 - dl.acm.org
Transactional memory (TM) eliminates many problems associated with lock-based
synchronization. Over recent years, much progress has been made in software and …
synchronization. Over recent years, much progress has been made in software and …
Tolerating concurrency bugs using transactions as lifeguards
Parallel programming is hard, because it is impractical to test all possible thread
interleavings. One promising approach to improve a multi-threaded program's reliability is to …
interleavings. One promising approach to improve a multi-threaded program's reliability is to …