SlideShare a Scribd company logo
Matric Multipling 
Cannon’s Method 
نام اعضای گروه: 
فاطمه جهانبخش نوشین صرافها 
مهگل شعبان نژاد شکوفه رضایی 
ترانه رنجبر محمدهادی کریمی 
محمدسعید تیموری مهدی توتونچی 
12/3/2014 1
یک روش موثر بر حافظه از روشهای ضرب ماتریس می باشد که به میزان Cannon روش 
حافظه نیاز دارد. O(n2) 
تعداد پردازه ها ( P ( : زیر ماتریس تقسیم می کنیم P در این روش ابتدا ماتریس ها را به 
B(0,0) B(0,1) B(0,2) B(0,3) 
B(1,0) B(1,1) B(1,2) B(1,3) 
B(2,0) B(2,1) B(2,2) B(2,3) 
B(3,0) B(3,1) B(3,2) B(3,3) 
A(0,0) A(0,1) A(0,2) A(0,3) 
A(1,0) A(1,1) A(1,2) A(1,3) 
A = B = 
A(2,0) A(2,1) A(2,2) A(2,3) 
A(3,0) A(3,1) A(3,2) A(3,3) 
P(0,0) P(0,1) 
P(1,0) P(1,1) 
Processor = 
12/3/2014 2
برای آغاز فرایند ضرب دو ماتریس، نیاز به چینش اولیه خاصی از زیرماتریس های افراز شده داریم: 
به جابجایی درایه های ماتریس ها دقت کنید! 
12/3/2014 3
جابجایی ها در چینش اولیه بصورت زیر انجام میگیرد: 
:(A) در ماتریس اول 
خانه به سمت چپ جابجا میشود. ) درایه ی خارج شده از سمت دیگر وارد سطر می شود. i ام به تعداد i سطر 
به عنوان مثال 
هیچ تغییری نخواهیم داشت. (i= -در سطر اول ( 0 
به سمت چپ شیفت می دهیم. i= هرکدام از درایه های سطر به نعداد 1 (i= -در سطر دوم ( 1 
به سمت چپ شیفت می دهیم. i= هرکدام از درایه های سطر به نعداد 2 (i= -در سطر سوم ( 2 
:(B) در ماتریس دوم 
خانه به سمت بالا جابجا میشود. ) درایه ی خارج شده از سمت دیگر وارد ستون می شود. j ام به تعداد j سطر 
به عنوان مثال 
هیچ تغییری نخواهیم داشت. (j= -در ستون اول ( 0 
به سمت بالا شیفت می دهیم. j= هرکدام از درایه های ستون به نعداد 1 (j= -در ستون دوم ( 1 
به سمت بالا شیفت می دهیم. j= هرکدام از درایه های ستون به نعداد 2 (j= -در ستون سوم ( 2 
12/3/2014 4
روش را با ذکر یک مثال پیش می بریم: 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 1 5 3 
0 7 1 6 
9 2 4 4 
3 6 7 2 
A 
 
 
 
 
6 1 2 3 
4 5 6 5 
1 9 8 8 
 
 
 
 
 
 
 
 
4 0  
8 5 
 
 
B 
این ماتریس ها را به چهار زیرماتریس افراز میکنیم: 
 
 
 
 
 
 
 
 
  
 
 
 
P P 
  
 
 
   
 
 
 
 
 
  
 
 
  
 
 
  
 
0,0 0,1 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
5 3 
1 6 
4 4 
7 2 
2 1 
0 7 
9 2 
3 6 
  
P P 
1,0 1,1 
A 
 
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
P P 
  
 
  
 
 
 
  
 
 
  
 
 
  
 
0,0 0,1 
 
  
 
2 3 
6 5 
8 8 
 
 
  
 
 
 
  
 
 
  
 
 
  
 
 
8 5 
6 1 
4 5 
1 9 
4 0 
  
P P 
1,0 1,1 
B 
12/3/2014 5
 
 
 
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
5 3 
1 6 
9 2 
3 6 
2 1 
0 7 
4 4 
7 2 
A 
ماتریس های ما پس از جابجایی اول به شکل زیر خواهند بود: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
 
  
 
 
 
8 8 
8 5 
 
  
 
 
 
 
  
 
 
  
 
 
  
 
 
  
 
  
 
 
 
2 3 
6 5 
6 1 
4 5 
1 9 
4 0 
B 
اکنون می توانیم اولین نتایج را از ضرب زیرماتریسهای متناظر بالا، استخراج کنیم: 
 
  
 
16 7 
28 35 
16 25 
40 22 
 
  
 
20 36 
15 63 
 
  
 
 
  
 
 
   
 
 
  
 
 
   
 
6 1 
4 5 
8 8 
 
  
 
 
8 5 
 
   
 
1 9 
4 0 
 
   
 
 
  
 
C x 
 
 
  
 
 
  
 
C x 
C x 
 
  
 
 
  
 
2 1 
0 7 
 
  
 
 
  
 
5 3 
1 6 
4 4 
7 2 
 
  
C x 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
  
 
 
 
  
 
 
30 37 
42 39 
2 3 
6 5 
9 2 
3 6 
0,0 
0,1 
1,0 
1,1 
12/3/2014 6
اکنون نوبت اجرای مرحله بعدی است : 
:(A) در ماتریس اول 
ام به تعداد یک خانه به سمت چپ جابجا میشود. ) درایه ی خارج شده از سمت دیگر وارد سطر می شود. i سطر 
:(B) در ماتریس دوم 
ام به تعداد یک خانه به سمت بالا جابجا میشود. ) درایه ی خارج شده از سمت دیگر وارد ستون می شود. j سطر 
به تفاوت این مرحله با مرحله اول دقت کنید! 
تعداد تکرار این مرحله : 
تعداد پردازه های ما( که با مرحله اول جمعاً : P ( . این مرحله را به تعداد بار تکرار میکنیم 
مرحله برای محاسبه نتیجه نهایی انجام می شود. 
12/3/2014 7
ماتریس های مفروض پس از اعمال مرحله دوم به شکل زیر خواهد بود: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
 
  
 
 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
2 1 
0 7 
4 4 
7 2 
5 3 
1 6 
9 2 
3 6 
A 
 
 
 
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
  
 
 
  
 
2 3 
6 5 
8 8 
 
 
  
 
 
 
  
 
 
 
 
 
  
 
 
  
 
 
8 5 
1 9 
4 0 
6 1 
4 5 
B 
اکنون می توانیم نتایج را از ضرب زیرماتریسهای متناظر بالا، استخراج کنیم: 
 
  
 
 
  
 
 
  
 
 
   
 
  
 
33 52 
53 44 
  
   
 
26 14 
2 57 
82 55 
57 96 
 
  
 
30 25 
82  
7 
 
  
 
   
 
 
   
 
  
 
17 45 
25 9 
 
   
 
  
 
10 11 
42 35 
62 19 
42 33 
 
  
 
 
 
  
 
 
  
0  
12 
40  
46 
 
 
16 7 
28 35 
16  
25 
40 22 
 
   
 
  
 
 
   
 
 
   
 
  
 
 
 
  
 
 
1 9 
4 0 
 
   
 
 
   
 
  
 
20 36 
15 63 
 
   
 
  
 
 
 
  
 
C C x 
 
  
 
C C x 
 
  
 
2 3 
6 5 
6 1 
4 5 
8 8 
C C x 
 
 
  
 
 
 
 
  
 
5 3 
1 6 
 
  
 
 
  
 
2 1 
0 7 
9 2 
3 6 
 
  
C C x 
 
 
 
 
  
 
  
 
 
  
 
0,0 0,0 
  
0,1 0,1 
  
 
  
 
1,0 1,0 
  
 
  
 
  
 
 
30 37 
42 39 
8 5 
4 4 
7 2 
1,1 1,1 
12/3/2014 8
ماتریس نهایی به صورت زیر خواهد بود : 
 
 
 
 
 
 
 
 
  
 
 
 
C C 
  
 
 
  
 
 
 
 
 
 
  
 
 
  
 
 
  
 
 
  
 
0,0 0,1 
  
  
 
 
 
  
 
 
26 4 
2 57 
30 25 
   
 
  
 
 
82 7 
33 52 
53 44 
82 55 
57 96 
  
C C 
1,0 1,1 
C 
12/3/2014 9
12/3/2014 10
12/3/2014 11

More Related Content

Viewers also liked

Java in the Past, Java in the Future
Java in the Past, Java in the FutureJava in the Past, Java in the Future
Java in the Past, Java in the Future
Yuichi Sakuraba
 
How to embrace those inevitable
How to embrace those inevitable How to embrace those inevitable
How to embrace those inevitable
University of Southern Queensland
 
Towards Greatness
Towards GreatnessTowards Greatness
Towards Greatness
Abhishek Shah
 
My Life #OutsideWork (Intuit Employees)
My Life #OutsideWork (Intuit Employees)My Life #OutsideWork (Intuit Employees)
My Life #OutsideWork (Intuit Employees)
Intuit Inc.
 
10 Easy Productive Things to Do to Increase Creativity
10 Easy Productive Things to Do to Increase Creativity10 Easy Productive Things to Do to Increase Creativity
10 Easy Productive Things to Do to Increase Creativity
Business Glory
 
Improve Productivity & Be Happier At Work
Improve Productivity & Be Happier At WorkImprove Productivity & Be Happier At Work
Improve Productivity & Be Happier At Work
Eagles Talent Speakers Bureau
 
Introduction to Go programming
Introduction to Go programmingIntroduction to Go programming
Introduction to Go programming
Exotel
 
10 Reasons Why Successful Leaders Are Keeping a Journal
10 Reasons Why Successful Leaders Are Keeping a Journal10 Reasons Why Successful Leaders Are Keeping a Journal
10 Reasons Why Successful Leaders Are Keeping a Journal
Louis-Xavier Lavallée
 
Top Tips For Working Smarter
Top Tips For Working SmarterTop Tips For Working Smarter
Top Tips For Working Smarter
InterQuest Group
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky
 
10 Practical Ways to Be More Efficient at Work
10 Practical Ways to Be More Efficient at Work10 Practical Ways to Be More Efficient at Work
10 Practical Ways to Be More Efficient at Work
Weekdone.com
 
Millennials & Money: One Generation, Many Goals & Values
Millennials & Money: One Generation, Many Goals & ValuesMillennials & Money: One Generation, Many Goals & Values
Millennials & Money: One Generation, Many Goals & Values
Edelman
 
Productivity Facts Every Employee Should Know
Productivity Facts Every Employee Should KnowProductivity Facts Every Employee Should Know
Productivity Facts Every Employee Should Know
Robert Half
 
How to Have Difficult Conversations
How to Have Difficult ConversationsHow to Have Difficult Conversations
How to Have Difficult Conversations
Mattan Griffel
 

Viewers also liked (14)

Java in the Past, Java in the Future
Java in the Past, Java in the FutureJava in the Past, Java in the Future
Java in the Past, Java in the Future
 
How to embrace those inevitable
How to embrace those inevitable How to embrace those inevitable
How to embrace those inevitable
 
Towards Greatness
Towards GreatnessTowards Greatness
Towards Greatness
 
My Life #OutsideWork (Intuit Employees)
My Life #OutsideWork (Intuit Employees)My Life #OutsideWork (Intuit Employees)
My Life #OutsideWork (Intuit Employees)
 
10 Easy Productive Things to Do to Increase Creativity
10 Easy Productive Things to Do to Increase Creativity10 Easy Productive Things to Do to Increase Creativity
10 Easy Productive Things to Do to Increase Creativity
 
Improve Productivity & Be Happier At Work
Improve Productivity & Be Happier At WorkImprove Productivity & Be Happier At Work
Improve Productivity & Be Happier At Work
 
Introduction to Go programming
Introduction to Go programmingIntroduction to Go programming
Introduction to Go programming
 
10 Reasons Why Successful Leaders Are Keeping a Journal
10 Reasons Why Successful Leaders Are Keeping a Journal10 Reasons Why Successful Leaders Are Keeping a Journal
10 Reasons Why Successful Leaders Are Keeping a Journal
 
Top Tips For Working Smarter
Top Tips For Working SmarterTop Tips For Working Smarter
Top Tips For Working Smarter
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
10 Practical Ways to Be More Efficient at Work
10 Practical Ways to Be More Efficient at Work10 Practical Ways to Be More Efficient at Work
10 Practical Ways to Be More Efficient at Work
 
Millennials & Money: One Generation, Many Goals & Values
Millennials & Money: One Generation, Many Goals & ValuesMillennials & Money: One Generation, Many Goals & Values
Millennials & Money: One Generation, Many Goals & Values
 
Productivity Facts Every Employee Should Know
Productivity Facts Every Employee Should KnowProductivity Facts Every Employee Should Know
Productivity Facts Every Employee Should Know
 
How to Have Difficult Conversations
How to Have Difficult ConversationsHow to Have Difficult Conversations
How to Have Difficult Conversations
 

Cannon's algorithm in matrices multiply

  • 1. Matric Multipling Cannon’s Method نام اعضای گروه: فاطمه جهانبخش نوشین صرافها مهگل شعبان نژاد شکوفه رضایی ترانه رنجبر محمدهادی کریمی محمدسعید تیموری مهدی توتونچی 12/3/2014 1
  • 2. یک روش موثر بر حافظه از روشهای ضرب ماتریس می باشد که به میزان Cannon روش حافظه نیاز دارد. O(n2) تعداد پردازه ها ( P ( : زیر ماتریس تقسیم می کنیم P در این روش ابتدا ماتریس ها را به B(0,0) B(0,1) B(0,2) B(0,3) B(1,0) B(1,1) B(1,2) B(1,3) B(2,0) B(2,1) B(2,2) B(2,3) B(3,0) B(3,1) B(3,2) B(3,3) A(0,0) A(0,1) A(0,2) A(0,3) A(1,0) A(1,1) A(1,2) A(1,3) A = B = A(2,0) A(2,1) A(2,2) A(2,3) A(3,0) A(3,1) A(3,2) A(3,3) P(0,0) P(0,1) P(1,0) P(1,1) Processor = 12/3/2014 2
  • 3. برای آغاز فرایند ضرب دو ماتریس، نیاز به چینش اولیه خاصی از زیرماتریس های افراز شده داریم: به جابجایی درایه های ماتریس ها دقت کنید! 12/3/2014 3
  • 4. جابجایی ها در چینش اولیه بصورت زیر انجام میگیرد: :(A) در ماتریس اول خانه به سمت چپ جابجا میشود. ) درایه ی خارج شده از سمت دیگر وارد سطر می شود. i ام به تعداد i سطر به عنوان مثال هیچ تغییری نخواهیم داشت. (i= -در سطر اول ( 0 به سمت چپ شیفت می دهیم. i= هرکدام از درایه های سطر به نعداد 1 (i= -در سطر دوم ( 1 به سمت چپ شیفت می دهیم. i= هرکدام از درایه های سطر به نعداد 2 (i= -در سطر سوم ( 2 :(B) در ماتریس دوم خانه به سمت بالا جابجا میشود. ) درایه ی خارج شده از سمت دیگر وارد ستون می شود. j ام به تعداد j سطر به عنوان مثال هیچ تغییری نخواهیم داشت. (j= -در ستون اول ( 0 به سمت بالا شیفت می دهیم. j= هرکدام از درایه های ستون به نعداد 1 (j= -در ستون دوم ( 1 به سمت بالا شیفت می دهیم. j= هرکدام از درایه های ستون به نعداد 2 (j= -در ستون سوم ( 2 12/3/2014 4
  • 5. روش را با ذکر یک مثال پیش می بریم:              2 1 5 3 0 7 1 6 9 2 4 4 3 6 7 2 A     6 1 2 3 4 5 6 5 1 9 8 8         4 0  8 5   B این ماتریس ها را به چهار زیرماتریس افراز میکنیم:              P P                        0,0 0,1                      5 3 1 6 4 4 7 2 2 1 0 7 9 2 3 6   P P 1,0 1,1 A                  P P                    0,0 0,1     2 3 6 5 8 8                    8 5 6 1 4 5 1 9 4 0   P P 1,0 1,1 B 12/3/2014 5
  • 6.                                                  5 3 1 6 9 2 3 6 2 1 0 7 4 4 7 2 A ماتریس های ما پس از جابجایی اول به شکل زیر خواهند بود:                         8 8 8 5                            2 3 6 5 6 1 4 5 1 9 4 0 B اکنون می توانیم اولین نتایج را از ضرب زیرماتریسهای متناظر بالا، استخراج کنیم:     16 7 28 35 16 25 40 22     20 36 15 63                       6 1 4 5 8 8      8 5      1 9 4 0          C x          C x C x         2 1 0 7         5 3 1 6 4 4 7 2    C x                                30 37 42 39 2 3 6 5 9 2 3 6 0,0 0,1 1,0 1,1 12/3/2014 6
  • 7. اکنون نوبت اجرای مرحله بعدی است : :(A) در ماتریس اول ام به تعداد یک خانه به سمت چپ جابجا میشود. ) درایه ی خارج شده از سمت دیگر وارد سطر می شود. i سطر :(B) در ماتریس دوم ام به تعداد یک خانه به سمت بالا جابجا میشود. ) درایه ی خارج شده از سمت دیگر وارد ستون می شود. j سطر به تفاوت این مرحله با مرحله اول دقت کنید! تعداد تکرار این مرحله : تعداد پردازه های ما( که با مرحله اول جمعاً : P ( . این مرحله را به تعداد بار تکرار میکنیم مرحله برای محاسبه نتیجه نهایی انجام می شود. 12/3/2014 7
  • 8. ماتریس های مفروض پس از اعمال مرحله دوم به شکل زیر خواهد بود:                                                  2 1 0 7 4 4 7 2 5 3 1 6 9 2 3 6 A                             2 3 6 5 8 8                       8 5 1 9 4 0 6 1 4 5 B اکنون می توانیم نتایج را از ضرب زیرماتریسهای متناظر بالا، استخراج کنیم:                     33 52 53 44       26 14 2 57 82 55 57 96     30 25 82  7                 17 45 25 9         10 11 42 35 62 19 42 33             0  12 40  46   16 7 28 35 16  25 40 22                            1 9 4 0              20 36 15 63              C C x     C C x     2 3 6 5 6 1 4 5 8 8 C C x            5 3 1 6         2 1 0 7 9 2 3 6    C C x               0,0 0,0   0,1 0,1       1,0 1,0           30 37 42 39 8 5 4 4 7 2 1,1 1,1 12/3/2014 8
  • 9. ماتریس نهایی به صورت زیر خواهد بود :              C C                            0,0 0,1            26 4 2 57 30 25         82 7 33 52 53 44 82 55 57 96   C C 1,0 1,1 C 12/3/2014 9