Model

Optimization begins with selection of application and system models. In parallel and distributed computing, modeling applications as sets of computation and communication operations is commonplace. The theoretical underpinnings of much work lies in the process algebra of communicating sequential processes (CSPs [Hoa78]): serially executing computations whose interaction is restricted to message passing. The model can formally encode algorithms and is extensively used for proving properties such as (lack of) deadlock. We are less concerned with formal proofs, but like others (e.g., Newsqueak [Pik89], Limbo [DPW97] and Ease [Zen93]) are attracted by the ability to express multiprocessing concisely and naturally. CSP is a coordination language [GC92,Arb96]: a grammar for compositing applications from independent operations - operations that are themselves expressed more easily in computation languages, such as C, Java or Lisp. In the context of another coordination language, Linda [Gel85], these languages are described as ``an extension that can be added to nearly any [computation] language to enable process creation, communication, and synchronization [KM89]''. Clear separation of communication and computation makes it easier to distribute an application across heterogeneous hardware. Limbo is specifically designed with distributed multiprocessors and wide area computer systems in mind. With the arrival of large scale on-chip parallelism, many of the same issues crop up [Moo08] and solutions are proposed [Pat07]. The relationship between coordination and concurrency has been discussed in relation to Linda and other parallel languages [Arb96,Bal91].



Subsections
willem 2010-02-03