Demo Data from EDBT 2026 / reviewers in the wild / expert
Jack L. Lo
dblp:40/2443
· DBLP profile ↗
7ranked-venue papers
5as first author
0since 2021 · last 1999
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 6 · 4 first-authorSoftware engineering, systems software and programming languages · 3 · 2 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
7 papers |
Processor architecture and microarchitecture · 87% Memory systems · 7% Parallel and multicore computing · 4% | |
| Software engineering, system software, and programming languages
3 papers |
Compilers and program optimization · 52% Concurrent programming · 48% |
Topics — the 16 heaviest of 18, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Processor architecture and microarchitecture › multithreading
simultaneous multithreading |
0.1 | 6 | 1999 | Software-Directed Register Deallocation for Simultaneous Multithreaded Processors · IEEE Trans. Parallel Distributed Syst. 1999 Supporting Fine-Grained Synchronization on a Simultaneous Multithreading Processor · HPCA 1999 An Analysis of Database Workload Performance on Simultaneous Multithreaded Processors · ISCA 1998 |
Concurrent programming
synchronization |
0.0 | 1 | 1999 | Supporting Fine-Grained Synchronization on a Simultaneous Multithreading Processor · HPCA 1999 |
Processor architecture and microarchitecture
multithreading |
0.0 | 1 | 1999 | Supporting Fine-Grained Synchronization on a Simultaneous Multithreading Processor · HPCA 1999 |
Processor architecture and microarchitecture › register file
register file management |
0.0 | 1 | 1999 | Software-Directed Register Deallocation for Simultaneous Multithreaded Processors · IEEE Trans. Parallel Distributed Syst. 1999 |
Processor architecture and microarchitecture › out-of-order execution
register renaming |
0.0 | 1 | 1999 | Software-Directed Register Deallocation for Simultaneous Multithreaded Processors · IEEE Trans. Parallel Distributed Syst. 1999 |
Memory systems
cache |
0.0 | 1 | 1998 | An Analysis of Database Workload Performance on Simultaneous Multithreaded Processors · ISCA 1998 |
Processor architecture and microarchitecture
multicore design |
0.0 | 1 | 1997 | Converting Thread-Level Parallelism to Instruction-Level Parallelism via Simultaneous Multithreading · ACM Trans. Comput. Syst. 1997 |
Processor architecture and microarchitecture
instruction-level parallelism |
0.0 | 1 | 1995 | Improving Balanced Scheduling with Compiler Optimizations that Increase Instruction-Level Parallelism · PLDI 1995 |
Processor architecture and microarchitecture
instruction scheduling |
0.0 | 1 | 1995 | Improving Balanced Scheduling with Compiler Optimizations that Increase Instruction-Level Parallelism · PLDI 1995 |
Database system architecture and tuning
workload characterization |
0.0 | 1 | 1998 | An Analysis of Database Workload Performance on Simultaneous Multithreaded Processors · ISCA 1998 |
Performance modeling and evaluation
workload characterization |
0.0 | 1 | 1998 | An Analysis of Database Workload Performance on Simultaneous Multithreaded Processors · ISCA 1998 |
Parallel and multicore computing
parallel architecture |
0.0 | 1 | 1997 | Converting Thread-Level Parallelism to Instruction-Level Parallelism via Simultaneous Multithreading · ACM Trans. Comput. Syst. 1997 |
Parallel and multicore computing
thread-level parallelism |
0.0 | 1 | 1997 | Tuning Compiler Optimizations for Simultaneous Multithreading · MICRO 1997 |
Processor architecture and microarchitecture
superscalar processor |
0.0 | 1 | 1996 | Exploiting Choice: Instruction Fetch and Issue on an Implementable Simultaneous Multithreading Processor · ISCA 1996 |
Compilers and program optimization
compiler optimization |
0.0 | 1 | 1995 | Improving Balanced Scheduling with Compiler Optimizations that Increase Instruction-Level Parallelism · PLDI 1995 |
Compilers and program optimization
instruction scheduling |
0.0 | 1 | 1995 | Improving Balanced Scheduling with Compiler Optimizations that Increase Instruction-Level Parallelism · PLDI 1995 |
Methods — techniques the papers use, named apart from their topics
simulation · 0.1synchronization scheme design · 0.0trace analysis · 0.0software speculative execution · 0.0loop-iteration scheduling · 0.0loop tiling · 0.0list scheduling · 0.0instruction-level simulation · 0.0compiler-OS cooperation · 0.0performance comparison · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 1999 | Supporting Fine-Grained Synchronization on a Simultaneous Multithreading ProcessorabstractThis paper proposes and evaluates new synchronization schemes for a simultaneous multithreaded processor. We present a scalable mechanism that permits threads to cheaply synchronize within the processor, with blocked threads consuming no processor resources. We also introduce the concept of lock release prediction, which gains an additional improvement of 40%. Overall, we show that these improvements in synchronization cost enable parallelization of code that could not be effectively parallelized using traditional techniques. Dean M. Tullsen, Jack L. Lo, Susan J. Eggers, Henry M. Levy |
HPCA | 2 |
| 1999 | Software-Directed Register Deallocation for Simultaneous Multithreaded ProcessorsabstractThis paper proposes and evaluates software techniques that increase register file utilization for simultaneous multithreading (SMT) processors. SMT processors require large register files to hold multiple thread contexts that can issue instructions out of order every cycle. By supporting better interthread sharing and management of physical registers, an SMT processor can reduce the number of registers required and can improve performance for a given register file size. Our techniques specifically target register deal location. While out-of-order processors with register renaming are effective at knowing when a new physical register must be allocated, they have limited knowledge of when physical registers can be deallocated. We propose architectural extensions that permit the compiler and operating system to: 1) free registers immediately upon their last use, and 2) free registers allocated to idle thread contexts. Our results, based on detailed instruction-level simulations of an SMT processor, show that these techniques can increase performance significantly for register-intensive, multithreaded programs. Jack L. Lo, Sujay S. Parekh, Susan J. Eggers, Henry M. Levy, Dean M. Tullsen |
IEEE Trans. Parallel Distributed Syst. | 1 |
| 1998 | An Analysis of Database Workload Performance on Simultaneous Multithreaded ProcessorsabstractSimultaneous multithreading (SMT) is an architectural technique in which the processor issues multiple instructions from multiple threads each cycle. While SMT has been shown to be effective on scientific workloads, its performance on database systems is still an open question. In particular, database systems have poor cache performance, and the addition of multithreading has the potential to exacerbate cache conflicts. This paper examines database performance on SMT processors using traces of the Oracle database management system. Our research makes three contributions. First, it characterizes the memory-system behavior of database systems running on-line transaction processing and decision support system workloads. Our data show that while DBMS workloads have large memory footprints, there is substantial data reuse in a small, cacheable "critical" working set. Second, we show that the additional data cache conflicts caused by simultaneous-multithreaded instruction scheduling can be nearly eliminated by the proper choice of software-directed policies for virtual-to-physical page mapping and per-process address offsetting. Our results demonstrate that with the best policy choices, D-cache miss rates on an 8-context SMT are roughly equivalent to those on a single-threaded superscalar. Multithreading also leads to better interthread instruction cache sharing, reducing I-cache miss rates by up to 35%. Third, we show that SMT's latency tolerance is highly effective for database applications. For example, using a memory-intensive OLTP workload, an 8-context SMT processor achieves a 3-fold increase in instruction throughput over a single-threaded superscalar with similar resources. Jack L. Lo, Luiz André Barroso, Susan J. Eggers, Kourosh Gharachorloo, Henry M. Levy, Sujay S. Parekh |
ISCA | 1 |
| 1997 | Tuning Compiler Optimizations for Simultaneous MultithreadingabstractCompiler optimizations are often driven by specific assumptions about the underlying architecture and implementation of the target machine. For example, when targeting shared-memory multiprocessors, parallel programs are compiled to minimize sharing, in order to decrease high-cost, inter-processor communication. This paper reexamines several compiler optimizations in the context of simultaneous multithreading (SMT), a processor architecture that issues instructions from multiple threads to the functional units each cycle. Unlike shared-memory multiprocessors, SMT provides and benefits from fine-grained sharing of processor and memory system resources; unlike current multiprocessors, SMT exposes and benefits from inter-thread instruction-level parallelism when hiding latencies. Therefore, optimizations that are appropriate for these conventional machines may be inappropriate for SMT. We revisit three optimizations in this light: loop-iteration scheduling, software speculative execution, and loop tiling. Our results show that all three optimizations should be applied differently in the context of SMT architectures: threads should be parallelized with a cyclic, rather than a blocked algorithm; non-loop programs should not be software speculated and compilers no longer need to be concerned about precisely sizing tiles to match cache sizes. By following these new guidelines compilers can generate code that improves the performance of programs executing on SMT machines. Jack L. Lo, Susan J. Eggers, Henry M. Levy, Sujay S. Parekh, Dean M. Tullsen |
MICRO | 1 |
| 1997 | Converting Thread-Level Parallelism to Instruction-Level Parallelism via Simultaneous MultithreadingabstractTo achieve high performance, contemporary computer systems rely on two forms of parallelism: instruction-level parallelism (ILP) and thread-level parallelism (TLP). Wide-issue super-scalar processors exploit ILP by executing multiple instructions from a single program in a single cycle. Multiprocessors (MP) exploit TLP by executing different threads in parallel on different processors. Unfortunately, both parallel processing styles statically partition processor resources, thus preventing them from adapting to dynamically changing levels of ILP and TLP in a program. With insufficient TLP, processors in an MP will be idle; with insufficient ILP, multiple-issue hardware on a superscalar is wasted. This article explores parallel processing on an alternative architecture, simultaneous multithreading (SMT), which allows multiple threads to complete for and share all of the processor's resources every cycle. The most compelling reason for running parallel applications on an SMT processor is its ability to use thread-level parallelism and instruction-level parallelism interchangeably. By permitting multiple threads to share the processor's functional units simultaneously, the processor can use both ILP and TLP to accommodate variations in parallelism. When a program has only a single thread, all of the SMT processor's resources can be dedicated to that thread; when more TLP exists, this parallelism can compensate for a lack of per-thread ILP. We examine two alternative on-chip parallel architectures for the next generation of processors. We compare SMT and small-scale, on-chip multiprocessors in their ability to exploit both ILP and TLP. First, we identify the hardware bottlenecks that prevent multiprocessors from effectively exploiting ILP. Then, we show that because of its dynamic resource sharing, SMT avoids these inefficiencies and benefits from being able to run more threads on a single processor. The use of TLP is especially advantageous when per-thread ILP is limited. The ease of adding additional thread contexts on an SMT (relative to adding additional processors on an MP) allows simultaneous multithreading to expose more parallelism, further increasing functional unit utilization and attaining a 52% average speedup (versus a four-processor, single-chip multiprocessor with comparable execution resources). This study also addresses an often-cited concern regarding the use of thread-level parallelism or multithreading: interference in the memory system and branch prediction hardware. We find the multiple threads cause interthread interference in the caches and place greater demands on the memory system, thus increasing average memory latencies. By exploiting threading-level parallelism, however, SMT hides these additional latencies, so that they only have a small impact on total program performance. We also find that for parallel applications, the additional threads have minimal effects on branch prediction. Jack L. Lo, Susan J. Eggers, Joel S. Emer, Henry M. Levy, Rebecca L. Stamm, Dean M. Tullsen |
ACM Trans. Comput. Syst. | 1 |
| 1996 | Exploiting Choice: Instruction Fetch and Issue on an Implementable Simultaneous Multithreading ProcessorabstractSimultaneous multithreading is a technique that permits multiple independent threads to issue multiple instructions each cycle. In previous work we demonstrated the performance potential of simultaneous multithreading, based on a somewhat idealized model. In this paper we show that the throughput gains from simultaneous multithreading can be achieved without extensive changes to a conventional wide-issue superscalar, either in hardware structures or sizes. We present an architecture for simultaneous multithreading that achieves three goals: (1) it minimizes the architectural impact on the conventional superscalar design, (2) it has minimal performance impact on a single thread executing alone, and (3) it achieves significant throughput gains when running multiple threads. Our simultaneous multithreading architecture achieves a throughput of 5.4 instructions per cycle, a 2.5-fold improvement over an unmodified superscalar with similar hardware resources. This speedup is enhanced by an advantage of multithreading previously unexploited in other architectures: the ability to favor for fetch and issue those threads most efficiently using the processor each cycle, thereby providing the "best" instructions to the processor. Dean M. Tullsen, Susan J. Eggers, Joel S. Emer, Henry M. Levy, Jack L. Lo, Rebecca L. Stamm |
ISCA | 5 |
| 1995 | Improving Balanced Scheduling with Compiler Optimizations that Increase Instruction-Level ParallelismabstractTraditional list schedulers order instructions based on an optimistic estimate of the load latency imposed by the hardware and therefore cannot respond to variations in memory latency caused by cache hits and misses on non-blocking architectures. In contrast, balanced scheduling schedules instructions based on an estimate of the amount of instruction-level parallelism in the program. By scheduling independent instructions behind loads based on what the program can provide, rather than what the implementation stipulates in the best case (i.e., a cache hit), balanced scheduling can hide variations in memory latencies more effectively. Jack L. Lo, Susan J. Eggers |
PLDI | 1 |