Introduction to High Performance Computing for Scientists and Engineers

1st Edition

Georg Hager, Gerhard Wellein

CRC Press
Published July 2, 2010
Reference - 356 Pages - 143 B/W Illustrations
ISBN 9781439811924 - CAT# K10600
Series: Chapman & Hall/CRC Computational Science

For Instructors Request Inspection Copy


Add to Wish List
FREE Standard Shipping!


    • Covers basic sequential optimization strategies and the dominating parallelization paradigms, including shared-memory parallelization with OpenMP and distributed-memory parallel programming with MPI
    • Highlights the importance of performance modeling of applications on all levels of a system’s architecture
    • Contains numerous case studies drawn from the authors’ invaluable experiences in HPC user support, performance optimization, and benchmarking
    • Explores important contemporary concepts, such as multicore architecture and affinity issues
    • Includes code examples in Fortran and, if relevant, C and C++
    • Provides end-of-chapter exercises with solutions in an appendix
    • Offers downloadable code and an annotated bibliography at


    Written by high performance computing (HPC) experts, Introduction to High Performance Computing for Scientists and Engineers provides a solid introduction to current mainstream computer architecture, dominant parallel programming models, and useful optimization strategies for scientific HPC. From working in a scientific computing center, the authors gained a unique perspective on the requirements and attitudes of users as well as manufacturers of parallel computers.

    The text first introduces the architecture of modern cache-based microprocessors and discusses their inherent performance limitations, before describing general optimization strategies for serial code on cache-based architectures. It next covers shared- and distributed-memory parallel computer architectures and the most relevant network topologies. After discussing parallel computing on a theoretical level, the authors show how to avoid or ameliorate typical performance problems connected with OpenMP. They then present cache-coherent nonuniform memory access (ccNUMA) optimization techniques, examine distributed-memory parallel programming with message passing interface (MPI), and explain how to write efficient MPI code. The final chapter focuses on hybrid programming with MPI and OpenMP.

    Users of high performance computers often have no idea what factors limit time to solution and whether it makes sense to think about optimization at all. This book facilitates an intuitive understanding of performance limitations without relying on heavy computer science knowledge. It also prepares readers for studying more advanced literature.

    Read about the authors’ recent honor: Informatics Europe Curriculum Best Practices Award for Parallelism and Concurrency