Tag Archives: Parallelization

Patterns for Parallel Programming

A typical approach to multithreaded programming is to use “worker threads”, threads dedicated to a singular purpose or responsibility. At times worker threads can be useful, but they are a fairly primitive approach to multithreading. Today, it is common to find processors with 4 cores. In the [near] future, 100 core processors might be a common thing. Needless to say, it is important that applications we write be scalable.

One of the books I’m currently reading is called Patterns for Parallel Programming. If you are looking for a great way to design scalable applications, you should read this book. It discusses things like Task Decomposition (decomposing an operation into a series of separate tasks that can be parallelized) and Data Decomposition (separating data into “chunks” that can be processed individually in a parallel way). I could go over everything, but there is just far too much information! If you want to be prepared for the future (like me), then read this.