Abstract
With the fast development of multi-core processors, automatic parallelization becomes increasingly important. In this work, we focus on the parallelization of utility programs, a class of commonly used applications including compilers, transcoding utilities, file compressions, and databases. They take a series of requests as inputs and serve them one by one. Their high input dependence poses a challenge to parallelization.
We use active profiling to find behavior phase boundaries and then automatically detect run-time dependences through profiling. Using a unified framework, we manually parallelize programs at phase boundaries. We show that for two programs, the technique enables parallelization at large granularity, which may span many loops and subroutines. The parallelized programs show significant speedup on multi-processor machines.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Allen, R., Kennedy, K.: Optimizing Compilers for Modern Architectures: A Dependencebased Approach. Morgan Kaufmann Publishers, San Francisco (2001)
Garzaran, M.J., Prvulovic, M., Llaberia, J.M., Vinals, V., Rauchwerger, L., Torrellas, J.: Tradeoffs in buffering memory state for thread-level speculation in multiprocessors. In: Proceedings of International Symposium on High-Performance Computer Architecture (2003)
Kumar, M.: Measuring parallelism in computation-intensive scientific/engineering applications. IEEE Transactions on Computers 37 (1988)
Ortega, D., Martel, I., Ayguade, E., Valero, M., Krishnan, V.: Quantifying the benefits of specint distant parallelism in simultaneous multi-threading architectures. In: Proceeding of the Eighth International Conference on Parallel Architectures and Compilation Techniques, Newport Beach, California (October 1999)
Rauchwerger, L., Padua, D.: The LRPD test: Speculative run-time parallelization of loops with privatization and reduction parallelization. In: Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, La Jolla, CA (June 1995)
Shen, X., Ding, C.: Parallelization of utility programs based on behavior phase analysis. Technical Report TR 876, Department of Computer Science, University of Rochester (September 2005)
Shen, X., Ding, C., Dwarkadas, S., Scott, M.L.: Characterizing phases in service-oriented applications. Technical Report TR 848, Department of Computer Science, University of Rochester (November 2004)
Srivastava, A., Eustace, A.: ATOM: A system for building customized program analysis tools. In: Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, Orlando, Florida (June 1994)
Wolfe, M.: Optimizing Compilers for Supercomputers. The MIT Press, Cambridge (1989)
Zhu, C.Q., Yew, P.C.: A scheme to enforce data dependence on large multiprocessor systems. IEEE Transactions on Software Engineering 13(6) (1987)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Shen, X., Ding, C. (2006). Parallelization of Utility Programs Based on Behavior Phase Analysis. In: Ayguadé, E., Baumgartner, G., Ramanujam, J., Sadayappan, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2005. Lecture Notes in Computer Science, vol 4339. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69330-7_29
Download citation
DOI: https://doi.org/10.1007/978-3-540-69330-7_29
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-69329-1
Online ISBN: 978-3-540-69330-7
eBook Packages: Computer ScienceComputer Science (R0)