In this chapter, we introduced various patterns of parallel programming and provided examples of each. Though not an exhaustive list, these patterns can prove to be a good starting point for parallel application programming developers.
In a nutshell, we discussed the MapReduce pattern, the speculative processing pattern, the lazy pattern, and the aggregation pattern. We also introduced some implementation patterns, such as fork/join and the shared state pattern, both are which are used in .NET Framework libraries for parallel programming.
In the next chapter, we will introduce distributed memory management and focus on understanding the shared memory model as well as the distributed memory model. We will also discuss various types of communication networks and their properties with example implementations.