Fortran Processor C Processor PARAFRASE2 Parallel Fortran Program
- Slides: 44
コンパイラの役割 Fortran Processor C Processor PARAFRASE-2 Parallel Fortran Program Database Parallel C Scheduler 逐次プログラムを並列プログラムにリストラクチャリング
ループの並列実行 Do I=1, N Statement(I) Enddo Statement(1) Statement(2) Statement(N) Doall I=1, N Statement(I) Enddoall Statement(1) Statement(2) Statement(N)
I 5 4 3 loop skewing 2 並列実効可 1 0 1 2 3 4 5 J 5 I 4 3 2 1 0 1 2 3 4 5 6 7 8 J
ループ・スキューイング適用後 Do I=1, M Do J=I, N+I A(I, J-I+1) = (A(I, J-I+1)+A(I+1, J-I+1)+A(I, J-I+2))/3 Enddo I 6 5 4 3 2 1 0 1 2 3 4 5 6 7 J
λ= 2 の場合 DO I = 3 , N A(I)=B(I-2)-1 B(I)=A(I-3)*K ENDDO (a) 逐次ループ DO J = 3 , N , 2 DOALL I = J , J + 1 A(I)=B(I-2)-1 B(I)=A(I-3)*K ENDDOALL ENDDO (b) 変換後のループ I=3: A(3)=B(1)– 1 B(3)=A(0)*K I=4: A(4)=B(2)– 1 B(4)=A(1)*K I=5: A(5)=B(3)– 1 B(5)=A(2)*K I=6: A(6)=B(4)– 1 B(6)=A(3)*K I=7: A(7)=B(5)– 1 B(7)=A(4)*K (c) b のアンロール版
依存巡回の距離が違う場合 DO I = 1 , N X(I)=Y(I)+Z(I) Y(I+3)=X(I-4)*W(I) φ1 = 4, φ2 = 3 ENDDO Reduction Factor λ= min (3, 4) = 3 (a) DO J = 1 , N , 3 DOALL I = J , J + 2 X(I)=Y(I)+Z(I) Y(I+3)=X(I-4)*W(I) ENDDOALL ENDDO (b) 縮小
単純巡回縮小 DO I 1= 3 , N 1, 2 DO J 1= 5 , N 2, 4 DOALL I = I 1, I 1 + 1 DOALL J = J 1, J 1 + 3 A ( I , J ) = B ( I – 3, J - 5 ) B ( I , J ) = A ( I – 2, J – 4 ) ENDDOALL ENDDO (b) 並列度=2*4
J 12 11 10 I のループに対する依存距離 9 A: 2 8 B: 3 7 A 6 5 2 B 4 3 2 1 0 1 2 3 4 5 6 7 I
J 14 13 12 11 10 9 8 7 A 6 5 B 4 3 0 1 2 3 4 5 6 7 8 I
TD 巡回縮小 DO K = 1 , NM , λ T 1 = ( K DIV M ) + 1 T 2 = ( ( K + λ) DIV M ) + 1 T 3 = ( K MOD M ) + 5 T 4 = ( ( K + λ) MOD M ) – 1 + 5 DOALL I = T 1, T 2 IF I <> T 1 THEN L 1 = 5 ELSE L 1 = T 3 IF I <> T 2 THEN L 2 = N 2 ELSE L 2 = T 4 DOALL J = L 1, L 2 A ( I , J ) = B ( I – 3, J - 5 ) B ( I , J ) = A ( I – 2, J – 4 ) ENDDOALL ENDDO (c)
- A benchmark program is run on a 40 mhz processor
- Definition of parallel forces
- What are the two focal points of a fingerprint?
- Parallelism
- Non parallel sentence
- Parallel structure def
- Bidirectional shift register with parallel load
- Parallel sturcture
- Fortran c interoperability
- Input/output statement in fortran
- Fortran code example
- Fortran 77 tutorial
- Fortran programlama dili
- Znak mnozenja
- Fortran 1957
- Arreglos fortran
- Fortran lt
- Fortran language
- Mpi hello world
- Fortran programming examples
- Fortran translator
- Compaq visual fortran
- Comentarios en fortran
- Sejarah fortran
- Fortran goto
- Is fortran case sensitive
- The fortran optimizing compiler
- Basic pascal fortran
- Coarray fortran tutorial
- Fortran keras bridge
- Fortran data types
- What is fortran
- Gnuplot 微分
- Fortran card
- Fortran
- Fortran
- Fortran programozás
- Linguaggio fortran
- Fortran car
- Fortran specialist
- Ibm formula
- The identifier 1stnum is a valid identifier.
- Fortran
- Coarray fortran tutorial
- What is the correct steps in creating a parallel program