ÌÖ Ò ÓÖÑ Ø ÓÒ Ô Ö ÐÐ Ð ÔÖÓ Ö ÑÑ Ò ÈÖÓ Ö Ñ Ô Ö ÐÐ Ð Þ Ø ÓÒ Ø Ò ÕÙ º ½º ÈÖÓ Ö Ñ Å ÔÔ Ò ÈÖÓ Ö Ñ È ÖØ Ø ÓÒ Ò º Ô Ò Ò Ò ÐÝ º Ë ÙÐ Ò ÄÓ Ð Ò Ò º Ó ØÖ ÙØ ÓÒº ¾º Ø Å ÔÔ Ò º Ø Ô ÖØ Ø ÓÒ Ò º ÓÑÑÙÒ Ø ÓÒ ØÛ Ò ÔÖÓ ÓÖ º Ø ØÖ ÙØ ÓÒº ÁÒ Ü Ò Ó ÐÓ Ð Ø º ÈÖÓ Ö Ñ Ò Ø Ñ ÔÔ Ò ÓÙÐ ÓÒ Ø Òغ
³ Ò Ü ÑÔÐ Ë ÕÙ ÒØ Ð Ó Ü ÓÖ ¼ ØÓ Ô¹½º Ý µ Ü Ò ÓÖ Ô Ò Ò Ò ÐÝ x = 3 0 x 1 x 2 x.... (p-1)x Ë ÙÐ Ò Ê ÔÐ Ø Ü Ò Ø Ó ÖÓ Ø Ò µº 0 1 2 p-1 x = 3 x = 3 x = 3 x = 3... 0 x 1x 2 x (p-1)x
ËÈÅ Ó ÒØ Ü Ý Ü ÑÝÒÓ µ Ý Ü Ø Ò ÔÖÓ Ö Ñ ØÖ ÙØ ÓÒ Ë ÕÙ ÒØ Ð È Ö ÐÐ Ð ÓÒ ÒÓ µ Ø ÖÖ Ý Ý ¼ ½ Ô ½ µ Ð Ñ ÒØ Ý ÔÖÓ Ö Ñ ÓÖ ¼ ØÓ Ô¹½ µ Ý Ü Ý µ Ü
³ Ô Ò Ò Ò ÐÝ ÓÖ Ø Ò Ø ÒÔÙØ Ò ÓÙØÔÙØ Ø º INPUT OUTPUT Task Ü ÑÔÐ Ë ÁÆ Ëµ ÇÍÌ Ëµ º Ú Ò ÔÖÓ Ö Ñ Û Ø ØÛÓ Ø Ë ½ Ë ¾ º Á Ò Ò Ü ÙØ ÓÒ ÓÖ Ö Ó Ë ½ Ò Ë ¾ «Ø Ø Ö ÙÐغ µ Ë ¾ Ô Ò ÓÒ Ë ½ º ÌÝÔ Ó Ô Ò Ò ½º ÐÓÛ Ô Ò Ò ØÖÙ Ø Ô Ò Ò µº ¾º ÇÙØÔÙØ Ô Ò Ò º º ÒØ Ô Ò Ò º º ÓÒØÖÓÐ Ô Ò Ò º º Ø Ò µº
ÐÓÛ Ô Ò Ò Ë ½ Ü Ë ¾ ˾ Ø ÓÛ¹ Ô Ò ÒØ ÓÒ Ë½º ÇÍÌ Ë ½ µ ÁÆ Ë ¾ µ ÇÙØÔÙØ Ô Ò Ò ÇÍÌ Ë ½ µ ÇÍÌ Ë ¾ µ º Ë ½ Ë ¾ Ü Ë¾ ÓÙØÔÙع Ô Ò ÒØ ÓÒ Ë½º ÒØ Ô Ò Ò ÁÆ Ë ½ µ ÇÍÌ Ë ¾ µ º Ë ½ Ë ¾ Ü Ë¾ ÒØ ¹ Ô Ò ÒØ ÓÒ Ë½º
Ó Ö ¹ Ö Ò Ô Ò Ò Ö Ô º Ì ÓÔ Ö Ø ÓÒ Ø Ø Ñ Ó Ð Ö Þ Ò Ô Ö ÓÖÑ Ð Ö ÙÒ Ó ÓÑÔÙØ Ø ÓÒ º Ü Ë ½ µ Ë ¾ µ Ë µ S 1 Flow S Flow Anti S Flow 2 3 Output
Ð Ø Ö ÙÒ ÒØ Ô Ò Ò Ì Ð Ø ÓÒ ÓÙÐ ÒÓØ «Ø Ø ÓÖÖ ØÒ º Ò ÒØ ÓÖ ÓÙØÔÙØ Ô Ò Ò Ò Ð Ø Ø Ù ÙÑ Ý ÒÓØ Ö Ô Ò Ò Ô Ø º S 1 Flow S Flow Flow 2 S 3
³ ÄÓÓÔ È Ö ÐÐ Ð Ñ ÁØ Ö Ø ÓÒ Ô ß ÐÐ Ø Ö Ø ÓÒ Ó ÐÓÓÔ Ò Ø Ô Ò Ò ØÛ Ò Ø Ö Ø ÓÒ Ø Ø Ñ ÒØ º ½ ÄÓÓÔ For i = 1 to n S : a = b + c i i i S 1 S 2 S 3... S n i For i = 1 to n S : a = a - 1 i i i-1 S 1 S 2... S n ¾ ÄÓÓÔ For i = 1 to n For j = 1 to n S : x = x +1 ij ij i-1,j i S 11 S S S S 12 13 S 21 22 23 S S S 31 32 33 j
ÈÖÓ Ö Ñ È ÖØ Ø ÓÒ Ò ÈÙÖÔÓ ÁÒÖ Ø Ö Ò Þ º Ê Ù ÙÒÒ ÖÝ ÓÑÑÙÒ Ø ÓÒº Ø Ñ ÔÔ Ò Ó Ð Ö ÒÙÑ Ö Ó Ø ØÓ Ñ ÐÐ ÒÙÑ Ö Ó ÔÖÓ ÓÖ º Ø ÓÒ Ø º ÖÓÙÔ Ú Ö Ð Ø ØÓ Ø Ö ÓÒ ÄÓÓÔ Ô ÖØ Ø ÓÒ Ò Ø Ò ÕÙ ÄÓÓÔ ÐÓ Ò»ÙÒÖÓÐÐ Ò º ÁÒØ Ö ÓÖ ÐÓÓÔ ÐÓ Ò º ÄÓÓÔ ÒØ Ö Ò º
ÄÓÓÔ ÐÓ Ò»ÙÒÖÓÐÐ Ò Ú Ò ÓÖ ½ ØÓ ¾Ò Ë... S 2n-1 S 1 S 2 S 3 S 4 S 2n 1... 2 n Ø Ö ØÖ Ò ÓÖÑ Ø ÓÒ µ ÓÖ ½ ØÓ Ò Ó Ë ¾ ½ Ë ¾
Ò Ö Ð ½ ÄÓÓÔ ÐÓ Ò Ú Ò ÓÖ ½ ØÓ Ö Ô Ë µ µ µ ÐÓ Ò Ø ÐÓÓÔ Ý ØÓÖ Ó Ö ÓÖ ¼ ØÓ Ô¹½ ÓÖ Ö ½ ØÓ Ö Ö µ µ µ ËÈÅ Ó ÓÒ Ô ÒÓ º Ñ ÑÝÒÓ µ ÓÖ Ö Ñ ½ ØÓ Ö Ñ Ö µ µ µ
³ ÁÒØ Ö ÓÖ ÄÓÓÔ È ÖØ Ø ÓÒ Ò ÐÓ Ø ÒØ Ö ÓÖ ÐÓÓÔ Ò Ñ Ø ÓÒ Ø º Ü ÑÔÐ ÓÖ ½ ØÓ ÓÖ ½ ØÓ Ü Ü ½ ½ Ø Ö ÐÓ Ò ÓÖ ½ ØÓ ÓÖ ½ ØÓ Ü Ü ½ ½ j Ì ÓÚ Ü ÑÔÐ ÔÖ ÖÚ Ø Ô Ö ÐРРѺ i i
È ÖØ Ø ÓÒ Ò Ñ Ý Ö Ù Ô Ö ÐÐ Ð Ñ ÓÖ ½ ØÓ ÓÖ ½ ØÓ Ü Ü ½ ½ j i i ÆÓ Ô Ö ÐÐ Ð Ñ
ÄÓÓÔ ÁÒØ Ö Ò Ò Ø ÓÒ ÔÖÓ Ö Ñ ØÖ Ò ÓÖÑ Ø ÓÒ Ø Ø Ò Ø Ü ÙØ ÓÒ ÓÖ Ö Ó ÐÓÓÔ ÔÖÓ Ö Ñº Ø ÓÒ ËÛ Ô Ø ÐÓÓÔ ÓÒØÖÓÐ Ø Ø Ñ ÒØ º Ü ÑÔÐ ÓÖ ½ ØÓ ÓÖ ½ ØÓ Ü Ü ½ ½ Ø Ö ÐÓÓÔ ÒØ Ö Ò ÓÖ ½ ØÓ ÓÖ ½ ØÓ Ü Ü ½ ½
Ï Ý ÐÓÓÔ ÒØ Ö Ò Í À ÐÔ ÐÓÓÔ Ô ÖØ Ø ÓÒ Ò ØÓ ÜÔÐÓ Ø ÑÓÖ Ô Ö ÐРРѺ Ü ÑÔÐ º ÁÒØ Ö ÓÖ ÐÓÓÔ ÐÓ Ò Ø Ö ÒØ Ö Ò º ÓÖ ½ ØÓ ÓÖ ½ ØÓ Ü Ü ½ ½ j i
Ü ÙØ ÓÒ ÓÖ Ö Ø Ö ÐÓÓÔ ÒØ Ö Ò ÄÓÓÔ ÒØ Ö Ò ÐØ Ö Ø Ü ÙØ ÓÒ ÓÖ Öº j For i = 1 to 3 For j= 1 to 3 S i,j : S11 S12 S13 S21 S22 S23 i S31 S32 S33 Execution order j For j= 1 to 3 For i = 1 to 3 S i,j : S11 S12 S13 S21 S22 S23 i S31 S32 S33
ÆÓØ Ú ÖÝ ÐÓÓÔ ÒØ Ö Ò Ð Ð ÄÓÓÔ ÒØ Ö Ò ÒÓØ Ð Ð Ø Ò Û Ü ÙØ ÓÒ ÓÖ Ö Ú ÓÐ Ø Ø Ô Ò Ò º For i = 1 to 3 For j= 1 to 3 S i,j : X(i,j)=X(i 1,j+1)+1 Legal? i j S11 S12 S13 S21 S22 S23 S31 S32 S33 Execution order Dependence For j= 1 to 3 For i = 1 to 3 S i,j : X(i,j)=X(i 1,j+1)+1 S11 S12 S13 S21 S22 S23 j i S31 S32 S33
ÁÒØ Ö Ò Ò ØÖ Ò ÙÐ Ö ÐÓÓÔ ÓÖ ½ ØÓ ½¼ µ ÓÖ ¾ ØÓ ½¼ ÓÖ ½ ØÓ ½¼ ÓÖ ½ ØÓ ¹½ 2 10 j 2 10 j 1 1 i j=i+1 i
³ ÌÖ Ò ÓÖÑ Ø ÓÒ ÓÖ ÐÓÓÔ ÒØ Ö Ò ÀÓÛ ØÓ Ö Ú Ø Ò Û ÓÙÒ ÓÖ Ò ÐÓÓÔ ËØ Ô ½ Ä Ø ÐÐ Ò ÕÙ Ð Ø Ö Ö Ò Ò ÖÓÑ Ø ÓÖ Ò Ð Ó º ½¼ ½ ½¼ ½ ËØ Ô ¾ Ö Ú ÓÙÒ ÓÖ ÐÓÓÔ º ß ÜØÖ Ø ÐÐ Ò ÕÙ Ð Ø Ö Ö Ò Ø ÙÔÔ Ö ÓÙÒ Ó º ½¼ Ì ÙÔÔ Ö ÓÙÒ ½¼º ß ÜØÖ Ø ÐÐ Ò ÕÙ Ð Ø Ö Ö Ò Ø ÐÓÛ Ö ÓÙÒ Ó º ½ ËØ Ô Ö Ú ÓÙÒ ÓÖ ÐÓÓÔ Û Ò Ì ÐÓÛ Ö ÓÙÒ ¾ Ò ÓÙÐ ÐÓÛ ½º
Ú ÐÙ Ü ÒÓÛ ÐÓÓÔ Ò ÒÒ Ö ÐÓÓÔµº ß ÜØÖ Ø ÐÐ Ò ÕÙ Ð Ø Ö Ö Ò Ø ÙÔÔ Ö ÓÙÒ Ó º ½¼ ½ Ì ÙÔÔ Ö ÓÙÒ Ñ Ò ½¼ ½µº ß ÜØÖ Ø ÐÐ Ò ÕÙ Ð Ø Ö Ö Ò Ø ÐÓÛ Ö ÓÙÒ Ó º ½ Ì ÐÓÛ Ö ÓÙÒ ½º
³ Ø È ÖØ Ø ÓÒ Ò Ò ØÖ ÙØ ÓÒ Ø ØÖÙØÙÖ Ú ÒØÓ Ø ÙÒ Ø Ò Ò ØÓ ÔÖÓ ÓÖ ÐÓ Ð Ñ ÑÓÖ º Ï Ý ÆÓØ ÒÓÙ Ô ÓÖ Ö ÔÐ Ø ÓÒ ÓÖ ÓÐÚ Ò Ð Ö ÔÖÓ Ð Ñ º È ÖØ Ø ÓÒ Ø ÑÓÒ ÔÖÓ ÓÖ Ó Ø Ø Ø Ò ÐÓ Ð Þ ÓÖ Ø º Ü Ý Ò Ò Ü proc 0 proc 1 proc 2 n/p n/p.. n/p x ØÖ ÙØ ÖÖ Ý ÑÓÒ Ô ÒÓ º ÙØ Ö ÔÐ Ø Ü ØÓ ÐÐ ÔÖÓ ÓÖ º
ÓÖÖ ÔÓÒ Ò Ì Å ÔÔ Ò Ö Ò Ôµ È ¼ È ½ ½ Ü Ö ½Ü ¾ Ü Ö ¾Ü º º º Ö Ü ¾Ö Ü
½ Ø Å ÔÔ Ò Å Ø Ó ½ ÖÖ Ý ½ ÔÖÓ ÓÖ º ÙÑ Ø Ø Ø Ø Ñ Ö ÓÙÒØ ÖÓÑ ¼ ½ Ò ½º ÈÖÓ ÓÖ Ö ÒÙÑ Ö ÖÓÑ ¼ ØÓ Ô ½º Å ÔÔ Ò Ñ Ø Ó Ä Ø Ö Ò º Ô ½ ÐÓ r p 0 1 2 3 Ø µ ÈÖÓ Ö
½ ÝÐ p 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 Ø µ ÈÖÓ ½ ÐÓ ÝÐ º ÑÓ Ô Ö Ø Ø ÖÖ Ý Ú ÒØÓ Ø Ó ÙÒ Ø Ù Ò ÐÓ Ô ÖØ Ø ÓÒ Ò ÐÓ Þ µº Ì Ò Ø ÙÒ Ø Ö Ñ ÔÔ Ò ÝÐ Ñ ÒÒ Ö ØÓ Ô ÔÖÓ ÓÖ º r r r r r r r r p 0 1 2 3 0 1 2 3 Ø µ ÈÖÓ ÑÓ Ô
¾ ÖÖ Ý ½ ÔÖÓ ÓÖ Ø Ø Ñ Ö ÓÙÒØ ÖÓÑ ¼ ½ Ò ½º ÈÖÓ ÓÖ Ö ÒÙÑ Ö ÖÓÑ ¼ ØÓ Ô ½º Å Ø Ó ÓÐÙÑÒ¹Û ÐÓ º ÐÐ Ø ÐÓ µµ Ø µ µ È ÖÓ Ö Proc 0 1 2 3 Proc 0 Proc 1 Proc 2 Proc 3 ÊÓÛ¹Û ÐÓ º ÐÐ Ø ÐÓ µµ Ø µ µ È ÖÓ Ö
ÊÓÛ ÝÐ º ÝÐ µ Ø µ µ È ÖÓ ÑÓ Ôº ÇØ Ö ÓÐÙÑÒ ÝÐ º ÓÐÙÑÒ ÐÓ ÝÐ º ÊÓÛ ÐÓ ÝÐ º
¾ ÖÖ Ý ¾ ÔÖÓ ÓÖ Ø Ð Ñ ÒØ Ö ÓÙÒØ µ Û Ö ¼ Ò ½º ÈÖÓ ÓÖ Ö ÒÙÑ Ö Øµ Û Ö ¼ Ø Õ ½ Û Ö Õ Ô Ôº Ä Ø Ö Ò Õ º ÐÓ ÐÓ µ Ø µ µ È ÖÓ Ö Ö µ 0 1 2 3 0 Proc Proc Proc Proc (0,0) (0,1) (0,2) (0,3) 1 2 3
ÝÐ ÝÐ µ Ø µ µ ÈÖÓ ÑÓ Õ ÑÓ Õ µ 0 1 2 3 0 1 2 3 0 1 2 3 0 1 23 0 1 23 Processor (0,3) 0 1 23 ÇØ Ö ÐÓ ÝÐ µ ÝÐ ÐÓ µ ÐÓ ÝÐ ÐÓ ÝÐ µº
ÈÖÓ Ö Ñ Ø Ñ ÔÔ Ò ÓÒ Ø ÒÝ Ö Ø Ö ËÙÆ ÒØ Ô Ö ÐÐ Ð Ñ ÔÖÓÚ Ý Ô ÖØ Ø ÓÒ Ò º Ð Ó Ø ÒÙÑ Ö Ó Ø ÒØ ÙÒ Ø Ý Ø Ñ Ò Ñ Þ º ÑÔÐ Ñ ÔÔ Ò ÙÖ Ø ÇÛÒ Ö ÓÑÔÙØ ÊÙÐ º Á Ø Ü ÑÓ Ø Ø Ñ Ø Ò ÔÖÓ ÓÖ Ø Ø ÓÛÒ Ü ÙØ Üº
Ò Ü ÑÔÐ Ó ÇÛÒ Ö ÓÑÔÙØ ÖÙÐ Ë ÕÙ ÒØ Ð Ó ÓÖ ¼ ØÓ Ö Ô¹½ Ë º Ø ØÖ ÙØ ÓÒ Å Ô Ø µ ØÓ ÒÓ ÔÖÓ Ñ Ô µº Ø ÖÖ Ý µ Ö ØÖ ÙØ ØÓ ÔÖÓ ÓÖ Ù Ø Ø ÔÖÓ ÓÖ Ü Ü ÙØ µ Ø Ò µ Ò ØÓ ÔÖÓ ÓÖ Üº ËÈÅ Ó ÓÒ Ô ÔÖÓ ÓÖ Ñ ÑÝÒÓ µ ÓÖ ¼ ØÓ ÖÔ¹½ ÔÖÓ Ñ Ô µ Ñ µ º
ËÈÅ Ó Û Ø ½ ÐÓ Ñ ÔÔ Ò Ò ÔÖÓ Ñ Ô µ Ö º Ø ØÖ ÙØ ÓÒ ÈÖÓ ÓÖ ¼ ÓÛÒ Ø ¼µ ½µ Ö ½µº ÈÖÓ ÓÖ ½ ÓÛÒ Ø Öµ Ö ½µ ¾Ö ½µº º Ó ØÖ ÙØ ÓÒ Ñ ÑÝÒÓ µ ÓÖ ¼ ØÓ ÖÔ¹½ ÔÖÓ Ñ Ô µ Ñ µ º ÓÑÑ ÒØ Ò Ö Ð ÙØ Û Ø ÜØÖ ÐÓÓÔ ÓÚ Ö º
ÇÔØ Ñ Þ Ø ÓÒ ÐÓ Ò Ý ØÓÖ Ó Öº ÓÖ ¼ ØÓ Ô¹½ ÓÖ Ö ØÓ Ö Ö¹½ º ÇÔØ Ñ Þ ËÈÅ Ó ÓÒ Ô ÔÖÓ ÓÖ Ñ ÑÝÒÓ µ ÓÖ Ö Ñ ØÓ Ö Ñ Ö¹½ º
ËÈÅ Ó Û Ø ½ ÝÐ Ñ ÔÔ Ò Ò ÔÖÓ Ñ Ô µ ÑÓ Ôº Ø ØÖ ÙØ ÓÒ ÈÖÓ ÓÖ ¼ ÓÛÒ Ø ¼µ Ôµ ¾Ôµ º ÈÖÓ ÓÖ ½ ÓÛÒ Ø ½µ Ô ½µ ¾Ô ½µ º ÇÔØ Ñ Þ ËÈÅ Ó ÓÒ Ô ÔÖÓ ÓÖ Ñ ÑÝÒÓ µ ÓÖ Ñ ØÓ Ö Ô¹½ Ø Ô Ô º
ÐÓ Ð Ø ËÔ Ú º ÄÓ Ð Ö Ë ÕÙ ÒØ Ð ÔÖÓ Ö Ñ µ ÐÓ Ð Ø Ö ØÖ ÙØ ÔÖÓ Ö Ñ µ ÄÓ Ð Ø Ö Ø Ò Ü Ò Ò Ñ ÑÝÒÓ µ ÓÖ ¼ ØÓ ÖÔ¹½ ÔÖÓ Ñ Ô µ Ñ µ º ÈÖÓ Ð Ñ µ Ù Ø Ò Ü ÙÒØ ÓÒ Ò Ø Ú ÐÙ Ó Ò Ö Ò ØÛ Ò ¼ ØÓ ÖÔ ½º ÔÖÓ ÓÖ ØÓ ÐÐÓ Ø Ø ÒØ Ö ÖÖ Ý Ø ÐÓ Ð Þ Ø ÓÒ ÐÐÓ Ø Ö ÙÒ Ø ÓÖ ÔÖÓ ÓÖ ØÖ Ò Ð Ø Ø ÐÓ Ð Ò Ü ØÓ ÐÓ Ð Ò Ü Û Ø ÐÓ Ð Ñ ÑÓÖÝ ÓÒÐݺ
ÖÓÑ ÐÓ Ð Ö ØÓ ÐÓ Ð Ö Í ½ ÐÓ Ñ ÔÔ Ò º A 0 1 2 3 4 5 0 1 2 0 1 2 Local array, Proc 0 Local array, Proc 1 ËÈÅ Ó º ÒØ Ö» ÆÓØ ÒØ Ö ÖÖ Ý» Ñ ÑÝÒÓ µ ÓÖ ¼ ØÓ ÖÔ¹½ ÔÖÓ Ñ Ô µ Ñ µ ÐÓ Ð µ º
³ Å ÔÔ Ò ÙÒØ ÓÒ ÓÖ ½ ÐÓ ÄÓ Ð µ ÑÓ Ö Üº Ô ¾ Ö º ÈÖÓ ¼ ¼ ¼ ½ ½ ÈÖÓ ½ ¼ ½ ¾ ¾ ¾ Å ÔÔ Ò ÙÒØ ÓÒ ÓÖ ½ ÝÐ ÄÓ Ð µ Ô Üº Ô ¾º ÔÖÓ ¼ ÔÖÓ ½ ¼ ¼ ½ ¼ ¾ ½ ½ ¾ ¾
³ ÁÑÔÓÖØ ÒØ Å ÔÔ Ò ÙÒØ ÓÒ Ú Ò Ø Ø Ñ º ½ ÐÓ ÈÖÓ ÓÖ Á ÔÖÓ Ñ Ô µ Ö ÄÓ Ð Ø Ö ÄÓ Ð µ ÑÓ Ö ½ ÝÐ ÈÖÓ ÓÖ Á ÔÖÓ Ñ Ô µ ÑÓ Ô ÄÓ Ð Ø Ö ÄÓ Ð µ Ô
³ ÈÖÓ Ö Ñ È Ö ÐÐ Ð Þ Ø ÓÒ Code Partitioning Tasks + dependence Program mapping scheduling P processors Data Partitioning Data mapping P processors Ì Ò ÕÙ parallel code Ýл ÐÓ Ô ÖØ Ø ÓÒ Ò ÄÓÓÔ ÒØ Ö Ò ÙÒÖÓÐÐ Ò ÐÓ Ò Ô Ò Ò Ò ÐÝ Ì ÙÐ Ò Ì Ñ ÔÔ Ò º Ø Ñ ÔÔ Ò º Ýл ÐÓ Ñ ÔÔ Ò µ Ø Ò Ü Ò Ò ÓÑÑÙÒ Ø ÓÒº