question archive Given the following code:for (i=2;i<100;i=i+1) a[i] = b[i] + a[i]; /* S1 */ c[i-1] = a[i] + d[i]; /* S2 */ a[i-1] = 2 * b[i]; /* S3 */ b[i+1] = 2 * b[i]; /* S4 */ a
Subject:Computer SciencePrice: Bought3
Given the following code:for (i=2;i<100;i=i+1) a[i] = b[i] + a[i]; /* S1 */
c[i-1] = a[i] + d[i]; /* S2 */
a[i-1] = 2 * b[i]; /* S3 */
b[i+1] = 2 * b[i]; /* S4 */
a. List all the dependencies by their types (TD: true-data, AD: anti-data, OD: output-data dependencies).
b. Show how Software Pipelining can exploit parallelism in this code to its fullest potential. How many functional units would be sufficient to achieve the fastest execution time?
c. Is this a parallel loop? If not, can it be parallelized? How?