الگوریتم امروز

وبلاگ تخصصی الگوریتم

الگوریتم امروز

وبلاگ تخصصی الگوریتم

وبلاگ علمی و مخصوص مباحث الگوریتمی است.
نظر خصوصی نگذارید چون جواب نمی‌دهم نظر عمومی بگذارید بدون نام هم که باشد همانجا جواب می‌دهم.

بایگانی

ضرب ماتریسی موازی

جمعه, ۲ اسفند ۱۳۹۲، ۰۹:۳۴ ق.ظ

*ضرب ماتریس در بردار

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

* ضرب دو ماتریس

برای ضرب دو ماتریس هر سطر اولی باید در هر ستون دومی ضرب شود و می توانیم ماتریس دوم را به صورت n تا بردار در نظر بگیریم و همان روش ضرب ماتریس در بردار را روی آنها انجام دهیم.

* ضرب ماتریس و بردار با مدل حلقه

باید داده های تکراری را به دست بیاوریم. بردار به ازای هر سطر ماتریس یکبار استفاده می شود. در مدل آرایه خطی بردار یک بار دیده می شد، پس باید تاخیر ایجاد می کردیم تا همزمان به هم برسند. اما در مدل حلقه می توانیم با یک اندیس جا به جا کردن از هر پردازنده به پردازنده ی بعد این مشکل را حل کنیم. (چون داده دوباره بر می گردد و تا زمانی که درایه بردار به آن پردازنده برسد، درایه مناسب ماتریس هم به آن وارد می شود.)

* ضرب دو ماتریس در مدل حلقه

از ضرب ماتریس و بردار در حلقه استفاده می کنیم و هر ستون ماتریس دوم را مثل یک بردار می گیریم.

*کلا ایده ی اصلی این است که مقدار هر پردازنده (جواب) را بنویسیم و با توجه به آن سیستم را طراحی کنیم.

موافقین ۰ مخالفین ۰ ۹۲/۱۲/۰۲
سپیده آقاملائی

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی