Since the dawn of computing, the quest for a better understanding of Nature has been a driving force for technological development. Groundbreaking achievements by great scientists have paved the way from the abacus to the supercomputing power of today. When trying to replicate Nature in the computer’s silicon test tube, there is need for precise and computable process descriptions. The scientific fields of Mathematics and Physics provide a powerful vehicle for such descriptions in terms of Partial Differential Equations (PDEs). Formulated as such equations, physical laws can become subject to computational and analytical studies. In the computational setting, the equations can be discreti ed for efficient solution on a computer, leading to valuable tools for simulation of natural and man-made processes. Numerical solution of PDE-based mathematical models has been an important research topic over centuries, and will remain so for centuries to come.
In the context of computer-based simulations, the quality of the computed results is directly connected to the model’s complexity and the number of data points used for the computations. Therefore, computational scientists tend to fill even the largest and most powerful computers they can get access to, either by increasing the si e of the data sets, or by introducing new model terms that make the simulations more realistic, or a combination of both. Today, many important simulation problems can not be solved by one single computer, but calls for parallel computing. Whether being a dedicated multi-processor supercomputer or a loosely coupled cluster of office workstations, the concept of parallelism offers increased data storage and increased computing power. In theory, one gets access to the grand total of the resources offered by the individual units that make up the multi-processor environment. In practice, things are more complicated, and the need for data communication between the different computational units consumes parts of the theoretical gain of power.
This book surveys the major topics that are essential to high-performance simulation on parallel computers or computational clusters. These topics, including programming models, load balancing, mesh generation, efficient numerical solvers, and scientific software, are vital ingredients in the research fields of computer science, numerical analysis, and scientific computing. In addition to presenting the technological basis, this volume addresses selected applications that combine different techniques in order to meet demanding computational challenges. Through contributions from a wide range of internationally acknowledged experts, this book gives a to-the-point and self-containing overview of efficient ways to deal with large-scale simulation problems.