پرش به مطلب اصلی

رایانش چند‌هسته‌ای

Multicore Computing


نام درس:رایانش چند‌هسته‌ایمقطع:کارشناسی
پیش‌نیاز:برنامه‌سازی پیشرفته ،اصول سیستم‌های کامپیوتریگروه درس:تخصصی اختیاری
هم‌نیاز:نداردنوع درس:نظری
تعداد واحد:3تعداد ساعت:48
حل تمرین:دارد

سرفصل درس:

معرفی معماری سیستم‌های چندهسته‌ای و مدل‌های برنامه‌نوسی موازی

تاریخچه ظهور سیستم‌های چند‌هسته‌ای، چالش‌های برنامه‌نویسی کارا روی سیستم‌های چند‌هسته‌ای، معرفی سطوح موازات در برنامه‌ها، تحلیل تسریع در سیستم‌های چند‌هسته‌ای همگون و ناهمگون، ارائه‌ی‌ چند نمونه واقعی از سیستم‌های چند‌هسته‌ای

چند‌پردازنده‌ها با حافظه مشترک،

معرفی کلی معماری، ارائه‌ی مسئله‌ی Cache Coherence و راه‌حل‌ها، معرفی اجمالی مدل برنامه‌نویسی و نحوه همگام‌سازی نخ‌ها،‌ نحوه برخورد با ناحیه‌های بحرانی، ایده‌های کلی در بهبود برنامه‌های موازی

الگو‌های رایج موازی‌سازی محاسبات و مدیریت داده

الگوهای محاسباتی موازی: Map, Reduction, Scan, Stencil, Recurrence, Fork-Join

الگوهای موازی مدیریت داده: Gather, Scatter, Pack, Geometric Decomposition & Partitions

برنامه‌نویسی موازی عمومی در سیستم‌های چند‌هسته ای

برنامه‌نویسی با Pthreads،‌ برنامه‌نویسی با OpenMP

برنامه‌نوسی موازی در سیستم‌های برداری

معرفی کلی سیستم‌های برداری و آرایه‌ای،‌ معرفی ISA مخصوص پردازنده Intel برای محاسبات SIMD،‌ معرفی معماری و نحوه برنامه‌نویسی پردازنده CELL BE

برنامه‌نویسی موازی در پردازنده‌های گرافیکی عام‌منظوره

معرفی جامع معماری پردازنده‌های گرافیکی، معرفی معماری چند نمونه واقعی از پردازنده‌های گرافیکی شرکت NVIDIA

برنامه‌نویسی با زبان CUDA، معرفی Profiler شرکت NVIDIA

معرفی اجمالی برنامه‌نویسی موازی در سیستم‌های توزیع‌شده

معرفی کتابخانه Message Passing Interface (MPI) و نحوه‌ی برنامه‌نویسی موازی براساس مدل تبادل پیام

منابع:

  • Patterson, D. A., & Hennessy, J. L. (2019). Computer Architecture: A Quantitative Approach. Morgan Kaufmann.

  • Sanders, J., & Kandrot, E. (2011). CUDA by Examples: An Introduction to GPU Programming. Addison-Wesley.

  • Kirk, D. B., & Hwu, W. W. (2010). Programming Massively Parallel Processors: A Hands-On Approach. NVIDIA.

  • McCool, M., Robison, A. D., & Reinders, J. (2012). Structured Parallel Programming. Elsevier.