مقدمه ای بر محاسبات موازی از الگوریتم نویسی تا برنامه نویسی در پلتفرم های بروز
نویسنده:
سید عبدالرضا ترابی
مترجم:
سال نشر:
1401
صفحه:
294
نوبت چاپ:
1

پیش گفتار مولف 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

 


تمامی حقوق این سایت برای سازمان ترویج مطالعه و نشر جهاد دانشگاهی محفوظ است. نقل مطالب با ذکر منبع بلامانع است.
Copyright ©2024 Iranian Students Booking Agency. All rights reserved