نام پژوهشگر: علی اللهویردی‌زاده

بهره مندی از قدرت پردازش gpu در فرآیندهای محاسباتی
پایان نامه وزارت علوم، تحقیقات و فناوری - دانشگاه تبریز - دانشکده برق و کامپیوتر 1393
  علی اللهویردی زاده   مینا زلفی لیقوان

با توجه به اینکه در سال¬های اخیر پردازنده¬های چند هسته¬ای و gpu های چند هسته¬ای به عنوان ابزار مقرون به صرفه¬ای برای استفاده در سیستم¬های مختلف مناسب بوده¬اند، امروزه کامپیوتر¬های رو میزی، لپ¬تاپ¬ها و ابر رایانه¬ها و محیط¬های ابری که شامل پردازنده¬های چند هسته¬ای cpu و gpu می¬باشند بسیار رایج هستند. در نتیجه ارائه¬ی سیستم عامل¬هایی برای محاسبات که بر روی cpu و gpu اجرا شوند مورد توجه بسیار زیادی است. هدف از ارائه¬ی این تحقیق نیز ارائه¬ی روشی جهت استفاده¬ی همزمان از قدرت پردازشی پردازنده¬های cpu و gpu است به طوری که بتوان از حداکثر توانایی سیستم در اختیار استفاده نمود. همانطور که وارد حوزه محاسبات gpu می¬شویم، برنامه های کاربردی ذاتا موازی به طور فزآینده¬ای از توانایی فراوان محاسبات موازی gpu برای رسیدن به کارایی و بازدهی بالاتر استفاده می¬کنند. برنامه¬های کاربردی که قبلا به علت زمان بالای اجرای آنها نامناسب بودند امروزه توسط محاسبات gpu قابل انجام هستند. در سال¬های اخیر تلاش¬های قابل توجهی در جهت موازی سازی الگوریتم¬ها و اجرای موازی فرایندهای محاسباتی انجام شده است و هر یک از شرکت¬های بزرگ و مشهور، اقداماتی در جهت موازی¬ کردن اجرای دستورات و الگوریتم¬ها انجام داده¬اند تا بتوانند زمان اجرای فرآیندهای محاسباتی را کاهش دهند که در این بین، شرکت nvidia پا را از مرزها فراتر گذاشته و راه-حلی برای اجرای موازی دستورات با بهره¬مندی از قدرت پردازش gpu ابداع نموده است. شرکت nvidia با ایجاد پلت فرم cuda(compute unified device architecture ) و طراحی gpu های جدید خود که قابلیت پردازش چندین هزار دستور در واحد زمان را دارد، راهکار جدیدی برای اجرای موازی الگوریتم¬ها را فراهم نموده است. gpu برای عملیات بسیار موازی طراحی شده در حالی که یک cpu برنامه¬ها را بصورت سریال انجام می¬دهد. به همین دلیل gpu ها واحد محاسبه¬گر موازی با ترانزیستورهای تعداد بالا را دارند در حالیکه cpu واحد پردازشگر کمتری نسبت به gpu را دارد. لذا با بهره¬گیری از قدرت پردازش gpu و cpu به طور همزمان می¬توان سرعت اجرا را بسیار بالا برد. در سال¬های اخیر پلت فرم cuda پیشرفت قابل توجهی در جهت پیاده¬سازی¬ها ایفا نموده که در این بین می¬توان به زمینه¬های پزشکی، نظامی و نجومی اشاره کرد. چالشی که در این راستا در این پژوهش انجام شده اجرای چند الگوریتم محاسباتی با بهره¬مندی از قدرت پردازش gpu و سپس cpu می¬باشد. در ادامه زمان¬های بدست آمده از اجرای gpu با زمان¬های بدست آمده از اجرای cpu مقایسه شده است. در این پژوهش ابتدا روشهای قبلی که از gpu برای فرآیندهای محاسباتی استفاده شده است را مرور کرده و سپس چند نمونه از الگویتم های محاسباتی را توسط قدرت پردازش gpu پیاده¬سازی و اجرا می¬نماییم.