defined by Banerjee [2], but has been extended to sets of fully permutable loops [12, 21, 31]. The basic idea of tiling ...... [2] Utpal Banerjee. An introduction to a ...
Laboratoire de l’Informatique du Parall´elisme ´ Ecole Normale Sup´erieure de Lyon Unit´e Mixte de Recherche CNRS-INRIA-ENS LYON no 8512
´ Ecole Normale Sup´erieure de Lyon 46 All´ee d’Italie, 69364 Lyon Cedex 07, France T´el´ephone : +33(0)4.72.72.80.37 T´el´ecopieur : +33(0)4.72.72.80.80 Adresse e´ lectronique :
Æ !"#$%& ' ( & '
) ( & ' ( ! *% ! +% + ,& - ) & . ( & - / ) 01 2 !012% ) / ) &
3 ( 01 2
/ &
4 5 Æ 5 4 6 64 64 4 !"#$%& / 4 4 4 4 5
5 ) 4& 7 4 4 + )4 , 4 & 7 4 5 64 ) / 89 01 2 89&
1 8 4 4
5 4 4 5 89 6 01 2 : 6 4 / 44 6 &
' / ) 01 2 !012% & ' ; &
-
) & ' ( < => 0 1 2 / : ? . @ & ' / < ,> ( ; AB C& ' ? ) & 0 ( & & / ( )
?& / ) 01 2 !012% & ' 012 & / D D 012 ); E:. ( ! & %& F ) / )
6 & ' &
! ' ( (
& 3 ! % ! % & ' & ' ) G
" ) !G" % : # !:#% & . ) & 3 . / : 6 ) & 2 ( ) & ' 0 ; & ) < + H , I> ; ( 0 +& ' ( ) & Æ ; ! G *& %& 3 ; 0 ,& - Æ ; ( ! 0 =%& ' ) G" !( % & : ) (
) &
& ' & 0 ( )
& & ' D & ' 1 & ' 1 *& ' 1 & ' ; G *& ( G *&& # G *&* ? G *&& 0 G *&+ &
( / 1 / ) & ' D G & & Æ ( ? ? & : ) / ) &
& 3 Æ ? 01 2 ) ?&
# ! % ! ! %% ! % ! % 012 J K ! % J K L L ! % ! % K & - ?) ) & : 3 ) & 3 & - . / : 6 K @ )
!= %& - 01 2 & < => && & 3 K ! % K !% & G 3 3
& ' ; 012 )& 3 ) ! % & : & < > < *>& / B ? / ) / ) ! % &
/ ) 3 & ' D & ( / ) E & ' / ) F < H>& ' ) ? D & ' ? ; J K K J L * ! L L * ! !*% % % L * ! % L ! % ! % # ! % K ! % $ D L / ? L ! % !% K !% " Æ ) B & ' ?) ! % & ' ;
Æ
Æ
Æ
Æ
Æ
Æ
Æ
Æ
Æ
Æ
Æ
Æ
Æ
Æ
Æ
! "
Æ
< > K K ;
< > K
Æ Æ
Æ
Æ Æ
Æ
Æ
< > L
K
Æ
Æ Æ
*
Æ
Æ
Æ
Æ
? ( < > K
; !+%
2 & ' M G ) & 2 / ) ! % Æ & : ! % & ' & ' M G / ) < H>& $ & ! % / )& 0 ? / !! L % % !,% & 0 M G & / (&
Æ Æ
Æ Æ
& 0 ? & ' ) & 0 &
/ & ; # ? ! % & # ! % & ' ! K % / ) &
! #
K ;
K *
K L K L > Æ
Æ
& ' ( & ' Æ & : ! %
! %& 3 0& ( ) ! *&%& ' )& 7 # 3O 7 0 < I> ) & . (
! %& " ? ? & M G ! º +% & 7 K & ' ! 0& ,%& : ! *&*&% ) (& 3 ! % ( & ' ) &
&'&'#
!
0 6 & ) ! % ! %
H
processor i+1
space 1
processor i-1
processor i
communication
time
0 ; ' & : ! % ) & &
0 +; - & ' ! % ) 0 ,&
=
0 H
11111 00000
pr .3
11111 00000 00000 11111 00000 11111 00000 11111 00000 11111 00000 11111 00000 11111 00000 11111 00000 11111 00000 11111 00000 11111 00000 11111 00000 11111
es
so
r1
pr .2
r0
pr
oc
oc
es
so
pr
r2 so
r3 pr
oc
es
so es oc pr
Û
000 111 111 000 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111
0 ,; ' ; ' & ' & 3 ( & F 7 : & 3 ! % : 7 ? F N 7 & $ F &
I
0 +& F & ' 0 ,; ( K & ' 0 H ) &
&
processor 1
processor 1
x x region A x x x x x x x x x xregion C x
region A
x x x x x x x x x x x x x x
region C
processor 0
processor 0
region B
region B
0 H; 1 ( ? , ( & ' 7 ! N % ! N %&
Æ
Æ
3 ( ) ) (& 7 ( ) &
&'&'& % ! !
: ) 0& = & 3 K ! %& 3 (& . ! % ! % ( & 3 ( ! %& " ( & : ? & ' *&&
!
"
) (
! %& G & 7 & ; & %) * ; & 3 ?
( & );
processor 2
to processor 2
processor 3 processor 2
processor 1
processor 0
to processor 0
processor 0
redundant work
0 =; ; & 3 ( & F
& ' ! % & ' ! L % ! %& 3 ! % & ' & G ) &
processor 1
x x x x x x x x
processor 1
processor 0
0 I; 1 ( 0 =& ' ! N % ! N %&
Æ
Æ
0 & ; & : ) ?) & ' & & +* ; ( & . & ) < > & ( & 0 ( ( & *& ;
& & 3 & & ' ? ! %& ' & - A C ) !A * +,H +C%& & ' 0 ,&
&','"
' 1 17 . (& ' ? 117 ; ! %; - 1 ; 1 1 . ! /; +,E% - .; ,. - G7G :7H== !2 .P% - $ #$7 - . /: :& +,E - 3 G7G M !&*M% ) G . ..#2:/G-=PG: ! =)=% 3 $ .P , & ' 1 ; , ;
- 1 ; 117 , . ! / ;*EL*E /; +,E% - .; ,. - G7G +* =+ ! .P% - $ #$7 - . 1.7 /: :& + E - #( = !M G7G%
G . ; .."7'G-= G . ; .."7'G-= 3 $ .P & ' / 3 1 7 !
! " %& '
C3 G ( 1 : C /317; F1 1F1 .1F1 &
&','#
.
' %& 0 ! ) & : 0 ) ; * + / K * + / & F (
& 3 L º K *& G K & - ; ( ! *% & ' ! ) &&&% ! 0 %& - ( 0
*& AC º &
K
&','& ( /
- & F / K & $) ! K L
% ) & 3 ) ) (& . K
*
−6
3
x 10
Computation time (in seconds)/ (W× H)
2.5
computation time for non−tiled program
2
1.5
1
computation time using tiles of size 100x100 0.5 2 10
3
4
10
5
10 size of the iteration space (H)
6
10
10
0 ; ' & ' ?) & ' & 0 + * & 0 + &*&
7 !+ Q%& 3 ! ? %& 3 ( ! ! %% ? (& / & / ! % /
/ ! /%@ (& ' ! * %& ! % ! L % L
Æ
Æ
' ) 0 & 7 ) ! % ! % ! L % L L L ! %
Æ
' ) 0 ² +& 0 º +
! L % & F ) & ) ) &
&',',
Æ
& F
; & 2 & 3 K K
!
!
−7
9
x 10
Computation time (in seconds) / (WxH)
8.5
8
7.5
7
6.5
H=100000
6
H=1000
5.5
5
0
10
20
30
40
50 W
60
70
80
90
100
0 ; B ; K & 0 K / /& 0 K /&
−7
Computation time (in seconds) x P / (W x H)
x 10 9 8.5 8 7.5 7 6.5 6 5.5 0
20
5
10 40 60
4
10 80
w
100
3
10
H
0 ; B ! % ) &
+
& L & 3 0& *
? ; - ; I, ! % ! % & ' K , K & ' ! ? %; & ) & ' ) ! % C C ! ) %& & - D ! K %
&
!
−5
9
x 10
8
Communication time (in seconds) / W
with calculation. H/P=10000 7
6
5 with calculation. H/¨P=1000 4 with calculation. H/P=100 3
2 without any calculation 1
0
10
20
30
40
50 tiles width w
60
70
80
90
100
0 *; $ & ' ; !A C%
) ! %& ' !A C%
! ( )
&&%& & G
! ? % ; K &
&','0
0 ( ; 0 C (C ? & 3 & )
! % ( & 3 & ' K , ! ? +%& 0 C (C & 3 K K ! ? +%& F ) Æ ? @ ! + % ?) K K + ! ? ,%&
!
,
−5
14
x 10
communication overhead per column
12
10
8
6
4
2 2 10
3
4
10
5
10
10
H/P
0 ; B & K *&
K ,
−7
Computation time (in seconds) x P / (W x H)
x 10 10 9.5 9 8.5 8 7.5 7 6.5
6 100 80
3
10 60 40
4
10 20
w
0
5
10
H
0 +; B ! % & @ K @ K ,&
H
100
90
1111111111111111111111111111 0000000000000000000000000000 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 maximum 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 bound 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 regime of 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 possible values 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 minimum bound 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 maximum bound
80
70
wopt
60
50
40
30
minimum bound
20
10 3 10
4
5
10 H
10
0 ,; " K , & / ! %
& 0 6 ; ! % K ! %& ' Q ! % ! % ) ) ! % ! % &
#
$
1 *&& & 2 ) Æ & 3 ) ; ! % & ' ! % ) & . ) 6 K & ! 0 ,%& 3 & ' ) ; 1 + ; 1 ! % K * II @ 117 ! % K H I & 0 ) & ' K K + & - & ) ( K & & ) &
" #
$#
$#$
!
&'0'" +* "" !
? H =& ' 0 H; & ! % ? ; ) ( & : ( & !
=
0 = ) ; ) & ' & 0 ) &
−8
3.95
x 10
3.9
Average execution time per task
3.85
3.8
3.75
3.7
3.65
3.6 3 10
4
5
10
10
6
10
H
0 H; : ) ( 1 K K & ' ) ? )& $) !0 H% ! K % & F ) K ) 0 = ! ) A C %&
&'0'# +* #0 !
/ && 117 1& ( & 3 ( ( (
& ) ! B %& 0 ) ; 117 1& G ( ( & : ! % K ! %
! % K ! % & ' (& 0 & 0 I ) & " &&& ' ? & ! %& &&& 3 ) D !
$#
$
I
$#$
12
time sequential/time parallel
11.5
11
10.5
10
9.5
9 3 10
4
5
10
6
10
10
H
0 =; G ) 1 ) &
½
¼
111111 000000 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111
0 I; 3 & 3
½
¼
½ &
½
K
¼
¼ ½
¼
K
%& 3 D ( &
? & ' 0 ; ' ) ( ) K + & ! % ; ! % ) 1 ! ! %% 117 ! ! %%& ' ) IH L
& 0 ) ) ) & !
$#
$#$
−8
3
x 10
average execution time per task
2.8
2.6
2.4
2.2
2
1.8 3 10
4
10
5
10 H
6
7
10
10
0 ; $) + 117 1& # K + K & ' ) ) ? )& : 0 H ) !0 % ! K *%
& 0 117 1 1&
( G * ( B ; ) / ) & ( / 1 / & ' G $ & . / )
& ' 01 2
& '
27
26
parallel
25
23
sequential extrapol.
/time
24
22
time
21
20
19
18
17 3 10
4
10
5
10 H
6
7
10
10
0 ; G ) + ) ) & ( 012 ! %& ' / ( ( ( & 3 ( 6 ( & : 0& / ) & - & ' ? ( / AÆ C& / ) ( ( & : ? $ & !+%& ' G & M ! % ? ?; ) & ' ) ?
) ( & 3 / )
& : ) & -( ( &
Æ
/ & ' ( ( &
!( L %
& ' D D Æ !
% ) & ' G" #G1
0 ; $ / ) K I +* & ' K & ' & %
& '
& "
& - AC & 0 ) ? & 3 ( ? / ) & : 01 2 & / ) ( 01 2 ) & ) & : ! 012 < =>% & ' ) ) & 7 / 1 ) @ ) < *>& 3 ) & -( &
1 ! ' ( . G : ' 34 M Æ G$ 1G. < >& 0 ( ( . - ( & *
< > & : G& D & R & " & !"#$ =SI G II=& 2 F D& : & % & ' ; **S I I==& T F 0 R & : G /:1:7E ! %& 3 & : (
)
* +)*"##, =+S I & 7G $: 1 III& $) /1 '
II H& 1 F : # ' R & !1% U ( -&( % H;**S+ II& 1 F V ( # 0 R 0 T& : &
I!%; IHS * III& $) /1 '
I=I& 1R 7 ' & 1 & 1& 7 & * & *
*&* #. **S**H& $$$ 7 G 1 II+& 1&R& 7 V& # R& & ' & /& ' V& 0 E& T T& ' '& V& ' * & & *
*&*"#/ IS*=& $$$ 7 G 1 IIH& $) -$F ;PP&&P& /& 7 V& 0 G& 0& 3 F& : E&G& M & 3 ; & ' 7GI,+= 2 7 G # G # 7: II,& : ;PP& & &P & /& 7 & / .& 1& M B&
0 !H%;*H+S*H= II,& < > # 7 . : # 0 V .7& M & & * * & ( +* &(, & G 0 . " & < > '& 7 '& # ) G& :& ' & /
; & ) ! %; IS , II=& < > : # M:4 G 044 T& 7 &
H!%;*HIS*I IIH& < *> '& # ) G& :& ' & . ) ) & 0 ! !+,%; ,IS ,* IIH& < > 18 G ? .4 4 & 1& - - - 2 /; " & < +> 0 # V ( # 0 R & # ; & % ( & ! ; ,HS I II=& < ,> & / $& # B& % & !%; * I,*& < H> M& F & / ) @ & 1 !I%; . I=&
< => $& 0 V& 1 G& 2 & G & I ! I++% & 2
;IH= I,+& < I> E& 3O /& 7 V& 0 & # & ' ,S H*& :7. 1 IIH& $) ' 27G#7GI,=I -$F ;PP& & &P & :& V& / .& :& / & 0 ) & G T F II& : -& / . G& / & . ) Æ & 34 * * 1 &(5*6'&(5* & S & :7. 1 V IIH& & / :& 1 G& & # ) & % * ! I%;**S I=,& & & . / 1& : & '
& 6 !+%;+ S+, II& V 0 . R & : !% ; : & '
III*, /1 $ G / : III& .& 1 .& / ?& ) ( & 0 * ! %;H,=SH=* II& /O9 1 F ' & F1; ( .& 7 8 6 9 8 + '698 "#$, *== 6 & HS=+& 3 D 11GPG1#1 II=& $$$ GT : II=& /O9 1 F ' -& . ( ) ; ) & 3 & : (
)
* +)*"#$, * S*I& 7G $: 1& 0 : G 1 & " ( & (
+( "#$, HS HI& $$$ 7 G 1 II=& 0 R & : & (!!!
) & & & #& V& G #& V& $ #& V& & ' ) )& * !%;I,S H IIH& . $& - . G& / & : ) & (!!!
) & !%;+SH " II &
+