Parallel C++ [electronic resource] : Efficient and Scalable High-Performance Parallel Programming Using HPX / by Patrick Diehl, Steven R. Brandt, Hartmut Kaiser.

Por: Diehl, Patrick [author.]Colaborador(es): Brandt, Steven R [author.] | Kaiser, Hartmut [author.] | SpringerLink (Online service)Tipo de material: TextoTextoEditor: Cham : Springer International Publishing : Imprint: Springer, 2024Edición: 1st ed. 2024Descripción: XVIII, 239 p. 1 illus. online resourceTipo de contenido: text Tipo de medio: computer Tipo de portador: online resourceISBN: 9783031543692Tema(s): Programming languages (Electronic computers) | Software engineering | Programming Language | Software EngineeringFormatos físicos adicionales: Printed edition:: Sin título; Printed edition:: Sin títuloClasificación CDD: 005.13 Clasificación LoC:QA76.7-.73Recursos en línea: Libro electrónicoTexto
Contenidos:
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.
En: Springer Nature eBookResumen: 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.
Star ratings
    Valoración media: 0.0 (0 votos)
Existencias
Tipo de ítem Biblioteca actual Colección Signatura Copia número Estado Fecha de vencimiento Código de barras
Libro Electrónico Biblioteca Electrónica
Colección de Libros Electrónicos 1 No para préstamo

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.

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.

UABC ; Perpetuidad

Con tecnología Koha