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.
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
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.
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.
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.
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.
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.
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.
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.
G. Gonnet, M. Cohen, and S. Benner. Exhaustive matching of the entire protein sequence database. Science, 256:1443–1445, 1991.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Hanan Samet. Applications of Spatial Data Structures: Computer Graphics, Image Processing, and GIS. Addison-Wesley, 1990.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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