Best Parallel Computer Programming Books

Parallel Computer Programming Books search results to buy online.

1. C++ Concurrency in Action

Author: by Anthony Williams
Manning Publications
592 pages

View on Amazon

SummaryThis bestseller has been updated and revised to cover all the latest changes to C++ 14 and 17! C++ Concurrency in Action, Second Edition teaches you everything you need to write robust and elegant multithreaded applications in C++17. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

About the TechnologyYou choose C++ when your applications need to run fast. Well-designed concurrency makes them go even faster. C++ 17 delivers strong support for the multithreaded, multiprocessor programming required for fast graphic processing, machine learning, and other performance-sensitive tasks. This exceptional book unpacks the features, patterns, and best practices of production-grade C++ concurrency.

About the BookC++ Concurrency in Action, Second Edition is the definitive guide to writing elegant multithreaded applications in C++. Updated for C++ 17, it carefully addresses every aspect of concurrent development, from starting new threads to designing fully functional multithreaded algorithms and data structures.

2. C++ High Performance: Master the art of optimizing the functioning of your C++ code, 2nd Edition

Author: by Björn Andrist
Packt Publishing
540 pages

View on Amazon

A comprehensive guide to help aspiring and professional C++ developers elevate the performance of their apps by allowing them to run faster and consume fewer resourcesKey FeaturesUpdated to C++20 with completely revised code and more content on error handling, benchmarking, memory allocators, and concurrent programmingExplore the latest C++20 features including concepts, ranges, and coroutinesUtilize C++ constructs and techniques to carry out effective data structure optimization and memory managementBook DescriptionC++ High Performance, Second Edition guides you through optimizing the performance of your C++ apps.

This allows them to run faster and consume fewer resources on the device they’re running on without compromising the readability of your codebase. The book begins by introducing the C++ language and some of its modern concepts in brief. Once you are familiar with the fundamentals, you will be ready to measure, identify, and eradicate bottlenecks in your C++ codebase.

3. Hadoop: The Definitive Guide: Storage and Analysis at Internet Scale

Author: by Tom White
O'Reilly Media
756 pages

View on Amazon

Get ready to unlock the power of your data. With the fourth edition of this comprehensive guide, you’ll learn how to build and maintain reliable, scalable, distributed systems with Apache Hadoop. This book is ideal for programmers looking to analyze datasets of any size, and for administrators who want to set up and run Hadoop clusters.

Using Hadoop 2 exclusively, author Tom White presents new chapters on YARN and several Hadoop-related projects such as Parquet, Flume, Crunch, and Spark. You’ll learn about recent changes to Hadoop, and explore new case studies on Hadoop’s role in healthcare systems and genomics data processing.

Learn fundamental components such as MapReduce, HDFS, and YARNExplore MapReduce in depth, including steps for developing applications with itSet up and maintain a Hadoop cluster running HDFS and MapReduce on YARNLearn two data formats: Avro for data serialization and Parquet for nested dataUse data ingestion tools such as Flume (for streaming data) and Sqoop (for bulk data transfer)Understand how high-level data processing tools like Pig, Hive, Crunch, and Spark work with HadoopLearn the HBase distributed database and the ZooKeeper distributed configuration service

4. Concurrency in C# Cookbook: Asynchronous, Parallel, and Multithreaded Programming

Author: by Stephen Cleary
O'Reilly Media
254 pages

View on Amazon

If you’re one of many developers still uncertain about concurrent and multithreaded development, this practical cookbook will change your mind. With more than 85 code-rich recipes in this updated second edition, author Stephen Cleary demonstrates parallel processing and asynchronous programming techniques using libraries and language features in .NET and C# 8.0.

Concurrency is now more common in responsive and scalable application development, but it’s still extremely difficult to code. The detailed solutions in this cookbook show you how modern tools raise the level of abstraction, making concurrency much easier than before.

Complete with ready-to-use code and discussions about how and why solutions work, these recipes help you:Get up to speed on concurrency and async and parallel programmingUse async and await for asynchronous operationsEnhance your code with asynchronous streamsExplore parallel programming with .

NET’s Task Parallel LibraryCreate dataflow pipelines with . NET’s TPL Dataflow libraryUnderstand the capabilities that System. Reactive builds on top of LINQUtilize threadsafe and immutable collectionsLearn how to conduct unit testing with concurrent codeMake the thread pool work for youEnable clean, cooperative cancellationExamine scenarios for combining concurrent approachesDive into asynchronous-friendly object-oriented programmingRecognize and write adapters for code using older asynchronous styles

5. Distributed Tracing in Practice: Instrumenting, Analyzing, and Debugging Microservices

Author: by Austin Parker
O'Reilly Media
330 pages

View on Amazon

Since most applications today are distributed in some fashion, monitoring their health and performance requires a new approach. Enter distributed tracing, a method of profiling and monitoring distributed applicationsparticularly those that use microservice architectures. There’s just one problem: distributed tracing can be hard.

But it doesn’t have to be. With this guide, you’ll learn what distributed tracing is and how to use it to understand the performance and operation of your software. Key players at LightStep and other organizations walk you through instrumenting your code for tracing, collecting the data that your instrumentation produces, and turning it into useful operational insights.

If you want to implement distributed tracing, this book tells you what you need to know. You’ll learn:The pieces of a distributed tracing deployment: instrumentation, data collection, and analysisBest practices for instrumentation: methods for generating trace data from your servicesHow to deal with (or avoid) overhead using sampling and other techniquesHow to use distributed tracing to improve baseline performance and to mitigate regressions quicklyWhere distributed tracing is headed in the future

6. CUDA by Example: An Introduction to General-Purpose GPU Programming

Author: by Jason Sanders
320 pages

View on Amazon

This book is required reading for anyone working with accelerator-based computing systems. From the Foreword by Jack Dongarra, University of Tennessee and Oak Ridge National Laboratory CUDA is a computing architecture designed to facilitate the development of parallel programs. In conjunction with a comprehensive software platform, the CUDA Architecture enables programmers to draw on the immense power of graphics processing units (GPUs) when building high-performance applications.

GPUs, of course, have long been available for demanding graphics and game applications. CUDA now brings this valuable resource to programmers working on applications in other domains, including science, engineering, and finance. No knowledge of graphics programming is requiredjust the ability to program in a modestly extended version of C.

CUDA by Example, written by two senior members of the CUDA software platform team, shows programmers how to employ this new technology. The authors introduce each area of CUDA development through working examples. After a concise introduction to the CUDA platform and architecture, as well as a quick-start guide to CUDA C, the book details the techniques and trade-offs associated with each key CUDA feature.

7. Programming Massively Parallel Processors: A Hands-on Approach

Author: by David B. Kirk
Morgan Kaufmann
576 pages

View on Amazon

Programming Massively Parallel Processors: A Hands-on Approach, Third Edition shows both student and professional alike the basic concepts of parallel programming and GPU architecture, exploring, in detail, various techniques for constructing parallel programs. Case studies demonstrate the development process, detailing computational thinking and ending with effective and efficient parallel programs.

Topics of performance, floating-point format, parallel patterns, and dynamic parallelism are covered in-depth. For this new edition, the authors have updated their coverage of CUDA, including coverage of newer libraries, such as CuDNN, moved content that has become less important to appendices, added two new chapters on parallel patterns, and updated case studies to reflect current industry practices.

8. Programming Phoenix 1.4: Productive |> Reliable |> Fast

Author: by Chris McCord
Pragmatic Bookshelf
325 pages

View on Amazon

Don’t accept the compromise between fast and beautiful: you can have it all. Phoenix creator Chris McCord, Elixir creator Jose Valim, and award-winning author Bruce Tate walk you through building an application that’s fast and reliable. At every step, you’ll learn from the Phoenix creators not just what to do, but why.

Packed with insider insights and completely updated for Phoenix 1. 3, this definitive guide will be your constant companion in your journey from Phoenix novice to expert, as you build the next generation of web applications. Phoenix is the long-awaited web framework based on Elixir, the highly concurrent language that combines a beautiful syntax with rich metaprogramming.

The best way to learn Phoenix is to code, and you’ll get to attack some interesting problems. Start working with controllers, views, and templates within the first few pages. Build an in-memory context, and then back it with an Ecto database layer, complete with changesets and constraints that keep readers informed and your database integrity intact.

9. Programming Rust: Fast, Safe Systems Development

Author: by Jim Blandy
O'Reilly Media
736 pages

View on Amazon

Systems programming provides the foundation for the world’s computation. Developing performance-sensitive code requires a programming language that puts programmers in control of how memory, processor time, and other system resources are used. The Rust systems programming language combines that control with a modern type system that catches broad classes of common mistakes, from memory management errors to interthread data races.

With this practical guide, experienced systems programmers will learn how to successfully bridge the gap between performance and safety using Rust. Jim Blandy, Jason Orendorff, and Leonora Tindall demonstrate how Rust’s features put programmers in control over memory consumption and processor use by combining predictable performance with memory safety and trustworthy concurrency.

You’ll learn:Rust’s fundamental data types and the core concepts of ownership and borrowingLanguage basics including error handling, crates and modules, structs, and enumsHow to write flexible, efficient code with traits and genericsRust’s key power tools: closures, iterators, and asynchronous programmingCollections, strings and text, input and output, concurrency, macros, unsafe code, and interfacing with foreign functionsThis updated edition covers Rust 1.50 (February 2021).

10. Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers

Author: by Leslie Lamport
384 pages

View on Amazon

This book is the distillation of over 25 years of work by one of the world’s most renowned computer scientists. A specification is a written description of what a system is supposed to do, plus a way of checking to make sure that it works.

Specifying a system helps us understand it. It’s a good idea to understand a system before building it, so it’s a good idea to write a specification of a system before implementing it. The most effective tool to describe a specification is the Temporal Logic of Actions, or TLA, because it provides a mathematical, i.E.

Precise, foundation for describing systems. TLA+ is the language the author developed to write the mathematical specifications. TLA+ is available freely on the web. It can be used for both software and hardware. In fact, Intel is using TLA+ with great success in the design of a new chip.

The book is divided into four parts. The first part contains all that most programmers and engineers need to know about writing specifications. The second part contains more advanced material for more sophisticated readers. The third and fourth parts comprise a reference manual for TLA+ – both the language itself as well as its tools.

11. Modern C

Author: by Jens Gustedt
Manning Publications
408 pages

View on Amazon

If you think “Modern” and “C” don’t belong in the same sentence, think again. The C standards committee actively reviews and extends the language, with updated published C standards as recently as 2018. In Modern C, author Jens Gustedt teaches you the skills and features you need to write relevant programs in this tried-and-true language, including Linux and Windows, device drivers, web servers and browsers, smartphones, and much more!

Modern C teaches you to take your C programming skills to new heights, whether you’re just starting out with C or have more extensive experience. Organized by level, this comprehensive guide lets you jump in where it suits you best while still reaping the maximum benefits.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

12. Aprende inglés sin ir a clases (Volumen) (Spanish Edition)

Author: by John Galeano
143 pages

View on Amazon

DESCUBRE UNO DE LOS LIBROS DEL APRENDIZAJE DEL INGLS MS VENDIDOS Descubre uno de los libros ms vendidos en UK, EEUU, ESPAA Y LATINOAMRICA con miles de copias vendidas en tan solo un mes de su lanzamiento en octubre de 2019 .

Aprende Ingls sin ir a clases volumen 1 es un libro de Ingls que te ayudar a aprender el idioma en tiempo rcordResultados 100% garantizados a medida que vas estudiando el libroCon este completo libro aprenders:Vocabulario que ser de mucha utilidad o de base cuando tengas que viajar o ests en el extranjeroUn mtodo totalmente autntico para desenvolverte ante cualquier situacinUn cambio en tu vida y en tu situacin laboral o personal porque aprenders el idioma de una manera totalmente autodidactaPrincipales caractersticas del libro que incluyen:Vocabulario en situaciones de emergenciaLas frases ms usadas del da a da en InglsLos verbos, tiempos verbales y msMiles de lectores ya empezaron a estudiar con este libro y estn obteniendo grandes resultadosNueva edicin Julio 2020Los lectores de todo el mundo han dicho…”AMAZING!!!

13. Professional CUDA C Programming

Author: by John Cheng
528 pages

View on Amazon

Break into the powerful world of parallel GPU programming with this down-to-earth, practical guide Designed for professionals across multiple industrial sectors, Professional CUDA C Programming presents CUDA – a parallel computing platform and programming model designed to ease the development of GPU programming – fundamentals in an easy-to-follow format, and teaches readers how to think in parallel and implement parallel algorithms on GPUs.

Each chapter covers a specific topic, and includes workable examples that demonstrate the development process, allowing readers to explore both the “hard” and “soft” aspects of GPU programming. Computing architectures are experiencing a fundamental shift toward scalable parallel computing motivated by application requirements in industry and science.

This book demonstrates the challenges of efficiently utilizing compute resources at peak performance, presents modern techniques for tackling these challenges, while increasing accessibility for professionals who are not necessarily parallel programming experts. The CUDA programming model and tools empower developers to write high-performance applications on a scalable, parallel computing platform: the GPU.

14. Using Asyncio in Python: Understanding Python's Asynchronous Programming Features

Author: by Caleb Hattingh

O'Reilly Media
January 30, 2020

View on Amazon

If you’re among the Python developers put off by asyncio’s complexity, it’s time to take another look. Asyncio is complicated because it aims to solve problems in concurrent network programming for both framework and end-user developers. The features you need to consider are a small subset of the whole asyncio API, but picking out the right features is the tricky part.

That’s where this practical book comes in. Veteran Python developer Caleb Hattingh helps you gain a basic understanding of asyncio’s building blocksenough to get started writing simple event-based programs. You’ll learn why asyncio offers a safer alternative to preemptive multitasking (threading) and how this API provides a simpleway to support thousands of simultaneous socket connections.

Get a critical comparison of asyncio and threading for concurrent network programmingTake an asyncio walk-through, including a quickstart guidefor hitting the ground looping with event-based programmingLearn the difference between asyncio features for end-user developers and those for framework developersUnderstand asyncio’s new async/await language syntax, including coroutines and task and future APIsGet detailed case studies (with code) of some popular asyncio-compatible third-party libraries

15. Hands-On GPU Programming with Python and CUDA: Explore high-performance parallel computing with CUDA

Author: by Dr. Brian Tuomanen
310 pages

View on Amazon

Build GPU-accelerated high performing applications with Python 2. 7, CUDA 9, and open source libraries such as PyCUDA and scikit-cuda. We recommend the use of Python 2. 7 as this version has stable support across all libraries used in this book. Key FeaturesGet to grips with GPU programming tools such as PyCUDA, scikit-cuda, and NsightExplore CUDA libraries such as cuBLAS, cuFFT, and cuSolverApply GPU programming to modern data science applicationsBook DescriptionGPU programming is the technique of offloading intensive tasks running on the CPU for faster computing.

Hands-On GPU Programming with Python and CUDA will help you discover ways to develop high performing Python apps combining the power of Python and CUDA. This book will help you hit the ground running-you’ll start by learning how to apply Amdahl’s law, use a code profiler to identify bottlenecks in your Python code, and set up a GPU programming environment.

You’ll then see how to query a GPU’s features and copy arrays of data to and from its memory. As you make your way through the book, you’ll run your code directly on the GPU and write full blown GPU kernels and device functions in CUDA C.