Loop Level
At this level, repeated loop iterations are the applicants for parallel execution. However, data dependencies among subsequent iterations may limit parallel execution of instructions at loop level. There is a lot of scale for parallel execution at loop level.
Ex: In the following loop in C language, for (i=0; i <= n; i++)
A(i) = B(i)+ C(i)
Each of the instruction A(i) =B(i)+C(i) can be implemented by different processing elements supplied there are at least n processing elements. But, the instructions in the loop:
for ( J=0, J<= n, J++) A(J) = A(J-1) + B(J)
Cannot be implemented parallel as A(J) is data dependent on A(J-1). This means that previous to exploiting the loop level parallelism the data dependencies have to be checked: