Homework for HPF, due in class March 6. A simple model for the total computation time of a parallel program is : Ttotal = Tpar /Pactive + Tserial + Tcomm Where : Ttotal is the total execution time. Tpar is the total work that can be executed in parallel. Pactive is the number of (physical) processors that are active, executing the work in Tpar Tserial is the total work that is done serially. Tcomm is the cost of communications. Note that communication latency and issues of communication topology to support the needed (simultaneous) communications is ignored in this model. REAL, ARRAY(4,4) :: A, B, C !HPF$ PROCESSORS, DIMENSION(4) :: PROC !HPF$ DISTRIBUTE A (BLOCK, BLOCK) !HPF$ DISTRIBUTE B (BLOCK, BLOCK) !HPF$ DISTRIBUTE C (BLOCK, BLOCK) FORALL (I = 1:4) FORALL (J = 1:4) C(I,J) = 0 FORALL (K = 1:4) C(I,J) = C(I,J) + A(I,K) * B(K,J) END FORALL END FORALL The above example is for matrix multiplication of two (4X4) arrays. Question: a) What is Tpar/Pactive in terms of "element-computations"? Assume that each assignment, addition, and multiplication is an element-computation. b) What is Tcomm in terms of "element-exchanges"? Use the maximum of the number of exchanges of any processor. To count the exchange, count the data needed to be received at each processor and ignore the send side of it. Hint: Two similar examples are done in the HPF lecture.