
Parallel computing and programming are two of the most fundamental yet most difficult challenges in software design and execution. Sarcar’s book on parallel programming does a great job of presenting the material, starting with the basics and then going into complicated routines for users to start thinking about their problems in a parallel manner. Simple algorithms, manipulating threads, and adding delays are crucial as one starts to think about concurrent processing.
The book contains detailed examples of various situations related to threads and where these would be applicable in real life, including examples of multiple machines trying to talk to each other or machines trying to produce outputs at the same time.
The book’s examples and output show how code works with worked-out outputs, which will be relevant to any student trying to understand how this works in reality. With demonstrations and questions to work through, the book proves to be a great guide for computer science students who are learning how to design classes, both object oriented and parallel.
Some interesting cases discuss how to handle exceptions in a loop, or parallel loops, or dealing with different cancellations of threats, which will be useful for designing parallel systems.
Overall, the book is an enjoyable read and easy to follow, and at the same time detailed enough to give students an idea of the challenges and solutions in concurrent systems. It uses C# and .NET as object-oriented language examples to showcase the algorithms, but it will also be useful to anyone designing message passing interface (MPI)-kind software where they are figuring out how to parallelize a large piece of software.