skip to main content
10.1145/127056.127075acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article
Free access

Concurrent aggregates: using multiple-access data abstractions to manage complexity in concurrent programs

Published: 01 April 1991 Publication History

Abstract

To program massively concurrent MIMD machines, programmers need tools for managing complexity. One important tool that has been used in the sequential programming world is hierarchies of abstractions. Unfortunately, most concurrent object-oriented languages construct hierarchical abstractions from objects that serialize --- serializing the abstractions. In machines with tens of thousands of processors, unnecessary serialization of this sort can cause significant loss of concurrency.Concurrent Aggregates (CA) is an object-oriented language that allows programmers to build unserialized hierarchies of abstractions by using aggregates. An aggregate in CA is a homogeneous collection of objects (called representatives) that are grouped together and may be referenced by a single aggregate name. Aggregates are integrated into the object model, allowing them to be used wherever an object could be used. Concurrent Aggregates also incorporates several innovative language features that facilitate programming with aggregates. Intra-aggregate addressing aids cooperation between parts of an aggregate. Delegation allows programmers to compose a concurrent aggregate behavior from a number of objects or aggregates. Messages in CA are first class objects that can be used to create message handling abstractions (they handle messages as data). Such abstractions facilitate concurrent operations on aggregates. Continuations are also first class objects. In addition, programmers can construct continuations and use them just like system continuations. User constructed continuations can implement synchronization structures such as a barrier synchronization.We have implemented Concurrent Aggregates and have been using the language since August 1989. We have written a number of significant application programs including a PC board router, a concurrent B-tree, a digital logic simulator, a parallel FIFO queue and a multi-grid solver. More information on Concurrent Aggregates can be found in [10, 11, 9].

References

[1]
{1} C* Reference Manual, Thinking Machines Corporation, Cambridge, Massachusetts.
[2]
{2} MP-1 Family Data-Parallel Computers, MasPar Computer Corporation, 749 North Mary Avenue, Sunnyvale, California.
[3]
{3} Connection Machine Model CM-2 Technical Summary, Thinking Machines Corporation, April 1987.
[4]
{4} G. AGHA, Actors: A Model of Concurrent Computation in Distributed Systems, MIT Press, Cambridge, MA, 1986.
[5]
{5} G. M. AMDAHL, Validity of the single processor approach to achieving large scale computing capabilities, in AFIPS Conference Proceedings, AFIPS, 1967, pp. 483-485.
[6]
{6} W. C. ATHAS, Fine Grain Concurrent Computations, PhD thesis, California Institute of Technology, 1987. 5242:TR:87.
[7]
{7} W. C. ATHAS AND C. L. SEITZ, Multicomputers: message-passing concurrent computers, IEEE Computer, (1988), pp. 9-24.
[8]
{8} N. J. BODEN, A Study of Fine-Grain Programming Using Cantor, Master's thesis, California Institute of Technology, 1988. Caltech-CS-TR-88-11.
[9]
{9} A. A. CHIEN, Concurrent Aggregates: An Object - Oriented Language for Fine-Grained Message-Passing Machines, PhD thesis, Massachusetts Institute of Technology, 1990. Expected June 1990.
[10]
{10} 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.
[11]
{11} A. A. CHIEN AND W. J. DALLY, Experience with concurrent aggregates (ca): implementation and programming, in Proceedings of the Fifth Distributed Memory Computers Conference, SIAM, Charleston, South Carolina, April 8-12 1990.
[12]
{12} W. J. DALLY, A VLSI Architecture for Concurrent Data Structures, Kluwer Academic Publishers, Boston, Mass., 1987.
[13]
{13} W. J. DALLY, L. CHAO, A. CHIEN, S. HASSOUN, W. HORWAT, J. KAPLAN, P. SONG, B. TOTTY, AND S. WILLS, Architecture of a message-driven processor, in Proceedings of the 14th ACM/IEEE Symposium on Computer Architecture, IEEE, June 1987, pp. 189-196.
[14]
{14} W. J. DALLY, A. CHIEN, S. FISKE, W. HORWAT, J. KEEN, M. LARIVEE, R. LETHIN, P. NUTH, S. WILLS, P. CARRICK, AND G. FYLER, The j-machine: a fine-grain concurrent computer, in Information Processing 89, Proceedings of the IFIP Congress, Aug. 1989, pp. 1147-1153.
[15]
{15} W. J. DALLY AND P. SONG, Design of a self-timed vlsi multicomputer communication controller, in Proceedings of the International Conference on Computer Design, IEEE Computer Society, 1987, pp. 230-234.
[16]
{16} GUY L. STEELE, JR. AND W. D. HILLIS, Connection machine lisp: fine-grained parallel symbolic processing , in Proceedings of the 1986 ACM Conference on LISP and Functional Programming, Cambridge, Massachusetts, Aug. 1986, pp. 279-297.
[17]
{17} R. H. HALSTEAD JR., Parallel symbolic computing, IEEE Computer, (1986), pp. 35-43.
[18]
{18} W. D. HILLIS AND GUY L. STEELE, JR., Data parallel algorithms, Communications of the Association for Computing Machinery, 29 (1986), pp. 1170-83.
[19]
{19} W. HORWAT, Concurrent Smalltalk on the Message-Driven Processor, Master's thesis, Massachusetts Institute of Technology, Cambridge, Massachusetts, June 1989.
[20]
{20} 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, ACM SIGPLAN, ACM Press, 1989, pp. 101-9.
[21]
{21} H. LIEBERMAN, Using prototypical objects to implement shared behavior in object oriented systems, in Proceedings of OOPSLA '86, ACM SIGPLAN, ACM Press, 1986, pp. 214-23.
[22]
{22} B. LISKOV, Data abstraction and hierarchy, ACM SIGPLAN Notices, 23 (1988), pp. 17-34.
[23]
{23} J. REES, W. C. (EDITORS), ET AL., Revised3 Report on the Algorithmic Language Scheme, Memo 848a, M.I.T. Artificial Intelligence Laboratory, Cambridge, Massachusetts, Sep. 1986.
[24]
{24} C. L. SEITZ, Submicron Systems Architecture: Semiannual Technical Report, Tech. Rep. Caltech-CS-TR-90-05, Department of Computer Science, California Institute of Technology, March 1990.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA/ECOOP '90: Proceedings of the workshop on Object-based concurrent programming
April 1991
124 pages
ISBN:0897914112
DOI:10.1145/127056
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 April 1991

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

OOPSLA90/ECOOP90
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)89
  • Downloads (Last 6 weeks)8
Reflects downloads up to 04 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media