William N Scherer

William N Scherer
Rice University · Department of Computer Science

About

26
Publications
4,164
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
2,518
Citations

Publications

Publications (26)
Conference Paper
Today's largest supercomputers have over two hundred thousand CPU cores and even larger systems are under development. Typically, these systems are programmed using message passing. Over the past decade, there has been considerable interest in developing simpler and more expressive programming models for them. Partitioned global address space (PGAS...
Article
Full-text available
In Numrich and Reid's 1998 proposal [17], Coarray Fortran is a simple set of extensions to Fortran 95, principal among which is support for shared data known as coarrays. Responding to short-comings in the Fortran Standards Committee's addition of coarrays to the Fortran 2008 standards, we at Rice envisioned an extensive update which has come to be...
Conference Paper
A reduction is a computation in which a common oper-ation, such as a sum, is to be performed across multiple pieces of data, each supplied by a separate task. We intro-duce phaser accumulators, a new reduction construct that meshes seamlessly with phasers to support dynamic par-allelism in a phased (iterative) setting. By separating re-duction comp...
Article
Full-text available
In 1998, Numrich and Reid proposed Coarray Fortran as a simple set of extensions to Fortran 95 [8]. Their principal extension to Fortran was support for shared data known as coarrays. In 2005, the Fortran Standards Committee began exploring the addition of coarrays to Fortran 2008, which is now being finalized. Careful review of drafts of the emerg...
Conference Paper
Coordination and synchronization of parallel tasks is a ma-jor source of complexity in parallel programming. These constructs take many forms in practice including mutual exclusion in accesses to shared resources, termination detec-tion of child tasks, collective barrier synchronization, and point-to-point synchronization. In this paper, we introdu...
Conference Paper
Full-text available
Timestamp-based Software Transactional Memory (STM) validation techniques use a global shared counter and times- tamping of objects being written to reason about sequencing of transactions and their linearization points, while reduc- ing the number of unnecessary validations that have to be performed, thus improving overall system performance. Duri...
Conference Paper
Full-text available
List-based implementations of sets are a fundamental building block of many concurrent algorithms. A skiplist based on the lock-free list-based set algorithm of Michael will be included in the JavaTM Concurrency Package of JDK 1.6.0. However, Michael’s lock-free algorithm has several drawbacks, most notably that it requires all list traversal opera...
Conference Paper
Full-text available
Software transactional memory systems enable a programmer to easily write concurrent data structures such as lists, trees, hashtables, and graphs, where non-conflicting operations proceed in parallel. Many of these structures take the abstract form of a dictionary, in which each transaction is associated with a search key. By regrouping transaction...
Conference Paper
Full-text available
In a software transactional memory (STM) system, conflict detection is the problem of determining when two transactions cannot both safely commit. Validation is the related problem of ensuring that a transaction never views inconsistent data, which might potentially cause a doomed transaction to exhibit irreversible, externally visible side effects...
Conference Paper
Full-text available
In a thread-safe concurrent queue , consumers typically wait for producers to make data available. In a synchronous queue , producers similarly wait for consumers to take the data. We present two new nonblocking, contention-free synchronous queues that achieve high performance through a form of dualism : The underlying data structure may hold both...
Conference Paper
Full-text available
The proliferation of multiprocessor servers and multithreaded applications has increased the demand for high-performance synchronization. Traditional scheduler-based locks incur the overhead of a full context switch between threads and are thus unacceptably slow for many applications. Spin locks offer low overhead, but they either scale poorly (tes...
Conference Paper
Full-text available
Software Transactional Memory (STM) is a generic synchronization construct that enables automatic conversion of correct sequential objects into correct nonblocking concurrent objects. Recent STM systems, though significantly more practical than their predecessors, display inconsistent performance: differing design decisions cause different systems...
Conference Paper
Full-text available
The obstruction-free Dynamic Software Transactional Memory (DSTM) system of Herlihy et al@. allows only one transaction at a time to acquire an object for writing. Should a second require an object currently in use, a contention manager must determine which may proceed and which must wait or abort.We analyze both new and existing policies for this...
Conference Paper
Full-text available
We apply the classic theory of linearizability to operations that must wait for some other thread to establish a precondition. We model such an operation as a request and a follow-up, each with its own linearization point. Linearization of the request marks the point at which a thread’s wishes become visible to its peers; linearization of the follo...
Article
Full-text available
Obstruction-free concurrent algorithms differ from those with stronger nonblocking conditions in that they separate progress from correctness. While it must always maintain data invariants, an obstruction-free algorithm need only guarantee progress in the absence of contention. The programmer can (and in-deed must) address progress as an out-of-ban...
Conference Paper
Full-text available
Software Transactional Memory (STM) is a generic non-blocking synchronization construct that enables automatic conversion of correct sequential objects into correct concurrent objects. Because it is nonblocking, STM avoids traditional performance and correctness problems due to thread failure, preemption, page faults, and priority inversion.In this...
Conference Paper
Full-text available
We propose a new form of software transactional memory (STM) designed to support dynamic-sized data structures, and we describe a novel non-blocking implementation. The non-blocking property we consider is obstruction-freedom. Obstruction-freedom is weaker than lock-freedom; as a result, it admits substantially simpler and more efficient implementa...
Conference Paper
Full-text available
Queue-based spin locks allow programs with busy-wait synchronization to scale to very large multiprocessors, without fear of starvation or performance-destroying contention. So-called try locks , traditionally based on non-scalable test-and-set locks, allow a process to abandon its attempt to acquire a lock after a given amount of time. The process...
Article
Full-text available
The obstruction-free Dynamic Software Transac- tional Memory (DSTM) system of Herlihy et al. al- lows only one writing transaction at a time to access an object. Should a second require an object cur- rently in use, a contention manager must determine which may proceed and which must wait or abort. In this case study, we consider the impact of ran-...