This Article 
 Bibliographic References 
 Add to: 
Parallelizing Programs with Recursive Data Structures
January 1990 (vol. 1 no. 1)
pp. 35-47

A study is made of the problem of estimating interference in an imperative language with dynamic data structures. The authors focus on developing efficient and implementable methods for recursive data structures. In particular, they present interference analysis tools and parallelization techniques for imperative programs that contain dynamically updatable trees and directed acyclic graphs. The analysis methods are based on a regular-expression-like representation of the relationship between accessible nodes in the data structure. They authors have implemented their analysis, and they present some concrete examples that have been processed by this system.

[1] R. Allen and K. Kennedy, "Automatic translation of FORTRAN to vector form,"ACM Trans. Programming Languages Syst., vol. 9, no. 4, pp. 491-524, 1987.
[2] U. Banerjee, "Speedup of ordinary programs," Ph.D dissertation, Dep. Comput. Sci. Univ. Illinois, Urbana-Champaign, Rep. No. UIUCDCS-R-79-989, 1979.
[3] J. P. Banning, "An efficient way to find the side effects of procedure calls and the aliases of variables," inProc. 6th POPL Conf., ACM, pp. 724-736, 1979.
[4] J. M. Barth, "A practical interprocedural dataflow analysis algorithm,"Comm. Assoc. Computing Machinery, vol. 21, no. 9, pp. 724-726, Sept. 1978.
[5] G. Bilardi and A. Nicolau, "Adaptive bitonic sorting: An optimal parallel algorithm for shared-memory machines,"SIAM J. Computing, vol. 18, no. 2, pp. 216-228, 1989.
[6] M. Burke and R. Cytron, "Interprocedural dependence analysis and parallelization," inProc. SIG-PLAN '86 Symp. Comp. Construct., Palo Alto, CA, June 1986, pp. 162-175.
[7] L. J. Hendren, "Recursive data structures and parallelism detection,"Tech. Rep.TR 88-924, Cornell Univ., Ithaca, NY, June 1988.
[8] L. J. Hendren and A. Nicolau, "Interference analysis tools for parallelizing programs with recursive data structures," inProc. Internat. Conf. Supercomputing, June 1989, pp. 205-214.
[9] L. J. Hendren and A. Nicolau, "Parallelizing programs with recursive data structures," inProc. Internat. Conf. Parallel Process., vol. II, Software, Aug. 1989, pp. 49-56.
[10] S. Horwitz, P. Pfeiffer, and T. Reps, "Dependence analysis for pointer variables," inProc. SIGPLAN '89 Conf. Program. Lang. Design and Implement., June 1989, pp. 28-40.
[11] P. Hudak, "A semantic model of reference counting and its abstraction," inAbstract Interpretation of Declarative Languages, S. Abramsky and C. Hankin, Eds. West Sussex, UK: Ellis Horwood, 1987, pp. 45-62.
[12] N. D. Jones and S. Muchnick, "A flexible approach to interprocedural data flow analysis and programs with recursive data structures," in9th ACM Symp. Principles Program. Lang., 1982, pp. 66-74.
[13] N. D. Jones and S. Muchnick, "Flow analysis and optimization of LISP-like structures," inProgram Flow Analysis, Theory, and Applications. Englewood Cliffs, NJ: Prentice Hall, 1981, ch. 4, pp. 102-131.
[14] J. R. Larus and P. N. Hilfinger, "Detecting conflicts between structure accesses," inProc. SIGPLAN '88 Conf. Program. Lang. Design and Implement., June 1988, pp. 21-34.
[15] J. R. Larus and P. N. Hilfinger, "Restructuring Lisp programs for concurrent execution," inProc. ACM/SIGPLAN PPEALS 1988-Parallel Program.: Experience with Appl., Lang., Syst., July 1988, pp. 100-110.
[16] J. M. Lucassen, "Types and effects: Towards the integration of functional and imperative programming," PhD dissertation, M.I.T.. Cambridge, MA, 1987.
[17] J. M. Lucassen and D. K. Gifford,"Polymorphic effect systems." inProc. 15th ACM Symp. Principles Program. Lang., 1988, pp. 47- 57.
[18] A. Neirynck, "Static analysis of aliasing and side effects in higher-order languages," Ph.D. dissertation, Cornell Univ., Ithaca, NY. Jan. 1988.
[19] A. Neirynck, P. Panangaden, and A. J. Demers, "Computation of aliases and support sets," inProc. 14th ACM Symp. Principles Program. Lang., 1987, pp. 274-283.
[20] A. Nicolau, "Parallelism, memory anti-aliasing and correctness for trace scheduling compilers," Ph.D. dissertation, Yale Univ., June 1984.
[21] D. A. Padua and M. J. Wolfe, "Advanced compiler optimizations for supercomputers,"Common. ACM, vol. 29, no. 12, pp. 1184- 1201, Dec. 1986.
[22] C. Ruggieri and T. P. Murtagh, "Lifetme analysis of dynamically allocated objects," inProc. 15th ACM Symp. Principles Program. Lang., 1988, pp. 285-293.
[23] M. J. Wolfe, "Optimizing supercompilers for supercomputers," Ph.D. thesis, Ctr. Supercomput. Res. and Development, Univ. Illinois, Urbana-Champaign, 1980.

Index Terms:
Index Termsautomatic parallelization; disambiguation techniques; parallelizing compilers; parallel programming languages; recursive data structures; interference; imperative language; dynamic data structures; interference analysis tools; parallelization techniques;imperative programs; dynamically updatable trees; directed acyclic graphs; regular-expression-like representation; accessible nodes; data structures; directed graphs; parallel programming; program compilers; trees (mathematics)
L.J. Hendren, A. Nicolau, "Parallelizing Programs with Recursive Data Structures," IEEE Transactions on Parallel and Distributed Systems, vol. 1, no. 1, pp. 35-47, Jan. 1990, doi:10.1109/71.80123
Usage of this product signifies your acceptance of the Terms of Use.