Skip to main content

Beyond Arrays — A Container-Centric Approach for Parallelization of Real-World Symbolic Applications

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1656))

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Article  Google Scholar 

  2. U. Banerjee, R. Eigenmann, A. Nicolau, D. A. Padua. Automatic Program Parallelization. Proceedings of of IEEE, Vol.81No.2, Feb.1993.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns, Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. 198

    Google Scholar 

  7. David R. Musser and Atul Saini. STL tutorial & reference guide: C++ programming with the standard template library. Addison-Wesley, 1996.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. W. L. Harrison III. The interprocedural analysis and automatic parallelization of scheme programs. Lisp and Symbolic Computation, 2(3/4):179–396, 1989.

    Article  Google Scholar 

  10. 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.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. 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.

    Article  Google Scholar 

  17. 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.

    Google Scholar 

  18. 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.

    Google Scholar 

  19. 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.

    Google Scholar 

  20. 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.

    Google Scholar 

  21. 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.

    Google Scholar 

  22. Laurie J. Hendren and Alexandru Nicolau. Parallelizing programs with recursive data structures. IEEE Thans. on Parallel and Distributed Computing, Jan. 1990.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. James R. Larus, Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, University of California, Berkeley, 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics