|Craig C. Douglas, Gundolf Haase and Ulrich Langer
|Table of contents
Abstract. Computing has become a third branch of research, joining the traditional areas of theory and laboratory experimentation and verification. Due to the expense and complexity of actually performing experiments in many situations, simulation must be done first. In addition, computation in some fields leads to new directions in theory. The three areas have formed a symbiotic relationship that is now known as computational sciences. In the best situations, all three areas seamlessly interact. The "computational'' supplement to many classical and new sciences is due to the wide use during the last decade of computational methods in almost all sciences, including life sciences and business sciences Most of the models behind these computer simulations are based on partial differential equations (PDE). The first step towards computer simulation consists in the discretization of the PDE model. This usually results in a very large-scale linear system of algebraic equations or even in a sequence of such systems. The fast solution of these systems of linear algebraic equations is crucial for the overall efficiency of the computer simulation.The growing complexity of the models requires more and more the use of parallel computers. Beside expensive parallel computers, clusters of personal computers or workstations are now very popular as an inexpensive alternative parallel hardware configuration for the computer simulation of complex problems (even as home parallel systems).
This tutorial serves as a first introduction into the basic concepts of solving partial differential equations using parallel numerical methods. The ability to understand, develop, and implement parallel PDE solvers requires not only some basic knowledge in PDEs, discretization methods, and solution techniques, but also some knowledge about parallel computers, parallel programming, and the run-time behaviour of parallel algorithms. Our tutorial provides this knowledge in just 8 short chapters. The authors kept the examples simple so that the parallelization strategies are not dominated by technical details. The practical course for the tutorial can be downloaded from the internet. The tutorial is intended for advanced undergraduates and graduate students in computational sciences and engineering. However, our book can be helpful for many people who are going to use PDE based parallel computer simulations in their profession. It is important to know at least something about the possible errors and bottlenecks in parallel scientific computing.
We are indebted to the reviewers who contribute a lot to the improvement of our manuscript. Especially, we would like to thank Michael J. Holst and David E. Keyes for many helpful hints and advises. We would like to acknowledge the Austrian Science Fund for supporting our cooperation within the Special Research Program on "Numerical and Symbolic Scientific Computing'' under the grant SFB F013 and the NFS for grants DMS-9707040, CCR-9902022, CCR-9988165, and ACR-9721388.
Finally, we would like to thank our families, friends, and Gassners Most & Jausn, who put up with us, nourished us, and allowed us to write this book.