This is a self-test that you can use to see if you understand the concepts presented in this web site. Simply drop the menu, and select the right answer, and press the submit button to get your score.
1) What is the RED flag that tells you for sure that a particular loop cannont be unrolled?



2)Which of the following dependancies do you have to remove to make a loop parallel?



3)Is the following loop parrallel?
for (i=0;i<=100;i++)
{
     A[i] = B[i] + C[i];
     B[i+1] = C[i];
}



4)Calculate the speedup for the last FP loop, where the CPI decreased.



5)What about the following loop, is It parrallel?
for (i=0;i<=100;i++)
{
     A[i] = B[i] + C[i];
     B[i+1] = A[i];
}



6)Calculate the speedup for the first integer loops. Note: we have changed the # instructions, be careful!



7)Calculate the speedup for the second integer loops. Note: we have changed the # instructions, be careful!



8)Suppose a loop contains a 100 instruction startup code, and a 30 instruction loop. The loop iterates 1000 times, CPIstartup=1, CPIloop=1.8. What will the NEW CPIloop be if there was a speedup of 2 after rescheduling? (We reschedule the loop, the loop speeds up)



9)Suppose a loop contains a 100 instruction startup code, and a 30 instruction loop. The loop iterates 1000 times, CPIstartup=1, CPIloop=2.5. What will the NEW CPIloop be if there was a speedup of 2 after rescheduling? (We reschedule the loop, the loop speeds up)