Parallel Processing Example
Understanding a parallel processing example is quite important in order to understand the key concepts in parallelization and domain decomposition. This is in turn important since big data problems are typically solved using technologies that take advantage of parallel processing. We provide below two quite known examples that are easy to understand. We start with the basic ideas of why parallelization makes sense. Afterwards some problems and challenges of parallelization are described in context. The two problems that require parallel processing are the so-called ‘elevator problem’ and the ‘pizza problem’.
Elevator Example
Consider the elevator in a business building with 20 floors. One parallel processing would be the activity of the elevator moving from floor to floor. The Elevator is one parallel thread that reacts to requests from persons inside the building that would like to use the elevator. The persons themselves are all parallel threads since they are on different floors and all want to go to different floors to do their business. So the parallelization of this problem needs the parallel processing of the elevator and the n number of persons in the building that require to use it.
The challenges here are to synchronize the stop on each floor with the people that go into the elevator or leave it. Another challenge is that the elevator may not just only react to the person requests but hhis own policy of when to move from floor to floor in order to remain efficient.
Pizza Example
Consider a pizza with slices of salami on it. Depending on the n number of persons on a particular party the pizza has n slices. The reason for the party is a birthday of one of the persons. After eating the Pizza all persons want to go out into a club. But only if all people that eat in parallel their slice have finished the slices they want to go together to the party. This is a parallel processing example that includes similiar challenges as above but also nicely describes another one as follows.
The challenges here are to prevent load imbalance that might occur for the one person that has birthday. The birthday Person Needs to open doors, answer phone calls, unpack gifts, and do many other things in his apartment. While other persons just eat their pizza slice very efficient the load on the birthday person is imbalanced. This person can not in parallel eat his pizza slice as efficient as other persons. As a consequence of this load imbalance all persons need to wait until the person that has birthday finished as well.
Another Parallel Processing Example
We refer to the following video for better understanding of this topic: