Maged M. Michael

dblp:m/MMMichael · DBLP profile ↗
← Back
35ranked-venue papers
17as first author
0since 2021 · last 2020
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 28 · 14 first-authorSoftware engineering, systems software and programming languages · 9 · 3 first-authorTheory of computation · 2 · 1 first-authorDatabases, data management, data science and information retrieval · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
14 papers
Parallel and multicore computing · 78% Memory systems · 16% Processor architecture and microarchitecture · 5%
Software engineering, system software, and programming languages
8 papers
Concurrent programming · 68% Operating systems · 12% Runtime systems and virtual machines · 11%

Topics — the 30 heaviest of 47, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Parallel and multicore computing
concurrent programming
0.652020
Brief Announcement: Hazard Pointer Protection of Structures with Immutable Links · PODC 2020
Quantitative comparison of hardware transactional memory for Blue Gene/Q, zEnterprise EC12, Intel Core, and POWER8 · ISCA 2015
Brief announcement: completing the lock-free dynamic cycle · PODC 2004
Parallel and multicore computing › concurrent data structures
lock-free data structures
0.532020
Brief Announcement: Hazard Pointer Protection of Structures with Immutable Links · PODC 2020
Brief announcement: completing the lock-free dynamic cycle · PODC 2004
Safe memory reclamation for dynamic lock-free objects using atomic reads and writes · PODC 2002
Parallel and multicore computing › concurrent data structures
memory reclamation
0.532020
Brief Announcement: Hazard Pointer Protection of Structures with Immutable Links · PODC 2020
Brief announcement: completing the lock-free dynamic cycle · PODC 2004
Safe memory reclamation for dynamic lock-free objects using atomic reads and writes · PODC 2002
Parallel and multicore computing › transactional memory
hardware transactional memory
0.422015
Quantitative comparison of hardware transactional memory for Blue Gene/Q, zEnterprise EC12, Intel Core, and POWER8 · ISCA 2015
Robust architectural support for transactional memory in the power architecture · ISCA 2013
Concurrent programming
concurrent algorithms
0.222011
Laws of order: expensive synchronization in concurrent algorithms cannot be eliminated · POPL 2011
Memory Management in Concurrent Algorithms · CAV 2010
Concurrent programming
synchronization
0.222011
Laws of order: expensive synchronization in concurrent algorithms cannot be eliminated · POPL 2011
Lock elision for read-only critical sections in Java · PLDI 2010
Parallel and multicore computing
transactional memory
0.222015
Robust architectural support for transactional memory in the power architecture · ISCA 2013
Quantitative comparison of hardware transactional memory for Blue Gene/Q, zEnterprise EC12, Intel Core, and POWER8 · ISCA 2015
Concurrent programming › transactional memory
hardware transactional memory
0.212015
Software Support and Evaluation of Hardware Transactional Memory on Blue Gene/Q · IEEE Trans. Computers 2015
Concurrent programming
transactional memory
0.212015
Software Support and Evaluation of Hardware Transactional Memory on Blue Gene/Q · IEEE Trans. Computers 2015
Runtime systems and virtual machines › parallel runtime systems
transactional memory runtime
0.212015
Software Support and Evaluation of Hardware Transactional Memory on Blue Gene/Q · IEEE Trans. Computers 2015
Operating systems › resource management
memory management
0.232010
Memory Management in Concurrent Algorithms · CAV 2010
Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects · IEEE Trans. Parallel Distributed Syst. 2004
Scalable lock-free dynamic memory allocation · PLDI 2004
Memory systems
memory consistency
0.212013
Robust architectural support for transactional memory in the power architecture · ISCA 2013
Memory systems › memory consistency › memory consistency model
weak memory model
0.212013
Robust architectural support for transactional memory in the power architecture · ISCA 2013
Parallel and multicore computing › concurrent data structures
hazard pointers
0.112020
Brief Announcement: Hazard Pointer Protection of Structures with Immutable Links · PODC 2020
Compilers and program optimization › parallel program optimization › synchronization optimization
synchronization elimination
0.112011
Laws of order: expensive synchronization in concurrent algorithms cannot be eliminated · POPL 2011
Concurrent programming › synchronization
lock elision
0.112010
Lock elision for read-only critical sections in Java · PLDI 2010
Concurrent programming › synchronization
reader-writer locks
0.112010
Lock elision for read-only critical sections in Java · PLDI 2010
Memory systems
cache coherence
0.152000
High-Throughput Coherence Controllers · HPCA 2000
Coherence Controller Architectures for Scalable Shared-Memory Multiprocessors · IEEE Trans. Computers 1999
Design and Performance of Directory Caches for Scalable Shared Memory Multiprocessors · HPCA 1999
Concurrent programming › non-blocking algorithms
lock-free data structures
0.122004
Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects · IEEE Trans. Parallel Distributed Syst. 2004
Scalable lock-free dynamic memory allocation · PLDI 2004
Parallel and multicore computing
load balancing
0.112009
Idempotent work stealing · PPoPP 2009
Parallel and multicore computing › load balancing › dynamic load balancing
work stealing
0.112009
Idempotent work stealing · PPoPP 2009
Programming languages and type systems
language semantics
0.112007
A theory of memory models · PPoPP 2007
Concurrent programming
memory models
0.112007
A theory of memory models · PPoPP 2007
Concurrent programming › memory models
weak memory models
0.112007
A theory of memory models · PPoPP 2007
Processor architecture and microarchitecture › transactional execution
hardware transactional memory support
0.112015
Software Support and Evaluation of Hardware Transactional Memory on Blue Gene/Q · IEEE Trans. Computers 2015
Memory systems › cache coherence
coherence controller
0.122000
High-Throughput Coherence Controllers · HPCA 2000
Design and Performance of Directory Caches for Scalable Shared Memory Multiprocessors · HPCA 1999
Processor architecture and microarchitecture
instruction set architecture
0.012013
Robust architectural support for transactional memory in the power architecture · ISCA 2013
Operating systems › resource management › memory management
dynamic memory allocation
0.012004
Scalable lock-free dynamic memory allocation · PLDI 2004
Concurrent programming
memory reclamation
0.012004
Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects · IEEE Trans. Parallel Distributed Syst. 2004
Concurrent programming › memory reclamation
safe memory reclamation
0.012004
Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects · IEEE Trans. Parallel Distributed Syst. 2004

Methods — techniques the papers use, named apart from their topics

hazard pointers · 0.6software transactional memory · 0.4best-effort HTM · 0.4benchmarking · 0.2architectural semantics · 0.2program transformation · 0.1work-stealing · 0.1work stealing · 0.1mathematical framework · 0.1decomposition rule · 0.1simulation · 0.1wait-free synchronization · 0.0lock-free synchronization · 0.0hardware atomic instructions · 0.0performance modeling · 0.0atomic read-write primitives · 0.0compare-and-swap · 0.0
YearPublicationVenuePosition
2020 Brief Announcement: Hazard Pointer Protection of Structures with Immutable Links
abstract
The hazard pointer method [4] for safe reclamation is capable of protecting individual dynamic objects, including individual nodes of linked structures. However, on its own, it does not protect the descendants of protected nodes for unconditional traversal.
Maged M. Michael
PODC1
2019 A Practical, Scalable, Relaxed Priority Queue
abstract
Priority queues are a fundamental data structure, and in highly concurrent software, scalable priority queues are an important building block. However, they have a fundamental bottleneck when extracting elements, because of the strict requirement that each extract() returns the highest priority element. In many workloads, this requirement can be relaxed, improving scalability.
Tingzhe Zhou, Maged M. Michael, Michael F. Spear
ICPP2
2015 Quantitative comparison of hardware transactional memory for Blue Gene/Q, zEnterprise EC12, Intel Core, and POWER8
abstract
Transactional Memory (TM) is a new programming paradigm for both simple concurrent programming and high concurrent performance. Hardware Transactional Memory (HTM) is hardware support for TM-based programming. It has lower overhead than software transactional memory (STM), which is a software-based implementation of TM. There are now four commercial systems, IBM Blue Gene/Q, IBM zEnterprise EC12, Intel Core, and IBM POWER8, offering HTM. Our work is the first to compare the performance of these four HTM systems. We measured the STAMP benchmarks, the most widely used TM benchmarks. We also evaluated the specific features of each HTM system. Our experimental results show that: (1) there is no single HTM system that is more scalable than the others in all of the benchmarks, (2) there are measurable performance differences among the HTM systems in some benchmarks, and (3) each HTM system has its own implementation characteristics that limit its scalability.
Takuya Nakaike, Rei Odaira, Matthew Gaudet, Maged M. Michael, Hisanobu Tomari
ISCA4
2015 Software Support and Evaluation of Hardware Transactional Memory on Blue Gene/Q
abstract
This paper describes an end-to-end system implementation of a transactional memory (TM) programming model on top of the hardware transactional memory (HTM) of the Blue Gene/Q machine. The TM programming model supports most C/C++ programming constructs using a best-effort HTM and the help of a complete software stack including the compiler, the kernel, and the TM runtime. An extensive evaluation of the STAMP and the RMS-TM benchmark suites on BG/Q is the first of its kind in understanding characteristics of running TM workloads on real hardware TM. The study reveals several interesting insights on the overhead and the scalability of BG/Q HTM with respect to sequential execution, coarse-grain locking, and software TM.
Amy Wang, Matthew Gaudet, Peng Wu 0001, Martin Ohmacht, José Nelson Amaral, Christopher Barton, Raúl Silvera, Maged M. Michael
IEEE Trans. Computers8
2013 Robust architectural support for transactional memory in the power architecture
abstract
On the twentieth anniversary of the original publication [10], following ten years of intense activity in the research literature, hardware support for transactional memory (TM) has finally become a commercial reality, with HTM-enabled chips currently or soon-to-be available from many hardware vendors. In this paper we describe architectural support for TM added to a future version of the Power ISA™. Two imperatives drove the development: the desire to complement our weakly-consistent memory model with a more friendly interface to simplify the development and porting of multithreaded applications, and the need for robustness beyond that of some early implementations. In the process of commercializing the feature, we had to resolve some previously unexplored interactions between TM and existing features of the ISA, for example translation shootdown, interrupt handling, atomic read-modify-write primitives, and our weakly consistent memory model. We describe these interactions, the overall architecture, and discuss the motivation and rationale for our choices of architectural semantics, beyond what is typically found in reference manuals.
Harold W. Cain, Maged M. Michael, Brad Frey, Cathy May, Derek Williams, Hung Q. Le
ISCA2
2012 Evaluation of blue Gene/Q hardware support for transactional memories
abstract
This paper describes an end-to-end system implementation of the transactional memory (TM) programming model on top of the hardware transactional memory (HTM) of the Blue Gene/Q (BG/Q) machine. The TM programming model supports most C/C++ programming constructs on top of a best-effort HTM with the help of a complete software stack including the compiler, the kernel, and the TM runtime.
Amy Wang, Matthew Gaudet, Peng Wu 0001, José Nelson Amaral, Martin Ohmacht, Christopher Barton, Raúl Silvera, Maged M. Michael
PACT8
2011 Laws of order: expensive synchronization in concurrent algorithms cannot be eliminated
abstract
Building correct and efficient concurrent algorithms is known to be a difficult problem of fundamental importance. To achieve efficiency, designers try to remove unnecessary and costly synchronization. However, not only is this manual trial-and-error process ad-hoc, time consuming and error-prone, but it often leaves designers pondering the question of: is it inherently impossible to eliminate certain synchronization, or is it that I was unable to eliminate it on this attempt and I should keep trying?
Hagit Attiya, Rachid Guerraoui, Danny Hendler, Petr Kuznetsov, Maged M. Michael, Martin T. Vechev
POPL5
2010 Memory Management in Concurrent Algorithms
Maged M. Michael
CAV1
2010 Lock elision for read-only critical sections in Java
abstract
It is not uncommon in parallel workloads to encounter shared data structures with read-mostly access patterns, where operations that update data are infrequent and most operations are read-only. Typically, data consistency is guaranteed using mutual exclusion or read-write locks. The cost of atomic update of lock variables result in high overheads and high cache coherence traffic under active sharing, thus slowing down single thread performance and limiting scalability.
Takuya Nakaike, Maged M. Michael
PLDI2
2009 Reducing Memory Ordering Overheads in Software Transactional Memory
abstract
Most research into high-performance software transactional memory (STM) assumes that transactions will run on a processor with a relatively strict memory model, such as Total Store Ordering (TSO). To execute these algorithms correctly on processors with relaxed memory models, explicit fence instructions may be required on every transactional access, and neither the processor nor the compiler may be able to safely reorder transactional reads. The overheads of fence instructions and read serialization are a significant but unstudied source of latency for STM, with impact on the tradeoffs among different STM systems and on the optimizations that may be possible for any given system. Straightforward ports of STM runtimes from strict to relaxed machines may fail to realize the latter's performance potential. We explore the implementation of STM for machines with relaxed memory consistency using two recent high-performance STM systems. We propose compiler optimizations that can safely eliminate many fence instructions. Using these techniques, we obtain a reduction of up to 89% in the number of fences, and 20% in per-transaction latency, for common transactional benchmarks.
Michael F. Spear, Maged M. Michael, Michael L. Scott, Peng Wu 0001
CGO2
2009 Idempotent work stealing
abstract
Load balancing is a technique which allows efficient parallelization of irregular workloads, and a key component of many applications and parallelizing runtimes. Work-stealing is a popular technique for implementing load balancing, where each parallel thread maintains its own work set of items and occasionally steals items from the sets of other threads.
Maged M. Michael, Martin T. Vechev, Vijay A. Saraswat
PPoPP1
2009 Compiler and runtime techniques for software transactional memory optimization
abstract
Abstract Software transactional memory (STM) systems are an attractive environment to evaluate optimistic concurrency. We describe our experience of supporting and optimizing an STM system at both the managed runtime and compiler levels. We describe the design policies of our STM system and the statistics collected by the runtime to identify performance bottlenecks and guide tuning decisions. We present an initial work on supporting automatic instrumentation of the STM primitives for C/C++ and Java programs in the IBM XL compiler and J9 Java virtual machine. We evaluate and discuss the performance of several transactional programs running on our system. Copyright © 2008 John Wiley & Sons, Ltd.
Peng Wu 0001, Maged M. Michael, Christoph von Praun, Takuya Nakaike, Rajesh Bordawekar, Harold W. Cain, Calin Cascaval, Siddhartha Chatterjee, Stefanie Chiras, Mark F. Mergen, Michael F. Spear, Huayong Wang
Concurr. Comput. Pract. Exp.2
2008 Implementing and Exploiting Inevitability in Software Transactional Memory
abstract
Transactional Memory (TM) takes responsibility for concurrent, atomic execution of labeled regions of code, freeing the programmer from the need to manage locks. Typical implementations rely on speculation and rollback, but this creates problems for irreversible operations like interactive I/O.A widely assumed solution allows a transaction to operate in an inevitable mode that excludes all other transactions and is guaranteed to complete, but this approach does not scale. This paper explores a richer set of alternatives for software TM, and demonstrates that it is possible for an inevitable transaction to run in parallel with (non-conflicting) non-inevitable transactions, without introducing significant overhead in the non-inevitable case. We report experience with these alternatives in a graphical game application. We also consider the use of inevitability to accelerate certain common-case transactions.
Michael F. Spear, Michael Silverman, Luke Dalessandro, Maged M. Michael, Michael L. Scott
ICPP4
2008 RingSTM: scalable transactions with a single atomic instruction
abstract
Existing Software Transactional Memory (STM) designs attach metadata to ranges of shared memory; subsequent runtime instructions read and update this metadata in order to ensure that an in-flight transaction's reads and writes remain correct. The overhead of metadata manipulation and inspection is linear in the number of reads and writes performed by a transaction, and involves expensive read-modify-write instructions, resulting in substantial overheads.
Michael F. Spear, Maged M. Michael, Christoph von Praun
SPAA2
2007 Experiences Understanding Performance in a Commercial Scale-Out Environment
Robert W. Wisniewski, Mathieu Desnoyers, Maged M. Michael, José E. Moreira, Doron Shiloach, Livio B. Soares
Euro-Par4
2007 Scalability of the Nutch search engine
abstract
Nutch is an open source search engine that is gaining increasing popularity in the commercial world. The Nutch architecture leads itself to a wide range of parallelization techniques. Multiple backend servers can be used to both partition the corpus of search data, thus increasing the rate of queries serviced, and to increase the size of the search data while preserving the service rate. Alternatively, multiple search engines can operate in parallel, further increasing the query rate. In this paper, we analyze the performance and scalability of various configurations of Nutch. The configurations were implemented as part of the Commercial Scale Out project at IBM Research, and were used to investigate the applicability of scale-out architectures in commercial environments. We conclude that Nutch is highly scalable, with the different configurations behaving differently from a performance perspective.
José E. Moreira, Maged M. Michael, Dilma Da Silva, Doron Shiloach, Parijat Dube, Li Zhang 0002
ICS2
2007 Scale-up x Scale-out: A Case Study using Nutch/Lucene
abstract
Scale-up solutions in the form of large SMPs have represented the mainstream of commercial computing for the past several years. The major server vendors continue to provide increasingly larger and more powerful machines. More recently, scale-out solutions, in the form of clusters of smaller machines, have gained increased acceptance for commercial computing. Scale-out solutions are particularly effective in high-throughput Web-centric applications. In this paper, we investigate the behavior of two competing approaches to parallelism, scale-up and scale-out, in an emerging search application. Our conclusions show that a scale-out strategy can be the key to good performance even on a scale-up machine. Furthermore, scale-out solutions offer better price/performance, although at an increase in management complexity.
Maged M. Michael, José E. Moreira, Doron Shiloach, Robert W. Wisniewski
IPDPS1
2007 A theory of memory models
abstract
A memory model for a concurrent imperative programming language specifies which writes to shared variables may be seen by reads performed by other threads. We present a simple mathematical framework for relaxed memory models for programming languages. To instantiate this framework for a specific language, the designer must choose the notion of atomic steps supported by the language (e.g. 32-bit reads and writes) and specify how a composite step may be broken into a sequence of atomic steps (the decomposition rule). This rule determines which sequence of intermediate writes (if any) are visible to concurrent reads by other threads. Different choices of the rule lead to models which permit a read to return any value if there is a concurrent write (race), or models which satisfy a "No Thin Air Read"property. The former is suitable for languages such as C++(programs with races have undefined behavior), and the latter for Java. Other intermediate models are possible, useful and interesting.
Vijay A. Saraswat, Radha Jagadeesan, Maged M. Michael, Christoph von Praun
PPoPP3
2007 Why the grass may not be greener on the other side: a comparison of locking vs. transactional memory
abstract
The advent of multi-core and multi-threaded processor architectures highlights the need to address the well-known shortcomings of the ubiquitous lock-based synchronization mechanisms. The emerging transactional-memory synchronization mechanism is viewed as a promising alternative to locking for high-concurrency environments, including operating systems. This paper presents a constructive critique of locking and transactional memory: their strengths, weaknesses, and challenges
Paul E. McKenney, Maged M. Michael, Jonathan Walpole
PLOS@SOSP2
2004 Scalable lock-free dynamic memory allocation
abstract
Dynamic memory allocators (malloc/free) rely on mutual exclusion locks for protecting the consistency of their shared data structures under multithreading. The use of locking has many disadvantages with respect to performance, availability, robustness, and programming flexibility. A lock-free memory allocator guarantees progress regardless of whether some threads are delayed or even killed and regardless of scheduling policies. This paper presents a completely lock-free memory allocator. It uses only widely-available operating system support and hardware atomic instructions. It offers guaranteed availability even under arbitrary thread termination and crash-failure, and it is immune to deadlock regardless of scheduling policies, and hence it can be used even in interrupt handlers and real-time applications without requiring special scheduler support. Also, by leveraging some high-level structures from Hoard, our allocator is highly scalable, limits space blowup to a constant factor, and is capable of avoiding false sharing. In addition, our allocator allows finer concurrency and much lower latency than Hoard. We use PowerPC shared memory multiprocessor systems to compare the performance of our allocator with the default AIX 5.1 libc malloc, and two widely-used multithread allocators, Hoard and Ptmalloc. Our allocator outperforms the other allocators in virtually all cases and often by substantial margins, under various levels of parallelism and allocation patterns. Furthermore, our allocator also offers the lowest contention-free latency among the allocators by significant margins.
Maged M. Michael
PLDI1
2004 Brief announcement: completing the lock-free dynamic cycle
abstract
No abstract available.
Maged M. Michael
PODC1
2004 Practical Lock-Free and Wait-Free LL/SC/VL Implementations Using 64-Bit CAS
Maged M. Michael
DISC1
2004 Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects
abstract
Lock-free objects offer significant performance and reliability advantages over conventional lock-based objects. However, the lack of an efficient portable lock-free method for the reclamation of the memory occupied by dynamic nodes removed from such objects is a major obstacle to their wide use in practice. We present hazard pointers, a memory management methodology that allows memory reclamation for arbitrary reuse. It is very efficient, as demonstrated by our experimental results. It is suitable for user-level applications - as well as system programs - without dependence on special kernel or scheduler support. It is wait-free. It requires only single-word reads and writes for memory access in its core operations. It allows reclaimed memory to be returned to the operating system. In addition, it offers a lock-free solution for the ABA problem using only practical single-word instructions. Our experimental results on a multiprocessor system show that the new methodology offers equal and, more often, significantly better performance than other memory management methods, in addition to its qualitative advantages regarding memory reclamation and independence of special hardware support. We also show that lock-free implementations of important object types, using hazard pointers, offer comparable performance to that of efficient lock-based implementations under no contention and no multiprogramming, and outperform them by significant margins under moderate multiprogramming and/or contention, in addition to guaranteeing continuous progress and availability, even in the presence of thread failures and arbitrary delays.
Maged M. Michael
IEEE Trans. Parallel Distributed Syst.1
2003 CAS-Based Lock-Free Algorithm for Shared Deques
Maged M. Michael
Euro-Par1
2002 Safe memory reclamation for dynamic lock-free objects using atomic reads and writes
abstract
A major obstacle to the wide use of lock-free data structures, despite their many performance and reliability advantages, is the absence of a practical lock-free method for reclaiming the memory of dynamic nodes removed from dynamic lock-free objects for arbitrary reuse.The only prior lock-free memory reclamation method depends on the DCAS atomic primitive, which is not supported on any current processor architecture. Other memory management methods are blocking, require special operating system support, or do not allow arbitrary memory reuse.This paper presents the first lock-free memory management method for dynamic lock-free objects that allows arbitrary memory reuse, and does not require special operating system or hardware support. It guarantees an upper bound on the number of removed nodes not yet freed at any time, regardless of thread failures and delays. Furthermore, it is wait-free, it is only logarithmically contention-sensitive, and it uses only atomic reads and writes for its operations. In addition, it can be used to prevent the ABA problem for pointers to dynamic nodes in most algorithms, without requiring extra space per pointer or per node.
Maged M. Michael
PODC1
2002 High performance dynamic lock-free hash tables and list-based sets
abstract
Lock-free (non-blocking) shared data structures promise more robust performance and reliability than conventional lock-based implementations. However, all prior lock-free algorithms for sets and hash tables suffer from serious drawbacks that prevent or limit their use in practice. These drawbacks include size inflexibility, dependence on atomic primitives not supported on any current processor architecture, and dependence on highly-inefficient or blocking memory management techniques.Building on the results of prior researchers, this paper presents the first CAS-based lock-free list-based set algorithm that is compatible with all lock-free memory management methods. We use it as a building block of an algorithm for lock-free hash tables. In addition to being lock-free, the new algorithm is dynamic, linearizable, and space-efficient.Our experimental results show that the new algorithm outperforms the best known lock-free as well as lock-based hash table implementations by significant margins, and indicate that it is the algorithm of choice for implementing shared hash tables.
Maged M. Michael
SPAA1
2000 High-Throughput Coherence Controllers
abstract
Recent research shows that the occupancy of the coherence controllers is a major performance bottleneck for distributed cache coherent shared memory multiprocessors. In this paper we study three approaches to alleviating this problem in hardwired coherence controllers, namely, multiple protocol engines, pipelined protocol engines, and split request-response streams. Split request-response streams is an innovative contribution of this paper. The performance of pipelining in the context of coherence controllers has not been presented in the literature. Multiple protocol engines has not been studied in the context of hardwired controllers except for a study of ours and only to a limited extent. Using both commercial and scientific benchmarks on detailed simulation models, we present experimental results that show that each mechanism is highly effective at reducing controller occupancy by as much as 66% and improving execution time by as much as 51%, for applications with high communication bandwidth requirement. A combination of mechanisms further reduces controller occupancy and execution time by as much as 78% and 61%, respectively. Our results show that applying any of the parallel mechanisms in the coherence controllers allows integrating four times as many processors per coherence controller, thus reducing system cost, while maintaining or even exceeding the performance of systems with larger number of coherence controllers.
Ashwini K. Nanda, Anthony-Trung Nguyen, Maged M. Michael, Douglas J. Joseph
HPCA3
1999 Design and Performance of Directory Caches for Scalable Shared Memory Multiprocessors
abstract
Recent research shows that the occupancy of the coherence controllers is a major performance bottleneck for distributed cache coherent shared memory multiprocessors. A significant part of the occupancy is due to the latency of accessing the directory which is usually kept in DRAM memory. Most coherence controller designs that use protocol processors for executing the coherence protocol handlers use the data cache of the protocol processor for caching directory entries along with protocol handler data. Analogously, a fast Directory Cache (DC) can also be used by the hardwired coherence controller designs to minimize directory access time. The paper studies the performance of directory caches using parallel applications from the SPLASH-2 suite. We demonstrate that using a directory cache can result in 40% or more improvement in the execution time of communication intensive applications. We also investigate the various directory cache design parameters: cache size, cache line size, and associativity. Experimental results show that the directory cache size requirements grow sub-linearly with the increase in the application's data set size. The results also show the performance advantage of multi-entry directory cache lines, as a result of spatial locality and the absence of sharing of directories. The impact of the associativity of the directory caches on performance is less than that of the size and the line size. We also find a linear relation between the directory cache miss ratio and the coherence controller occupancy, and between both measures and the execution time of the applications.
Maged M. Michael, Ashwini K. Nanda
HPCA1
1999 Coherence Controller Architectures for Scalable Shared-Memory Multiprocessors
abstract
Scalable distributed shared-memory architectures rely on coherence controllers on each processing node to synthesize cache-coherent shared memory across the entire machine. The coherence controllers execute coherence protocol handlers that may be hardwired in custom hardware or programmed in a protocol processor within each coherence controller. Although custom hardware runs faster, a protocol processor allows the coherence protocol to be tailored to specific application needs and may shorten hardware development time. Previous research shows minimal increase in application execution time due to protocol processors over custom hardware. With the advent of SMP nodes and faster processors and networks, the trade-off between custom hardware and protocol processors needs to be reexamined. This paper studies the performance of custom hardware and protocol-processor-based coherence controllers in SMP-node-based CC-NUMA systems on applications from the SPLASH-2 suite. Using realistic parameters and detailed models of state-of-the-art system components, it shows that the occupancy of coherence controllers can limit the performance of applications with high communication requirements, where the execution time using commodity protocol processors can be twice as long as using custom hardware. We also investigate the effect of varying several architectural parameters that influence the communication characteristics of the applications and the underlying system on coherence controller performance. We identify measures of applications' communication requirements and their impact on performance. We also study the potential of improving the performance of coherence controllers by separating or duplicating critical components.
Maged M. Michael, Ashwini K. Nanda, Beng-Hong Lim
IEEE Trans. Computers1
1998 Nonblocking Algorithms and Preemption-Safe Locking on Multiprogrammed Shared Memory Multiprocessors
abstract
Most multiprocessors are multiprogrammed to achieve acceptable response time and to increase their utilization. Unfortunately, inopportune preemption may significantly degrade the performance of synchronized parallel applications. To address this problem, researchers have developed two principal strategies for a concurrent, atomic update of shared data structures: (1) preemption-safe locking and (2) nonblocking (lock-free) algorithms . Preemption-safe locking requires kernel support. Nonblocking algorithms generally require a universal atomic primitive such as compare-and-swap or load-linked/store-conditional and are widely regarded as inefficient. We evaluate the performance of preemption-safe lock-based and nonblocking implementations of important data structures—queues, stacks, heaps, and counters—including nonblocking and lock-based queue algorithms of our own, in microbenchmarks and real applications on a 12-processor SGI Challenge multiprocessor. Our results indicate that our nonblocking queue consistently outperforms the best known alternatives and that data-structure-specific nonblocking algorithms, which exist for queues, stacks, and counters, can work extremely well. Not only do they outperform preemption-safe lock-based algorithms on multiprogrammed machines, they also outperform ordinary locks on dedicated machines. At the same time, since general-purpose nonblocking techniques do not yet appear to be practical, preemption-safe locks remain the preferred alternative for complex data structures: they outperform conventional locks by significant margins on multiprogrammed systems.
Maged M. Michael, Michael L. Scott
J. Parallel Distributed Comput.1
1997 Coherence Controller Architectures for SMP-Based CC-NUMA Multiprocessors
abstract
Scalable distributed shared-memory architectures rely on coherence controllers on each processing node to synthesize cache-coherent shared memory across the entire machine. The coherence controllers execute coherence protocol handlers that may be hardwired in custom hardware or programmed in a protocol processor within each coherence controller. Although custom hardware runs faster, a protocol processor allows the coherence protocol to be tailored to specific application needs and may shorten hardware development time. Previous research show that the increase in application execution time due to protocol processors over custom hardware is minimal.With the advent of SMP nodes and faster processors and networks, the tradeoff between custom hardware and protocol processors needs to be reexamined. This paper studies the performance of custom-hardware and protocol-processor-based coherence controllers in SMP-node-based CC-NUMA systems on applications from the SPLASH-2 suite. Using realistic parameters and detailed models of existing state-of-the-art system components, it shows that the occupancy of coherence controllers can limit the performance of applications with high communication requirements, where the execution time using protocol processors can be twice as long as using custom hardware.To gain a deeper understanding of the tradeoff, we investigate the effect of varying several architectural parameters that influence the communication characteristics of the applications and the underlying system on coherence controller performance. We identify measures of applications' communication requirements and their impact on the performance penalty of protocol processors, which can help system designers predict performance penalties for other applications. We also study the potential of improving the performance of hardware-based and protocol-processor-based coherence controllers by separating or duplicating critical components.
Maged M. Michael, Ashwini K. Nanda, Beng-Hong Lim, Michael L. Scott
ISCA1
1996 The Augmint multiprocessor simulation toolkit for Intel x86 architectures
abstract
Most publicly available simulation tools only simulate RISC architectures. These tools cannot capture the instruction mix and memory reference patterns of CISC architectures. We present an overview of Augmint, an execution driven multiprocessor simulation toolkit that fills this gap by supporting Intel x86 architectures. Augmint also supports trace driven simulation for uniprocessors as well as multiprocessors, with minor effort on the part of simulator developers. Augmint runs m4 macro extended C and C++ applications such as those in the SPLASH and SPLASH-2 benchmark suites. Augmint supports a thread based programming model with shared global address space and private stack space. Augmint supports a simulator interface compatible with that of the MINT simulation toolkit for MIPS architectures, thus allowing the reuse of most architecture simulators written for MINT. Augmint simulations run on x8d based uniprocessor systems under Unix or Windows NT. The source code of Augmint is publicly available from http://www.csrd.uiuc.edu/iacoma/augmint.
Anthony-Trung Nguyen, Maged M. Michael, Josep Torrellas
ICCD2
1996 Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms
abstract
Drawing ideas from previous authors, we present a new non-blocking concurrent queue algorithm and a new twolock queue algorithm in which one enqueue and one dequeue can proceed concurrently.Both algorithms are simple, fast, and practical; we were surprised not to find them in the literature.Experiments on a 12-node SGI Challenge multiprocessor indicate that the new non-blocking queue consistently outperforms the best known alternatives; it is the clear algorithm of choice for machines that provide a universal atomic primitive (e.g.compare_and_swap or load_linked/store_conditional).The two-lock concurrent queue outperforms a single lock when several processes are competing simultaneously for access; it appears to be the algorithm of choice for busy queues on machines with non-universal atomic primitives (e.g.test_ and_set).Since much of the motivation for non-blocking algorithms is rooted in their immunity to large, unpredictable delays in process execution, we report experimental results both for systems with dedicated processors and for systems with several processes multiprogrammed on each processor.
Maged M. Michael, Michael L. Scott
PODC1
1996 An Efficient Algorithm for Concurrent Priority Queue Heaps
abstract
We present a new algorithm for concurrent access to array-based priority queue heaps. Deletions proceed top-down as they do in a previous algorithm due to Rao and Kumar (1988), but insertions proceed bottom-up, and consecutive insertions use a bit-reversal technique to scatter accesses across the fringe of the tree, to reduce contention. Because insertions do not have to traverse the entire height of the tree (as they do in previous work), as many as O(M) operations can proceed in parallel, rather than O(log M) on a heap of size M. Experimental results on a Silicon Graphics Challenge multiprocessor demonstrate good overall performance for the new algorithm on small heaps, and significant performance improvements over known alternatives on large heaps with mixed insertion/deletion workloads.
Galen C. Hunt, Maged M. Michael, Srinivasan Parthasarathy 0001, Michael L. Scott
Inf. Process. Lett.2
1995 Implementation of Atomic Primitives on Distributed Shared Memory Multiprocessors
abstract
In this paper we consider several hardware implementations of the general-purpose atomic primitives fetch and /spl Phi/, compare and swap, load linked, and store conditional on large-scale shared-memory multiprocessors. These primitives have proven popular on small-scale bets-based machines, but have yet to become widely available on large-scale, distributed shared memory machines. We propose several alternative hardware implementations of these primitives, and then analyze the performance of these implementations for various data sharing patterns. Our results indicate that good overall performance can be obtained by implementing compare and swap in the cache controllers, and by providing an additional instruction to load an exclusive copy of a cache line.>
Maged M. Michael, Michael L. Scott
HPCA1