It is becoming more feasible to scale up computational capacity by adding processors than by increasing single processor speed. It is likely that all future applications involving massive amounts of computation will make significant use of parallelism.
Data parallelism involves performing a similar computation on many data objects simultaneously.
For the purposes here data parallelism will mean concurrent operations on array elements. Process parallelism involves performing different processes in parallel, where a process is an arbitrary sequence of computations. A subroutine, for example, is a process, as is any block of statements. An increasingly important form of process parallelism is evaluating two expressions simultaneously-two actual arguments, for example, in a procedure call. This type of parallelism will be discussed in the next release of this chapter.