This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Improving Database Performance on Simultaneous Multithreading Processors Jingren Zhou Microsoft Research [email protected] John Cieslewicz Columbia University [email protected] Kenneth A. Ross ∗ Columbia University [email protected] Mihir Shah Columbia University [email protected] Abstract Simultaneous multithreading (SMT) allows multiple threads to supply instructions to the instruction pipeline of a superscalar processor. Because threads share processor resources, an SMT system is inherently different from a multiprocessor system and, therefore, utilizing multiple threads on an SMT processor creates new challenges for database implementers. We investigate three thread-based techniques to exploit SMT architectures on memory- resident data. First, we consider running independent operations in separate threads, a technique applied to conventional multi- processor systems. Second, we describe a novel implementation strategy in which indi- vidual operators are implemented in a multi- threaded fashion. Finally, we introduce a new data-structure called a work-ahead set that al- lows us to use one of the threads to aggres- sively preload data into the cache. We evaluate each method with respect to its performance, implementation complexity, and other measures. We also provide guidance re- garding when and how to best utilize the var- ious threading techniques. Our experimental results show that by taking advantage of SMT technology we achieve a 30% to 70% improve- ment in throughput over single threaded im- plementations on in-memory database opera- tions. ∗ This research was supported by NSF grants IIS-0120939 and IIS-0121239. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the VLDB copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Very Large Data Base Endowment. To copy otherwise, or to republish, requires a fee and/or special permission from the Endowment. Proceedings of the 31st VLDB Conference, Trondheim, Norway, 2005 1 Introduction Simultaneous multithreading (SMT) improves CPU performance by supporting thread-level parallelism on a single superscalar processor . An SMT processor pretends to be multiple logical processors. From the perspective of applications running on an SMT sys- tem, there appear to be multiple processors. Multiple threads may issue instructions on each cycle and si- multaneously share processor resources. The resulting higher instruction throughput and program speedup are beneficial for a variety of workloads, including web servers and multimedia applications....
View Full Document
- Three '10
- CPU cache, main thread, Work-ahead Set, helper thread