Skip to main content

Path Collection and Dependence Testing in the Presence of Dynamic, Pointer-Based Data Structures

  • Chapter
Languages, Compilers and Run-Time Systems for Scalable Computers

Abstract

Memory references to dynamic, pointer-based data structures are best summarized by paths through the structure. Accurate collection of such paths is critical to data dependence testing, and plays an important role in guiding data distribution. In this paper we present a new approach to path collection that enables general dependence testing, and then demonstrate its importance in parallelizing a real application.

This work supported in part by the NSF, ONR, FCAR, NSERC, and McGill Faculty of Graduate Studies and Research.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 169.99
Price excludes VAT (USA)
  • Durable hardcover 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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Josh Barnes and Piet Hut. A hierarchical O(NlogN) force-calculation algorithm. Nature, 324:446–449, 4 December 1986. The code can be obtained from Prof. Barnes at the University of Hawaii, or from jhummel@ics.uci.edu.

    Article  Google Scholar 

  2. D. Culler, A. Dusseau, S. Goldstein, A. Krishnamurthy, S. Lumetta, T. von Eicken, and K. Yelick. Parallel programming in Split-C. In Proceedings of Supercomputing 1993, pages 262–273, November 1993.

    Google Scholar 

  3. M. Carlisle, A. Rogers, J. Reppy, and L. Hendren. Early experiences with Olden. In U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, editors, Proceedings of the 6th International Workshop on Languages and Compilers for Parallel Computing, pages 120, August 1993. Available as Springer-Verlag LNCS 768.

    Google Scholar 

  4. D.R. Chase, M. Wegman, and F.K. Zadek. Analysis of pointers and structures. In Proceedings of the SIGPLAN ‘80 Conference on Programming Language Design and Implementation, pages 296–310, 1990.

    Google Scholar 

  5. A. Deutsch. A storeless model of aliasing and its abstractions using finite representations of right-regular equivalence relations. In Proceedings of the IEEE 1992 International Conference on Computer Languages, pages 2–13, April 1992.

    Google Scholar 

  6. A. Deutsch. Interprocedural may-alias analysis for pointers: Beyond k-limiting. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 230–241, June 1994.

    Google Scholar 

  7. R. Dutton. 3D information models and parallel libraries for integrated TCAD. In Proceedings of the High Performance Computing Software PI Meeting, pages 18.1–18.14. ARPA Computing Systems Technology Office, September 1993. TCAD is an ongoing project at Stanford University.

    Google Scholar 

  8. G. Gonnet, M. Cohen, and S. Benner. Exhaustive matching of the entire protein sequence database. Science, 256:1443–1445, 1991.

    Article  Google Scholar 

  9. K. Gharachorloo, D. Lenoski, J. Laudon, P. Gibbons, A. Gupta, and J. Hennessy. Memory consistency and event ordering in scalable shared-memory multiprocessors. In Proceedings of the 17th Annual International Symposium on Computer Architecture, pages 15–26, May 1990.

    Google Scholar 

  10. Vincent A. Guarna Jr. A technique for analyzing pointer and structure references in parallel restructuring compilers. In Proceedings of the International Conference on Parallel Processing, volume 2, pages 212–220, 1988.

    Google Scholar 

  11. L. Hendren, C. Donawa, M. Emami, G. Gao,Justiani, and B. Sridharan. Designing the McCAT compiler based on a family of structured intermediate representations. In U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, editors, Fifth International Workshop on Languages and Compilers for Parallel Computing,volume 757 of Lecture Notes in Computer Science, pages 406–420. Springer-Verlag, 1993.

    Chapter  Google Scholar 

  12. L. Hendren, J. Hummel, and A. Nicolau. Abstractions for recursive pointer data structures: Improving the analysis and transformation of imperative programs. In Proceedings of the SIGPLAN ‘82 Conference on Programming Language Design and Implementation, pages 249–260, June 1992.

    Google Scholar 

  13. J. Hummel, L. Hendren, and A. Nicolau. A language for conveying the aliasing properties of dynamic, pointer-based data structures. In Proceedings of the 8th International Parallel Processing Symposium,pages 208–216, April 1994.

    Google Scholar 

  14. J. Hummel, L. Hendren, and A. Nicolau. A general data dependence test for dynamic, pointer-based data structures. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation,pages 218–229, June 1994.

    Google Scholar 

  15. M. Hill, J. Larus, S. Reinhardt, and D. Wood. Cooperative shared memory: Software and hardware for scalable multiprocessors. In Proceedings of the 5th International Conference on Architectural Support for Programming Languages and Operating Systems,pages 262–273, September 1992.

    Google Scholar 

  16. Laurie J. Hendren and Alexandru Nicolau. Parallelizing programs with recursive data structures. IEEE Trans. on Parallel and Distributed Computing, 1(1):35–47, January 1990.

    Article  Google Scholar 

  17. N. D. Jones and S. Muchnick. A flexible approach to interprocedural data flow analysis and programs with recursive data structures. In 9th ACM Symposium on Principles of Programming Languages, pages 66–74, 1982.

    Google Scholar 

  18. K. Kundert. Sparse matrix techniques. In A. Ruehli, editor, Circuit Analysis,Simulation and Design, pages 281–324. Elsevier Science Publishers B.V. (North-Holland), 186.

    Google Scholar 

  19. James R. Larus and Paul N. Hilfinger. Detecting conflicts between structure accesses. In Proceedings of the SIGPLAN ‘88 Conference on Programming Language Design and Implementation, pages 21–34, June 1988.

    Google Scholar 

  20. W. Landi and B. Ryder. A safe approximation algorithm for interprocedural pointer aliasing. In Proceedings of the SIGPLAN ‘82 Conference on Programming Language Design and Implementation, pages 235–248, June 1992.

    Google Scholar 

  21. T. Mowry and A. Gupta. Tolerating latency through software-controlled prefetching in scalable shared-memory multiprocessors. Journal of Parallel and Distributed Computing, 2(4):87–106, 1991.

    Article  Google Scholar 

  22. J. Plevyak, V. Karamcheti, and A. Chien. Analysis of dynamic structures for efficient parallel execution. In D. Gelernter, A. Nicolau, and D. Padua, editors, Proceedings of the 6th Annual Workshop on Languages and Compilers for Parallel Computing, pages cl-c20, August 1993.

    Google Scholar 

  23. S. Reinhardt, J. Larus, and D. Wood. Tempest and typhoon: User-level shared memory. In Proceedings of the 21st Annual International Symposium on Computer Architecture, pages 325–336, April 1994.

    Google Scholar 

  24. Hanan Samet. Applications of Spatial Data Structures: Computer Graphics, Image Processing, and GIS. Addison-Wesley, 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer Science+Business Media New York

About this chapter

Cite this chapter

Hummel, J., Hendren, L., Nicolau, A. (1996). Path Collection and Dependence Testing in the Presence of Dynamic, Pointer-Based Data Structures. In: Szymanski, B.K., Sinharoy, B. (eds) Languages, Compilers and Run-Time Systems for Scalable Computers. Springer, Boston, MA. https://doi.org/10.1007/978-1-4615-2315-4_2

Download citation

  • DOI: https://doi.org/10.1007/978-1-4615-2315-4_2

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4613-5979-1

  • Online ISBN: 978-1-4615-2315-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics