This paper proposes a complementary novel idea, called MiniTasking to further reduce the number of cache misses by improving the data temporal locality for multiple concurrent queries. Our idea is based on the observa...This paper proposes a complementary novel idea, called MiniTasking to further reduce the number of cache misses by improving the data temporal locality for multiple concurrent queries. Our idea is based on the observation that, in many workloads such as decision support systems (DSS), there is usually significant amount of data sharing among different concurrent queries. MiniTasking exploits such data sharing to improve data temporal locality by scheduling query execution at three levels: query level batching, operator level grouping and mini-task level scheduling. The experimental results with various types of concurrent TPC-H query workloads show that, with the traditional N-ary Storage Model (NSM) layout, MiniTasking significantly reduces the L2 cache misses by up to 83%, and thereby achieves 24% reduction in execution time. With the Partition Attributes Across (PAX) layout, MiniTasking further reduces the cache misses by 65% and the execution time by 9%. For the TPC-H throughput test workload, MiniTasking improves the end performance up to 20%.展开更多
To improve data cache performance, optimizing program data layout by data reorganization has become an important method of decreasing the impact of increasing gap of speed between processor and memory. In this article...To improve data cache performance, optimizing program data layout by data reorganization has become an important method of decreasing the impact of increasing gap of speed between processor and memory. In this article, a structure splitting framework with an analysis model named structure field relation graph (SFRG) is presented to optimize program data layout. The SFRG can be used to quantify relationship between fields. It helps to find an optimal layout for structure as well as the optimal program data layout. And the data cache performance is improved through SFRG-based structure splitting. Experiments show that this framework is effective in optimizing program data layout and improving the performance of data cache and whole program.展开更多
文摘This paper proposes a complementary novel idea, called MiniTasking to further reduce the number of cache misses by improving the data temporal locality for multiple concurrent queries. Our idea is based on the observation that, in many workloads such as decision support systems (DSS), there is usually significant amount of data sharing among different concurrent queries. MiniTasking exploits such data sharing to improve data temporal locality by scheduling query execution at three levels: query level batching, operator level grouping and mini-task level scheduling. The experimental results with various types of concurrent TPC-H query workloads show that, with the traditional N-ary Storage Model (NSM) layout, MiniTasking significantly reduces the L2 cache misses by up to 83%, and thereby achieves 24% reduction in execution time. With the Partition Attributes Across (PAX) layout, MiniTasking further reduces the cache misses by 65% and the execution time by 9%. For the TPC-H throughput test workload, MiniTasking improves the end performance up to 20%.
基金supported by the National Natural Science Foundation of China (60973139, 60773041)the Hi-Tech Research and Development Program of China (2007AA01Z404, 2007AA01Z478)+1 种基金the Technology Innovation Fund for Higher Education Institutions of Jiangsu Province (CX08B-085Z, CX08B-086Z)project of NJUPT(NY207135)
文摘To improve data cache performance, optimizing program data layout by data reorganization has become an important method of decreasing the impact of increasing gap of speed between processor and memory. In this article, a structure splitting framework with an analysis model named structure field relation graph (SFRG) is presented to optimize program data layout. The SFRG can be used to quantify relationship between fields. It helps to find an optimal layout for structure as well as the optimal program data layout. And the data cache performance is improved through SFRG-based structure splitting. Experiments show that this framework is effective in optimizing program data layout and improving the performance of data cache and whole program.