Abstract
A poor cache behavior can significantly prohibit achieving high speedup and scalability of parallel applications. This means optimizing a program with respect to cache locality can potentially introduce considerable performance gain. As a consequence, programmers usually perform cache locality optimization for acquiring the expected performance of their applications.
Within this work, we developed a data profiling tool dprof with the goal of supporting the users in this task by allowing them to detect the optimization targets in their programs. In contrast to similar tools which mostly focus on code regions, we address data structures because they are the direct objects that programmers have to work with. Based on the Performance Monitoring Unit (PMU) provided by modern processors, dprof is capable of finding cache-critical variables, arrays, or even a segment of an array. It can also locate theses access hotspots to the most concrete position such as individual functions and code lines. This feature allows the user to apply dprof for efficient cache optimization.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Dongarra, J., London, K., Moore, S., Mucci, P., Terpstra, D.: Using PAPI For Hardware Performance Monitoring On Linux Systems. In: Linux Clusters: The HPC Revolution (June 2001)
Bailey, D., et al.: The NAS Parallel Benchmarks. Technical Report RNR-94-007, Department of Mathematics and Computer Science, Emory University (March 1994)
Fung, S.: Improving Cache Locality for Thread-Level Speculation. Master’s thesis, University of Toronto (2005)
Fürlinger, K., Gerndt, M.: Analyzing Overheads and Scalability Characteristics of OpenMP Applications. In: Proceedings of the 7th International Meeting on High Performance Computing for Computational Science (July 2006)
Ghosh, S., Martonosi, M., Malik, S.: Automated Cache Optimizations using CME Driven Diagnosis. In: Proceedings of the 2000 International Conference on Supercomputing, pp. 316–326 (2000)
HP. Perfmon Project Web Site. Available at http://www.hpl.hp.com/research/linux/perfmon/
Intel Corporation. Intel VTune Performance Analyzer, available at http://www.cts.com.au/vt.html
Intel Corporation. Intel Itanium Architecture Software Developer’s Manual, vol. 1–3 (2002), available at http://developer.intel.com/design/itanium/manuals/iiasdmanual.htm
Intel Corporation. IA-32 Intel Architecture Software Developer’s Manual, vol. 1–3. Available at Intel’s developer website (2004)
Jin, H., Frumkin, M., Yan, J.: The OpenMP Implementation of NAS Parallel Benchmarks and Its Performance. Technical Report NAS-99-011, NASA Ames Research Center (October 1999)
Martonosi, M., Gupta, A., Anderson, T.: Tuning Memory Performance of Sequential and Parallel Programs. Computer 28(4), 32–40 (1995)
Quaing, B., Tao, J., Karl, W.: YACO: A User Conducted Visualization Tool for Supporting Cache Optimization. In: Yang, L.T., Rana, O.F., Di Martino, B., Dongarra, J.J. (eds.) HPCC 2005. LNCS, vol. 3726, pp. 694–703. Springer, Heidelberg (2005)
Sun Microsystems. UltraSPARC IIi User’s Manual October (1997), available at http://www.sun.com/processors/documentation.html
Welbon, E., et al.: The POWER2 Performance Monitor. IBM Journal of Research and Development 38(5) (1994)
WWW. Cachegrind: a cache-miss profiler, available at http://developer.kde.org/~sewardj/docs-2.2.0/cg_main.html#cg-top
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Tao, J., Gaugler, T., Karl, W. (2007). A Profiling Tool for Detecting Cache-Critical Data Structures. In: Kermarrec, AM., Bougé, L., Priol, T. (eds) Euro-Par 2007 Parallel Processing. Euro-Par 2007. Lecture Notes in Computer Science, vol 4641. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-74466-5_7
Download citation
DOI: https://doi.org/10.1007/978-3-540-74466-5_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-74465-8
Online ISBN: 978-3-540-74466-5
eBook Packages: Computer ScienceComputer Science (R0)