Separating computation and coordination in the design of parallel and
distributed programs
Chaudron, M.R.V.
Citation
Chaudron, M. R. V. (1998, May 28). Separating computation and coordination in the design of
parallel and distributed programs. ASCI dissertation series. Retrieved from
https://hdl.handle.net/1887/26994
Version: Corrected Publisher’s Version
License: Licence agreement concerning inclusion of doctoral thesis in theInstitutional Repository of the University of Leiden Downloaded from: https://hdl.handle.net/1887/26994
Cover Page
The handle http://hdl.handle.net/1887/26994 holds various files of this Leiden University dissertation
Author: Chaudron, Michel
Title: Separating computation and coordination in the design of parallel and distributed programs
Separating Computation and Coordination
in the Design of Parallel and Distributed
Cover by Victor Vasarely, 1979 c
Separating Computation and Coordination
in the Design of Parallel and Distributed
Programs
PROEFSCHRIFT
Ter verkrijging van de graad van Doctor aan de Rijksuniversiteit te Leiden,
op gezag van de Rector Magnificus Dr. W. A. Wagenaar, hoogleraar in de faculteit der Sociale Wetenschappen,
volgens besluit van het College voor Promoties te verdedigen op donderdag 28 Mei 1998
te klokke 14.15 uur
door
samenstelling van de promotiecommisie promotor: Prof. dr. F. J. Peters
co-promotor: Dr. E. de Jong Hollandse Signaalapparaten B.V. referent: Prof. dr. C. L. Hankin Imperial College of Science, Technology
and Medicine, London, Engeland
overige leden: Prof. dr. J. W. de Bakker Centrum voor Wiskunde en Informatica, Amsterdam
Prof. dr. J. N. Kok Prof. dr. G. Rozenberg Prof. dr. H. A. G. Wijshoff
This work was carried out in graduate school ASCI. ASCI dissertation series number 31.
Separating Computation and Coordination in the Design of Parallel and Distributed Programs Michel Roger Vincent Chaudron. - [S.l. : s.n.].-Ill. Thesis Rijksuniversiteit Leiden. - With ref.
ISBN 90-9011643-5 NUGI 851
Contents
1 Introduction 1
2 The Computational Model 5
2.1 The Gamma Programming Model . . . 5
2.2 Reasoning about Gamma Programs . . . 13
2.3 Concluding Remarks . . . 18
3 The Coordination Model 19 3.1 The Coordination Language . . . 19
3.2 Semantics of the Coordination Language . . . 22
3.2.1 Rationale for the Coordination Language . . . 25
3.2.2 Single-Step Transitions . . . 27
3.3 Most General Schedules . . . 31
3.3.1 Completeness of the Most General Schedule . . . 32
3.3.2 Sorts . . . 39
3.3.3 Soundness of the Most General Schedule . . . 44
3.4 Concluding Remarks . . . 49
4 Refinement of Coordination 51 4.1 Introduction . . . 51
4.2 Refinement based on Simulation . . . 53
4.2.1 Prefix Simulation . . . 54
4.3 Strong Statebased Refinement . . . 55
4.3.1 Soundness of Strong Statebased Refinement . . . 61
4.3.2 Compositionality Issues of Statebased Refinement . . . 62
4.3.3 Weak Statebased Refinement . . . 66
4.3.4 Soundness of Weak Statebased Refinement . . . 70
ii CONTENTS
4.4.1 Soundness of Strong Stateless Refinement . . . 74
4.4.2 Laws for Strong Stateless Refinement . . . 75
4.4.3 Weak Stateless Refinement . . . 89
4.5 Concluding Remarks . . . 92
5 A Generic Theory of Refinement 95 5.1 Introduction . . . 95
5.2 Strong Generic Refinement . . . 97
5.3 Precongruence of Strong Generic Refinement . . . 103
5.4 Soundness of Strong Generic Refinement . . . 116
5.5 Weak Generic Refinement . . . 118
5.6 Precongruence of Weak Generic Refinement . . . 126
5.7 Metric Refinement . . . 132
5.8 Concluding Remarks . . . 133
6 Convex Refinement 135 6.1 Modelling Interference of a Fixed Context . . . 135
6.2 Laws for Convex Refinement . . . 138
6.2.1 Convex Strengthening Laws . . . 139
6.2.2 Convex Decomposition Laws . . . 143
6.2.3 Progress . . . 155
6.3 Concluding Remarks . . . 161
7 Case Studies 165 7.1 Summation . . . 166
7.1.1 Coordination Strategies for Summation . . . 166
7.1.2 Concluding Remarks . . . 168
7.2 Prime Sieving . . . 170
7.2.1 A Gamma Program for Prime Sieving . . . 170
7.2.2 The Most General Schedule and a First Refinement . . . 170
7.2.3 Concluding Remarks . . . 178
7.3 Sorting . . . 181
7.3.1 The Most General Schedule and a First Refinement . . . 182
7.3.2 BubbleSort . . . 183
7.3.3 Ripple Sort . . . 188
CONTENTS iii
7.3.5 Quicksort . . . 200
7.3.6 Concluding Remarks . . . 208
7.4 Single Source Shortest Paths . . . 210
7.4.1 A First Refinement . . . 211
7.4.2 Depth-First Search . . . 216
7.4.3 Breadth-First Schedule . . . 216
7.4.4 Parallel Breadth-first Search . . . 221
7.4.5 Some Further Refinements . . . 222
7.4.6 Concluding Remarks . . . 222
7.5 Solving Triangular Systems . . . 224
7.5.1 A Gamma Program for Solving Triangular Systems . . . 224
7.5.2 Correctness of the Gamma Program . . . 226
7.5.3 Coordination Strategies . . . 232
7.5.4 Concluding Remarks . . . 240
7.6 Evaluation of the Methodology . . . 243
7.6.1 Overview of the Design Methodology . . . 243
7.6.2 Validation of Proof Methods for Refinement of Coordination . . . 244
8 Related Work 247 8.1 Separation of Computation and Coordination . . . 247
8.1.1 Functional Programming . . . 248
8.1.2 Logic Programming . . . 250
8.1.3 Imperative Programming . . . 251
8.2 Reasoning about Parallel Shared Memory Programs . . . 255
8.2.1 Axiomatic/Assertional Reasoning . . . 255 8.2.2 Denotational Methods . . . 256 8.2.3 Temporal Logic . . . 257 8.2.4 Algebraic Methods . . . 258 8.3 Concluding Remarks . . . 260 9 Concluding Remarks 263 9.1 Contributions of this Thesis . . . 263
9.2 On what we have rejected . . . 266
9.2.1 Nondeterministic Choice . . . 266
iv CONTENTS
9.2.3 Single Step Semantics . . . 269
9.3 Future Work . . . 270
9.3.1 Data Structures and Data Refinement . . . 270
9.3.2 Schedules for Tropes . . . 273
9.3.3 Automated Support . . . 274
A Definition of Basic Concepts 275 A.1 Congruence . . . 275
A.2 On Multisets . . . 275
A.3 Pre-emptive Nondeterministic Choice . . . 277
B Glossary of Notation 281
Bibliography 283
Summary (in Dutch) 297