The fourth of our eight great ideas is Performance via Parallelism, and for many years we have exploited Instruction Level Parallelism (ILP) in implementing the fifth great idea, Performance via Pipelining. Much effort was placed on identifying, exposing, and exploiting ILP, including techniques for finding ILP that might not have been directly visible by cursory examination of the code. This effort was so effective that pipelines remain pretty much universal in modern general purpose computers.
While we recognize the importance of modern pipelines, some people believe that we have reached the limit in exploitation of ILP, and we have turned to other types of parallelism to further enhance performance. These other types of parallelism are the focus of this paper.
For your second paper, you are to identify and describe two additional types of parallelism used to increase performance. You must convey both what constitutes each type of parallelism, and how each works to enhance performance. Since many people seemed to want more concrete guidelines, I will provide some:
By 'additional' I mean types of parallelism other than ILP. There are several. Extensive discussion of ILP is unnecessary, don't waste the space in your paper on that. Still, some discussion of ILP may be useful in comparing and contrasting with the other types of parallelism.
I do not want surface-level descriptions of ten different types of parallelism. Choose two and limit your discussion to those two, providing depth rather than breadth. Again, ILP may be used as a basis for comparison, but you must choose two other types for discussion.
Try to limit your paper to four pages. There is no penalty if you need to write more. There will be a penalty if your discussion is so brief that it lacks substance.
There is a four reference minimum, and the references MUST be cited in the body of your paper.