000 | 04718nam a22005055i 4500 | ||
---|---|---|---|
001 | 978-3-031-54369-2 | ||
003 | DE-He213 | ||
005 | 20240730172652.0 | ||
007 | cr nn 008mamaa | ||
008 | 240702s2024 sz | s |||| 0|eng d | ||
020 |
_a9783031543692 _9978-3-031-54369-2 |
||
024 | 7 |
_a10.1007/978-3-031-54369-2 _2doi |
|
050 | 4 | _aQA76.7-.73 | |
072 | 7 |
_aUMX _2bicssc |
|
072 | 7 |
_aCOM051010 _2bisacsh |
|
072 | 7 |
_aUMX _2thema |
|
082 | 0 | 4 |
_a005.13 _223 |
100 | 1 |
_aDiehl, Patrick. _eauthor. _4aut _4http://id.loc.gov/vocabulary/relators/aut _9104946 |
|
245 | 1 | 0 |
_aParallel C++ _h[electronic resource] : _bEfficient and Scalable High-Performance Parallel Programming Using HPX / _cby Patrick Diehl, Steven R. Brandt, Hartmut Kaiser. |
250 | _a1st ed. 2024. | ||
264 | 1 |
_aCham : _bSpringer International Publishing : _bImprint: Springer, _c2024. |
|
300 |
_aXVIII, 239 p. 1 illus. _bonline resource. |
||
336 |
_atext _btxt _2rdacontent |
||
337 |
_acomputer _bc _2rdamedia |
||
338 |
_aonline resource _bcr _2rdacarrier |
||
347 |
_atext file _bPDF _2rda |
||
505 | 0 | _aPart 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 | _aThis 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. | ||
650 | 0 |
_aProgramming languages (Electronic computers). _97503 |
|
650 | 0 |
_aSoftware engineering. _94138 |
|
650 | 1 | 4 |
_aProgramming Language. _939403 |
650 | 2 | 4 |
_aSoftware Engineering. _94138 |
700 | 1 |
_aBrandt, Steven R. _eauthor. _4aut _4http://id.loc.gov/vocabulary/relators/aut _9104950 |
|
700 | 1 |
_aKaiser, Hartmut. _eauthor. _4aut _4http://id.loc.gov/vocabulary/relators/aut _9104952 |
|
710 | 2 |
_aSpringerLink (Online service) _9104955 |
|
773 | 0 | _tSpringer Nature eBook | |
776 | 0 | 8 |
_iPrinted edition: _z9783031543685 |
776 | 0 | 8 |
_iPrinted edition: _z9783031543708 |
856 | 4 | 0 | _uhttps://doi.org/10.1007/978-3-031-54369-2 |
912 | _aZDB-2-SCS | ||
912 | _aZDB-2-SXCS | ||
942 | _cEBK | ||
999 |
_c88470 _d88470 |