WILLIAM CARLSON, PHD, is affiliated with the IDA Center for Computing Sciences. His research interests include performance evaluation of advanced computer architectures, operating systems, languages, and computers for parallel and distributed systems.
THOMAS STERLING, PHD, is a professor at Caltech and its Jet Propulsion Laboratory. His research interests include parallel computing architecture, cluster computing, petaflop computing, and systems software and evaluation.
KATHERINE YELICK, PHD, is Professor of Computer Science, University of California, Berkeley. Her research interests include parallel computing, memory hierarchy optimizations, programming languages, and compilers.
Topics include:The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functionsThe relationships among std::move, std::forward, rvalue references, and universal referencesTechniques for writing clear, correct, effective lambda expressionsHow std::atomic differs from volatile, how each should be used, and how they relate to C++'s concurrency APIHow best practices in "old" C++ programming (i.e., C++98) require revision for software development in modern C++
Effective Modern C++ follows the proven guideline-based, example-driven format of Scott Meyers' earlier books, but covers entirely new material.
"After I learned the C++ basics, I then learned how to use C++ in production code from Meyer's series of Effective C++ books. Effective Modern C++ is the most important how-to book for advice on key guidelines, styles, and idioms to use modern C++ effectively and well. Don't own it yet? Buy this one. Now".
-- Herb Sutter, Chair of ISO C++ Standards Committee and C++ Software Architect at Microsoft
Those who maintain and administer commodity clusters will find this textbook provides essential coverage of not only what HPC systems do, but how they are used.Covers enabling technologies, system architectures and operating systems, parallel programming languages and algorithms, scientific visualization, correctness and performance debugging tools and methods, GPU accelerators and big data problemsProvides numerous examples that explore the basics of supercomputing, while also providing practical training in the real use of high-end computersHelps users with informative and practical examples that build knowledge and skills through incremental stepsFeatures sidebars of background and context to present a live history and culture of this unique fieldIncludes online resources, such as recorded lectures from the authors’ HPC courses