1. The Pillars of Science.- 2. Moore Myths.- 3. Our Model Problem.- 4. Floating Point Numbers.- 5. A Simplistic Machine Model.- 6. Round-off Error Propagation.- 7. SIMD Vector Crunching.- 8. Arithmetic Stability of an Implementation.- 9. Vectorisation of the Model Problem.- 10. Conditioning and Well-posedness.- 11. Taylor Expansion.- 12. Ordinary Differential Equations.- 13. Accuracy and Appropriateness of Numerical Schemes.- 14. Writing Parallel Codes.- 15. Upscaling Methods.- 16. OpenMP Primer.- 17. Shared Memory Tasking.- 18. GPGPUs with OpenMP.- 19. Higher Order Methods.- 20. Adaptive Time Stepping.
Tobias Weinzierl is Professor in the Department of Computer Science at Durham University, Durham, UK. He has served at the Munich Centre for Advanced Computing (see the Springer edited book, Advanced Computing) before, and holds a PhD and habilitation from the Technical University Munich.
It is the combination of mathematical ideas and efficient programs that drives the progress in many scientific disciplines: The faster results can be generated on a computer, the bigger and the more accurate are the challenges that can be solved.
This textbook targets students who have programming skills and do not shy away from mathematics, though they might be educated in computer science or an application domain and have no primary interest in the maths. The book is for students who want to see some simulations up and running. It introduces the basic concepts and ideas behind applied mathematics and parallel programming that are needed to write numerical simulations for today’s multicore workstations. The intention is not to dive into one particular application domain or to introduce a new programming language; rather it is to lay the generic foundations for future studies and projects in this field.
Topics and features:
Fits into many degrees where students have already been exposed to programming languages
Pairs an introduction to mathematical concepts with an introduction to parallel programming
Emphasises the paradigms and ideas behind code parallelisation, so students can later on transfer their knowledge and skills
Illustrates fundamental numerical concepts, preparing students for more formal textbooks
The easily digestible text prioritises clarity and intuition over formalism, illustrating basic ideas that are of relevance in various subdomains of scientific computing. Its primary goal is to make theoretical and paradigmatic ideas accessible and even fascinating to undergraduate students.
Tobias Weinzierl is professor in the Department of Computer Science at Durham University, Durham, UK. He has worked at the Munich Centre for Advanced Computing (see the Springer edited book, Advanced Computing) before, and holds a PhD and habilitation from the Technical University Munich.