25777: برنامه‌نویسی پیشرفته
نام درس: برنامه‌نویسی پیشرفته (Advanced Programming)
شماره درس: 25777
پیش‌نیاز(ها): 25754 (ساختار کامپیوتر و میکروپروسسور و آز)
هم‌نیاز(ها): -
تعداد واحد: 3
مقطع: کارشناسی
آخرین ویرایش: اردیبهشت 1398

توضیحات:
پردازنده‌های موازی علاوه بر کاربرد قدیمی خود یعنی سامانه‌های ابررایانه‌ای در بسیاری از سیستم‌های نهفته نیز کاربرد دارند: مانند ادوات مخابراتی، ماشین‌های هوشمند، تلفن‌های همراه و حتی ادوات پوشیدنی. مزیت استفاده از آن‌ها انرژی مصرفی کمتر بدون نیاز به طراحی مدار ASIC یا FPGA می‌باشد. در این درس با دنیای پردازش موازی آشنا می‌شوید. این درس شامل معماری داخلی این پردازنده‌ها، مدل‌های برنامه‌نویسی و الگوریتم‌های موازی می‌باشد.
 
سرفصل‌ها:
  • آشنایی:
    • زمینه‌های کاربرد سیستم‌های موازی
    • مدل‌های موازی‌سازی ILP و DLP و TLP
    • سیستم‌های سخت‌افزاری موازی
  • Task-level parallelism (TLP):
    • آشنایی کلی با Process management و Scheduling در OS
    • معماری‌های Cluster و Multicore
    • سخت‌افزار Shared-memory Multi-threading
    • برنامه‌نویسی Shared-memory Multi-threading
    • سخت‌افزار Distributed-memory Message-passing
    • نرم‌افزار Distributed-memory Message-passing
    • سیستم‌های مبتنی بر NoC
  • Data-level parallelism (DLP):
    • معماری GPGPU
    • مدل برنامه‌نویسی در CUDA
    • الگوریتم‌های پایه DLP
    • روش‌های بهینه‌سازی
  • آشنایی با مدل‌های برنامه‌نویسی سطح بالا

مراجع:
  • Pacheco, An Introduction to Parallel Programming, 2011
  • Nicholas Wilt, The CUDA Handbook, 2013
  • David Yuen, GPU Solutions to Multi-scale Problems in Science and Engineering, 2013


 
آخرین به‌روزرسانی: 20 / 3 / 1403