There are two types of parallelism we will consider. Have one program run parts of itself on more than one computer. Pipelining uses instruction level parallelism to increase the number of instructions executed over a given time period. The pipeline concept A task is broken down into steps. Assume that there are N steps, each takes the same amount of time.
Washing dishes Break the task into steps that take approximately equal amounts of time.
Assume each step takes 1 time unit. Pipelining can be done in computer hardware. Unfortunately, pipelining introduces other difficulties. This works as long as nothing changes the program's state before the cancellation. Add lots of extra hardware to try to help.