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
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.