بهینه‌سازی مسئله تخصیص نرخ کاربران در سرویس‌دهنده‌های ابری بازی‌های رایانه‌ای بر اساس مکانیزم قیمت‌گذاری و قابلیت‌های فنی کاربران

0
80
«دریچه» در نظر دارد در ساختار جدید خود به معرفی پایان‌نامه‌های مقاطع کارشناسی ارشد و دکترای دانشگاه‌های مختلف که به تازگی در حوزه بازی‌های دیجیتال به رشته تحریر درآمده است، بپردازد. در این زمینه اگر از پایان‌نامه خود دفاع کرده‌اید و مایل هستید شبکه پژوهشگران بازی‌های دیجیتال با موضوع کار علمی شما آشنا شوند، با ایمیل یا آیدی زیر در ارتباط باشید:
info@direc.ir
 Game_Research@
با پیشرفت‌های اخیر در تکنولوژی رایانش ابری، ایده بازی کردن بر بستر ابر از رویا به واقعیت تبدیل شده است. بازی‌های رایانه‌ای، یکی از سرویس‌هایی هستند که بیشترین میزان منابع را مصرف کرده و اصطلاحاً به عنوان قاتل منابع دیتاسنتر در محاسبات ابری شناخته می‌شوند. بازی ابری (cloud gaming) یا بازی بر اساس تقاضا، نوعی از بازی‌های آنلاین است که اجازه می­دهد محتوی بازی‌ها بر اساس تقاضا بر روی دستگاه‌های غیرتخصصی مثل موبایل، تبلت، تلویزیون هوشمند و غیره، جریان­سازی شود. در محاسبات ابری، سرورهای قدرتمند عملیات رندر، ضبط و فشرده‌سازی را انجام می‌دهند و فریم‌های مربوط به صحنه‌های بازی را به دستگاه‌های کاربران (thin clients) که دارای امکانات رایانشی محدودی هستند انتقال می‌دهند. دستورات و ورودی‌هایی که گیمرها در طول بازی صادر می‌کنند به‌صورت زمان واقعی به سرورهای ابری ارسال می‌گردد، آن‌چنان‌که شواهد سال‌های اخیر نشان می‌دهد بیشترین میزان رشد در صنعت بازی‌های رایانه‌ای مربوط به سرویس‌های cloud gaming هست. بااین‌حال، چالش‌های مهمی نیز وجود دارد. کاربران توقع دارند سرویس‌دهنده‌های ابری بازی، برای آن‌ها کیفیت تجربه (QoE) مناسبی را فراهم آورند. درواقع QoE قابل‌قبول و رضایت‌بخش برای یک بازی، مستلزم داشتن سخت‌افزارهای به‌­روز و جدید است که ممکن است هزینه‌های زیادی را به کاربر تحمیل کند؛ اما درعین‌حال استفاده از سخت‌افزارهای ضعیف، موجب یک تجربه‌ بازی ضعیف‌تر و ناخوشایند می‌شود که ممکن است علاقه‌مندی گیمرها را به سرویس بازی‌های ابری کاهش دهد. مهم‌ترین مصادیق QOE نزد کاربران، نمایش صحنه‌های بازی باکیفیت بالا، پهنای باند و نیز سرعت پاسخگویی از سوی سرور ابری است. مسئله بعدی، مقیاس‌پذیر بودن خدمات بازی بر بستر ابر است، به این معنا که با افزایش تعداد کاربران، QoE کاربران قبلی دچار کاهش شدید نشود. همان‌طور که نتایج مالی شرکت Onlive نشان داده ارائه دادن یک سرویس بازی که ازلحاظ تجاری قابل بقا و قابل‌عرضه باشد یک مسئله مشکل و پیچیده است. چالش اصلی برای تأمین‌کنندگان بازی­های ابری ایجاد tradeoff بین دو موضوع مرتبط و درعین‌حال متضاد است یعنی حداقل کردن هزینه سرمایه‌گذاری سخت‌افزاری و حداکثر کردن کیفیت تجربه کاربران؛ پیشگامان خدمات ابری بازی­‌های رایانه­‌ای، راهکارهای گوناگونی را درگذشته پیشنهاد نموده‌­اند لیکن اکثر قریب به‌اتفاق این پیشنهاد‌ها با شکست مواجه شده­‌اند! علت اصلی شکست خوردن این ایده­‌ها این بوده است که آن‌ها منحصراً پشتیبانی از یک مشتری را در هر سرور (infra structure as a service)  پیشنهاد می­کردند و این امر منجر به عدم بازگشت سرمایه در سرمایه‌گذاری­‌های انجام‌شده برای «مزارع سرور» می­شد، یکی از مزایای مهم cloud gaming این است که لازم نیست کاربران (گیمرها) اقدام به دانلود و یا نصب کردن بازی مورد نظر خود نمایند. در عوض، بازی بر روی سرور شرکت ارائه‌کننده قرار گرفته و به‌صورت stream به‌سوی کاربر جریان می‌یابد. این استریم شامل صدا، تصویر و سایر ویژگی‌های مرتبط بر هر فریم از صحنه‌های بازی است. بدین ترتیب، تمام پردازش‌های مربوط به بازی در سمت سرور انجام‌شده و هر کاربر فقط عکس‌العمل ناشی از فشردن دکمه‌های کلید را در هر وهله از بازی به شکل بصری مشاهده می‌کند، با توجه به توضیحات فوق، cloud gaming باعث می‌شود علاقمندان و طرفداران بازی‌های رایانه‌ای بتوانند دسترسی تقریبا فوری به محصول مورد نظر خود داشته باشند، هیچ محدودیتی برای دستگاه‌های کاربر (قابلیت سخت‌افزاری، سیستم عامل و غیره) وجود ندارد و لازم نیست توسعه‌دهندگان، نسخه‌های متعدد بازی را برای دستگاه‌های مختلف توسعه دهند.
 
تمرکز ما در این تحقیق بر روی GPU و تخصیص پویای فریم­‌های مربوط به تمام کاربران استفاده‌کننده از خدمات ارائه شده توسط مرکز داده ابری است. برای این منظور فرض می‌کنیم فرد گیمر در هر نشست، فقط یک بازی رایانه‌ای را انجام می‌دهد که البته فرضی معقول است. بازی‌های رايانه‌ای معمولا دارای درجات معدودی از تنظيمات رندر به‌صورت پيش‌فرض هستند. این سطوح کیفی تنظیم شده معمولا در سه درجه بالا، متوسط و کم ارائه می‌شوند و بعداً به نوبه خود به پارامترهای سطح پايين‌تر سخت‌افزاری و سيستم‌عاملي همچون حداکثر جزئيات بافت تفسیر مي‌شوند. برخلاف بازی‌هایی که به‌صورت آفلاین و بر روی یک stand-alone computer انجام می‌شود، در cloud gaming، سطح کیفی تنظیم شده فریم­‌های صحنه­‌های بازی توسط سرویس­‌دهنده ابری انجام‌شده و به کاربر دیکته می‌شود. ما فریم‌ها را به تعدادی نوع (Type) تقسیم می‌کنیم که هر type نیازمندی‌های CPU، حافظه، GPU و پهنای باند خاص خود را دارد. در حقیقت، قیمت فریم بر اساس این Types مشخص می‌شود. هدف ما یافتن ترکیب بهینه یا نزدیک به بهینه از typeها برای هر کاربر است. روش پیشنهادی ما، قادر است به‌طور پویا و با توجه به شرایط هر دو سمت شبکه، نرخ فریم­‌های ارسالی به‌سوی کاربر را تنظیم و مدیریت نماید، ما پس از مطرح کردن مسئله و فرمول‌بندی آن، ابتدا آن را با استفاده از روش‌های برنامه‌نویسی خطی حل می‌کنیم. با توجه به اینکه این مسئله در زمره مسائل NP-hard و از رده مسائل کوله‌پشتی قرار دارد، روش‌های بهینه‌سازی خطی قادر نیستند آن را در مقیاس بزرگ یعنی به ازای تعداد کاربران زیاد حل کنند. بدین منظور، ما مسئله را با الهام از روش‌های فرا ابتکاری حل می‌کنیم. در اینجا دو روش فرا ابتکاری زنبورعسل و الگوریتم ژنتیک را مورد استفاده قرار دادیم.
تا آنجا که ما می‌دانیم مسئله بهینه‌سازی QoE-aware frame rate allocation به نحوی که سطوح مختلف فریم برای هر session به خودسازمانده تنظیم شوند تاکنون در هیچ یک از تحقیقات قبلی مورد رسیدگی قرار نگرفته است.
در این تحقیق ما یکی از مهم‌ترین مسائل در حوزه cloud gaming یعنی تخصیص نرخ بهینه فریم‌های کاربران (گیمرها) را مورد بررسی قرار دادیم. این مسئله در زمره مسائل NP-hard از رده مسائل کوله‌پشتی قرار دارد. در این خصوص، ابتدا مرور جامعی بر تحقیقات انجام‌شده در این حوزه کردیم و این کارها را از دو منظر روش‌های ابتکاری و روش‌های فرا ابتکاری دسته‌بندی نمودیم. همچنین دسته‌بندی دیگری نیز از منظر هدف‌های مطرح‌شده در مقالات و نیز معیارهای مهم انجام دادیم. ما مسئله بهینه‌سازی تخصیص نرخ فریم‌ها بين چندين کاربر را به‌صورت price-based فرمول‌بندی و حل نمودیم. راه‌حل پیشنهادی ما علاوه بر توجه به QoE بازیکنان، سود ارائه‌دهندگان سرویس بازی‌های ابری را نیز بیشینه می‌کند. بدین ترتیب، ما یک مکانیزم خودسازمان‌ده طراحی نمودیم که هم به QoE گیمرها توجه می‌کند و هم سود ارائه‌دهنده سرویس ابری بازی را بیشینه می‌کند.
تحلیل نتایج شبیه‌سازی با استفاده از آزمون‌هایی همچون T-test و ANOVA test نشان داد که کارایی روش پیشنهادشده در قالب معیارهای مهمی همچون زمان اجرا، تعداد کاربران پذیرش‌شده، اتلاف پهنای باند، کیفیت فریم‌های دریافتی توسط گیمر و غیره کارایی تفاوت معناداری با جواب بهینه ندارد.
ما برای شبیه‌سازی روش پیشنهادی از نرم‌افزار CloudSim استفاده کرده‌ایم. این شبیه‌ساز در آزمایشگاه سیستم‌­های توزیع­‌شده و محاسبات ابری دانشگاه ملبورن استرالیا توسعه‌یافته ­است، بخشی از تحلیل نتایج نیز با SPSS انجام‌ شده است. همچنین inter-arrival time کاربران در شبیه‌ساز کلودسیم بر اساس توزیع نمایی با میانگین 50 کاربر در دقیقه در نظر گرفته‌ شده است. ما برای هر فریم مربوط به صحنه‌های بازی، شش سطح کیفیت در نظر گرفتیم، نتایج شبیه‌سازی بر بستر شبیه‌ساز CloudSim حاکی از این است که روش پیشنهادشده در قالب معیارهایی همچون زمان اجرا، تعداد کاربران پذیرش‌شده، اتلاف پهنای باند، کیفیت فریم‌های دریافتی توسط گیمر و غیره، کارایی بهینه‌ای دارد، در بحث مربوط با زمینه‌های تحقیق آینده با توجه به Real time بودن برخی ژانرهای بازی رایانه‌­ای، یکی از ایده‌ها برای کارهای آینده این است که پس از ورود کاربر جدید، کاربر در صف انتظار قرار گیرد و تا زمانی که محاسبات بهینه‌سازی در حال انجام است، سایر کاربران بدون ایجاد تأخیر کیفیت فعلی را دریافت کنند، سپس تغییرات اعمال گردد. به‌منظور افزایش سرعت سیستم با استفاده از روش پیشنهادی می­توان پس از هر بار ورود کاربر به سیستم و انجام عملیات بهینه‌سازی، Activity profile را ذخیره کرد. بدین ترتیب، زمانی که تعداد کاربران به میزان قبلاً محاسبه‌شده برسد دیگر نیاز به انجام محاسبات جدید نخواهد بود. یکی دیگر از زمینه‌های تحقیق آینده، استفاده کردن از توانمندی‌های موجود در دستگاه‌های fog در جهت افزایش هرچه بیشتر QoE برای بازی‌های رایانه‌­ای real-time بر مبنای رایانش مه هست.

 

نویسنده: سید جواد سید ابوترابی

استاد راهنما:دکتر محمد حسین رضوانی

ارسال یک پاسخ

لطفا دیدگاه خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید