Parallel C++ Efficient and Scalable High-Performance Parallel Programming Using HPX /

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...

Полное описание

Сохранить в:
Библиографические подробности
Главные авторы: Diehl, Patrick (Автор), Brandt, Steven R. (Автор), Kaiser, Hartmut (Автор)
Соавтор: SpringerLink (Online service)
Формат: Электронный ресурс eКнига
Язык:английский
Опубликовано: Cham : Springer International Publishing : Imprint: Springer, 2024.
Редактирование:1st ed. 2024.
Предметы:
Online-ссылка:https://doi.org/10.1007/978-3-031-54369-2
Метки: Добавить метку
Нет меток, Требуется 1-ая метка записи!

MARC

LEADER 00000nam a22000005i 4500
001 978-3-031-54369-2
003 DE-He213
005 20260810165725.0
007 cr nn 008mamaa
008 240702s2024 sz | o |||| 0|eng d
020 |a 9783031543692  |9 978-3-031-54369-2 
024 7 |a 10.1007/978-3-031-54369-2  |2 doi 
050 4 |a QA76.7-.73 
072 7 |a UMX  |2 bicssc 
072 7 |a COM051010  |2 bisacsh 
072 7 |a UMX  |2 thema 
082 0 4 |a 005.13  |2 23 
100 1 |a Diehl, Patrick.  |e author.  |4 aut  |4 http://id.loc.gov/vocabulary/relators/aut 
245 1 0 |a Parallel C++  |h [electronic resource] :  |b Efficient and Scalable High-Performance Parallel Programming Using HPX /  |c by Patrick Diehl, Steven R. Brandt, Hartmut Kaiser. 
250 |a 1st ed. 2024. 
264 1 |a Cham :  |b Springer International Publishing :  |b Imprint: Springer,  |c 2024. 
300 |a 1 online resource (XVIII, 239 p. 1 illus.). 
336 |a text  |b txt  |2 rdacontent 
337 |a computer  |b c  |2 rdamedia 
338 |a online resource  |b cr  |2 rdacarrier 
347 |a text file  |b PDF  |2 rda 
505 0 |a 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. 
520 |a 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. 
588 |a Print version record. 
650 0 |a Programming languages (Electronic computers). 
650 0 |a Software engineering. 
650 1 4 |a Programming Language. 
650 2 4 |a Software Engineering. 
700 1 |a Brandt, Steven R.  |e author.  |4 aut  |4 http://id.loc.gov/vocabulary/relators/aut 
700 1 |a Kaiser, Hartmut.  |e author.  |4 aut  |4 http://id.loc.gov/vocabulary/relators/aut 
710 2 |a SpringerLink (Online service) 
773 0 |t Springer Nature eBook 
776 0 8 |i Printed edition:  |z 9783031543685 
776 0 8 |i Printed edition:  |z 9783031543708 
856 4 0 |u https://doi.org/10.1007/978-3-031-54369-2 
912 |a ZDB-2-SCS 
912 |a ZDB-2-SXCS 
950 |a Computer Science (SpringerNature-11645) 
950 |a Computer Science (R0) (SpringerNature-43710)