CONCURRENT AGGREGATES (CA) - DESIGN AND EXPERIENCE WITH A CONCURRENT OBJECT-ORIENTED LANGUAGE-BASED ON AGGREGATES

Authors
Citation
Aa. Chien, CONCURRENT AGGREGATES (CA) - DESIGN AND EXPERIENCE WITH A CONCURRENT OBJECT-ORIENTED LANGUAGE-BASED ON AGGREGATES, Journal of parallel and distributed computing, 25(2), 1995, pp. 174-196
Citations number
56
Categorie Soggetti
Computer Sciences","Computer Science Theory & Methods
ISSN journal
07437315
Volume
25
Issue
2
Year of publication
1995
Pages
174 - 196
Database
ISI
SICI code
0743-7315(1995)25:2<174:CA(-DA>2.0.ZU;2-C
Abstract
To program massively concurrent MIMD machines, programmers need tools for managing complexity that do not restrict concurrency. One importan t tool that has been used in sequential programs is hierarchies of abs tractions. Unfortunately, most concurrent object-oriented languages co nstruct hierarchical abstractions from objects that serialize the proc essing of requests, limiting the concurrency of abstractions. Concurre nt Aggregates (CA) is an object-oriented language that provides tools for building abstractions with unrestricted concurrency, aggregates. A ggregates are collections of objects that have a single group name, al lowing aggregates and objects to be used interchangeably, increasing p rogram concurrency while preserving the program's modularity structure . This paper describes and evaluates the use of aggregates in a progra mming langauge. Based on our programming experience, we evaluate basic support for aggregates (a one-to-one-of-many interface and intra-aggr egate addressing). In many applications, the basic support for aggrega tes can be used to build multiaccess data abstractions that maintain p rogram modularity and increase concurrency. The one-to-one-of-many int erface and intra-aggregate naming are sufficient to build a wide varie ty of replication structures and distributed interfaces. We also evalu ate language support in CA for composing multiaccess data abstractions (delegation, first-class messages, and first-class and user-defined c ontinuations). Delegation was not useful because, in most cases, some coordination code was needed to glue abstractions together, and repres entation incompatibilities between aggregates make a traditional share d-state approach infeasible. First-class messages were extremely usefu l for implementing data-parallel operations and a variety of customize d synchronization and scheduling structures. First-class continuations found widespread use in simple synchronization structures. User-defin ed continuations are useful for group, source-blind synchronization st ructures such as barriers, but the lack of identifying information in reply messages limits user-defined continuations' utility for more gen eral fine-grained synchronization structures. (C) 1995 Academic Press, Inc.