| Contributing Authors | p. xi |
| Models of Parallel Computation | |
| Introduction to the Complexity of Parallel Algorithms | p. 3 |
| Introduction | p. 3 |
| Sequential complexity | p. 4 |
| Turing machines | p. 4 |
| Random access machines | p. 6 |
| Relations between TM and RAM | p. 6 |
| Thesis | p. 6 |
| Relations between DSPACE and NSPACE | p. 7 |
| Central problem | p. 8 |
| PRAM model | p. 8 |
| Concurrent or exclusive accesses | p. 9 |
| Computing with PRAM | p. 10 |
| PRAM separation | p. 11 |
| PRAM simulation | p. 12 |
| Boolean and arithmetic circuits | p. 12 |
| Parallel computation thesis | p. 15 |
| NC class | p. 15 |
| Central problem of parallel complexity | p. 16 |
| Distributed memory PRAM | p. 17 |
| Performances | p. 19 |
| Evaluation of arithmetic expressions | p. 22 |
| Solving linear systems | p. 23 |
| Perspectives and conclusion | p. 24 |
| The Combinatorics of Resource Sharing | p. 27 |
| Introduction | p. 27 |
| Resource-sharing computations | p. 29 |
| Deadlock models | p. 31 |
| Graph structures for deadlock detection | p. 35 |
| Partially ordered sets and deadlock prevention | p. 38 |
| Ordering the processes | p. 39 |
| Ordering the resources | p. 41 |
| The graph abacus | p. 43 |
| Graph coloring and concurrency | p. 46 |
| Concluding remarks | p. 50 |
| On Solving the Static Task Scheduling Problem for Real Machines | p. 53 |
| Introduction | p. 53 |
| Designing parallel algorithms | p. 54 |
| Scheduling tasks | p. 55 |
| Models of communication | p. 57 |
| Task scheduling under the LogP model | p. 59 |
| Scheduling strategies | p. 61 |
| List scheduling | p. 61 |
| Clustering algorithms | p. 62 |
| Task recomputation | p. 63 |
| Message bundling | p. 64 |
| Terminology | p. 64 |
| Design issues for clustering algorithms | p. 65 |
| A new scheduling algorithm | p. 69 |
| Simplifying LogP scheduling | p. 70 |
| The first stage | p. 71 |
| The second stage | p. 74 |
| Algorithm performance | p. 74 |
| Conclusions | p. 77 |
| Summary | p. 78 |
| Predictable Parallel Performance: The BSP Model | p. 85 |
| Applying parallel computing | p. 85 |
| Introduction to BSP | p. 87 |
| Implementation of BSP | p. 89 |
| BSP algorithm design | p. 91 |
| A BSP design strategy | p. 93 |
| BSP optimisation | p. 97 |
| Message packing | p. 97 |
| Destination scheduling | p. 99 |
| Pacing | p. 99 |
| Barrier implementation | p. 100 |
| Optimisation in clusters | p. 101 |
| Hole filling error recovery | p. 102 |
| Reducing acknowledgement traffic | p. 102 |
| Just in time acknowledgements | p. 103 |
| Managing buffers more effectively | p. 103 |
| Software development | p. 103 |
| Applications of BSP | p. 106 |
| Parallel data mining | p. 106 |
| Bagging | p. 107 |
| Exchanging information earlier | p. 108 |
| Summary | p. 109 |
| Discrete computing with CGM | p. 117 |
| Introduction | p. 117 |
| Parallel models | p. 119 |
| Basic algorithms in CGM | p. 120 |
| Prefix sums | p. 120 |
| CGM sorting | p. 123 |
| Deterministically selecting the splitters | p. 124 |
| CGM randomized sorting | p. 125 |
| Connected components | p. 127 |
| Connected components for graphs such that n [less than or equal] m/p | p. 128 |
| Interval graphs | p. 131 |
| Convex hull computation | p. 133 |
| Outline of the algorithm | p. 133 |
| Merging convex hulls in parallel | p. 134 |
| Experimental results | p. 138 |
| Conclusion | p. 139 |
| Parallel Applications | |
| Parallel Graph Algorithms for Coarse-Grained Multicomputers | p. 147 |
| Introduction | p. 147 |
| The coarse grained multicomputer (CGM) | p. 148 |
| List ranking | p. 149 |
| A randomized parallel algorithm for list ranking | p. 150 |
| A simple algorithm using a single random sample | p. 151 |
| Improving the maximum sublist size | p. 152 |
| Simulation and experimental results | p. 155 |
| Applications | p. 157 |
| Conclusion | p. 157 |
| A deterministic algorithm for list ranking | p. 157 |
| The basic idea | p. 157 |
| Connected components and spanning forest | p. 160 |
| Parallel range minima | p. 163 |
| Sequential algorithms | p. 164 |
| Algorithm of Gabow et al. | p. 164 |
| Sequential algorithm of Alon and Schieber | p. 165 |
| The CGM algorithm for the range minima problem | p. 166 |
| Query processing | p. 169 |
| Experimental results | p. 170 |
| Conclusion | p. 172 |
| Lowest common ancestor | p. 173 |
| Concluding remarks | p. 175 |
| Parallel metaheuristics for combinatorial optimization | p. 179 |
| Introduction | p. 180 |
| Parallel variable neighborhood descent | p. 182 |
| Parallel genetic algorithms | p. 183 |
| Parallel simulated annealing | p. 187 |
| Parallel tabu search | p. 189 |
| Parallel GRASP | p. 192 |
| Parallel computing environments | p. 194 |
| Concluding remarks | p. 197 |
| Parallelism in Logic Programming and Scheduling Issues | p. 207 |
| Introduction | p. 207 |
| Logic programming | p. 208 |
| Parallelism in logic programming | p. 212 |
| OR-Parallelism | p. 214 |
| Independent AND-parallelism (IAP) | p. 219 |
| Dependent AND-parallelism | p. 221 |
| AND-OR Parallelism | p. 222 |
| Tools for performance evaluation | p. 224 |
| Scheduling | p. 225 |
| Scheduling OR-parallel work | p. 226 |
| Scheduling AND-parallel work | p. 227 |
| Scheduling AND/OR-parallel work | p. 228 |
| Compile-time analysis | p. 229 |
| Discussion | p. 230 |
| Conclusion | p. 231 |
| Parallel Asynchronous Team Algorithms | p. 243 |
| Introduction | p. 243 |
| Framework for convergence analysis of Team Algorithms | p. 244 |
| Block Team Algorithm | p. 246 |
| Fully Overlapped Team Algorithm | p. 249 |
| Generalized Team Algorithm | p. 252 |
| The load flow problem | p. 259 |
| Computational results | p. 263 |
| Numerical results using a Block TA | p. 265 |
| Numerical results using a TA with Partial Overlapping | p. 266 |
| A-Teams with Genetic Algorithms | p. 267 |
| Hydroelectric generation optimization | p. 268 |
| Topological optimization of reliable networks | p. 271 |
| Conclusions | p. 273 |
| Parallel Numerical Methods for Differential Equations | p. 279 |
| Introduction | p. 279 |
| Initial remarks | p. 279 |
| Final remarks | p. 280 |
| Domain decomposition--DD | p. 281 |
| General facts | p. 282 |
| Parallelization | p. 285 |
| Additive x multiplicative Schwarz methods | p. 287 |
| A question by Chan; words from Keyes; final remarks | p. 288 |
| The multigrid method | p. 288 |
| Introductory facts | p. 289 |
| A simple example--the main idea | p. 290 |
| Parallel environment--a super convergent algorithm | p. 292 |
| Scattered remarks | p. 294 |
| Comparisons | p. 295 |
| The finite element method | p. 295 |
| Element-by-element method | p. 295 |
| Applications | p. 298 |
| Tear-and-interconnect method | p. 298 |
| Mesh decomposition | p. 298 |
| Evolutionary equations | p. 299 |
| Parallelism in time scale? | p. 299 |
| Frequency domain--spectral method | p. 300 |
| Binary bisection method | p. 300 |
| The independent time-step method | p. 302 |
| Windowed iterative methods | p. 303 |
| The parallel time-stepping method | p. 304 |
| BBN butterfly implementation: time-step overlap | p. 305 |
| Explicit schemes and high accuracy | p. 305 |
| Piecewise parabolic method | p. 307 |
| Index | p. 315 |
| Table of Contents provided by Syndetics. All Rights Reserved. |