|
|
ix | |
|
|
x | |
|
|
xii | |
Dedication and acknowledgements |
|
xiii | |
|
High-performance computing: why bother with it? |
|
|
1 | (11) |
|
|
1 | (1) |
|
HPC stimulates new research and creates new research opportunities |
|
|
2 | (1) |
|
Why parallel processing is important |
|
|
3 | (2) |
|
Parallel computing is the future of HPC |
|
|
5 | (2) |
|
|
7 | (1) |
|
Fostering a computational culture |
|
|
8 | (2) |
|
|
10 | (2) |
|
High-performance computing applications in geography and GIS |
|
|
12 | (35) |
|
|
12 | (3) |
|
|
15 | (2) |
|
|
17 | (2) |
|
|
19 | (7) |
|
HPC applications in geography and GIS |
|
|
26 | (3) |
|
Some examples of HPC applications in geography |
|
|
29 | (13) |
|
Parallel GIS applications |
|
|
42 | (3) |
|
Overcoming access barriers |
|
|
45 | (2) |
|
Parallel and high-performance computing: concepts, principles and theory |
|
|
47 | (27) |
|
What is parallel computing? |
|
|
47 | (5) |
|
Why parallel processing is important |
|
|
52 | (5) |
|
Highly and massively parallel processing |
|
|
57 | (5) |
|
Examples of thinking in parallel |
|
|
62 | (2) |
|
Can paralle machines ever be used efficiently? |
|
|
64 | (5) |
|
Building a wall in a parallel way |
|
|
69 | (2) |
|
A brief history of parallel computing |
|
|
71 | (2) |
|
|
73 | (1) |
|
Types of parallel-processing hardware and programming paradigms |
|
|
74 | (20) |
|
Automatic parallelisation software |
|
|
74 | (2) |
|
|
76 | (6) |
|
The three principal types of HPC hardware |
|
|
82 | (6) |
|
Levels of parallelism and identifying them |
|
|
88 | (2) |
|
|
90 | (1) |
|
Examples of each type of parallelism |
|
|
91 | (1) |
|
|
92 | (2) |
|
Programming vector supercomputers |
|
|
94 | (45) |
|
|
94 | (1) |
|
The secrets of vector processing |
|
|
95 | (4) |
|
|
99 | (1) |
|
Optimisation of performance |
|
|
100 | (4) |
|
A case study in vector processing using the Mark 1 geographical analysis machine as an example |
|
|
104 | (15) |
|
Case study 2: orgin-constrained spatial interaction model |
|
|
119 | (3) |
|
|
122 | (17) |
|
Shared-loop and data parallel programming |
|
|
139 | (39) |
|
|
139 | (1) |
|
Multi-tasking on shared-memory MIMD machines |
|
|
140 | (7) |
|
Parallelisation strategies |
|
|
147 | (4) |
|
Data parallel programming |
|
|
151 | (4) |
|
|
155 | (23) |
|
Parallel programming using simple message passing |
|
|
178 | (33) |
|
|
178 | (2) |
|
|
180 | (2) |
|
|
182 | (2) |
|
|
184 | (2) |
|
Example 1: probably the world's simplest MPI program that could be useful |
|
|
186 | (2) |
|
|
188 | (8) |
|
Example 3: a data parallel spatial interaction in MPI |
|
|
196 | (7) |
|
|
203 | (8) |
|
Parallelising the geographical analysis machine using MPI |
|
|
211 | (24) |
|
A data parallel GAM using MPI |
|
|
211 | (2) |
|
Where is the parallelism in the GAM? |
|
|
213 | (2) |
|
|
215 | (2) |
|
Some alternative message-passing schemes |
|
|
217 | (2) |
|
Doing even better by task farming |
|
|
219 | (2) |
|
|
221 | (1) |
|
|
222 | (2) |
|
|
224 | (1) |
|
|
225 | (1) |
|
More advanced MPI routines |
|
|
225 | (1) |
|
|
225 | (10) |
|
Optimising performance and debugging hints |
|
|
235 | (16) |
|
|
235 | (1) |
|
First optimise your algorithm rather than fiddling with code |
|
|
236 | (2) |
|
|
238 | (1) |
|
|
238 | (2) |
|
|
240 | (1) |
|
Some MPI optimisation secrets |
|
|
241 | (2) |
|
Debugging parallel code is harder than serial code |
|
|
243 | (1) |
|
Debugging message passing |
|
|
244 | (3) |
|
|
247 | (1) |
|
|
248 | (1) |
|
Message-passing debugging |
|
|
248 | (2) |
|
|
250 | (1) |
|
|
251 | (17) |
|
|
251 | (1) |
|
Introduction to benchmarking |
|
|
251 | (2) |
|
The spatial interaction model as a benchmark code |
|
|
253 | (3) |
|
The high-performance Fortran version |
|
|
256 | (2) |
|
The message-passing code using MPI |
|
|
258 | (1) |
|
The bulk synchronous parallel model |
|
|
259 | (1) |
|
Measuring performance using MPI and serial code |
|
|
259 | (2) |
|
A comparison of HPF and MPI codes |
|
|
261 | (4) |
|
|
265 | (3) |
|
Epilogue for geographers and social scientists |
|
|
268 | (9) |
|
|
268 | (4) |
|
What has HPC got to do with any of this? |
|
|
272 | (1) |
|
Revising the definition of geocomputation |
|
|
272 | (2) |
|
A GIS--HPC research agenda |
|
|
274 | (2) |
|
HPC futures in geography, etc. |
|
|
276 | (1) |
References and further reading |
|
277 | (6) |
Index |
|
283 | |