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.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call