ضرب ماتریسی موازی
*ضرب ماتریس در بردار
برای ضرب ماتریس در بردار، باید هر سطر آن را در بردار ضرب کنیم. جواب ما یک بردار n بیتی است پس می توانیم با n پردازنده آن را به دست بیاوریم (در هر پردازنده یک درایه ی آن را نگهداری کنیم). مثل قبل عمل جمع ساده است؛ اعمال ضرب لازم برای هر درایه، ضرب هر عدد از بردار در هر عدد از سطر j-ام ماتریس است، (به همان ترتیب خودشان). پس به پردازنده j-ام بردار و سطر j-ام ماتریس وارد می شوند. (مستقل از بقیه پردازنده ها). شکل زیر این کار را نشان می دهد:
* ضرب دو ماتریس
برای ضرب دو ماتریس هر سطر اولی باید در هر ستون دومی ضرب شود و می توانیم ماتریس دوم را به صورت n تا بردار در نظر بگیریم و همان روش ضرب ماتریس در بردار را روی آنها انجام دهیم.
* ضرب ماتریس و بردار با مدل حلقه
باید داده های تکراری را به دست بیاوریم. بردار به ازای هر سطر ماتریس یکبار استفاده می شود. در مدل آرایه خطی بردار یک بار دیده می شد، پس باید تاخیر ایجاد می کردیم تا همزمان به هم برسند. اما در مدل حلقه می توانیم با یک اندیس جا به جا کردن از هر پردازنده به پردازنده ی بعد این مشکل را حل کنیم. (چون داده دوباره بر می گردد و تا زمانی که درایه بردار به آن پردازنده برسد، درایه مناسب ماتریس هم به آن وارد می شود.)
* ضرب دو ماتریس در مدل حلقه
از ضرب ماتریس و بردار در حلقه استفاده می کنیم و هر ستون ماتریس دوم را مثل یک بردار می گیریم.
*کلا ایده ی اصلی این است که مقدار هر پردازنده (جواب) را بنویسیم و با توجه به آن سیستم را طراحی کنیم.