SIA: Swarm Intelligence Algorithms

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

SIA: Swarm Intelligence Algorithms

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

الگوریتم بهینه سازی ازدحام ذرات (PSO)

الگوریتم بهینه سازی ازدحام ذرات (PSO)

بهینه سازی ازدحام ذرات یک الگوریتم تصادفی و مبتنی بر جمعیت می باشد که در سال 1995 توسط جمیز کندی و راسل ابرهارت معرفی شده است. بعد از آن پژوهش های زیادی روی آن انجام شده است. محبوبیت آن به دلیل سادگی پیاده سازی آن و قابلیت حل مسائل متعددی از علوم مختلف و مهندسی شامل طراحی بهینه از سیستم های برق، انتخاب ویژگی در ارتباط فعالیت - ساختارگرا در سیستم های پژشکی، بهینه سازی عددی، کنترل صنعتی و مانند آن می باشد. PSO از اجتماع الهام گرفته شده است و از طریق اعضای کلونی سازماندهی شده فعالیت می کند.  بنابراین جزو الگوریتم های هوش جمعی محسوب می شود. از طرفی همان طور که در شکل 1 نشان داده شده است مولفه های اصلی در هوش جمعی جمعیت و همکاری است که منجر به ارتباط می شود و سپس تبادل اطلاعات و در نتیجه باعث جریان اطلاعاتی و خود ترتیبی می شود. که الگوریتم PSO از این مسئله مستثنی نمی باشد. الگوریتم PSO اشتراک زیادی با الگوریتم های تکاملی مانند الگوریتم ژنتیک دارند بنابراین در جنبه های زیادی در رفتار آنها مشترک می باشد.

  ادامه مطلب ...

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

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

 


این کتاب در سال 1397 توسط آقایان علی اکبر اله دانه و پیام کیافر در 994 صفحه نگارش شده است و در انتشارات ناقوس به چاپ رسیده است. این کتاب شامل دوازده فصل و دو پیوست الف و ب می باشد. در هر فصل از این کتاب علاوه بر پرداختن به مفاهیم فصل مربوطه به منظور تفهیم مفاهیم هر فصل چندین مثال عملی نیز راجع به برنامه نویسی کوائی آن آورده شده است. در این کتاب برای برنامه نویسی برای محاسبات موازی با GPU از پلتفرم کودا سی و سی پلاس پلاس استفاده شده است.

استفاده از توان محاسباتی رایانه‌ها در تحقیقات علمی و فعالیت‌های دانشگاهی، مراکز تحقیقاتی و شرکت‌های تجاری، کاربرد روزافزونی پیدا نموده است؛ ازاین‌رو نیاز به پردازش سریع‌تر افزایش یافته و به یک نیاز اساسی تبدیل شده است. سرعت کامپیوترهای شخصی کنونی نسبت به اجداد خود به‌طور سرسام‌آوری افزایش یافته است اما علیرغم وجود این موضوع باز جوابگوی نیازهای مطرح‌شده نیست. ازجمله عرصه‌هایی که احتیاج به کامپیوترهایی با سرعت پردازش بسیار بالا دارند می‌توان به برنامه‌های شبیه‌سازی در تحقیقات هسته‌ای، نانو فناوری محاسباتی، برنامه‌های پیش‌بینی وضعیت هوا، برنامه‌های فیلم‌سازی کامپیوتری، برنامه‌های ساخت انیمیشن حرفه‌ای و بسیاری از زمینه‌های مختلف دیگر که همگی به‌سرعت پردازش بسیار زیاد نیاز دارند تا در یک زمان مناسب به نتیجه برسند اشاره کرد. یک راه‌حل برای این معضل، استفاده از سوپرکامپیوترها است. درست است که سرعت پردازش سوپرکامپیوترها بسیار بالاتر از کامپیوترهای شخصی است اما استفاده از آن‌ها در همه موارد مقرون‌به‌صرفه نیست؛ ضمن آن‌که این فناوری در انحصار بعضی از کشورهای توسعه‌یافته است و سایر کشورها از دسترسی به این تجهیزات استراتژیک محروم هستند. راه‌حل دیگر در دستیابی به سرعت پردازش بسیار بالا، استفاده از روش پردازش موازی است. به بیان ساده در این روش چند پردازنده (در اینجا منظور پردازنده‏های گرافیکی) معمولی با همکاری یکدیگر به اجرای یک برنامه می‌پردازند که طی این همکاری، برنامه با سرعت بالاتری اجرا می‌شود. به عبارت دیگر، پردازش یا محاسبه‏ی موازی، شکلی از پردازش است که در آن دستورالعمل‌های بسیاری در یک زمان و به صورت هم‌زمان انجام می‌شوند و بر اساس این اصل اجرا می‌شوند که مسائل بزرگ را اغلب می‌توان به مسائل کوچک‌تر تقسیم نمود که سپس باهم و به‌صورت موازی اجرا شوند. کودا در نوامبر 2006 توسط انویدیا معرفی گردید، کودا یک پلتفرم محاسبات موازی همه‌منظوره و مدل برنامه‌نویسی است که رابط‌های برنامه‌نویسی را در اختیار برنامه‌نویسان قرار می‌دهد و به طراحان نرم‌افزار اجازه می‌دهد تا از توانایی‌های جی‌پی‌یو (GPU سرواژه Graphics Processing Unit بوده و به معنای واحد پردازش گرافیکی است) در جهت محاسبات همه‌منظوره روی واحد پردازش گرافیکی استفاده کنند. پلتفرم کودا یک لایه نرم‌افزاری است که دسترسی مستقیم به مجموعه دستورالعمل‌های مجازی جی‌پی‌یو و عناصر محاسبات موازی را می‌دهد. این پلتفرم به گونه‌ای طراحی شده است که با زبان‌های برنامه‌نویسی سی، سی‏پلاس‌پلاس، فرترن و متلب کار می‌کند. این قابلیت دسترسی، کار را برای متخصصان برنامه‌نویسی موازی به منظور استفاده از منابع جی‌پی‌یو به همان شکلی که از دایرکت‌ایکس (DirectX) یا اپن‌جی‌ال (OpenGL) استفاده می‌کنند، هموار کرده است. با استفاده از این معماری می‌توان برنامه خود را به زبان سی یا سی‏پلاس‏پلاس نوشته و سپس بر روی پردازنده گرافیکی اجرا کرده و از سرعت آن لذت برد.  ادامه مطلب ...