Demo Data from EDBT 2026 / reviewers in the wild / expert
Christopher B. Colohan
dblp:56/1100
· DBLP profile ↗
10ranked-venue papers
4as first author
0since 2021 · last 2008
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 9 · 3 first-authorSoftware engineering, systems software and programming languages · 4 · 1 first-authorDatabases, data management, data science and information retrieval · 1 · 1 first-author
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 |
Parallel and multicore computing · 53% Processor architecture and microarchitecture · 31% Memory systems · 16% | |
| Databases, data mining, and information retrieval
2 papers |
Transaction processing and concurrency control · 100% | |
| Software engineering, system software, and programming languages
2 papers |
Compilers and program optimization · 100% |
Topics — the 13 heaviest of 14, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Parallel and multicore computing › speculative parallelization
thread-level speculation |
0.4 | 7 | 2008 | Compiler and hardware support for reducing the synchronization of speculative threads · ACM Trans. Archit. Code Optim. 2008 CMP Support for Large and Dependent Speculative Threads · IEEE Trans. Parallel Distributed Syst. 2007 Tolerating Dependences Between Large Speculative Threads Via Sub-Threads · ISCA 2006 |
Parallel and multicore computing
speculative parallelization |
0.1 | 2 | 2008 | Incrementally parallelizing database transactions with thread-level speculation · ACM Trans. Comput. Syst. 2008 Tolerating Dependences Between Large Speculative Threads Via Sub-Threads · ISCA 2006 |
Processor architecture and microarchitecture
chip multiprocessor |
0.1 | 5 | 2008 | CMP Support for Large and Dependent Speculative Threads · IEEE Trans. Parallel Distributed Syst. 2007 Incrementally parallelizing database transactions with thread-level speculation · ACM Trans. Comput. Syst. 2008 The STAMPede approach to thread-level speculation · ACM Trans. Comput. Syst. 2005 |
Transaction processing and concurrency control › transaction execution
intratransaction parallelism |
0.1 | 2 | 2008 | Incrementally parallelizing database transactions with thread-level speculation · ACM Trans. Comput. Syst. 2008 Optimistic Intra-Transaction Parallelism on Chip Multiprocessors · VLDB 2005 |
Compilers and program optimization
instruction scheduling |
0.1 | 2 | 2008 | Compiler and hardware support for reducing the synchronization of speculative threads · ACM Trans. Archit. Code Optim. 2008 Compiler optimization of scalar value communication between speculative threads · ASPLOS 2002 |
Processor architecture and microarchitecture
speculative execution |
0.1 | 2 | 2007 | CMP Support for Large and Dependent Speculative Threads · IEEE Trans. Parallel Distributed Syst. 2007 Improving Value Communication for Thread-Level Speculation · HPCA 2002 |
Parallel and multicore computing
parallel programming models |
0.1 | 1 | 2008 | Incrementally parallelizing database transactions with thread-level speculation · ACM Trans. Comput. Syst. 2008 |
Memory systems
cache coherence |
0.1 | 2 | 2005 | The STAMPede approach to thread-level speculation · ACM Trans. Comput. Syst. 2005 A scalable approach to thread-level speculation · ISCA 2000 |
Memory systems › cache coherence
writeback invalidation-based coherence |
0.1 | 2 | 2005 | The STAMPede approach to thread-level speculation · ACM Trans. Comput. Syst. 2005 A scalable approach to thread-level speculation · ISCA 2000 |
Processor architecture and microarchitecture
multithreading |
0.1 | 1 | 2005 | The STAMPede approach to thread-level speculation · ACM Trans. Comput. Syst. 2005 |
Processor architecture and microarchitecture
value prediction |
0.0 | 1 | 2002 | Improving Value Communication for Thread-Level Speculation · HPCA 2002 |
Memory systems
speculative memory state buffering |
0.0 | 1 | 2007 | CMP Support for Large and Dependent Speculative Threads · IEEE Trans. Parallel Distributed Syst. 2007 |
Processor architecture and microarchitecture › multithreading
speculative multithreading |
0.0 | 1 | 2002 | Compiler optimization of scalar value communication between speculative threads · ASPLOS 2002 |
Methods — techniques the papers use, named apart from their topics
simulation · 0.3instruction scheduling · 0.2dataflow algorithms · 0.2thread-level speculation · 0.2optimistic concurrency control · 0.1checkpointing · 0.1experimental evaluation · 0.1compiler-based parallelization · 0.1hardware instruction prioritization · 0.0dynamic synchronization · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2008 | Compiler and hardware support for reducing the synchronization of speculative threadsabstractThread-level speculation (TLS) allows us to automatically parallelize general-purpose programs by supporting parallel execution of threads that might not actually be independent. In this article, we focus on one important limitation of program performance under TLS, which stalls as a result of synchronizing and forwarding scalar values between speculative threads that would otherwise cause frequent data dependences and, hence, failed speculation. Using SPECint benchmarks that have been automatically transformed by our compiler to exploit TLS, we present, evaluate in detail, and compare both compiler and hardware techniques for improving the communication of scalar values. We find that through our dataflow algorithms for three increasingly aggressive instruction scheduling techniques, the compiler can drastically reduce thecritical forwarding pathintroduced by the synchronization and forwarding of scalar values. We also show that hardware techniques for reducing synchronization can be complementary to compiler scheduling, but that the additional performance benefits are minimal and are generally not worth the cost. Antonia Zhai, J. Gregory Steffan, Christopher B. Colohan, Todd C. Mowry |
ACM Trans. Archit. Code Optim. | 3 |
| 2008 | Incrementally parallelizing database transactions with thread-level speculationabstractWith the advent of chip multiprocessors, exploiting intratransaction parallelism in database systems is an attractive way of improving transaction performance. However, exploiting intratransaction parallelism is difficult for two reasons: first, significant changes are required to avoid races or conflicts within the DBMS; and second, adding threads to transactions requires a high level of sophistication from transaction programmers. In this article we show how dividing a transaction into speculative threads solves both problems—it minimizes the changes required to the DBMS, and the details of parallelization are hidden from the transaction programmer. Our technique requires a limited number of small, localized changes to a subset of the low-level data structures in the DBMS. Through this method of incrementally parallelizing transactions, we can dramatically improve performance: on a simulated four-processor chip-multiprocessor, we improve the response time by 44--66% for three of the five TPC-C transactions, assuming the availability of idle processors. Christopher B. Colohan, Anastasia Ailamaki, J. Gregory Steffan, Todd C. Mowry |
ACM Trans. Comput. Syst. | 1 |
| 2007 | CMP Support for Large and Dependent Speculative ThreadsabstractThread-level speculation (TLS) has proven to be a promising method of extracting parallelism from both integer and scientific workloads, targeting speculative threads that range in size from hundreds to several thousand dynamic instructions and have minimal dependences between them. However, recent work has shown that TLS can offer compelling performance improvements when targeting much larger speculative threads of more than 50,000 dynamic instructions per thread, with many frequent data dependences between them. To support such large and dependent speculative threads, hardware must be able to buffer the additional speculative state, and must also address the more challenging problem of tolerating the resulting cross-thread data dependences. In this article we present chipmultiprocessor (CMP) support for large speculative threads that integrates several previous proposals for TLS hardware. We also present support for sub-threads: a mechanism for tolerating crossthread data dependences by checkpointing speculative execution. Through an evaluation that exploits the proposed hardware support in the database domain, we find that the transaction response time for three of the five transactions from TPC-C (on a simulated 4-processor chip-multiprocessor) speed up by a factor of 1.9 to 2.9. Christopher B. Colohan, Anastasia Ailamaki, J. Gregory Steffan, Todd C. Mowry |
IEEE Trans. Parallel Distributed Syst. | 1 |
| 2006 | Tolerating Dependences Between Large Speculative Threads Via Sub-ThreadsabstractThread-level speculation (TLS) has proven to be a promising method of extracting parallelism from both integer and scientific workloads, targeting speculative threads that range in size from hundreds to several thousand dynamic instructions and have minimal dependences between them. Recent work has shown that TLS can offer compelling performance improvements for database workloads, but only when targeting much larger speculative threads of more than 50,000 dynamic instructions per thread, with many frequent data dependences between them. To support such large and dependent speculative threads, hardware must be able to buffer the additional speculative state, and must also address the more challenging problem of tolerating the resulting cross-thread data dependences. In this paper we present hardware support for large speculative threads that integrates several previous proposals for TLS hardware. We also introduce support for sub-threads; a mechanism for tolerating cross-thread data dependences by checkpointing speculative execution. When speculation fails due to a violated data dependence, with sub-threads the failed thread need only rewind to the checkpoint of the appropriate sub-thread rather than rewinding to the start of execution; this significantly reduces the cost of mis-speculation. We evaluate our hardware support for large and dependent speculative threads in the database domain and find that the transaction response time for three of the five transactions from TPC-C (on a simulated 4-processor chip-multiprocessor) speedup by a factor of 1.9 to 2.9 Christopher B. Colohan, Anastasia Ailamaki, J. Gregory Steffan, Todd C. Mowry |
ISCA | 1 |
| 2005 | Optimistic Intra-Transaction Parallelism on Chip Multiprocessors
Christopher B. Colohan, Anastasia Ailamaki, J. Gregory Steffan, Todd C. Mowry |
VLDB | 1 |
| 2005 | The STAMPede approach to thread-level speculationabstractMultithreaded processor architectures are becoming increasingly commonplace: many current and upcoming designs support chip multiprocessing, simultaneous multithreading, or both. While it is relatively straightforward to use these architectures to improve the throughput of a multithreaded or multiprogrammed workload, the real challenge is how to easily create parallel software to allow single programs to effectively exploit all of this raw performance potential. One promising technique for overcoming this problem is Thread-Level Speculation (TLS) , which enables the compiler to optimistically create parallel threads despite uncertainty as to whether those threads are actually independent. In this article, we propose and evaluate a design for supporting TLS that seamlessly scales both within a chip and beyond because it is a straightforward extension of write-back invalidation-based cache coherence (which itself scales both up and down). Our experimental results demonstrate that our scheme performs well on single-chip multiprocessors where the first level caches are either private or shared. For our private-cache design, the program performance of two of 13 general purpose applications studied improves by 86% and 56%, four others by more than 8%, and an average across all applications of 16%---confirming that TLS is a promising way to exploit the naturally-multithreaded processing resources of future computer systems. J. Gregory Steffan, Christopher B. Colohan, Antonia Zhai, Todd C. Mowry |
ACM Trans. Comput. Syst. | 2 |
| 2004 | Compiler Optimization of Memory-Resident Value Communication Between Speculative ThreadsabstractEfficient inter-thread value communication is essential for improving performance in thread-level speculation (TLS). Although several mechanisms for improving value communication using hardware support have been proposed, there is relatively little work on exploiting the potential of compiler optimization. Building on recent research on compiler optimization of scalar value communication between speculative threads, we propose compiler techniques for the optimization of memory-resident values. In TLS, data dependences through memory-resident values are tracked by the underlying hardware and preserved by re-executing any speculative thread that violates a dependence; however, re-execution incurs a large performance penalty and should be used only to resolve data dependences that are infrequent. In contrast, value communication for frequently-occurring data dependences must be very efficient. We propose using the compiler to first identify frequently-occurring memory-resident data dependences, then insert synchronization for communicating values to preserve these dependences. We find that by synchronizing frequently-occurring data dependences we can significantly improve the efficiency of parallel execution. A comparison between compiler-inserted and hardware-inserted memory synchronization reveals that the two techniques are complementary, with each technique benefitting different benchmarks. Antonia Zhai, Christopher B. Colohan, J. Gregory Steffan, Todd C. Mowry |
CGO | 2 |
| 2002 | Compiler optimization of scalar value communication between speculative threadsabstractWhile there have been many recent proposals for hardware that supports Thread-Level Speculation (TLS), there has been relatively little work on compiler optimizations to fully exploit this potential for parallelizing programs optimistically. In this paper, we focus on one important limitation of program performance under TLS, which is stalls due to forwarding scalar values between threads that would otherwise cause frequent data dependences. We present and evaluate dataflow algorithms for three increasingly-aggressive instruction scheduling techniques that reduce the critical forwarding path introduced by the synchronization associated with this data forwarding. In addition, we contrast our compiler techniques with related hardware-only approaches. With our most aggressive compiler and hardware techniques, we improve performance under TLS by 6.2-28.5% for 6 of 14 applications, and by at least 2.7% for half of the other applications. Antonia Zhai, Christopher B. Colohan, J. Gregory Steffan, Todd C. Mowry |
ASPLOS | 2 |
| 2002 | Improving Value Communication for Thread-Level SpeculationabstractThread-level speculation (TLS) allows us to automatically parallelize general-purpose programs by supporting parallel execution of threads that might not actually be independent. In this paper, we show that the key to good performance ties in the three different ways to communicate a value between speculative threads: speculation, synchronization and prediction. The difficult part is deciding how and when to apply each method. This paper shows how we can apply value prediction, dynamic synchronization and hardware instruction prioritization to improve value communication and hence performance in several SPECint benchmarks that have been automatically transformed by our compiler to exploit TLS. We find that value prediction can be effective when properly throttled to avoid the high costs of mis-prediction, while most of the gains of value prediction can be more easily achieved by exploiting silent stores. We also show that dynamic synchronization is quite effective for most benchmarks, while hardware instruction prioritization is not. Overall, we find that these techniques have great potential for improving the performance of TLS. J. Gregory Steffan, Christopher B. Colohan, Antonia Zhai, Todd C. Mowry |
HPCA | 2 |
| 2000 | A scalable approach to thread-level speculationabstractWhile architects understand how to build cost-effective parallel machines across a wide spectrum of machine sizes (ranging from within a single chip to large-scale servers), the real challenge is how to easily create parallel software to effectively exploit all of this raw performance potential. One promising technique for overcoming this problem is Thread-Level Speculation (TLS), which enables the compiler to optimistically create parallel threads despite uncertainty as to whether those threads are actually independent. In this paper, we propose and evaluate a design for supporting TLS that seamlessly scales to any machine size because it is a straightforward extension of writeback invalidation-based cache coherence (which itself scales both up and down). Our experimental results demonstrate that our scheme performs well on both single-chip multiprocessors and on larger-scale machines where communication latencies are twenty times larger. J. Gregory Steffan, Christopher B. Colohan, Antonia Zhai, Todd C. Mowry |
ISCA | 2 |