Book description
High Performance Computing: Modern Systems and Practices is a fully comprehensive and easily accessible treatment of high performance computing, covering fundamental concepts and essential knowledge while also providing key skills training. With this book, domain scientists will learn how to use supercomputers as a key tool in their quest for new knowledge. In addition, practicing engineers will discover how supercomputers can employ HPC systems and methods to the design and simulation of innovative products, and students will begin their careers with an understanding of possible directions for future research and development in HPC.
Those who maintain and administer commodity clusters will find this textbook provides essential coverage of not only what HPC systems do, but how they are used.
- Covers enabling technologies, system architectures and operating systems, parallel programming languages and algorithms, scientific visualization, correctness and performance debugging tools and methods, GPU accelerators and big data problems
- Provides numerous examples that explore the basics of supercomputing, while also providing practical training in the real use of high-end computers
- Helps users with informative and practical examples that build knowledge and skills through incremental steps
- Features sidebars of background and context to present a live history and culture of this unique field
- Includes online resources, such as recorded lectures from the authors’ HPC courses
Table of contents
- Cover image
- Title page
- Table of Contents
- Copyright
- Dedication
- Foreword
- Preface
- Acknowledgments
-
Chapter 1. Introduction
- 1.1. High Performance Computing Disciplines
- 1.2. Impact of Supercomputing on Science, Society, and Security
- 1.3. Anatomy of a Supercomputer
- 1.4. Computer Performance
- 1.5. A Brief History of Supercomputing
- 1.6. This Textbook as a Guide and Tool for the Student
- 1.7. Summary and Outcomes of Chapter 1
- 1.8. Questions and Problems
-
Chapter 2. HPC Architecture 1: Systems and Technologies
- 2.1. Introduction
- 2.2. Key Properties of HPC Architecture
- 2.3. Parallel Architecture Families—Flynn's Taxonomy
- 2.4. Enabling Technology
- 2.5. von Neumann Sequential Processors
- 2.6. Vector and Pipelining
- 2.7. Single-Instruction, Multiple Data Array
- 2.8. Multiprocessors
- 2.9. Heterogeneous Computer Structures
- 2.10. Summary and Outcomes of Chapter 2
- 2.11. Questions and Problems
- Chapter 3. Commodity Clusters
-
Chapter 4. Benchmarking
- 4.1. Introduction
- 4.2. Key Properties of an HPC Benchmark
- 4.3. Standard HPC Community Benchmarks
- 4.4. Highly Parallel Computing Linpack
- 4.5. HPC Challenge Benchmark Suite
- 4.6. High Performance Conjugate Gradients
- 4.7. NAS Parallel Benchmarks
- 4.8. Graph500
- 4.9. Miniapplications as Benchmarks
- 4.10. Summary and Outcomes of Chapter 4
- 4.11. Exercises
- Chapter 5. The Essential Resource Management
- Chapter 6. Symmetric Multiprocessor Architecture
- Chapter 7. The Essential OpenMP
-
Chapter 8. The Essential MPI
- 8.1. Introduction
- 8.2. Message-Passing Interface Standards
- 8.3. Message-Passing Interface Basics
- 8.4. Communicators
- 8.5. Point-to-Point Messages
- 8.6. Synchronization Collectives
- 8.7. Communication Collectives
- 8.8. Nonblocking Point-to-Point Communication
- 8.9. User-Defined Data Types
- 8.10. Summary and Outcomes of Chapter 8
- 8.11. Exercises
- Chapter 9. Parallel Algorithms
-
Chapter 10. Libraries
- 10.1. Introduction
- 10.2. Linear Algebra
- 10.3. Partial Differential Equations
- 10.4. Graph Algorithms
- 10.5. Parallel Input/Output
- 10.6. Mesh Decomposition
- 10.7. Visualization
- 10.8. Parallelization
- 10.9. Signal Processing
- 10.10. Performance Monitoring
- 10.11. Summary and Outcomes of Chapter 10
- 10.12. Exercises
- Chapter 11. Operating Systems
- Chapter 12. Visualization
- Chapter 13. Performance Monitoring
- Chapter 14. Debugging
-
Chapter 15. Accelerator Architecture
- 15.1. Introduction
- 15.2. A Historic Perspective
- 15.3. Introduction to Graphics Processing Units
- 15.4. Evolution of Graphics Processing Unit Functionality
- 15.5. Modern Graphics Processing Unit Architecture
- 15.6. Heterogeneous System Architecture
- 15.7. Summary and Outcomes of Chapter 15
- 15.8. Problems and Questions
- Chapter 16. The Essential OpenACC
- Chapter 17. Mass Storage
- Chapter 18. File Systems
- Chapter 19. MapReduce
- Chapter 20. Checkpointing
- Chapter 21. Next Steps and Beyond
- Appendix A. Essential C
- Appendix B. Essential Linux
- Glossary
- Index
Product information
- Title: High Performance Computing
- Author(s):
- Release date: December 2017
- Publisher(s): Morgan Kaufmann
- ISBN: 9780124202153
You might also like
book
Parallel and High Performance Computing
Complex calculations, like training deep learning models or running large-scale simulations, can take an extremely long …
book
High Performance Python, 2nd Edition
Your Python code may run correctly, but you need it to run faster. Updated for Python …
book
C++ High Performance - Second Edition
A comprehensive guide to help aspiring and professional C++ developers elevate the performance of their apps …
book
BPF Performance Tools
Use BPF Tools to Optimize Performance, Fix Problems, and See Inside Running Systems BPF-based performance tools …