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

Christopher B. Colohan

dblp:56/1100 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Parallel and multicore computing › speculative parallelization
thread-level speculation
0.472008
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.122008
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.152008
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.122008
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.122008
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.122007
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.112008
Incrementally parallelizing database transactions with thread-level speculation · ACM Trans. Comput. Syst. 2008
Memory systems
cache coherence
0.122005
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.122005
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.112005
The STAMPede approach to thread-level speculation · ACM Trans. Comput. Syst. 2005
Processor architecture and microarchitecture
value prediction
0.012002
Improving Value Communication for Thread-Level Speculation · HPCA 2002
Memory systems
speculative memory state buffering
0.012007
CMP Support for Large and Dependent Speculative Threads · IEEE Trans. Parallel Distributed Syst. 2007
Processor architecture and microarchitecture › multithreading
speculative multithreading
0.012002
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
YearPublicationVenuePosition
2008 Compiler and hardware support for reducing the synchronization of speculative threads
abstract
Thread-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 speculation
abstract
With 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 Threads
abstract
Thread-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-Threads
abstract
Thread-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
ISCA1
2005 Optimistic Intra-Transaction Parallelism on Chip Multiprocessors
Christopher B. Colohan, Anastasia Ailamaki, J. Gregory Steffan, Todd C. Mowry
VLDB1
2005 The STAMPede approach to thread-level speculation
abstract
Multithreaded 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 Threads
abstract
Efficient 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
CGO2
2002 Compiler optimization of scalar value communication between speculative threads
abstract
While 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
ASPLOS2
2002 Improving Value Communication for Thread-Level Speculation
abstract
Thread-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
HPCA2
2000 A scalable approach to thread-level speculation
abstract
While 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
ISCA2