In Detail

Starting with the basics of parallel programming, you will proceed to learn about how to build parallel algorithms and their implementation. You will then gain the expertise to evaluate problem domains, identify if a particular problem can be parallelized, and how to use the Threading and Multiprocessor modules in Python.

The Python Parallel (PP) module, which is another mechanism for parallel programming, is covered in depth to help you optimize the usage of PP. You will also delve into using Celery to perform distributed tasks efficiently and easily. Furthermore, you will learn about asynchronous I/O using the asyncio module. Finally, by the end of this book you will acquire an in-depth understanding about what the Python language has to offer in terms of built-in and external modules for an effective implementation of Parallel Programming.

This is a definitive guide that will teach you everything you need to know to develop and maintain high-performance parallel computing systems using the feature-rich Python.

Approach

A fast, easy-to-follow and clear tutorial to help you develop Parallel computing systems using Python. Along with explaining the fundamentals, the book will also introduce you to slightly advanced concepts and will help you in implementing these techniques in the real world.

Who this book is for

If you are an experienced Python programmer and are willing to utilize the available computing resources by parallelizing applications in a simple way, then this book is for you. You are required to have a basic knowledge of Python development to get the most of this book.

The grammar is really poor and reads like it was never properly reviewed. The content is lacking, few code examples, and very little explanation of the important concepts of parallel programming in Python. If you are trying to learn something new about parallel programming that can not be obtained by the somewhat obtuse docs, this book is not for you.

Parallel Programming is a hot subject and for good reason, we are only getting faster. I've used C++ multi-thread architecture which is quite similar to python. Locking and unlocking threads can get confusing but you always have to keep things organized and you won't get in too much trouble. I don't mind some theory on what I'm getting ready to learn and eventually apply, this is expected for an entry level book. Which I felt others didn't seem to keep in mind, not everything will be covered, this leaves room for more advanced books to be written. Shared state to messaging state were covered just enough for my taste but I could see how others would want a more elaborate explanation. Deadlock, Starvation, and Race Conditions were covered which are the most common issues faced when parallel programming. I remember when just the term alone would cause panic in the room, but now it's nothing more then logically arranging your application to use workers to achieve a desired result, with concurrent operations which impact the overall speed of the application.

This is clearly shown when you get into the concurrent.futures section of the book, which I enjoyed very much. You have complete control over what occurs, until the system out grows your brain is now a full fledged API with a user manual! :) I really enjoyed Chapter 8, all of the re-factoring code to utilize a library was pretty cool to walk over and participate in. I'm still not an expert in Python but this book really gives you a reason to learn parallel programming in order to future-proof yourself and your code base.

Parallel Programming is an increasingly hot topic in today's IT circles. For those who ponder why I can tell in short it is because of the CPU clock speeds stagnation. We, software engineers, are dealing with ever increasing volumes of data and are asked to deliver even faster, more robust applications and websites. This is tough. Parallel Programming is the answer. I hope I whet your appetite for exploring the Parallel Programming so now I can switch the focus to the book.It is not terribly long. Not costly either. In fact if you care I managed to read it whole in 3 hours plus (stats are from my ebook reader app) and managed to run a few examples that worked on my laptop with Windows 7. I am planning on running more examples later on a POSIX machine. Thing with the examples is they are classic ones: the Fibonacci series which is boring to me and far from what anybody would be dealing with at work and web crawling which is better done using say Nutch. The same code examples go through the entire book, just different techniques applied. What I wish Jan had done is explaining at least what technique helps in what case in real life. My other pet peeves are that there was no mention on how to leverage the GPU, how to eliminate the For Loops – this is actually a must in my opinion, and there was no coverage on how to debug parralel processes. Let me stop at debugging a tad longer: since Python allows mutability it becomes critical to exterminate nasty mutation bugs!In terms of closing, I have an advice to the author: it is hard to write a technical book, but I wish it could be longer and covered more ground

Bottom LineNo, I would not recommend this to a friend

Merchant response: Greetings,

Thank you for reviewing Parallel Programming with Python. I am sorry that you feel it didn't cover enough of the topics you feel it should, but I'm glad you found the book to be easy to understand.