For the four loop nests shown below, give definitions of the "iteration space sets" and the flow of information within that iteration space, both as diagrams (like the circles and arrows I drew in class last Thursday and today) and as sets defined by constraints on variables (as I did at the end of class today). If you can, discuss what this means about the number of processors that could collaborate productively to solve the problem without having to communicate information between processors during the calculation (these loop nests will have simpler patterns than the one I worked with, so don't worry if your example isn't as complicated as mine was). Loop nest #1 for i = 10 to 19 A[i] = A[i] * A[i-5] Loop nest #2 for i = 2*N to 3*N-1 A[i] = A[i] * A[i-N] Loop nest #3 for i = 1 to N row_sum[i] = 0 for j = 1 to M row_sum[i] = row_sum[i] + matrix[i][j] Loop nest #4 for i = 1 to N for j = 1 to M A[i][j] = B[i][j] * C[i][j]