کتاب آموزش برنامهنویسی موازی با Cilk؛ از تقسیموحل تا اجرای بهینه روی چند هسته با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره آموزش برنامهنویسی موازی با Cilk؛ از تقسیموحل تا اجرای بهینه روی چند هسته
موضوع کلی: برنامهنویسی موازی و محاسبات همروند
موضوع میانی: الگوریتمهای تقسیموحل موازی با Cilk
📋 سرفصلهای دوره
- 1. مبانی محاسبات موازی و تفاوت آن با اجرای ترتیبی
- 2. معماری چندهستهای و ضرورت برنامهنویسی موازی
- 3. مفهوم الگوریتمهای تقسیموحل
- 4. ساختار بازگشتی الگوریتمهای Divide and Conquer
- 5. مناسبترین مسائل برای موازیسازی با تقسیموحل
- 6. معرفی Cilk و مدل برنامهنویسی آن
- 7. ساختار یک برنامه Cilk
- 8. تابعهای Cilk و الگوی اجرای موازی
- 9. استفاده از cilk_spawn برای ایجاد کار موازی
- 10. استفاده از cilk_sync برای همگامسازی محاسبات
- 11. مفهوم Cilk Procedure و محاسبات فرزند
- 12. تبدیل الگوریتم ترتیبی به الگوریتم Cilk
- 13. پیادهسازی Merge Sort موازی با Cilk
- 14. پیادهسازی Quick Sort موازی با Cilk
- 15. پیادهسازی جستوجوی بازگشتی موازی
- 16. پیادهسازی محاسبات روی درختها با Cilk
- 17. پیادهسازی ضرب ماتریس با رویکرد تقسیموحل
- 18. موازیسازی الگوریتمهای بازگشتی روی آرایهها
- 19. مدل Fork-Join در برنامههای Cilk
- 20. مدیریت وابستگی میان محاسبات موازی
- 21. نقش Cilk Runtime در زمانبندی وظایف
- 22. مفهوم Work در الگوریتمهای موازی
- 23. مفهوم Span و Critical Path
- 24. تحلیل Work و Span در الگوریتمهای Divide and Conquer
- 25. محاسبه موازیسازی بالقوه از روی Work و Span
- 26. قانون Work-First در طراحی زمانبندی Cilk
- 27. Work Stealing و زمانبندی کارها
- 28. نحوه توزیع وظایف میان پردازندهها
- 29. تحلیل سربار ایجاد و زمانبندی وظایف
- 30. انتخاب اندازه مناسب وظیفه در الگوریتمهای بازگشتی
- 31. کنترل عمق موازیسازی در الگوریتمهای Cilk
- 32. استفاده از Cutoff برای کاهش سربار
- 33. ترکیب اجرای ترتیبی و موازی در الگوریتمهای Divide and Conquer
- 34. موازیسازی سلسلهمراتبی و تو در تو
- 35. مدیریت حافظه در برنامههای موازی Cilk
- 36. اشتراک دادهها میان وظایف موازی
- 37. خطر Race Condition در محاسبات Cilk
- 38. تشخیص و جلوگیری از Data Race
- 39. محدودیتهای دسترسی همزمان به دادهها
- 40. همگامسازی صحیح برای حفظ درستی محاسبات
- 41. طراحی الگوریتمهای Deterministic در محیط موازی
- 42. مقایسه اجرای ترتیبی و موازی از نظر پیچیدگی
- 43. تحلیل زمان اجرای الگوریتمهای Cilk
- 44. اندازهگیری Speedup در اجرای چندهستهای
- 45. محاسبه Parallelism و محدودیتهای آن
- 46. تأثیر تعداد هستهها بر کارایی برنامه
- 47. مقیاسپذیری الگوریتمهای موازی
- 48. تحلیل Bottleneck در برنامههای Cilk
- 49. تشخیص زمانی که موازیسازی سودی ندارد
- 50. بهینهسازی Locality و دسترسی به حافظه
- 51. تأثیر Cache بر عملکرد الگوریتمهای Divide and Conquer
- 52. کاهش False Sharing در محاسبات موازی
- 53. بهینهسازی Granularity وظایف
- 54. پروفایلگیری و اندازهگیری عملکرد برنامههای Cilk
- 55. طراحی Benchmark برای الگوریتمهای موازی
- 56. مقایسه چند راهبرد برای موازیسازی یک مسئله
- 57. اشتباهات رایج در پیادهسازی الگوریتمهای Cilk
- 58. اشتباهات رایج در استفاده از cilk_spawn و cilk_sync
- 59. اشکالزدایی برنامههای موازی و مشکلات زمانبندی
- 60. آزمون صحت الگوریتمهای موازی
- 61. طراحی الگوریتمهای Divide and Conquer مقاوم در برابر خطاهای همزمانی
- 62. پیادهسازی الگوریتمهای پیچیدهتر با چند سطح موازیسازی
- 63. ترکیب چند الگوی موازی در یک برنامه Cilk
- 64. تحلیل نهایی کارایی و مقیاسپذیری برنامههای Cilk
- 65. طراحی یک پروژه کامل Divide and Conquer موازی با Cilk
تگها:
C++
Cilk
Cilk programming
concurrent programming
multi core programming
Parallel Computing
parallel programming
Work Stealing
الگوریتم Divide and Conquer
الگوریتم تقسیم و حل
الگوریتم های موازی
برنامه نویسی موازی
بهینه سازی الگوریتم
پردازش چند هسته ای
محاسبات موازی
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.