Presentation is loading. Please wait.

Presentation is loading. Please wait.

Array Operation Synthesis to Optimize Data Parallel Programs Department of Computer Science, National Tsing-Hua University Student:Gwan-Hwan Hwang Advisor:

Similar presentations


Presentation on theme: "Array Operation Synthesis to Optimize Data Parallel Programs Department of Computer Science, National Tsing-Hua University Student:Gwan-Hwan Hwang Advisor:"— Presentation transcript:

1 Array Operation Synthesis to Optimize Data Parallel Programs Department of Computer Science, National Tsing-Hua University Student:Gwan-Hwan Hwang Advisor: Dr. Jenq Kuen Lee

2 Array Operation Synthesis to Optimize Data Parallel Programs 國立清華大學 資訊工程系 Student: 黃冠寰 Advisor: 李政崑博士

3 Array Operation Synthesis on Distributed-memory Machines 國立清華大學 資訊工程學系 黃冠寰, Phd.

4 Compiler Optimization for Compiler Optimization for Parallel Computations on Parallel Computations on Distributed & Shared Memory Distributed & Shared Memory Machines Machines Communication Code for Block-Cyclic Distribution of HPF(IPPS’98) Array Operation Synthesis for Intrinsic Array Functions (JPDC, ACM PPoPP’95, ICPP’96) Research Interests Key Issues Automatic Alignment for Data Parallel Languages (LCPC’97) Concurrent Testing Concurrent Testing Reachability Testing of Concurrent Program (IJSEKE’95, APSEC’93) Parallel Object Program Model & Parallel Object Program Model & Heterogeneous Computing Heterogeneous Computing Java-Based Network Computing Environment Transparent Parallel Computing Environment (Ongoing)

5 Outline of Presentation Fortran 90 Intrinsic Array Operations Array Operation Synthesis(AOS) SYNTOOL Apply AOS to Shared-Memory Machines Apply AOS to Distributed-Memory Machines Conclusion and Future Work

6 Outline of Presentation Fortran 90 Intrinsic Array Operations Array Operation Synthesis(AOS) SYNTOOL Apply AOS to Shared-Memory Machines Apply AOS to Distributed-Memory Machines Integrate AOS with Automatic Data Alignment Conclusion and Future Work

7 Intrinsic Array Operations Provided by Modern Program Languages.  E.g. Fortran 90, High Performance Fortran(HPF), HPF2, Fortran 97, APL, MATLAB, MATHEMATICA, NESL, C* Engineering and Scientific Applications Facilitate a Compilation Analysis for Optimization Support Parallel Execution and Portability

8 Intrinsic Array Operations(Cont’d) Array Operations Provided by Fortran 90, HPF. Examples: CSHIFT, TRANSPOSE, MERGE, EOSHIFT, RESHAPE SPREAD, Section Move, Where Constructs, Reductions. B=CSHIFT(A,1,1) C=TRANSPOSE(B)

9 Consecutive Array Expressions Array Expression Consecutive Array Operations C=EOSHIFT(MERGE(RESHAPE(S,/N,N/),A+B,T),1,0,1) FXP=CSHIFT(F1,1,+1) FXM=CSHIFT(F1,1,-1) FXP=CSHIFT(F1,2,+1) FYM=CSHIFT(F1,2,-1) FDERIV=ZXP*(FXP-F1)+ZXM*(FXM-F1)+ ZYP*(FYP-F1)+ZYM*(FYM-F1)

10 Classification of Array Operations Model Array Operations by Data Access Functions (DAF) Type 1Type 2Type 3 Type 4

11 Data Access Functions Represent Array Operations by Mathematical Functions Model Array Operations by Data Access Functions (DAF)  Single-Source, Multiple-Source  Single-Clause, multiple-Clause

12 Type 1: Single-source Single- clause Data Access Function One Source Array One Data Access Pattern B=TRANSPOSE(A) Data Access Function is B(I,J)=A(J,I)

13 Single-source Single-clause Data Access Function One Source Array One Data Access Pattern B=TRANSPOSE(A) Data Access Function is B(I,J)=A(J,I)

14 Type 2: Multiple-source Single- clause Data Access Function Multiple Source Arrays One Data Access Pattern R=MERGE(T,F,M) Data Access Function is where Array TArray FArray MArray R

15 Multiple-source Single-clause Data Access Function Multiple Source Arrays One Data Access Pattern R=MERGE(T,F,M) Data Access Function is where Array TArray FArray MArray R

16 Type 3: Single-source Multiple- clause Data Access Function Single Source Array Multiple Data Access Patterns B=CSHIFT(A,1,1) Data Access Function is Array AArray B : a segmentation descriptor

17 Single-source Multiple-clause Data Access Function Single Source Array Multiple Data Access Patterns B=CSHIFT(A,1,1) Data Access Function is Array AArray B : a segmentation descriptor

18 Type 4: Multiple-source Multiple- clause Data Access Function Multiple Source Arrays Multiple Data Access Patterns  No array operation of Fortran 90 belongs to type 4  Synthesis of multiple array operations may derive a type 4 data access function.

19 Multiple-source Multiple-clause Data Access Function Multiple Source Arrays Multiple Data Access Patterns  No array operation of Fortran 90 belongs to this type  Synthesis of multiple array operations may derive a multiple-source multiple-clause data access function

20 Straightforward Compilation Translate each operation into a parallel loop B=CSHIFT((TRANSPOSE(EOSHIFT(A,1,0,1),1,1) FORALL (I=1:N:1; J=1:N:1) T2 (I,J)= T1 (J,I) ENDFORALL FORALL (I=1:N:1; J=1:N:1) IF (1<=I<=N-1) and (1<=J<=N) THEN B(I,J)= T2 (I+1,J) ELSE B(I,J)= T2 (I-N,J) ENDFORALL FORALL (I=1:N:1; J=1:N:1) IF (1<=I<=N-1) and (1<=J<=N) THEN T1 (I,J)=A(I+1,J) ELSE T1 (I,J)=0 ENDFORALL EOSHIFT TRANSPOSE CSHIFT

21 Array Operation Synthesis Construct the Parse Tree of Array Expression Represent Array Operations by Mathematical Functions (DAF) B=CSHIFT((TRANSPOSE(EOSHIFT(A,1,0,1),1,1) CSHIFT TRANSPOSE EOSHIFT

22 Array Operation Synthesis (Cont’d) CSHIFT TRANSPOSE Synthesis of two functions COSHIFT+ TRANSPOSE EOSHIFT

23 Substitution (Term Rewriting like method)  Having two Data Access Patterns:  The Synthesized Data Access Pattern is: Synthesis of two Data Access Functions where

24 For example, By the substitution rule  Synthesis of two DAFs (Cont’d)

25 For example, Synthesis of two DAFs (Cont’d)

26 Code Generation for Synthesized Data Access Function FORALL (I=1:N:1; J=1:N:1) IF  (/I,J/,/1:N-1,1:N/)   (/J,I+1/,/1:N-1,1:N/) THEN B(I,J)=A(J+1, I+1) IF  (/I,J/,/1:N-1,1:N/)   (/J,I+1/,/N:N,1:N/) THEN B(I,J)=0 IF  (/I,J/,/N:N,1:N/)   (/J,I+1/,/1:N-1,1:N/) THEN B(I,J)=A(J+1, I-N+1) IF  (/I,J/,/N:N,1:N/)   (/J,I+1/,/N:N,1:N/) THEN B(I,J)=0 ENDFORALL Code Generation

27 Code Generation for Synthesized Data Access Function After Optimization 1 N-1 N 1 N

28 Simplifying the ranges at compilation time instead of runtime Optimization process:  Normalize:  Intersection for each dimension: Optimization


Download ppt "Array Operation Synthesis to Optimize Data Parallel Programs Department of Computer Science, National Tsing-Hua University Student:Gwan-Hwan Hwang Advisor:"

Similar presentations


Ads by Google