Abstract
Parallelization of symbolic applications is difficult and a systematic approach has yet to be developed. In this paper, we introduce the concept container, which refers to any general-purpose aggregate data type, such as matrices, lists, tables, graphs and I/O streams. We propose the container-centric approach, in which containers are treated by the compiler as built-in types. Containers become the target of data-parallelism and the focus of program analysis and transformations.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
W. Blume, R. Eigenmann, J. Hoeflinger, D. Padua, P. Petersen and L. Rauchwerger. Automatic Detection of Parallelism: A Grand Challenge for High-Performance Computing. IEEE Parallel and Distributed Techniology, 2(3):37–47, fall 1994.
U. Banerjee, R. Eigenmann, A. Nicolau, D. A. Padua. Automatic Program Parallelization. Proceedings of of IEEE, Vol.81No.2, Feb.1993.
W. Blume, R. Eigenmann, K. Faigin, J. Grout, T. Lawrence, J. Hoeflinger, D. Padua, Y. Paek, P. Petersen, W. Pottenger, L. Rauchwerger, P. Tu, and S. Weatherford. Restructuring Programs for High-Speed Computers with Polaris. Proceedings of the 1996 ICPP Workshop on Challendes for Parallel Processing. August, 1996. pp.149–161. 1996.
M. W. Hallm, J. M. Anderson, S. P. Amarasinghe, B. R. Murphy, S.-W. Liao, E. Bugnion and M. S. Lam. Maximizing Multiprocessor Performance with the SUIF Compiler. IEEE Computer, December 1996.
R. Eigenmann, J. Hoeflinger, Z. Li, and D. Padua. Experience in the automatic parallelization of four Perfect-Benchmark programs. Proceedings of 4th Workshop on Programming Languages and Compilers for Parallel Computing. Pitman/MIT Press, August 1991.
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns, Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. 198
David R. Musser and Atul Saini. STL tutorial & reference guide: C++ programming with the standard template library. Addison-Wesley, 1996.
W. Blume, R. Doallo, R. Eigenmann, J. Grout, J. Hoeflinger, T. Lawrence, J. Lee, D. Padua, Y. Paek, W. Pottenger, L. Rauchwerger, and P. Tu. Parallel Programming with Polaris. IEEE Computer, 29(12):78–82, December 1996.
W. L. Harrison III. The interprocedural analysis and automatic parallelization of scheme programs. Lisp and Symbolic Computation, 2(3/4):179–396, 1989.
W. L. Harrison III. Generalized iteration space and the parallelization of symbolic programs. In Ian Foster and Evan Tick, editors, Proceedings of the Workshop on Computation of Symbolic Languages for Parallel Computers. Argonne National Laboratory, October 1991.
Evelyn Duesterwald, Rajiv Gupta, Mary Lou Soffa. A Practical Data Flow Framework for Array Reference Analysis and its Use in Optimizations. the proceedings of the SIGPLAN’ 93 Conference on Programming Language Design and Implementation, pp. 68–76, June. 1993.
James R. Larus and Paul N. Hilfinger. Detecting conflicts between structure accesses. Proceedings of the SIGPLAN’ 88 COnference on Programming Language Design and Implementation, pp. 21–34, June 1988.
D. E. Maydan, S. P. Amarasinghe, and M. S. Lam. Data dependence and data flow analysis of arrays. Proceedings of 5th Workshop on Programming Languages and Compilers for Parallel Computing, August 1992.
William Blume and Rudolf Eigenmann. The Range Test: A Dependence Test for Symboli, Non-linear Expressions. TR 1345, Univ. of Illinois Urbana-Champaign, Center for Supercomputing Research & Development, April 1994.
Peng Tu and David Padua. Automatic Array Privatization. Proceedings of Sixth Workshop on Languages and Compilers for Parallel Computing, Portland, OR. Lecture Notes in Computer Science, vol. 768, pp. 500–521, August 12-14, 1993.
Martin C. Rinard, Pedro C. Diniz. Commutativity Analysis: A New Analysis Technique for Parallelizing Compilers. ACM Transactions on Programming Lanugages and Systems, Volume 19, pages 942–991, November 1997.
J. Hummel and L. Hendren and A. Nicolau. A General Data Dependence Test for Dynamic, Pointer-Based Data Structures, Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 218–229, June 1994.
L. Hendren and J. Hummel and A. Nicolau. Abstractions for Recursive Pointer Data Structures: Improving the Analysis and Transformation of Imperative programs, Proceedings of the ACM SIGPLAN’ 92 Conference on Programming Language Design and Implementation, pp. 249–260, June 1992.
J. Hummel, L. Hendren and A. Nicolau. A Language for Conveying the Alising Properties of Dynamic, Poiinter-Based Data Structures, Proceedings of the 8th Inthernational Parallel Processing Symposium, pp.208–216, April 1994.
Laurie J. Hendren, Guang R. Gao. Designing Programming Languages for Analyzability: a Fresh Look at Pointer Data Structures. Proceedings of the International Conference on Computer Lanugaes, pp. 242–251, Oakland, CA, April 1992.
D. R. Chase, M. Wegman, and F. K. Zadek. Analysis of pointers and structures. Proceedings of the SIGPLAN’ 90 Conference on Programming Language Design and Implementation, pp. 296–310, 1990.
Laurie J. Hendren and Alexandru Nicolau. Parallelizing programs with recursive data structures. IEEE Thans. on Parallel and Distributed Computing, Jan. 1990.
James R. Larus and Paul N. Hilfinger. Restructuring LISP programs for concurrent execution. Proceedings of the ACM/SIGPLAN PPEALS 1988 Parallel Programming: Experience with applications, Languages and Systems, pp. 100–110, July 1988.
James R. Larus, Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, University of California, Berkeley, 1989.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Wu, P., Padua, D. (1999). Beyond Arrays — A Container-Centric Approach for Parallelization of Real-World Symbolic Applications. In: Chatterjee, S., et al. Languages and Compilers for Parallel Computing. LCPC 1998. Lecture Notes in Computer Science, vol 1656. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48319-5_13
Download citation
DOI: https://doi.org/10.1007/3-540-48319-5_13
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66426-0
Online ISBN: 978-3-540-48319-9
eBook Packages: Springer Book Archive