Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

David A. Koufaty

dblp:44/1517 · DBLP profile ↗
← Back
14ranked-venue papers
5as first author
1since 2021 · last 2026
—ORCID · none

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

Systems, architecture and hardware · 14 · 5 first-author · 1 since 2021

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
9 papers
Memory systems · 69% Processor architecture and microarchitecture · 13% Electronic design automation · 8%
Software engineering, system software, and programming languages
5 papers
Concurrent programming · 65% Operating systems · 35% Compilers and program optimization · 0%

Topics — the 24 heaviest of 26, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Memory systems
memory consistency
1.222026
PhasedStore: Supporting High-Performance Write-Through Cache-Coherence Protocols Under TSO · HPCA 2026
SCsafe: Logging sequential consistency violations continuously and precisely · HPCA 2016
Memory systems
cache coherence
1.022026
PhasedStore: Supporting High-Performance Write-Through Cache-Coherence Protocols Under TSO · HPCA 2026
Data Forwarding in Scalable Shared-Memory Multiprocessors · IEEE Trans. Parallel Distributed Syst. 1996
Memory systems › memory consistency › memory consistency model
total store order
1.012026
PhasedStore: Supporting High-Performance Write-Through Cache-Coherence Protocols Under TSO · HPCA 2026
Processor architecture and microarchitecture › multicore design › heterogeneous multicore
asymmetric multicore
0.332012
Leveraging Core Specialization via OS Scheduling to Improve Performance on Asymmetric Multicore Systems · ACM Trans. Comput. Syst. 2012
QuickIA: Exploring heterogeneous architectures on real prototypes · HPCA 2012
Efficient operating system scheduling for performance-asymmetric multi-core architectures · SC 2007
Memory systems › shared memory
distributed shared memory
0.312026
PhasedStore: Supporting High-Performance Write-Through Cache-Coherence Protocols Under TSO · HPCA 2026
Electronic design automation › high-level synthesis
scheduling
0.322012
Leveraging Core Specialization via OS Scheduling to Improve Performance on Asymmetric Multicore Systems · ACM Trans. Comput. Syst. 2012
Bias scheduling in heterogeneous multi-core architectures · EuroSys 2010
Concurrent programming
memory models
0.212016
SCsafe: Logging sequential consistency violations continuously and precisely · HPCA 2016
Concurrent programming › memory models
weak memory models
0.212016
SCsafe: Logging sequential consistency violations continuously and precisely · HPCA 2016
Operating systems › resource management › process management
CPU scheduling
0.222010
Operating system support for overlapping-ISA heterogeneous multi-core architectures · HPCA 2010
Efficient operating system scheduling for performance-asymmetric multi-core architectures · SC 2007
Processor architecture and microarchitecture › multicore design
core specialization
0.112012
Leveraging Core Specialization via OS Scheduling to Improve Performance on Asymmetric Multicore Systems · ACM Trans. Comput. Syst. 2012
Electronic design automation
design space exploration
0.112012
QuickIA: Exploring heterogeneous architectures on real prototypes · HPCA 2012
Parallel and multicore computing › task scheduling
heterogeneity-aware scheduling
0.112012
Leveraging Core Specialization via OS Scheduling to Improve Performance on Asymmetric Multicore Systems · ACM Trans. Comput. Syst. 2012
GPUs and heterogeneous computing
heterogeneous architecture
0.112012
QuickIA: Exploring heterogeneous architectures on real prototypes · HPCA 2012
Processor architecture and microarchitecture › multicore design
heterogeneous cores
0.112012
The Forgotten 'Uncore': On the Energy-Efficiency of Heterogeneous Cores · USENIX ATC 2012
Operating systems › resource management › process management › CPU scheduling
thread scheduling
0.112010
Bias scheduling in heterogeneous multi-core architectures · EuroSys 2010
GPUs and heterogeneous computing › heterogeneous architecture
heterogeneous processors
0.112010
Operating system support for overlapping-ISA heterogeneous multi-core architectures · HPCA 2010
Concurrent programming
concurrency bug detection
0.112016
SCsafe: Logging sequential consistency violations continuously and precisely · HPCA 2016
Processor architecture and microarchitecture
multicore design
0.122012
The Forgotten 'Uncore': On the Energy-Efficiency of Heterogeneous Cores · USENIX ATC 2012
Efficient operating system scheduling for performance-asymmetric multi-core architectures · SC 2007
Energy-efficient computing
power-performance tradeoff
0.012012
Leveraging Core Specialization via OS Scheduling to Improve Performance on Asymmetric Multicore Systems · ACM Trans. Comput. Syst. 2012
Energy-efficient computing
energy-aware scheduling
0.012010
Bias scheduling in heterogeneous multi-core architectures · EuroSys 2010
Operating systems › resource management › process management › CPU scheduling
NUMA-aware scheduling
0.012007
Efficient operating system scheduling for performance-asymmetric multi-core architectures · SC 2007
Processor architecture and microarchitecture
data forwarding
0.011996
Data Forwarding in Scalable Shared-Memory Multiprocessors · IEEE Trans. Parallel Distributed Syst. 1996
Memory systems
memory access latency
0.011996
Data Forwarding in Scalable Shared-Memory Multiprocessors · IEEE Trans. Parallel Distributed Syst. 1996
Parallel and multicore computing › multiprocessor system
shared-memory multiprocessor
0.011996
Data Forwarding in Scalable Shared-Memory Multiprocessors · IEEE Trans. Parallel Distributed Syst. 1996

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

store queue extension · 1.0directory protocol · 1.0simulation · 0.5hardware recovery · 0.5linux kernel implementation · 0.2big.LITTLE-style core asymmetry · 0.2speedup factor prediction model · 0.1prototyping · 0.1case study · 0.1CPU clock modulation · 0.1load balancing · 0.1address trace simulation · 0.0
YearPublicationVenuePosition
2026 PhasedStore: Supporting High-Performance Write-Through Cache-Coherence Protocols Under TSO
abstract
Current multiprocessors that support the total store order (TSO) memory consistency model invariably use writeback (WB) cache-coherence protocols. When their hardware needs to issue write-through (WT) stores as in uncached operations, their performance may suffer: writes to main memory have to be fully serialized, potentially forcing the program to observe the full latency of round trips to memory. To solve this problem, this paper presents a novel architecture that supports high-performance cache-coherent WT stores under TSO. The architecture, called PhasedStore, extends the store queue in the cores and the directory. Individual WT stores fully overlap with other stores and still satisfy TSO. PhasedStore is useful in environments that require a WT cache-coherence protocol. This can be the case in resiliencecritical platforms where node failures should not cause the loss of shared program state, or platforms with CPUs and accelerators where programs follow a producer-consumer pattern. This paper evaluates PhasedStore in the first environment, namely a CXL-based distributed shared-memory platform where shared data in the program uses a WT protocol to enable recovery. Our evaluation shows that PhasedStore is very effective. Compared to using the conventional approach to implement WT under TSO, PhasedStore reduces the average execution time of a set of parallel applications by 1.88x.
Burak Ocalan, Chloe Alverti, Shashwat Jaiswal, Antonis Psistakis, David A. Koufaty, Suyash Mahar, Steven Swanson, Josep Torrellas
HPCA5
2016 SCsafe: Logging sequential consistency violations continuously and precisely
abstract
Sequential Consistency Violations (SCV) in relaxed consistency machines cause programs to malfunction and are hard to debug. While there are proposals for detecting and recording SCVs, they are limited in that they end program execution after detecting the first SCV because the program is now non-SC. Therefore, they cannot be used in production runs. In addition, such proposals rely on complicated hardware. To address these problems, this paper proposes the first architecture that detects and logs SCVs in a continuous manner, while retaining SC. In addition, the scheme is precise and uses substantially simpler hardware. The scheme, called SCsafe, operates continously because, after SCV detection and logging, it recovers and resumes execution while retaining SC. As a result, it can be used in production runs. In addition, SCsafe is precise in that it identifies only true SCVs - rather than dependence cycles due to false sharing. Finally, SCsafe's hardware is mostly local to each processor, and uses known recovery techniques. We evaluate SCsafe using simulations of 16-processor multicores with Total Store Order or Release Consistency. In codes with SCVs, SCsafe detects and reports SCVs while enforcing SC during the execution. In codes with few SCVs, it adds a negligible performance overhead. Finally, SCsafe is scalable with the processor count.
Yuelu Duan, David A. Koufaty, Josep Torrellas
HPCA2
2012 QuickIA: Exploring heterogeneous architectures on real prototypes
abstract
Over the last decade, homogeneous multi-core processors emerged and became the de-facto approach for offering high parallelism, high performance and scalability for a wide range of platforms. We are now at an interesting juncture where several critical factors (smaller form factor devices, power challenges, need for specialization, etc) are guiding architects to consider heterogeneous chips and platforms for the next decade and beyond. Exploring heterogeneous architectures is challenging since it involves re-evaluating architecture options, OS implications and application development. In this paper, we describe these research challenges and then introduce a heterogeneous prototype platform called QuickIA that enables rapid exploration of heterogeneous architectures employing multiple generations of Intel processors for evaluating the implications of asymmetry and FPGAs to experiment with specialized processors or accelerators. We also show example case studies using the QuickIA research prototype to highlight its value in conducting heterogeneous architecture, OS and applications research.
Bhushan Chitlur, Ganapati Srinivasa, Scott Hahn, Dheeraj Reddy, David A. Koufaty, Paul Brett, Abirami Prabhakaran, Li Zhao 0002, Nelson Ijih, Suchit Subhaschandra, Sabina Grover, Xiaowei Jiang, Ravi R. Iyer 0001
HPCA6
2012 The Forgotten 'Uncore': On the Energy-Efficiency of Heterogeneous Cores
Vishal Gupta 0001, Paul Brett, David A. Koufaty, Dheeraj Reddy, Scott Hahn, Karsten Schwan, Ganapati Srinivasa
USENIX ATC3
2012 Leveraging Core Specialization via OS Scheduling to Improve Performance on Asymmetric Multicore Systems
abstract
Asymmetric multicore processors (AMPs) consist of cores with the same ISA (instruction-set architecture), but different microarchitectural features, speed, and power consumption. Because cores with more complex features and higher speed typically use more area and consume more energy relative to simpler and slower cores, we must use these cores for running applications that experience significant performance improvements from using those features. Having cores of different types in a single system allows optimizing the performance/energy trade-off. To deliver this potential to unmodified applications, the OS scheduler must map threads to cores in consideration of the properties of both. Our work describes a Comprehensive scheduler for Asymmetric Multicore Processors (CAMP) that addresses shortcomings of previous asymmetry-aware schedulers. First, previous schedulers catered to only one kind of workload properties that are crucial for scheduling on AMPs; either efficiency or thread-level parallelism (TLP), but not both. CAMP overcomes this limitation showing how using both efficiency and TLP in synergy in a single scheduling algorithm can improve performance. Second, most existing schedulers relying on models for estimating how much faster a thread executes on a “fast” vs. “slow” core (i.e., the speedup factor ) were specifically designed for AMP systems where cores differ only in clock frequency. However, more realistic AMP systems include cores that differ more significantly in their features. To demonstrate the effectiveness of CAMP on more realistic scenarios, we augmented the CAMP scheduler with a model that predicts the speedup factor on a real AMP prototype that closely matches future asymmetric systems.
Juan Carlos Saez, Alexandra Fedorova, David A. Koufaty, Manuel Prieto 0001
ACM Trans. Comput. Syst.3
2011 Hystor: making the best use of solid state drives in high performance storage systems
abstract
With the fast technical improvement, flash memory based Solid State Drives (SSDs) are becoming an important part of the computer storage hierarchy to significantly improve performance and energy efficiency. However, due to its relatively high price and low capacity, a major system research issue to address is on how to make SSDs play their most effective roles in a high-performance storage system in cost- and performance-effective ways.
Feng Chen 0005, David A. Koufaty, Xiaodong Zhang 0001
ICS2
2010 Bias scheduling in heterogeneous multi-core architectures
abstract
Heterogeneous architectures that integrate a mix of big and small cores are very attractive because they can achieve high single-threaded performance while enabling high performance thread-level parallelism with lower energy costs. Despite their benefits, they pose significant challenges to the operating system software. Thread scheduling is one of the most critical challenges.
David A. Koufaty, Dheeraj Reddy, Scott Hahn
EuroSys1
2010 Operating system support for overlapping-ISA heterogeneous multi-core architectures
abstract
A heterogeneous processor consists of cores that are asymmetric in performance and functionality. Such a design provides a cost-effective solution for processor manufacturers to continuously improve both single-thread performance and multi-thread throughput. This design, however, faces significant challenges in the operating system, which traditionally assumes only homogeneous hardware. This paper presents a comprehensive study of OS support for heterogeneous architectures in which cores have asymmetric performance and overlapping, but non-identical instruction sets. Our algorithms allow applications to transparently execute and fairly share different types of cores. We have implemented these algorithms in the Linux 2.6.24 kernel and evaluated them on an actual heterogeneous platform. Evaluation results demonstrate that our designs efficiently manage heterogeneous hardware and enable significant performance improvements for a range of applications.
Tong Li 0003, Paul Brett, Rob C. Knauerhase, David A. Koufaty, Dheeraj Reddy, Scott Hahn
HPCA4
2007 Efficient operating system scheduling for performance-asymmetric multi-core architectures
abstract
Recent research advocates asymmetric multi-core architectures, where cores in the same processor can have different performance. These architectures support single-threaded performance and multithreaded throughput at lower costs (e.g., die size and power). However, they also pose unique challenges to operating systems, which traditionally assume homogeneous hardware. This paper presents AMPS, an operating system scheduler that efficiently supports both SMP-and NUMA-style performance-asymmetric architectures. AMPS contains three components: asymmetry-aware load balancing, faster-core-first scheduling, and NUMA-aware migration. We have implemented AMPS in Linux kernel 2.6.16 and used CPU clock modulation to emulate performance asymmetry on an SMP and NUMA system. For various workloads, we show that AMPS achieves a median speedup of 1.16 with a maximum of 1.44 over stock Linux on the SMP, and a median of 1.07 with a maximum of 2.61 on the NUMA system. Our results also show that AMPS improves fairness and repeatability of application performance measurements.
Tong Li 0003, Dan P. Baumberger, David A. Koufaty, Scott Hahn
SC3
1999 Compiler Support for Data Forwarding in Scalable Shared-Memory Multiprocessors
abstract
As the difference in speed between processor and memory system continues to increase, it is becoming crucial to develop and refine techniques that enhance the effectiveness of cache hierarchies. One promising technique in the context of scalable shared-memory multiprocessors is data forwarding. Forwarding hides the latency of communication-induced misses by having producer processors send data to the caches of potential consumer processors in advance. Forwarding can hide the latency effectively, has low instruction overhead, and uses few machine resources. This paper presents a complete implementation of a data forwarding pass in an industrial-strength parallelizing compiler. Complete Fortran applications are analyzed for dependences and, based on the analysis, automatically annotated with forwarding directives. We propose a forwarding framework that includes 4 new instructions: write-forward, write-broadcast, write-update, and write-through. New microarchitectural support is proposed. In our analysis, we assume that the assignment of loop iterations to processors is known. We perform simulations of multiprocessors with different cache, memory, machine sharing, and process migration parameters. We conclude that data forwarding delivers large speedups (six 32-processor applications ran an average of 40% faster), gets close to the upper bound in performance, and needs compiler support of only medium complexity.
David A. Koufaty, Josep Torrellas
ICPP1
1998 Comparing Data Forwarding and Prefetching for Communication-induced Misses in Shared-memory MPs
abstract
Abstract As the difference in speed between processor and memory system continues to increase, it is becoming crucial to develop and refine techniques that enhance the effectiveness of cache hierarchies. Two such techniques are data prefetching and data forwarding. With prefetching, a processor hides the latency of cache misses by requesting the data before it actually needs it. With forwarding, a producer processor hides the latency of communication-induced cache misses in the consumer processors by sending the data to the caches of the latter. These two techniques are complementary approaches to hiding the latency of communication-induced misses. This paper compares the effectiveness of data forwarding and data prefetching to hide communication-induced misses. Although both techniques require comparable hardware support, forwarding usually has a lower instruction overhead. We evaluate prefetching and forwarding algorithms in a parallelizing compiler using execution-driven simulations of a sharedmemory multiprocessor. Both data forwarding and prefetching reduce the execution time of applications significantly (30- 40 % on average). Forwarding performs better on average, while prefetching is more robust to changes in cache and memory parameters. Finally, we propose two ways of integrating the two techniques. The integration of the two techniques reduces the execution time even more (43-48 % on average) and is very robust. 1 Introduction As increases in processor speed continue to outstrip increases in memory system speed, it becomes crucial to develop and refine techniques that enhance the effectiveness of cache hierarchies. An important reason why cache hierarchies are sometimes ineffective in multiprocessors is the intrinsic interprocessor communication required by applications. To tolerate this communication, popularly known as data sharing, techniques that overlap processor computation with the communication have been proposed. Two of these techniques are data forwarding and data prefetching. In data forwarding [1, 8, 10], producer processors send the data to the caches of the processors that will use the data
David A. Koufaty, Josep Torrellas
International Conference on Supercomputing1
1996 Data Forwarding in Scalable Shared-Memory Multiprocessors
abstract
Scalable shared-memory multiprocessors are often slowed down by long-latency memory accesses. One way to cope with this problem is to use data forwarding to overlap memory accesses with computation. With data forwarding, when a processor produces a datum, in addition to updating its cache, it sends a copy of the datum to the caches of the processors that the compiler identified as consumers of it. As a result, when the consumer processors access the datum, they find it in their caches. This paper addresses two main issues. First, it presents a framework for a compiler algorithm for forwarding. Second, using address traces, it evaluates the performance impact of different levels of support for forwarding. Our simulations of a 32-processor machine show that an optimistic support for forwarding speeds up five applications by an average of 50% for large caches and 30% for small caches. For large caches, most sharing read misses are eliminated, while for small caches, forwarding does not increase the number of conflict misses significantly. Overall, support for forwarding in shared-memory multiprocessors promises to deliver good application speedups.
David A. Koufaty, Xiangfeng Chen, David K. Poulsen, Josep Torrellas
IEEE Trans. Parallel Distributed Syst.1
1995 Data Forwarding in Scalable Shared-Memory Multiprocessors
abstract
Article Free Access Share on Data forwarding in scalable shared-memory multiprocessors Authors: D. A. Koufaty Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign, IL Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign, ILView Profile , X. Chen Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign, IL Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign, ILView Profile , D. K. Poulsen Kuck and Associates, Inc., Champaign, IL and Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign, IL Kuck and Associates, Inc., Champaign, IL and Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign, ILView Profile , J. Torrellas Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign, IL Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign, ILView Profile Authors Info & Claims ICS '95: Proceedings of the 9th international conference on SupercomputingJuly 1995 Pages 255–264https://doi.org/10.1145/224538.224569Published:03 July 1995Publication History 50citation272DownloadsMetricsTotal Citations50Total Downloads272Last 12 Months23Last 6 weeks5 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
David A. Koufaty, Xiangfeng Chen, David K. Poulsen, Josep Torrellas
International Conference on Supercomputing1
1994 Comparing the Performance of the DASH and CEDAR Multiprocessors
abstract
Scalable shared-memory multiprocessors are attractive because they achieve large-scale parallel processing without surrendering much programmability. Several such machines have been built or are currently being built, for instance RP3, Cedar, KSR1, DASH, DDM1, Alewife, Cray T3D, or the Tera computer system. While all these machines support the shared-memory paradigm, they differ significantly. For example, some of them use hardware to support cache coherence, while others rely on the compiler or the programmer to do so. Furthermore, a subset of the machines are hierarchical, and some have the processors grouped in clusters. In addition to these and other hardware issues, machines also differ in software issues. For instance, the most natural model of parallelism supported by compilers and the operating system can be task- or loop-based.
Josep Torrellas, David A. Koufaty, David A. Padua
ICPP (2)2