<?xml version="1.0" encoding="UTF-8"?>
<record
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"
    xmlns="http://www.loc.gov/MARC21/slim">

  <leader>04746nam a22005055i 4500</leader>
  <controlfield tag="001">978-3-031-54369-2</controlfield>
  <controlfield tag="003">DE-He213</controlfield>
  <controlfield tag="005">20251030112607.0</controlfield>
  <controlfield tag="007">cr nn 008mamaa</controlfield>
  <controlfield tag="008">240702s2024    sz |    s    |||| 0|eng d</controlfield>
  <datafield tag="020" ind1=" " ind2=" ">
    <subfield code="a">9783031543692</subfield>
    <subfield code="9">978-3-031-54369-2</subfield>
  </datafield>
  <datafield tag="024" ind1="7" ind2=" ">
    <subfield code="a">10.1007/978-3-031-54369-2</subfield>
    <subfield code="2">doi</subfield>
  </datafield>
  <datafield tag="050" ind1=" " ind2="4">
    <subfield code="a">QA76.7-.73</subfield>
  </datafield>
  <datafield tag="072" ind1=" " ind2="7">
    <subfield code="a">UMX</subfield>
    <subfield code="2">bicssc</subfield>
  </datafield>
  <datafield tag="072" ind1=" " ind2="7">
    <subfield code="a">COM051010</subfield>
    <subfield code="2">bisacsh</subfield>
  </datafield>
  <datafield tag="072" ind1=" " ind2="7">
    <subfield code="a">UMX</subfield>
    <subfield code="2">thema</subfield>
  </datafield>
  <datafield tag="100" ind1="1" ind2=" ">
    <subfield code="a">Diehl, Patrick.</subfield>
    <subfield code="e">author.</subfield>
    <subfield code="4">aut</subfield>
    <subfield code="4">http://id.loc.gov/vocabulary/relators/aut</subfield>
    <subfield code="9">75125</subfield>
  </datafield>
  <datafield tag="245" ind1="1" ind2="0">
    <subfield code="a">Parallel C++</subfield>
    <subfield code="h">[electronic resource] :</subfield>
    <subfield code="b">Efficient and Scalable High-Performance Parallel Programming Using HPX /</subfield>
    <subfield code="c">by Patrick Diehl, Steven R. Brandt, Hartmut Kaiser.</subfield>
  </datafield>
  <datafield tag="250" ind1=" " ind2=" ">
    <subfield code="a">1st ed. 2024.</subfield>
  </datafield>
  <datafield tag="264" ind1=" " ind2="1">
    <subfield code="a">Cham :</subfield>
    <subfield code="b">Springer International Publishing :</subfield>
    <subfield code="b">Imprint: Springer,</subfield>
    <subfield code="c">2024.</subfield>
  </datafield>
  <datafield tag="300" ind1=" " ind2=" ">
    <subfield code="a">XVIII, 239 p. 1 illus.</subfield>
    <subfield code="b">online resource.</subfield>
  </datafield>
  <datafield tag="336" ind1=" " ind2=" ">
    <subfield code="a">text</subfield>
    <subfield code="b">txt</subfield>
    <subfield code="2">rdacontent</subfield>
  </datafield>
  <datafield tag="337" ind1=" " ind2=" ">
    <subfield code="a">computer</subfield>
    <subfield code="b">c</subfield>
    <subfield code="2">rdamedia</subfield>
  </datafield>
  <datafield tag="338" ind1=" " ind2=" ">
    <subfield code="a">online resource</subfield>
    <subfield code="b">cr</subfield>
    <subfield code="2">rdacarrier</subfield>
  </datafield>
  <datafield tag="347" ind1=" " ind2=" ">
    <subfield code="a">text file</subfield>
    <subfield code="b">PDF</subfield>
    <subfield code="2">rda</subfield>
  </datafield>
  <datafield tag="505" ind1="0" ind2=" ">
    <subfield code="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.</subfield>
  </datafield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="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)&#x2019;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&#x2019;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.</subfield>
  </datafield>
  <datafield tag="650" ind1=" " ind2="0">
    <subfield code="a">Programming languages (Electronic computers).</subfield>
    <subfield code="9">66206</subfield>
  </datafield>
  <datafield tag="650" ind1=" " ind2="0">
    <subfield code="a">Software engineering.</subfield>
    <subfield code="9">33953</subfield>
  </datafield>
  <datafield tag="650" ind1="1" ind2="4">
    <subfield code="a">Programming Language.</subfield>
    <subfield code="9">66208</subfield>
  </datafield>
  <datafield tag="650" ind1="2" ind2="4">
    <subfield code="a">Software Engineering.</subfield>
    <subfield code="9">33953</subfield>
  </datafield>
  <datafield tag="700" ind1="1" ind2=" ">
    <subfield code="a">Brandt, Steven R.</subfield>
    <subfield code="e">author.</subfield>
    <subfield code="4">aut</subfield>
    <subfield code="4">http://id.loc.gov/vocabulary/relators/aut</subfield>
    <subfield code="9">79836</subfield>
  </datafield>
  <datafield tag="700" ind1="1" ind2=" ">
    <subfield code="a">Kaiser, Hartmut.</subfield>
    <subfield code="e">author.</subfield>
    <subfield code="4">aut</subfield>
    <subfield code="4">http://id.loc.gov/vocabulary/relators/aut</subfield>
    <subfield code="9">79837</subfield>
  </datafield>
  <datafield tag="710" ind1="2" ind2=" ">
    <subfield code="a">SpringerLink (Online service)</subfield>
  </datafield>
  <datafield tag="773" ind1="0" ind2=" ">
    <subfield code="t">Springer Nature eBook</subfield>
  </datafield>
  <datafield tag="776" ind1="0" ind2="8">
    <subfield code="i">Printed edition:</subfield>
    <subfield code="z">9783031543685</subfield>
  </datafield>
  <datafield tag="776" ind1="0" ind2="8">
    <subfield code="i">Printed edition:</subfield>
    <subfield code="z">9783031543708</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2="0">
    <subfield code="u">https://doi.org/10.1007/978-3-031-54369-2</subfield>
  </datafield>
  <datafield tag="912" ind1=" " ind2=" ">
    <subfield code="a">ZDB-2-SCS</subfield>
  </datafield>
  <datafield tag="912" ind1=" " ind2=" ">
    <subfield code="a">ZDB-2-SXCS</subfield>
  </datafield>
  <datafield tag="999" ind1=" " ind2=" ">
    <subfield code="c">61248</subfield>
    <subfield code="d">61248</subfield>
  </datafield>
</record>
