This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
SD3: An Efficient Dynamic Data-Dependence Profiling Mechanism
Dec. 2013 (vol. 62 no. 12)
pp. 2516-2530
Minjang Kim, Georgia Institute of Technology, Atlanta
Nagesh B. Lakshminarayana, Georgia Institute of Technology, Atlanta
Hyesoon Kim, Georgia Institute of Technology, Atlanta
Chi-Keung Luk, Intel, Hudson
As multicore processors are deployed in mainstream computing, the need for software tools to help parallelize programs is increasing dramatically. Data-dependence profiling is an important program analysis technique to exploit parallelism in serial programs. More specifically, manual, semiautomatic, or automatic parallelization can use the outcomes of data-dependence profiling to guide where and how to parallelize in a program. However, state-of-the-art data-dependence profiling techniques consume extremely huge resources as they suffer from two major issues when profiling large and long-running applications: 1) runtime overhead and 2) memory overhead. Existing data-dependence profilers are either unable to profile large-scale applications with a typical resource budget or only report very limited information. In this paper, we propose an efficient approach to data-dependence profiling that can address both runtime and memory overhead in a single framework. Our technique, called SD$({}^3)$, reduces the runtime overhead by parallelizing the dependence profiling step itself. To reduce the memory overhead, we compress memory accesses that exhibit stride patterns and compute data dependences directly in a compressed format. We demonstrate that SD$({}^3)$ reduces the runtime overhead when profiling SPEC 2006 by a factor of 4.1× and 9.7× on eight cores and 32 cores, respectively. For the memory overhead, we successfully profile 22 SPEC 2006 benchmarks with the reference input, while the previous approaches fail even with the train input. In some cases, we observe more than a 20× improvement in memory consumption and a 16× speedup in profiling time when 32 cores are used. We also demonstrate the usefulness of SD$({}^3)$ by showing manual parallelization followed by data dependence profiling results.
Index Terms:
Runtime,Memory management,Heuristic algorithms,Pararell processing,Resource management,Benchmark testing,parallelization,Profiling,data dependence,parallel programming,program analysis,compression
Citation:
Minjang Kim, Nagesh B. Lakshminarayana, Hyesoon Kim, Chi-Keung Luk, "SD3: An Efficient Dynamic Data-Dependence Profiling Mechanism," IEEE Transactions on Computers, vol. 62, no. 12, pp. 2516-2530, Dec. 2013, doi:10.1109/TC.2012.182
Usage of this product signifies your acceptance of the Terms of Use.