|
ABSTRACT
In task-parallel programs, diversee activities can take place concurrently, and communication and synchronization patterns are complex and not easily predictable. Previous work has identified compositionality as an important design principle for task-parallel programs. In this article, we discuss alternative approaches to the realization of this principle, which holds that properties of program components should be preserved when those co ponents are composed in parallel with other program components. We review two programming languages, Strand and Program Composition Notation, that support compositionality via a small number of simple concepts, namely, monotone operations on shared opbects, a uniform addressing mechanism, and parallel composition. Both languages have been used extensively for large-scale application development, allowing us to provide an informed assessment of both their strengths and their weaknesses. We observe that while compositionality simplifies development of complex applications, the use of specialized languages hinders reuse of existing code and tools and the specification of domain decomposition strategies. This suggests an alternative approach based on small extensions to existing sequential languages. We conclude the article with a discussion of two languages that realized this strategy.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Ackerman, W. B. 1982. Data flow languages. Computer 15, 2 (Feb.), 15-25.
|
| |
2
|
Armstrong, J. and Virding, S. 1989. Programming telephony. In Strand: New Concepts in Parallel Programming. Prentice Hall, Englewood Cliffs, N.J.
|
| |
3
|
|
| |
4
|
Butler, R., Foster, I., Karonis, N., Olson, R., Pfluger, N., Price. M., and Tuecke, S. 1989. Aligning genetic sequences. In Strand: New Concepts in Parallel Programming. Prentice Hall, Englewood Cliffs, N.J.
|
| |
5
|
Cann, D., Feo, J., and DeBoni, T. 1990. Sisal 1,2: High performance applicative computing. In Proceedings of the Symposium on Parallel and Distributed Processing. IEEE Computer Science Press, Los Alamitos, Calif., 612-616.
|
 |
6
|
|
| |
7
|
|
| |
8
|
Chandy, K. M. and Kesselman, C. 1992. The derivation of compositional programs. In Proceedings of the 1992 Joint International Conference and Symposium on Logic Programming. MIT Press, Cambridge, Mass.
|
| |
9
|
|
| |
10
|
|
| |
11
|
Chapman, B., Mehrotra, P., and Zima, H. 1992. Programming in Vienna Fortran. Sci. Program. 1, 1, 31-50.
|
 |
12
|
|
| |
13
|
|
| |
14
|
|
 |
15
|
|
| |
16
|
|
| |
17
|
|
| |
18
|
|
| |
19
|
Foster, I., Olson, R., and Tuecke, S. 1992. Productive parallel programming: The PCN approach. Sci. Program. 1, 1, 51-66.
|
| |
20
|
Fox, G., Hiranandani, S., Kennedy, K., Koelbel, C., Kremer, U., Tseng, C., and Wu, M. 1990. Fortran D language specification. Tech. Rep. TR90-141, Dept. of Computer Science, Rice Univ., Houston, Tex. Dec.
|
| |
21
|
|
| |
22
|
|
| |
23
|
Harrar, D., Keller, H., Lin, D., and Taylor, S. 1991. Parallel computation of Taylor-vortex flows. In Proceedings of the Conference on Parallel Computational Fluid Dynamics. Elsevier Science Publishers B.V., Amsterdam.
|
 |
24
|
|
 |
25
|
|
| |
26
|
Kahn, G. and MacQueen, D. 1977. Coroutines and networks of parallel processes. In Information Processing 77: Proceedings of the IFIP Congress. North-Holland, Amsterdam, 993-998.
|
| |
27
|
|
| |
28
|
|
| |
29
|
Charles H. Koelbel , David B. Loveman , Robert S. Schreiber , Guy L. Steele, Jr. , Mary E. Zosel, The high performance Fortran handbook, MIT Press, Cambridge, MA, 1994
|
| |
30
|
|
 |
31
|
|
| |
32
|
Lusk, E., Disz, T., Olson, R., Overbeek, R., Stevens, R., Warren, D., Calderwood, A., Szeredi, P., Haridi, S., Brand, P., Carlsson, M., Ciepielewski, A., and Hausman, B. 1988. The Aurora or-parallel Prolog system. In Proceedings of the Fifth Generation Computer Systems Conference. ICOT,Tokyo, 819-830.
|
| |
33
|
|
| |
34
|
Mierowsky, C., Taylor, S., Shapiro, E., Levy, J., and Safra, S. 1985. Design and implementation of Flat Concurrent Prolog. Tech. Rep. CS85-09, Weizmann Institute of Science, Rehovot, Israel.
|
| |
35
|
|
 |
36
|
|
| |
37
|
|
| |
38
|
|
| |
39
|
|
| |
40
|
Xu, M. and Turner, S. 1990. A multi-level time warp mechanism. In Proceedings of the 1990 Summer Computer Simulation Conference Society for Computer Simulation. San Diego, Calif., 165-170.
|
REVIEW
"David B. Skillicorn : Reviewer"
Parallel programs are complex objects and are hard to build. One
way to make building one easier is to insist that the programming
language be compositional, that is, the properties of the whole must be
(simple) functions of the properties of
more...
|