Problem Statement ----------------- 1. For the code given below, do the following: a. Identify the type of dependence in S1 (RAW, WAR, WAW, loop carried/loop independent, dependence distance) b. compute the vectorization factor c. Speculate if the program can be i. vectorized ii. parallelized 2. Now vectorize and parallelize the code with gcc, and verify your observations. 3. The dependence distance from source to sink is less than the vectorization factor. Due to this, there will be dependence amongst the 'VF' iterations we intend to execute atomically during vectorization. Can you change the vectorization decision of GCC for this code a. by modifying the dependence distance b. without modifying the dependence distance Test case --------- int a[356]; int main () { int i; for (i=0; i<204; i++) { a[i] = a[i-3]; /* S1 */ } return 0; }