Abstract
Concurrent object-oriented programming languages are an attractive approach for programming massively-parallel machines. However, exploiting object-level concurrency is problematic as the linkage and communication overhead can overwhelm the benefits of the fine-grained concurrency. Our approach achieves efficient execution by tuning the grain size, matching the execution grain size to that efficiently supportable by the architecture. To verify the feasibility of grain-size tuning, we study the invocation locality of a collection of object-oriented programs. The results suggest that local constraints on placement combined with code specialization can produce a significant increase in execution grain size. We describe several compile-time analyses which identify opportunities to increase grain size. These analyses identify static relationships between objects and enable transformations to reduce invocation cost. Some initial measurements are presented.
The research described in this paper was supported in part by National Science Foundation grant CCR-9209336, Office of Naval Research grant N00014-92-J-1961, and National Aeronautics and Space Administration grant NAG 1-613. Additional support has been provided by a generous special-purpose grant from the AT&T Foundation.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
A. Agarwal, B. Lim, D. Kranz, and J. Kubiatowicz. April: A processor architecture for multiprocessing. In International Symposium on Computer Architecture, 1990.
G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, MA, 1986.
P. America. Pool-T: A parallel object-oriented language. In A. Yonezawa and M. Tokoro, editors, Object-Oriented Concurrent Programming, pages 199–220. MIT Press, 1987.
B. Bershad, E. Lazowska, and H. Levy. Presto: A system for object-oriented parallel programming. Software — Practice and Experience, 18(8), 1988.
A. Black, N. Hutchinson, E. Jul, H. Levy, and L. Carter. Distribution and abstract types in Emerald. IEEE Transactions on Software Engineering, SE-13(1):65–76, January 1987.
T. Blank. The Maspar MP-1 architecture. In Proceedings of COMPCON, pages 20–4. IEEE, 1990.
C. Chambers and D. Ungar, Iterative type analysis and extended message splitting. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, pages 150–60, 1990.
A. A. Chien and W. J. Dally. Concurrent Aggregates (CA). In Proceedings of Second Symposium on Principles and Practice of Parallel Programming. ACM, March 1990.
L. P. Deutsch and A. M. Schiffman. Efficient implementation of the Smalltalk-80 system. In Eleventh Symposium on Principles of Programming Languages, pages 297–302. ACM, 1984.
L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Computing, 1(1):35–47, 1990.
S. Hiranandani, K. Kennedy, and C.-W. Tseng. Compiler Optimizations for Fortran D on MIMD Distributed-Memory Machines. In Supercomputing '91, pages 86–100, Nov. 1991.
W. Horwat, A. Chien, and W. Dally. Experience with CST: Programming and implementation. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, pages 101–9. ACM SIGPLAN, ACM Press, 1989.
E. Myers. A precise interprocedural data flow algorithm. In Seventh Symposium on Principles of Programming Languages, pages 219–30, 1980.
V. Saraswat, K. Kahn, and J. Levy. Janus: A step towards distributed constraint programming. In Proceedings of the North American Conference on Logic Programming, Austin, Texas, October 1990.
K. Smith and R. Smith II. The Experimental Systems Project at the Microelectronics and Computer Technology Corporation. In Proceedings of the Fourth Conference on Hypercube Computers, 1989.
C. Tomlinson, M. Scheevel, and V. Singh. Report on Rosette 1.0. MCC Internal Report, Object-Based Concurrent Systems Project, December 1989.
W. E. Weihl. Interprocedural data flow analysis in the presence of pointers, procedure variables, and label variables. In Seventh Symposium on Principles of Programming Languages, pages 83–94, 1980.
A. Yonezawa, editor. ABCL: An Object-Oriented Concurrent System. MIT Press, 1990. ISBN 0-262-24029-7.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chien, A., Feng, W., Karamcheti, V., Plevyak, J. (1993). Techniques for efficient execution of fine-grained concurrent programs. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1992. Lecture Notes in Computer Science, vol 757. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57502-2_46
Download citation
DOI: https://doi.org/10.1007/3-540-57502-2_46
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57502-3
Online ISBN: 978-3-540-48201-7
eBook Packages: Springer Book Archive