Compositional parallel programming languages

被引:13
作者
Foster, I
机构
[1] Math. and Computer Science Division, Argonne National Laboratory, Argonne
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 1996年 / 18卷 / 04期
关键词
compositionality; parallel languages; parallel programming;
D O I
10.1145/233561.233565
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
In task-parallel programs, diverse 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 components 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 objects, 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 realize this strategy.
引用
收藏
页码:454 / 476
页数:23
相关论文
共 40 条
  • [1] ACKERMAN WB, 1982, COMPUTER, V15, P15, DOI 10.1109/MC.1982.1653938
  • [2] ARMSTRONG J, 1989, STRAND NEW CONCEPTS
  • [3] BUTLER R, 1989, STRAND NEW CONCEPTS
  • [4] MONITORS, MESSAGES, AND CLUSTERS - THE P4 PARALLEL PROGRAMMING SYSTEM
    BUTLER, RM
    LUSK, EL
    [J]. PARALLEL COMPUTING, 1994, 20 (04) : 547 - 564
  • [5] Cann D. C., 1990, Proceedings of the Second IEEE Symposium on Parallel and Distributed Processing 1990 (Cat. No.TH0328-5), P612, DOI 10.1109/SPDP.1990.143613
  • [6] LINDA IN CONTEXT
    CARRIERO, N
    GELERNTER, D
    [J]. COMMUNICATIONS OF THE ACM, 1989, 32 (04) : 444 - 458
  • [7] A NOTATION FOR DETERMINISTIC COOPERATING PROCESSES
    CHANDY, KM
    FOSTER, I
    [J]. IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 1995, 6 (08) : 863 - 871
  • [8] CHANDY KM, 1992, P 1992 JOINT INT C S
  • [9] CHANDY KM, 1993, RES DIRECTIONS OBJEC
  • [10] CHANDY KM, 1991, INTRO PARALLEL PROGR