Series Foreword |
|
xiii | |
Foreword |
|
xv | |
Preface |
|
xix | |
|
|
1 | (8) |
|
|
2 | (2) |
|
|
4 | (5) |
|
Overview of Beowulf Systems |
|
|
9 | (16) |
|
|
9 | (3) |
|
A Taxonomy of Parallel Computing |
|
|
12 | (1) |
|
|
13 | (1) |
|
A Critical Technology Convergence |
|
|
14 | (2) |
|
|
16 | (2) |
|
|
18 | (1) |
|
|
19 | (1) |
|
Message Passing for Interprocessor Communication |
|
|
20 | (1) |
|
Beowulf System Management |
|
|
21 | (1) |
|
|
21 | (4) |
|
|
25 | (38) |
|
Overview of a Beowulf Node |
|
|
26 | (6) |
|
|
28 | (1) |
|
|
29 | (3) |
|
|
32 | (4) |
|
|
33 | (1) |
|
|
34 | (1) |
|
|
34 | (1) |
|
|
34 | (2) |
|
|
36 | (6) |
|
A Typical Beowulf Motherboard |
|
|
37 | (1) |
|
|
37 | (1) |
|
Layout of Major Components |
|
|
38 | (4) |
|
|
42 | (4) |
|
|
42 | (1) |
|
|
42 | (1) |
|
|
43 | (1) |
|
Memory Hierarchy---L1 and L2 Caches |
|
|
44 | (2) |
|
|
46 | (1) |
|
|
46 | (1) |
|
|
47 | (1) |
|
|
48 | (1) |
|
Examples of a Beowulf Node |
|
|
49 | (2) |
|
Intel Pentium II Based Node |
|
|
50 | (1) |
|
|
50 | (1) |
|
Boxes, Shelves, Piles, and Racks |
|
|
51 | (1) |
|
|
52 | (11) |
|
|
54 | (1) |
|
|
55 | (1) |
|
|
56 | (1) |
|
|
57 | (2) |
|
Installing the Other Components |
|
|
59 | (1) |
|
Troubleshooting a PC that Won't Boot |
|
|
60 | (3) |
|
The Linux Operating System |
|
|
63 | (30) |
|
|
64 | (2) |
|
Linux Kernels and Linux Distributions |
|
|
66 | (1) |
|
|
67 | (3) |
|
|
70 | (3) |
|
|
73 | (3) |
|
Tools for Program Development |
|
|
76 | (7) |
|
|
83 | (1) |
|
Installing an Initial System |
|
|
84 | (5) |
|
Installation by CD or Network? |
|
|
85 | (1) |
|
|
86 | (3) |
|
|
89 | (2) |
|
|
91 | (2) |
|
|
91 | (1) |
|
|
92 | (1) |
|
Network Hardware and Software |
|
|
93 | (30) |
|
|
93 | (9) |
|
|
94 | (1) |
|
|
95 | (2) |
|
|
97 | (2) |
|
|
99 | (2) |
|
|
101 | (1) |
|
Alternative Network Technologies |
|
|
102 | (3) |
|
Asynchronous Transfer Mode |
|
|
102 | (1) |
|
|
103 | (1) |
|
Scalable Coherenet Interface |
|
|
104 | (1) |
|
|
104 | (1) |
|
|
105 | (3) |
|
|
106 | (1) |
|
|
107 | (1) |
|
|
108 | (4) |
|
|
112 | (6) |
|
|
113 | (2) |
|
Distributed Objects: CORBA and Java RMI |
|
|
115 | (3) |
|
|
118 | (2) |
|
|
118 | (1) |
|
|
119 | (1) |
|
|
120 | (1) |
|
|
120 | (3) |
|
|
120 | (1) |
|
|
121 | (2) |
|
|
123 | (22) |
|
|
123 | (2) |
|
|
123 | (1) |
|
The Universally Accessible Machine |
|
|
124 | (1) |
|
|
124 | (1) |
|
|
125 | (2) |
|
Dynamically Assigned Addresses |
|
|
126 | (1) |
|
|
127 | (5) |
|
|
128 | (1) |
|
Setting up a Clone Root Partition |
|
|
129 | (1) |
|
|
129 | (2) |
|
Building a Boot Clone Floppy |
|
|
131 | (1) |
|
Basic System Administration |
|
|
132 | (5) |
|
Booting and Shutting Down |
|
|
133 | (1) |
|
|
133 | (2) |
|
|
135 | (1) |
|
PRSH---Parallel Remote Shell |
|
|
136 | (1) |
|
Defending the Pack: Security Strategies |
|
|
137 | (6) |
|
|
138 | (1) |
|
|
138 | (3) |
|
|
141 | (1) |
|
SSH: Secure Shell Revisited |
|
|
142 | (1) |
|
|
143 | (2) |
|
|
145 | (18) |
|
|
145 | (3) |
|
Broad Categories of Parallel Algorithms |
|
|
148 | (5) |
|
|
148 | (1) |
|
Synchronous and Asynchronous |
|
|
149 | (1) |
|
|
149 | (1) |
|
Bandwidth Greedy and Frugal |
|
|
150 | (1) |
|
Latency Tolerant and Intolerant |
|
|
151 | (1) |
|
Distributed and Shared Address Spaces |
|
|
152 | (1) |
|
Beowulf Systems and Choices of Parallelism |
|
|
153 | (1) |
|
Process-level Parallelism |
|
|
153 | (10) |
|
Example: Ray Tracing Animation |
|
|
153 | (3) |
|
Utilities for Process-parallel Computing |
|
|
156 | (3) |
|
Overheads---RSH and File I/O |
|
|
159 | (1) |
|
|
160 | (3) |
|
MPI---A User-level Message-passing Interface |
|
|
163 | (28) |
|
|
163 | (1) |
|
|
164 | (9) |
|
Example: ``Hello World'' in MPI |
|
|
165 | (8) |
|
Parallel Data Structures with MPI |
|
|
173 | (12) |
|
Example: A Parallel Array |
|
|
174 | (6) |
|
Example: A One-dimensional Cellular Automaton |
|
|
180 | (5) |
|
|
185 | (6) |
|
Blocking and Non-blocking Calls and Alternative Sending Modes |
|
|
185 | (2) |
|
Virtual Topologies and Attribute Caching |
|
|
187 | (1) |
|
|
187 | (1) |
|
|
188 | (1) |
|
|
188 | (3) |
|
Programming with MPI---A Detailed Example |
|
|
191 | (30) |
|
Example: Sorting a List of Uniformly Distributed Integers |
|
|
193 | (6) |
|
|
199 | (2) |
|
|
199 | (1) |
|
|
200 | (1) |
|
|
200 | (1) |
|
|
200 | (1) |
|
|
201 | (1) |
|
Measurement of Integer Sort |
|
|
201 | (8) |
|
Example: Sorting with User-supplied Comparator |
|
|
209 | (3) |
|
Analysis of a More General Sort |
|
|
212 | (6) |
|
Choosing the Number of Fenceposts |
|
|
216 | (2) |
|
|
218 | (3) |
|
|
221 | (12) |
|
|
221 | (2) |
|
|
223 | (2) |
|
|
223 | (1) |
|
|
223 | (1) |
|
Dynamic Interactive Simulation |
|
|
223 | (1) |
|
|
224 | (1) |
|
|
224 | (1) |
|
|
224 | (1) |
|
|
224 | (1) |
|
|
225 | (2) |
|
Total Work versus Peak Performance |
|
|
227 | (1) |
|
Big Memory versus Out-of-core |
|
|
228 | (1) |
|
Bounding Influences on the Beowulf Domain |
|
|
228 | (2) |
|
|
230 | (1) |
|
Will Linux Survive the Mass Market? |
|
|
231 | (1) |
|
|
232 | (1) |
Index of Acronyms |
|
233 | (4) |
Index |
|
237 | |