Abstract We present an application of a method for the design of parallel programs that addresses the functional aspects and the operational aspects in separate phases. In the first phase, the functional aspects are specified using the Gamma model. This model encourages a specification with a minimum of control and thereby provides insight into the potential parallelism inherent in the problem. Secondly, the operational aspects are specified separately by means of a coordination language. A formal theory of refinement of coordination supports the derivation of the operational aspects by a process of successive stepwise refinement. This separation facilitates formal reasoning and caters for the design of architecture-independent systems. We use this method to design algorithms for solving triangular systems of linear equations; i.e., finding the solution vector ` x ' from ` L x = b ' where ` L ' is a triangular N × N matrix. This problem arises in many application areas and many algorithms for solving it have been proposed. Among these algorithms are the parallel and sequential variants of the vector-update algorithm (or column-sweep solution method) and the inner-product algorithm (or row-sweep solution method). We formally derive these algorithms as different coordination strategies for the same Gamma program. We show how these strategies can be classified in terms of the BLAS hierarchy.
[1]
L. D. J. C. Loyens,et al.
The Formal Construction of a Parallel Triangular System Solver
,
1989,
MPC.
[2]
Jack J. Dongarra,et al.
Solving linear systems on vector and shared memory computers
,
1990
.
[3]
K. A. Gallivan,et al.
Parallel Algorithms for Dense Linear Algebra Computations
,
1990,
SIAM Rev..
[4]
C. A. R. Hoare,et al.
Communicating sequential processes
,
1978,
CACM.
[5]
Daniel Le Métayer,et al.
The GAMMA Model and Its Discipline of Programming
,
1990,
Sci. Comput. Program..
[6]
K. Mani Chandy,et al.
Parallel program design - a foundation
,
1988
.
[7]
David J. Evans,et al.
The Parallel Solution of Triangular Systems of Equations
,
1983,
IEEE Transactions on Computers.
[8]
Chris Hankin,et al.
A Calculus of Gamma Programs
,
1992,
LCPC.
[9]
Robin Milner,et al.
Communication and concurrency
,
1989,
PHI Series in computer science.
[10]
Daniel Le Métayer,et al.
Programming by multiset transformation
,
1993,
CACM.
[11]
Gérard Berry,et al.
The chemical abstract machine
,
1989,
POPL '90.
[12]
Michel Roger Vincent Chaudron.
Separating computation and coordination in the design of parallel and distributed programs
,
1998
.