Devoted to parallel programming in Python, this book is aimed at Python programmers who wish to become more proficient at writing efficient parallel code to realize performance gains. All of the example code in the book is available and allows readers to experiment.
This book is not an introduction to Python, and the author assumes that the reader is familiar with other aspects of the language. It opens with a brief introduction to memory organization, parallel programming models in general, and a short introduction to threads and processes in Python in order to provide context for the remainder of the book. The book is intended to be a handy desk reference for programmers and is structured according to the styles of concurrency that they might encounter. The next five chapters of the book cover thread-based parallelism, process-based parallelism, asynchronous programming, distributed Python, and graphics processing unit (GPU) programming with Python. Python 3.3 is used for the first five chapters of the book, and Python 2.67 is used for the final chapter only (GPU programming). Each chapter follows a similar formula: introduce a program; get ready by downloading tools as needed; explain how to do it, including a short discussion and sample code; and finally discuss how it works. The goal is to present the reader with a collection of common scenarios and to provide a solution to the program in a recipe-style approach.
The book is helpful for those wishing to learn more about parallel programming in general, and Python in particular. It tends to introduce concepts as needed and is organized by problem rather than by concept. This makes the book less helpful as a reference book when the reader is interested in a specific concept. The author provides a rich collection of examples, but the grammar is a little awkward in places, which can make reading more challenging.
More reviews about this item: Amazon, Goodreads