Parallel programming has some advantages that make it attractive as a solution approach for certain types of computing problems that are best suited to the use of multiprocessors. Conversely, parallel programming also has some disadvantages that must be considered before embarking on this challenging activity.
The following are key advantages of parallel programming that motivate its use for developing computing solutions:
The main reason for parallel programming is to execute code efficiently, since parallel programming saves time, allowing the execution of applications in a shorter wall-clock time. As a consequence of executing code efficiently, parallel programming often scales with the problem size, and thus can solve larger problems. In general, parallel programming is a means of providing concurrency, particularly performing simultaneously multiple actions at the same time.
Parallel programming goes beyond the limits imposed by sequential computing, which is often constrained by physical and practical factors that limit the ability to construct faster sequential computers. For example, the speed of a sequential computer depends on how fast data moves through its hardware. Transmission through a physical medium is restricted by the respective bandwidth of such a medium (for example, the speed of light or the transmission limit of copper wire). Although advances in semiconductor technology allow ...