PREFACE |
|
xi | (2) |
ACKNOWLEDGMENTS |
|
xiii | (2) |
ABOUT THE AUTHOR |
|
xv | |
PART 1 FOUNDATIONS OF PARALLEL COMPUTING |
|
1 | (142) |
|
|
3 | (15) |
|
0.1 Introduction to Computers |
|
|
3 | (7) |
|
|
10 | (1) |
|
0.3 Parallel Processing Concepts |
|
|
11 | (3) |
|
0.4 High-Performance Computers |
|
|
14 | (2) |
|
0.5 Organization and Scope of the Book |
|
|
16 | (1) |
|
|
16 | (2) |
|
1. Elements of Parallel Computing |
|
|
18 | (41) |
|
1.1 Levels of Parallelism |
|
|
18 | (2) |
|
1.2 Taxonomy of Parallel Computers |
|
|
20 | (9) |
|
1.2.1 Flynn's Classification |
|
|
20 | (3) |
|
1.2.2 Erlangen Taxonomy (Handler's Taxonomy) |
|
|
23 | (1) |
|
|
24 | (1) |
|
1.2.4 Hwang-Brigg's Taxonomy |
|
|
24 | (1) |
|
|
25 | (4) |
|
1.3 Models for Parallel Computation |
|
|
29 | (14) |
|
|
29 | (3) |
|
|
32 | (1) |
|
1.3.3 Hypercubes (k-cubes) |
|
|
33 | (10) |
|
|
43 | (4) |
|
1.4.1 Language Structure for Parallel Algorithms |
|
|
45 | (2) |
|
1.5 Some Simple Algorithms |
|
|
47 | (3) |
|
1.6 Performance of Parallel Algorithms |
|
|
50 | (5) |
|
|
55 | (1) |
|
|
55 | (1) |
|
|
56 | (3) |
|
2. Data Structures for Parallel Computing |
|
|
59 | (49) |
|
|
59 | (2) |
|
|
61 | (4) |
|
|
65 | (41) |
|
|
66 | (4) |
|
2.3.2 Euler and Hamiltonian Graphs |
|
|
70 | (1) |
|
|
71 | (12) |
|
|
83 | (2) |
|
|
85 | (3) |
|
|
88 | (4) |
|
2.3.7 Coloring and Independence |
|
|
92 | (1) |
|
|
93 | (1) |
|
|
94 | (1) |
|
|
94 | (6) |
|
2.3.11 Some More Intersection Graphs |
|
|
100 | (1) |
|
2.3.12 Matching Problems in Graphs |
|
|
101 | (2) |
|
2.3.13 Centrality in Graphs |
|
|
103 | (1) |
|
|
104 | (1) |
|
2.3.15 Some Graph Problems |
|
|
105 | (1) |
|
|
106 | (2) |
|
3. Paradigms for Parallel Algorithm |
|
|
108 | (15) |
|
|
108 | (4) |
|
|
112 | (1) |
|
|
112 | (4) |
|
|
116 | (1) |
|
|
117 | (4) |
|
|
121 | (1) |
|
|
121 | (1) |
|
|
121 | (2) |
|
|
123 | (20) |
|
4.1 Scalar Product of Two Vectors |
|
|
123 | (1) |
|
4.2 Matrix Multiplication |
|
|
124 | (1) |
|
|
125 | (6) |
|
4.4 Binomial Coefficients |
|
|
131 | (3) |
|
|
134 | (6) |
|
|
140 | (1) |
|
|
140 | (3) |
PART 2 ALGORITHMS FOR GRAPH MODELS |
|
143 | (106) |
|
|
145 | (39) |
|
|
145 | (2) |
|
|
147 | (1) |
|
|
148 | (3) |
|
5.4 Number of Descendants |
|
|
151 | (1) |
|
|
151 | (1) |
|
5.6 Lowest Common Ancestor |
|
|
151 | (4) |
|
|
155 | (5) |
|
5.8 Arithmetic Expression Evaluation |
|
|
160 | (2) |
|
5.9 Root Finding Problem in a Forest |
|
|
162 | (3) |
|
|
165 | (3) |
|
5.11 Converting a Tree into a Binary Tree |
|
|
168 | (7) |
|
5.12 Diameter of All the Vertices |
|
|
175 | (4) |
|
|
179 | (3) |
|
|
182 | (1) |
|
|
183 | (1) |
|
|
184 | (29) |
|
6.1 Simple Graph Algorithms |
|
|
184 | (4) |
|
6.2 Parallel Connectivity Algorithms |
|
|
188 | (13) |
|
6.2.1 Breadth-First Search (BFS) |
|
|
189 | (2) |
|
6.2.2 Connected Components Using BFS |
|
|
191 | (5) |
|
6.2.3 Transitive Closure Matrix |
|
|
196 | (1) |
|
|
196 | (5) |
|
6.3 Biconnected Components |
|
|
201 | (3) |
|
|
204 | (2) |
|
6.5 Shortest Path Problem |
|
|
206 | (4) |
|
|
210 | (1) |
|
|
211 | (2) |
|
7. NC Algorithms for Chordal Graphs |
|
|
213 | (36) |
|
7.1 Chordal Graph Recognition |
|
|
213 | (10) |
|
7.2 Maximal Cliques of Chordal Graphs |
|
|
223 | (4) |
|
7.3 Characterization of CV Graphs |
|
|
227 | (1) |
|
7.4 Path Graph Recognition |
|
|
228 | (19) |
|
7.4.1 Some Definitions and Facts |
|
|
229 | (5) |
|
7.4.2 Outline of the Algorithm |
|
|
234 | (2) |
|
7.4.3 Union of Two UV Graphs |
|
|
236 | (8) |
|
7.4.4 Correctness and Complexity |
|
|
244 | (3) |
|
|
247 | (2) |
PART 3 ARRAY MANIPULATION ALGORITHMS |
|
249 | (26) |
|
|
251 | (11) |
|
|
251 | (1) |
|
8.2 Parallel Search in CREW PRAM |
|
|
252 | (1) |
|
8.3 Parallel Search with More Data |
|
|
253 | (2) |
|
8.4 Searching in Unsorted Array |
|
|
255 | (1) |
|
|
255 | (3) |
|
|
258 | (3) |
|
|
261 | (1) |
|
|
262 | (13) |
|
9.1 Sequential Sorting Algorithms |
|
|
262 | (7) |
|
|
263 | (1) |
|
|
264 | (1) |
|
9.1.3 Shell's Diminishing Increment Sort |
|
|
265 | (1) |
|
|
266 | (3) |
|
|
269 | (1) |
|
|
270 | (2) |
|
|
272 | (1) |
|
|
273 | (2) |
PART 4 NUMERICAL ALGORITHMS |
|
275 | (77) |
|
10. Algebraic Equations and Matrices |
|
|
277 | (42) |
|
|
277 | (3) |
|
10.1.1 Geometrical Interpretation |
|
|
277 | (1) |
|
|
278 | (2) |
|
10.2 Determinant of a Matrix |
|
|
280 | (4) |
|
10.3 System of Linear Equations |
|
|
284 | (8) |
|
10.3.1 Gauss Elimination Method |
|
|
287 | (2) |
|
|
289 | (3) |
|
|
292 | (10) |
|
10.5 Polynomial Multiplication |
|
|
302 | (3) |
|
|
305 | (3) |
|
|
308 | (3) |
|
10.7.1 Lower Triangular Toeplitz Matrix |
|
|
310 | (1) |
|
|
311 | (6) |
|
|
312 | (1) |
|
10.8.2 Odd-Even Reduction Method |
|
|
313 | (4) |
|
|
317 | (1) |
|
|
318 | (1) |
|
11. Differentiation and Integration |
|
|
319 | (16) |
|
|
319 | (2) |
|
11.2 Partial Differentiation |
|
|
321 | (5) |
|
|
326 | (2) |
|
|
328 | (5) |
|
11.4.1 Linear Interpolation |
|
|
329 | (2) |
|
11.4.2 Quadratic Interpolation |
|
|
331 | (1) |
|
11.4.3 Lagrange's Interpolation |
|
|
331 | (2) |
|
|
333 | (1) |
|
|
333 | (2) |
|
12. Differential Equations |
|
|
335 | (17) |
|
|
335 | (1) |
|
12.2 Partial Differential Equations |
|
|
336 | (1) |
|
|
337 | (14) |
|
|
338 | (6) |
|
|
344 | (3) |
|
12.3.3 Crank-Nicholson Method |
|
|
347 | (1) |
|
12.3.4 Three-Level Difference Methods |
|
|
348 | (3) |
|
|
351 | (1) |
ANSWERS TO SELECTED EXERCISES |
|
352 | (8) |
INDEX |
|
360 | |