You are not allowed to perform this action
رایانش چندهستهای
Multicore Computing
شماره درس: ۴۰۴۳۲ | تعداد واحد: ۳ |
مقطع: کارشناسی | نوع درس: نظری |
پیشنیاز: برنامهسازی پیشرفته، معماری کامپیوتر | همنیاز: – |
اهداف درس
هدف اصلی درس آشنایی با ساختار سیستمهای چندهستهای و پرهستهای و برنامهنویسی موازی برای این سیستمها است. به این منظور، ابتدا معماری کلی، مفاهیم اولیه و چالشهای موجود در سیستمهای چندهستهای و پرهستهای ارائه میگردد. در ادامه، ابزار و روشهای برنامهنویسی موازی روی چند بستر چندهستهای و پرهستهای معرفی میشود.
ریز مواد
- معرفی معماری سیستمهای چندهستهای و مدلهای برنامهنوسی موازی
- تاریخچه ظهور سیستمهای چندهستهای
- چالشهای برنامهنویسی کارا روی سیستمهای چندهستهای
- معرفی سطوح موازات در برنامهها
- تحلیل تسریع در سیستمهای چندهستهای همگون و ناهمگون
- ارائهی چند نمونه واقعی از سیستمهای چندهستهای
- چندپردازندهها با حافظه مشترک
- معرفی کلی معماری
- ارائهی مسئلهی 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) و نحوهی برنامهنویسی موازی براساس مدل تبادل پیام
ارزیابی
- تمرینهای نظری: ۳ نمره
- آزمونهای میانترم و پایانی: ۱۵ نمره
- آزمونکها: ۲ نمره
مراجع
- D. A. Patterson and J. L. Hennessy. Computer Architecture: A quantitative approach. Morgan Kaufmann, 2019.
- J. Sanders and E. Kandrot. CUDA by examples: An introduction to GPGPU programming. Addison-Wesley, 2011.
- D. B. Kirk and W. W. Hwu. Programming massively parallel processors: A hands-on approach. NVIDIA, 2010.
- M. McCool, A.D. Robison, and J. Reinders. Structured Parallel Programming. Elsevier, 2012.