Parallel C++ - Patrick Diehl, Steven R. Brandt, Hartmut Kaiser

Parallel C++

Efficient and Scalable High-Performance Parallel Programming Using HPX
Buch | Softcover
XVIII, 239 Seiten
2024 | 2024
Springer International Publishing (Verlag)
978-3-031-54368-5 (ISBN)
69,54 inkl. MwSt

This textbook focuses on practical parallel C++ programming at the graduate student level. In particular, it shows the APIs and related language features in the C++ 17 and C++ 20 standards, covering both single node and distributed systems. It shows that with the parallel features in the C++ 17 and C++ 20 standards, learning meta-languages like OpenMP is no longer necessary. Using the C++ standard library for parallelism and concurrency (HPX), the same language features can be extended to distributed codes, providing a higher-level C++ interface to distributed programming than the Message Passing Interface (MPI).

The book starts with the single-threaded implementation of the fractal sets, e.g. Julia set, and Mandelbrot set, using the C++ Standard Library (SL)'s container and algorithms. This code base is used for parallel implementation using low-level threads, asynchronous programming, parallel algorithms, and coroutines. The asynchronous programming examples are then extended to distributed programming using the C++ standard library for parallelism and concurrency (HPX). Octo-Tiger, an astrophysics code for stellar merger, is used as a showcase for a portable, efficient, and scalable high-performance application using HPX.

The book's core audience is advanced undergraduate and graduate students who want to learn the basics of parallel and distributed C++ programming but are not computer science majors. Basic C++ knowledge, like functions, classes, loops, and conditional statements, is assumed as a requirement, while C++ advanced topics, like generic programming, lambda functions, smart pointers, and move semantics, are briefly summarized in the appendix.


Patrick Diehl is a faculty member at the Department of Physics & Astronomy at Louisiana State University (LSU) and a senior research scientist at LSU's Center for Computation and Technology (CCT). His research interests are computational fracture mechanics, scientific computing, and high-performance computing. Next to research, he is devoted to teaching C++ and parallel programming to students and the community.

Steven R. Brandt is the Assistant Director for Computational Science at the Center for Computation and Technology at LSU. His research interests include parallel programming, parallel languages and tools, science gateways, and high performance computing (HPC). He has served as PI on several grants supporting the Einstein Toolkit, a widely used open source project for studying numerical relativity.

Hartmut Kaiser is a faculty member at the CS and EE departments at Louisiana State University (LSU) and a senior research scientist at LSU's Center for Computation and Technology (CCT). He is probably best known for his involvement in open source software projects, such as being the author of several C++ libraries he has contributed to Boost, which are in use by thousands of developers worldwide. His current research is focused on leading the STE AR group at CCT working on the practical design and implementation of future execution models and programming methods.

Part I: Preliminaries.- 1. Compiling and running the code and examples in this book.- Part II: Introduction to C++ and C++ Standard Library.- 2. About C++, C++ standard, and the C++ Standard Library.- 3. C++ Standard library.- 4. Example Mandelbrot set and Julia set.- Part III: The C++ standard library for concurrency and parallelism (HPX).- 5. Why HPX?.- 6. The C++ standard library for parallelism and concurrency (HPX).- Part IV: Parallel programming.- 7. Parallel Programming.- 8. Programming with Low Level Threads.- 9. Asynchronous programming.- 10. Parallel Algorithms.- 11. Coroutines.- 12. Benchmarking the fractal set codes.- Part V: Distributed programming.- 13. Distributed computing and programming.- 14. Distributed programming using HPX.- 15. Examples of distributed programming.- 16. Some remarks on MPI+OpenMP and HPX.- Part VI: A showcase for a portable high performance application using HPX.- 17. Accelerator Cards.- 18. Octo-Tiger, a showcase for a portable high performance application.- Part VII: Conclusion and Outlook.- 19. Conclusion and Outlook.

Erscheinungsdatum
Zusatzinfo XVIII, 239 p. 1 illus.
Verlagsort Cham
Sprache englisch
Maße 155 x 235 mm
Themenwelt Informatik Programmiersprachen / -werkzeuge C / C++
Mathematik / Informatik Informatik Software Entwicklung
Schlagworte Asynchronous Programming • C++ • distributed programming • High-Performance Computing • HPX Library • Mandelbrot Sets • Octo-Tiger • Parallel Algorithms • Parellel Programming • Scientific Computing
ISBN-10 3-031-54368-8 / 3031543688
ISBN-13 978-3-031-54368-5 / 9783031543685
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
Das umfassende Handbuch

von Torsten T. Will

Buch | Hardcover (2024)
Rheinwerk (Verlag)
49,90
Technisch-wissenschaftliche Übungsaufgaben mit Lösungen

von Thomas Hoch; Gerd Küveler

Buch | Softcover (2023)
Springer Vieweg (Verlag)
37,99
das umfassende Handbuch

von Jürgen Wolf; René Krooß

Buch | Hardcover (2023)
Rheinwerk (Verlag)
49,90