دوره آموزشی راهنمای کامل برنامهنویسی موازی و همزمان با سی پلاس پلاس
4 ساعت 4 دقیقهمتوسط2025-01-24
مدرسین

Barron Stone
Electrical Engineer
جزئیات دوره
برنامهنویسی موازی توانایی اجرای همزمان دستورات متعدد را در یک برنامه فعال میکند، توان پردازش کلی را افزایش میدهد و کلید نوشتن برنامههای سریعتر و کارآمدتر است. در این دوره، به همراه مربیان Barron و Olivia Chiu Stone، با اصول برنامهنویسی موازی و همزمان در C++ آشنا شوید و دانش پایهای که برای نوشتن کدهای کارآمدتر و با عملکرد بهتر نیاز دارید را بدست آورید. Barron و Olivia مفاهیمی مانند نخریزی و استثنای متقابل را به شیوهای سرگرمکننده و آموزنده توضیح میدهند و آنها را به فعالیتهای روزمرهای که در آشپزخانه انجام میدهید ربط میدهند. برای تثبیت این مفاهیم، آنها را با استفاده از C++ بهصورت عملی نمایش میدهند. هر درس کوتاه و عملی است که نظریه را با تکنیکهای عملی تقویت میکند. در پایان این دوره، شما آماده خواهید بود تا تأثیرات عملکردی تکنیکهای برنامهنویسی موازی و همزمان را تجزیه و تحلیل کنید، معایب و مزایا را ارزیابی کنید و الگوهای برنامهنویسی مناسب را برای بهینهسازی خروجی و کارایی برنامههای C++ خود اعمال کنید.
اهداف یادگیری دوره
یادگیری اصول برنامهنویسی موازی و همزمان در C++
آشنایی با مفاهیم نخریزی و استثنای متقابل
استفاده از تکنیکهای عملی برای بهبود کارایی و سرعت برنامهها
تجزیه و تحلیل تأثیرات عملکردی تکنیکهای موازی و همزمان
ارزیابی معایب و مزایای استفاده از برنامهنویسی موازی
اعمال الگوهای مناسب برای بهینهسازی برنامههای C++
اهداف یادگیری دوره
یادگیری اصول برنامهنویسی موازی و همزمان در C++
آشنایی با مفاهیم نخریزی و استثنای متقابل
استفاده از تکنیکهای عملی برای بهبود کارایی و سرعت برنامهها
تجزیه و تحلیل تأثیرات عملکردی تکنیکهای موازی و همزمان
ارزیابی معایب و مزایای استفاده از برنامهنویسی موازی
اعمال الگوهای مناسب برای بهینهسازی برنامههای C++
مهارت ها
C++Programming FoundationsProgramming LanguagesOpen SourceSoftware DevelopmentOne-Off
سرفصل ها
مقدمه
- اصول برنامه نویسی موازی را بیاموزید
- آنچه باید بدانید
- نصب کد Cygwin و Visual Studio
سختافزار محاسباتی موازی
- محاسبات ترتیبی در مقابل محاسبات موازی
- معماریهای محاسباتی موازی
- حافظه مشترک در مقابل حافظه توزیع شده
موضوعات و فرآیندها
- موضوع در مقابل فرآیند
- موضوع در مقابل فرآیند - نسخه ی نمایشی C++
- اجرای همزمان در مقابل اجرای موازی
- زمانبندی اجرا
- زمانبندی اجرا - دمو C++
- چرخه عمر نخ
- چرخه حیات نخ - نسخه ی نمایشی C++
- نخ جدا شده
- نخ جدا شده - دمو C++
طرد متقابل
- مسابقه داده
- مسابقه داده - دمو C++
- طرد متقابل
- محرومیت متقابل - نسخه ی نمایشی C++
- اجسام اتمی - دمو C++
قفل
- mutex بازگشتی
- mutex بازگشتی - دمو C++
- قفل را امتحان کنید
- قفل - دمو C++ را امتحان کنید
- موتکس مشترک
- mutex اشتراکی - نسخه ی نمایشی C++
سرزندگی
- بن بست
- بن بست - دمو C++
- قفل رها شده
- قفل رها شده - دمو C++
- گرسنگی
- Starvation - دمو C++
- Livelock
- Livelock - نسخه ی نمایشی C++
همگام سازی
- متغیر شرط
- متغیر شرط - دمو C++
- تولید کننده-مصرف کننده - دمو C++
- سمافور
- سمافور - دمو C++
موانع
- شرایط مسابقه
- شرایط مسابقه - دمو C++
- مانع
- مانع - نسخه ی نمایشی C++
- لچ - دمو C++
وظایف ناهمزمان
- نمودار محاسباتی
- استخر نخ
- Thread Pool - دمو C++
- آینده
- آینده - نسخه ی نمایشی C++
- تفرقه بینداز و غلبه کن
- Divide and Conquer - دمو C++
ارزیابی عملکرد موازی
- سرعت، تأخیر و توان عملیاتی
- قانون امدهل
- سرعت را اندازهگیری کنید
- اندازهگیری سرعت - نسخه ی نمایشی C++
طراحی برنامههای موازی
- پارتیشن بندی
- ارتباطات
- تراکم
- نقشه برداری
مشکلات چالش
- به چالشها خوش آمدید
- چالش - ضرب ماتریسی
- حل - ضرب ماتریسی
- چالش - ادغام مرتب سازی
- راه حل - مرتب سازی ادغام
- چالش - دانلود تصاویر
- راه حل - دانلود تصاویر
نتیجه گیری
- مراحل بعدی