SIA: Swarm Intelligence Algorithms

الگوریتم های هوش جمعی

SIA: Swarm Intelligence Algorithms

الگوریتم های هوش جمعی

کتاب: پردازش موازی و برنامه نویسی با GPU

کتاب: پردازش موازی و برنامه نویسی با GPU

این کتاب در سال 1396 توسط دکتر  اسدالله شاه بهرامی عضو هیات علمی گروه مهندسی کامپیوتر دانشگاه گیلان و خانم مهندس صدیقه جم نگارش شده است. کتاب حاضر در انشارات دانشگاه گیلان و  نص به چاپ رسیده است.

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

به همین دلیل در این کتاب به این موارد پرداخته شده است. به ویژه، از میان انواع مدل های برنامه نویسی موازی، مدل CUDA که توسط شرکت NVIDIA بر روی پلتفرم واحد پرداشگر گرافیکی (GPU) پیاده سازی شده است، در بخش دوم کتاب  معرفی شده و مثال های از آن آورده شده است. (شکل 1)  

شکل 1: تصویر جلد کتاب پردازش موازی و برنامه نویسی با GPU

 

این کتاب در دو بخش با عناوین، بخش اول : مفاهیم موازی سازی، اصول و تکنیک ها و بخش دوم : اصول GPU و برنامه نویسی بر روی آن تنظیم شده است. همچنین این کتاب 428 صفحه ای شامل ده فصل زیر می باشد:

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

فصل دوم: پردازش موازی، این فصل چگونگی پیدایش پردازش موازی را مورد بررسی قرار می دهد و به این سوال پاسخ می دهد که هدف از موازی سازی چیست؟ و چه نوع الگوریتم هایی را می توان موازی سازی کرد.

فصل سوم: نحوه موازی سازی الگوریتم ها، در این فصل انواع روش های موازی سازی شرح داده شده است. همچنین به چگونگی موازی سازی الگوریتم های سریال و تکنیک های بهینه سازی کامپایلر پرداخته می شود.

فصل چهارم: مدل های برنامه نویسی موازی، در این فصل انواع مدل های برنامه نویسی موازی تشریح می شود و برای درک بهتر آنها، چگونگی موازی سازی الگوریتم ضرب ماتریس ها در هر کدام از این مدل ها بیان می شود.

فصل پنجم: معماری GPU، این فصل به شرح جزئیات سخت افزار و معماری دستگاه های CUDA می پردازد.

فصل ششم: مفهوم موازی سازی از منظر GPU، این فصل مقدمه ای بر مفاهیم برنامه نویسی موازی از جمله تفاوت میان برنامه های سریال و موازی و چگونگی حل مسائل به روش های متفاوت است.

فصل هفتم: راه اندازی CUDA، در این فصل فرآیند نصب CUDA SDK تحت سیستم عامل ویندوز شرح داده شده است.

فصل هشتم: آشنایی با مفاهیم شبکه ها، بلاک ها و نخ ها، این فصل به شرح جزئیات مدل نخ بندی CUDA پرداخته می شود.

فصل نهم: مدیریت حافظه توسط CUDA، درک تفاوت انواع حافظه و چگونگی به کارگیری آنها توسط کودا به عنوان بزرگترین عامل تاثیر گذار بر روی کارائی، موضوع این فصل می باشد.

فصل دهم: برنامه نویسی CUDA c/C++، در این فصل به چگونگی همکاری بین CPU,GPU پیرامون مثال های مختلف پرداخته شده است.

 [1]. اسدالله شاه بهرامی،صدیقه جم، پردازش موازی و برنامه نویسی با GPU، دانشگاه گیلان و انتشارات نص، 1396.