Corpus ID: 22846517

Is Parallel Programming Hard, And, If So, What Can You Do About It? (v2017.01.02a)

@article{McKenney2017IsPP,
  title={Is Parallel Programming Hard, And, If So, What Can You Do About It? (v2017.01.02a)},
  author={P. McKenney},
  journal={ArXiv},
  year={2017},
  volume={abs/1701.00854}
}
php?content_key=184 http://www.rdrop.com/users/ paulmck/RCU/OLSrtRCU.2006.08. 11a.pdf [Viewed January 1, 2007]. [MSS04] Paul E. McKenney, Dipankar Sarma, and Maneesh Soni. Scaling dcache with RCU. Linux Journal, 1(118):38– 46, January 2004. Available: http: //www.linuxjournal.com/node/7124 [Viewed December 26, 2010]. [MT01] Jose F. Martinez and Josep Torrel- las. Speculative locks for concurrent execution of critical sections in shared-memory multiprocessors. In Workshop on Memory Performance… Expand

Figures, Tables, and Topics from this paper

Distributed Computing with Modern Shared Memory
TLDR
This thesis revisits classic problems in shared-memory distributed computing through the lenses of (1) emerging hardware technologies and (2) changing requirements and presents a novel efficient multi-word compare-and-swap algorithm for persistent memory. Expand
Accelerating Wait-Free Algorithms: Pragmatic Solutions on Cache-Coherent Multicore Architectures
TLDR
This paper proposes a write-buffer and cache-friendly queue algorithm which is wait-free and efficient on off-the-shelf multicore processors and demonstrates that these techniques can be applied to otherWait-free algorithms while maintaining the control flow of the original algorithms without dramatic changes. Expand
High-level C++ implementation of the read-copy-update pattern
TLDR
The C++ RCU class library is presented, carefully designed to optimise performance in a heavily multithreaded environment, in the same time providing high-level abstractions, like smart pointers and other C++11/14/17 features. Expand
A study on the most popular questions about concurrent programming
TLDR
An empirical investigation of the top-250 most popular questions about concurrent programming on StackOverflow found that even though some questions are related to practical problems, most of them arerelated to basic concepts, which were created by well- experienced Stack overflow users. Expand
When Do Real Time Systems Need Multiple CPUs
TLDR
Rules of thumb are provided to help choose whether your real-time application should be parallel, and, if so, what sort of parallelism is best for you. Expand
Dynamic Adaptations of Synchronization Granularity in Concurrent Data Structures
TLDR
This dissertation proposes concurrent data structures that dynamically adapt their synchronization granularity and organization based on usage statistics collected at run-time and proposes a concurrent priority queue that dynamically changes its precision based on detected contention. Expand
P2055R0: A Relaxed Guide to memory_order_relaxed
The out-of-thin-air (OOTA) and read-from-untaken-branch (RFUB) properties of the specification of memory_order_relaxed have resulted in considerable consternation over the years. Although there areExpand
Oral Comprehensive Exam Position Paper Performance Analysis of Many-Task Runtimes
TLDR
The models of parallel programming which are currently in wide use are introduced, the challenges of the coming exascale era of high-performance computing are discussed, and new parallel programming models which are emerging to meet those challenges are discussed. Expand
Lock–Unlock
TLDR
It is highlighted that locking involves more considerations than the simple lock/unlock interface and call for further research on designing low-memory footprint adaptive locks that fully and efficiently support the full lock interface, and consider all performance metrics. Expand
An HTM-based update-side synchronization for RCU on NUMA systems
TLDR
This paper introduces an RCU extension (RCX) that provides highly scalable RCU updates on NUMA systems while retaining RCU's read-side benefits and applies RCX to parallelize some of the Linux kernel memory management system and an in-memory database system. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 644 REFERENCES
Perspectives on OS foundations
TLDR
I will look more closely at the research around two principles I was involved with: locality and location independent naming, and virtual memory. Expand
Issues with Selected Scalability Features of the 2 . 6 Kernel Dipankar Sarma
The 2.6 LinuxTM kernel has a number of features that improve performance on high-end SMP and NUMA systems. Finer-grain locking is used in the scheduler, the block I/O layer, hardware and softwareExpand
Programming with POSIX threads
TLDR
This book offers an in-depth description of the IEEE operating system interface standard, POSIXAE (Portable Operating System Interface) threads, commonly called Pthreads, and explains basic concepts such as asynchronous programming, the lifecycle of a thread, and synchronization. Expand
Advanced Programming in the UNIX Environment
  • W. Stevens
  • Computer Science
  • Addison-Wesley professional computing series
  • 1992
TLDR
This edition covers more than seventy new interfaces, including POSIX asynchronous I/O, spin locks, barriers, and POSIX semaphores, and aligns with Version 4 of the Single UNIX Specification. Expand
Mixed-size concurrency: ARM, POWER, C/C++11, and SC
TLDR
It is shown that adding a memory barrier between each instruction does not restore sequential consistency, and the C/C++11 model is extended to support non-atomic mixed-size memory accesses, a necessary step towards semantics for real-world shared-memory concurrent code, beyond litmus tests. Expand
Java Concurrency in Practice
TLDR
Java Concurrency in Practice provides the concepts and techniques needed to write safe and scalable Java programs for today's--and tomorrow's--systems, and addresses the fundamental issues and complexities of concurrency with uncommon clarity. Expand
Futexes Are Tricky
Starting with early version of the 2.5 series, the Linux kernel contains a light-weight method for process synchronization. It is used in the modern thread library implementation but is also usefulExpand
The art of multiprocessor programming
TLDR
This talk will survey the area ofTransactional memory, a computational model in which threads synchronize by optimistic, lock-free transactions, with a focus on open research problems. Expand
Read-log-update: a lightweight synchronization mechanism for concurrent programming
This paper introduces read-log-update (RLU), a novel extension of the popular read-copy-update (RCU) synchronization mechanism that supports scalability of concurrent code by allowing unsynchronizedExpand
Selecting Locking Primitives for Parallel Programs
TLDR
This paper presents a pattern language to assist you in selecting synchronization primitives for parallel programs, and assumes you have already chosen a locking design, perhaps by using alocking design pattern language McK95b. Expand
...
1
2
3
4
5
...