In order to properly consider alternatives to parallel programming,
you must first have thought through what you expect the parallelism
to do for you.
As seen in Section ,
the primary goals of parallel programming are performance, productivity,
and generality.
Although historically most parallel developers might be most concerned with the first goal, one advantage of the other goals is that they relieve you of the need to justify using parallelism. The remainder of this section is concerned only performance improvement.
It is important to keep in mind that parallelism is but one way to improve performance. Other well-known approaches include the following, in roughly increasing order of difficulty: