
Nitin P. answered 07/01/20
Computer Science major at UC Berkeley
Parallel programming is the act of executing multiple instructions at the same time. For example, if we want to apply a function to each element of an array, we can do so to all elements at the same time rather than each element sequentially. Pipelining is when we overlap the execution of multiple instructions. When an instruction passes through a part of our datapath and that component is no longer in use, we load the next instruction into the datapath while the current instruction is passing through the latter parts of the datapath.