loop level parallelism
The simplest and the common way to increase the amount of parallelism available among instructions is to exploit parallelism among iterations of a loop. This type of parallelism is often called loop-level parallelism. Here is a simple example of a loop, which adds two 1000-element arrays that is completely parallel.
for (i=1;i<= 1000; i=i+1)
x[i] = x[i] + y[i]
Every iteration of the loop can overlap with any other iteration although within each loop iteration there is little or no oppurtunity for overlap. Reference : Instruction-Level Parallelism: Concepts and Challenges. Computer Architecture: A Quantitative Approach, Third Edition