چکیده
در این طرح تحقیقاتی مراحل تبدیل اتوماتیک کد ترتیبی به کد موازی مشخص شده است. وابستگی بین جملات مغایر با اجرای موازی بخشهای در برگیرنده جملات وابسته با یکدیگر است. وابستگیها در قالب دو نوع وابستگی داده ای و کنترلی قابل تشخیص و در قالب گراف وظایف مدل می شود. مساله دانه بندی وظایف و زمانبندی آنها برای اجرای موازی است. باید بتوان وظایف را آنچنان در بین پردازنده ها توزیع نمود که کلیه پردازنده ها بطور همزمان فعال و با حداقل نیاز به نتایج محاسبات در سایر پردازنده ها فعال باشند. در این راستا مقوله های زمانبندی گراف وظایف بسیار مطرح می باشد.
نوع دیگر وابستگی در بین تکرارهای حلقه ها مطرح است. وابستگی بین تکرارهای حلقه می تواند منجر به حل دستگاه نا معادلات خطی و غیر خطی شود. به علت زیاد بودن تعداد وابستگیها می توان مجموعه پایه از بردارهای وابستگی در بین تکرارهای حلقه را مشخص نمود. به این ترتیب فضای یکنواخت وابستگی بین تکرارهای حلقه حاصل می گردد. دانه بندی کاشی ها و تعیین کاشی هایی که به صورت موازی قابل اجرا هستند مساله دیگری است که می بایست مورد بررسی قرار گیرد. مساله زمانبندی و توزیع تکرارهای حلقه در بین پردازنده ها خود نکته قابل توجه دیگری می باشد.
فهرست مطالب
1. سوپر کامپیوترها
بر طبق قانون Moore در هر 10 سال توان عملیاتی سوپر کامپیوترها دو برابر می شود. در شکل ذیل برای نمونه روند افزایش کارایی سوپر کامپیوترها در طی 50 سال مشخص شده است.
البته امروزه با پیشرفت فنآوریهایی از قبیل پردازش تصویر و سیستمهای چند رسانه ای نیاز بیشتری به سیستمها با توان پردازش و کارایی بالا بوجود آمده است. به موازات افزایش سرعت اجرایی پردازنده ها، می بایست زمان لازم برای دسترسی نیز کاهش داده شود. برای این منظور حافظه های نهان در چند سطح دسترسی مطرح شده اند. با افزایش توان پردازشی، کار برنامه سازی برای سیستمهای موازی نیز مشکلتر می شود. برنامه نویس می بایست بطور دستی برنامه های خود را تبدیل به کد موازی نمایند. فلسفه وجود کامپایلرهای موازی کننده به حداقل رساندن میزان تبدیلهای دستی است.
2. خط لوله یکی از کاربردهای موازی سازی برای افزایش کارایی، بکارگیری خط لوله می باشد. برای نمونه در شکل ذیل خط لوله در ماشینهای IBM 7094 مشخص شده است. در این نوع کامپیوترها هر دستورالعملی در دو مرحله انجام می شد. مرحله اول در ارتباط با بار کردن آوردن دستورالعمل از حافظه به درون پردازنده و مرحله دوم اجرا کردن دستورالعمل می باشد. چون دستورالعملها را می توان از دیتا بانکهای مختلف حافظه بطور همزمان دسترسی نمود، می توان این دو مرحله آوردن و اجرا کردن را با یکدیگر همگام نمود. بعد از آن در IBM 370 خط لوله به صورت چهار مرحله ای تبدیل شد.
خط لوله شامل مراحل ذیل است:
- instruction fetch (IF),
- instruction decode (ID)
- execute (EX) and
- memory access (MEM) and
- write back (WB)
در ماشینهای ریسک دستورالعملها به سه دسته تقسیم می شوند:
1- عملیات ثبات به ثبات واحد محاسباتی: اینها شامل عملیاتی محاسباتی مثل جمع و تفریق می باشند.
2-عملیات بر روی حافظه : نیاز به دسترسی به حافظه در ضمن اجرای عملیات.
3- عملیات پرش : بر اساس یک شرط موجب تغییر آدرس برای آوردن دستورالعمل بعدی می شوند.
چنانچه دستورالعمل از نوع اول باشد و در داخل واحد محاسبات انجام گیرد با مرحله اجرا خاتمه می یابد. چنانچه دستورالعمل نیاز به دسترسی به حافظه داشته باشد، دسترسی به حافظه در مرحله MEM انجام می گیرد. چنانچه داده مورد نظر درون حافظه نهان نباشد، در این صورت اجرای دستورالعمل تا آوردن داده از حافظه متوقف می شود. چنانچه دستورالعمل پرش شرطی باشد، در مرحله اجرا یا EX ثبات مشخص شده در دستورالعمل پرش با صفر مقایسه می شود. در صورت صفر بودن، مقدار شمارنده آدرس مساوی با آدرس مشخص شده در دستورالعمل می گردد. مرحله WB یا Write Backبرای بازنویسی مقادیر در ثباتها است.
دانلود پروژه موازی سازی اتوماتیک برنامه های ترتیبی در 104 صفحه در قالب word