پیش گفتار مولف 7
مقدمه 9
فصل اول: چرا به برنامهنویسی موازی نیاز داریم؟ 11
1-1. چرا هر کامپیوتری یک کامپیوتر موازی است؟ 11
1-2. انواع موازیسازی 12
1-3. محاسبات زمانبر قابل تسریع 14
فصل دوم: بررسی سیستمهای موازی 17
2-1. تاریخچه محاسبات، سیستمها و برنامهنویسی موازی 17
2-2. مدلسازی محاسبات موازی 19
2-3. مدلهای چند پردازندهای 21
2-3-1. ماشین دسترسی تصادفی موازی 22
2-3-2. ماشین با حافظه محلی (LMM) 27
2-3-2. ماشین حافظه ماژولی (MMM) 28
2-4. تأثیرات ارتباطات 29
2-4-1. شبکههای اتصال داخلی 29
2-4-2. خواص اساسی شبکههای اتصال داخلی 30
2-4-3. دستهبندی شبکههای اتصال داخلی 35
2-4-4. توپولوژیهای شبکههای اتصال داخلی 38
2-5. پیچیدگی محاسبات موازی 47
2-5-1. نمونه مسائل و اندازه آنها 47
2-5-2. تعداد واحدهای پردازش برحسب اندازه نمونهها 48
2-5-3. کلاس NC از مسائل قابل موازیسازی بصورت مؤثر 50
2-6. قوانین و قضایای مربوط به محاسبات موازی 53
2-6-1. قضیه برنت 53
2-6-2. قانون امدهال 54
فصل سوم: برنامهنویسی با پردازندههای چندهستهای و حافظه مشترک با استفاده از OpenMP 63
3-1. مدل برنامهنویسی حافظه مشترک 63
3-2. استفاده OpenMP برای نوشتن برنامههای چندنخی 66
3-2-1. کامپایل و اجرای یک برنامه OpenMP 67
3-2-2. نظارت برنامه OpenMP 68
3-3. موازیسازی حلقهها 70
3-3-1. موازیسازی حلقهها با تکرارهای مستقل 70
3-3-2. ترکیب نتایج تکرارهای موازی 79
3-3-3. توزیع تکرارها بین نخها 89
3-3-4. جزئیات حلقههای موازی و کاهشها 93
3-4. وظایف موازی 95
3-4-1. اجرای وظایف مستقل بصورت موازی 95
3-4-2. ترکیب نتایج وظایف موازی 99
3-5. توضیحات مفید OpenMP 101
فصل چهارم: پردازشهای MPI و پیامرسانی 109
4-1. کامپیوترهای با حافظه توزیع با امکان اجرای موازی 109
4-2. از نگاه برنامهنویس 110
4-3. واسط ارسال پیام 111
4-3-1. عبارت عملیات MPI 115
4-3-2. انواع داده MPI 116
4-3-3. مدیریت خطا در MPI 118
4-3-4. آماده کردن کامپیوتر برای استفاده از MPI 119
4-3-5. اجرا و پیکربندی پردازشهای MPI 119
4-4. عملیات MPI اساسی 122
4-5. ارتباطات پردازش به پردازش 123
4-5-1. اندازهگیری عملکردها 128
4-6. ارتباط MPI تجمعی 132
4-6-1. آمایش تجمعی دادهها در MPI 134
4-7. همپوشانی بین محاسبات و ارتباطات 140
4-7-1. مودهای ارتباطی 140
4-7-2. منابع بنبستها 144
4-7-3. چند مشخصه فرعی ارسال پیام 149
4-7-4. ارتباط دهندههای MPI 151
4-8. برنامههای MPI شما چقدر مؤثر و کاراست؟ 157
4-9. توضیحات مفید MPI 158
فصل پنجم: OpenCL برای پردازندههای گرافیکی موازی تعداد زیاد 160
5-1. آناتومی یک GPU 160
5-1-1. معرفی تکامل CPU 162
5-1-2. یک GPU مدرن 166
5-1-3. برنامهریزی نخها در واحدهای محاسبات 167
5-1-4. سلسله مراتب حافظه در GPU 170
5-2. دیدگاه برنامهنویس 173
5-2-1. سیستم نامتجانس 174
5-2-2. مدل اجرا 174
5-2-3. مدل حافظه 176
5-3. برنامهنویسی در OpenCL 177
5-3-1. جمع بردارهای طولانی دلخواه 198
5-3-2. ضرب داخلی در OpenCL 200
5-3-3. ضرب داخلی در OpenCL با استفاده از حافظه محلی 205
5-3-4. ضرب ماتریس ساده در OpenCL 211
5-3-5. ضرب ماتریسی با روش کاشی در OpenCL 215
5-4. توضیحات مفید OpenCL 221
فصل ششم: کاربرد مهندسی - محاسبه موازی عدد 232
فصل هفتم: کاربرد مهندسی - حل موازی معادله حرارت یک بُعدی 244
فصل هشتم: کاربرد مهندسی- پیادهسازی موازی الگوریتم حذف درز 257
8-1. محاسبه انرژی 259
8-2. شناسایی درز 261
8-3. برچسبگذاری و حذف درز 264
8-4. حذف درز در GPU 265
8-4-1. حذف درز روی CPU 266
8-4-2. حذف درز در OpenCL 270
نکات نهایی و دورنماها 279
ضمیمه: نکاتی برای تبدیل کامپیوتر شما به ماشین موازی 281
مراجع 289
دسته بندی موضوعی | موضوع فرعی |
فنی و مهندسی |
مهندسی كامپيوتر
|