You are not allowed to perform this action

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

Concurrent Programming

مقطع: تحصیلات تکمیلی گرایش: بازی‌های رایانه‌ای
نوع درس: نظری تعداد واحد: ۳
پیش‌نیاز: – هم‌نیاز: –

هدف کلی

در این درس، هدف پوشش مطالب مرتبط با اصول و مبانی برنامه‌نویسی همروند و نقش و اهمیت این مقوله در برنامه‌نویسی بازی‌های رایانه‌ای است. پس از اتمام این درس، انتظار می‌رود که دانشجویان، مفاهیم پایه‌ای درس برنامه‌نویسی همروند را یاد گرفته باشند و بتوانند الگوریتم‌های تصویرسازی مورد نیاز را در زیرساخت‌های موازی مرتبط (همانند پردازنده‌های گرافیکی) پیاده‌سازی نمایند.

سرفصل‌ها

  1. اصول و مفاهیم برنامه‌نویسی همروند
  2. برنامه‌نویسی موازی
  3. برنامه‌نویسی توزیع‌شده
  4. مدل‌های برنامه‌نویسی Reactive، رخدادمحور و مبتنی بر پیغام
  5. معماری و ساختار پردازنده‌های گرافیکی
  6. مدل برنامه‌نویسی CUDA در پردازنده‌های گرافیکی
  7. مدل چندریسمانی CUDA
  8. موازی‌سازی الگوریتم‌های تصویرسازی با استفاده از مدل برنامه‌نویسی CUDA و API‌های گرافیکی DirectX و OpenGL

ارزیابی پیشنهادی

  • تمرین‌ها و پروژه: ۳۰ درصد نمره
  • آزمون‌های میان‌ترم و پایانی: ۷۰ درصد نمره

منابع پیشنهادی

  1. Herlihy, Maurice, and Nir Shavit. The Art of Multiprocessor Programming, Revised Reprint. Elsevier, 2012.
  2. Raynal, Michel. Concurrent programming: algorithms, principles, and foundations. Springer-Verlag, 2013.
  3. Marlow, Simon. Parallel and Concurrent Programming in Haskell: Techniques for Multicore and Multithreaded Programming. O'Reilly Media, 2013.