Assignment 1

do i = 2, n
do j = 1, n-1
a[i,j] = a[i,j] + a[i-1,j+1]
end do
end do
do i = 1, n
do j = 2, n-1
a[j] = (a[j] + a[j-1] + a[j+1])/3
end do
end do

2. Write down the basic vectorization algorithm and the basic condition for a loop to be parallelizable (Hint: use direction vectors). Apply the basic vectorization for the following two loop nests. In addition, for each loop check whether it is parallelizable, that is, whether its iterations can be executed in parallel.

do i = 1, n
do j = 2, n
a[i,j] = a[i,j-1] + c
end do
end do
do i = 1, n
do j = 1, n
a[i,j] = a[i-1,j] + a[i-1,j+1]
end do
end do

3. Define may and must problems, flow-sensitive and flow-insensitive problems in interprocedural analysis. Define and classify the problems of MOD, USE and KILL.
4. Build the control dependence graph for the following control flow graph.