ارائه روشی بهینه برای بهبود زمانبندی و تخصیص منابع در گریدهای محاسباتی با ترکیب روشهای مکاشفهای
۱-۳- روش انجام تحقیق
در این پایاننامه، بعد از بررسی و مطالعه در مورد معماری گریدهای محاسباتی و مشکلات آن و روشهای زمانبندی مختلف در آن و بیان اینکه زمانبندی مسئلهای بغرنج میباشد، چند نمونه الگوریتم تکاملی را معرفی کرده و بابیان مزایا و معایب آنها با ترکیب سه نمونه از آنها الگوریتم جدیدی را معرفی نمودیم.
۱-۴- ساختار پایاننامه
در فصل اول این تحقیق، یک نمای کلی از تحقیق انجامشده، انگیزه و هدف از آن ارائهشده است.
در فصل دوم، معرفی محیط گرید و بحث زمانبندی در آن و مروری بر کارهای انجامشده در این زمینه ارائهشده است.
در فصل سوم، بهطور مفصل در مورد روش اجرای تحقیق حاضر بحث شده است.
در فصل چهارم این پایاننامه، مقدمات و تنظیمات لازم برای ارزیابی و مقایسه روش پیشنهادی با بقیه روشهای مرسوم بیانشده است.
در فصل پنجم از این تحقیق، نتیجهگیری مطالب ارائهشده و پیشنهادها و کارهای آتی در این زمینه ارائهشده است.
فصل دوم: مروری بر ادبیات تحقیق و پیشینه تحقیق
ابتدا در این فصل به معرفی نمودن محیط گرید و هدف آن و همچنین خصوصیات این محیط میپردازیم. آنگاه درزمینه زمانبندی وظایف در این محیط و انواع الگوریتمهای زمانبندی در آن بحث خواهیم کرد.
۲-۱ محاسبات گرید
عمومیت یافتن اینترنت همانند در دسترس بودن کامپیوترهای قدرتمند و فناوری شبکههای سریع با هزینههای کم، در حال تغییر استفاده از کامپیوترهای شخصی است. این نوع از پیشرفت امکان استفاده نمودن بهصورت توزیعی از کامپیوترها در نقاط مختلف را بهصورت یک منبع محاسباتی یکسان به نام آنچه که محاسبات گرید نامیده میشود، فراهم کرده است. به جهت شباهت داشتن نام گرید به یک شبکه برق که دسترسی در آن بهصورت شفاف، فراگیر، قابلاطمینان و پایدار به نیروی برق است، بدون توجه به منبع آن، انتخابشده است. اینچنین رویکرد محاسبات شبکهای را با اسامی متنوع دیگری هم چون meta computing، scalable computing، global computing، Internet computing و Web computing نیز میشناسند.
۲-۲ اصول ساخت Grid
در این بخش، ما به بررسی چندین مورد از اصول کلی که برای ساختن گرید استفاده میشود، میپردازیم. بهطور خاص به بررسی ویژگیهای یک طراحی ایده آلی که گرید باید در یک محیط یکپارچه برای کاربران خود فراهم کند، پرداخته میشود.
قلمروهای مدیریتی[۱] چندگانه و استقلال آنها:
قابلذکر است که منابع گرید در موقعیتهای مختلف و تحت شرایط قلمروهای مدیریتی متفاوتی قرار دارد. بحث استقلال صاحبان منابع در اعمال نمودن مدیریت و سیاستهای داخلی آنها باید محترم شمرده شود.
ناهمگونی[۲]:
برای ایجاد یک گرید، منابعی که ذاتاٌ باهم اختلاف دارند را باید به یکدیگر وصل کنیم و از همکاری آنها بهره ببریم.
مقیاسپذیری[۳]:
اندازه یک گرید معمولاً از مجموعهای که شامل چندین منبع تا چند میلیون منبع میباشد متغیر است. از مسائل مهم در گرید، کاهش کارایی زمانی که اندازه یک گرید تغییر میکند و سایز آن بزرگ میشود، میباشد که درنتیجه باید ازنظر پهنای باند ارتباطی و همچنین تأخیر، برنامههایی را که تعداد زیادی از منابع موردنیازشان در مکانهای مختلفی قرار دارند تحملپذیر باشند.
پویایی و انعطافپذیری:
یکی از ویژگیهایی که درگرید اتفاق میافتد، خرابی و خارج شدن منابع گرید است. با توجه به اینکه منابع زیادی در گرید وجود دارد و این احتمال وجود دارد که یک منبع قطع شود، درنتیجه آن منبع از دسترس خارج میشود. پس نتیجه میگیریم که مدیریت منابع و همچنین برنامهها باید نسبت به وضعیت سیستم از خود رفتار پویایی داشته باشند و بتوانند در هر لحظه ای از زمان، از منابع موجود بهصورت مؤثر و بهینه استفاده نمایند.
مراحل لازم جهت تشکیل یک گرید عبارت است از:
ابتدا باید قطعات نرمافزاری و سختافزاری که بهصورت منفرد هستند را در قالب یک منبع شبکه شده یکپارچهسازی کنیم. (یک تصویر واحد از سیستم ایجاد کنیم)
ایجاد:
جهت ایجاد نمودن یک دسترسی امن و همچنین شفاف به منابع، باید ابزارهای میانی سطح کاربر، ابزارهای میانی سطح پایین و ابزارهای توسعه برنامههای کاربردی را ایجاد نماییم و همچنین منابع توزیعی را یکپارچهسازی و بهینهسازی نماییم.
موارد موردنیاز جهت تشکیل یک گرید به شرح ذیل میباشد:
تاروپود گرید: منظور منابع توزیعی گرید که قابلدسترسی روی اینترنت است. این منابع میتوانند انواع کامپیوترها که سیستمعاملهای گوناگونی (مانند انواع یونیکس یا ویندوز) بر روی آنها قرار دارد و یا دستگاههای ذخیرهسازی داده، انواع حس گر و یا بانکهای اطلاعاتی باشد.
میانافزار هستهای[۴] گرید: انواع سرویسهای اصلی بهصورت نمونه: مدیریت پردازههای راهدور[۵]، اختصاص، رزرو و امنیت منابع، جستوجوی داده، دسترسیپذیری به انباره داده را شامل میشود.
میانافزار سطح کاربر[۶]: این بخش شامل انواع محیطهایی برای توسعه برنامه و ابزارهای برنامهنویسی است که برای مدیریت منابع و زمانبندی اجرای وظایف هر برنامه توسط دلالها بر روی منابع سوار میشود.
برنامههای گرید: برنامههای Grid با بهره گرفتن از زبانهای HPC++ و یا MPI نوشته میشود. سرویسهای برنامهای تحت وب را برنامههای رابط ارائه میدهند و از طریق آنها کاربرها میتوانند نتایج کاریشان را در سایت قرار دهند و یا دریافت کنند.
شکل ۲- ۱ ساختار لایهای Grid [۳]
برای آسانسازی هماهنگی و همکاری در بین ارگانهای گوناگونی که منابع ناهمگون مختلفی را در اختیاردارند، رعایت چند اصل ذیل در محیط گرید واجب میباشد:
گرید با مدیریت فعلی یک سایت نباید مداخله داشته باشد.
گرید حق تضعیف امنیت کاربر را ندارد.
در گرید نباید جابهجایی سیستمعامل و یا پروتکل شبکه الزامی باشد.
یک گرید باید بتواند یک سازهای را که در برابر خطا[۷] تحملپذیر و همچنین مطمئن[۸] است ایجاد کند.
پشتیبانی از قطعات ناهمگون در گرید یکی دیگر از اصول مربوطه میباشد.
محیط گرید باید توانایی این را داشته باشد که با نرمافزارها و سختافزارهایی که جدیداً وصل میشوند هماهنگی لازم را داشته باشد. برای کاربرانی که از وب استفاده میکنند اهمیتی ندارد که سروری که به آن وصل میشوند بر روی چه سیستمعاملی قرار دارد، از دید آنها سرعت پاسخ و کارایی مهم است. آنچه برای یک کاربر مهم است، این است که برنامه به منبعی مناسب متصل گردد و نتیجه صحیحی را در زمان کوتاهی دریافت کند.
در یک محیط گریدی که بهصورت ایدهال تعریف میشود، دستیابی یکپارچه به منابع ایجاد میشود. منظور این است که تفاوتهای اجزاء آن مانند تفاوتهای بسترهای مختلف، پروتکلهای شبکه از دید کاربر مخفی است. واسط گرید، بهصورت مجازی محیطی که ناهمگن میباشد را به محیطی همگن مبدل میکند.
۲-۳ انواع کاربردهای Grid
برنامههایی که از ساختار گریدی که روی آنها اجرا میشوند آگاه هستند[۹]، به پنج دسته ذیل تقسیم میکنیم:
ابر محاسبات توزیعی[۱۰]
برنامههای با توان عملیاتی بالا[۱۱]
برنامههایی با حجم دادهای بالا[۱۲]
کاربردهای گروهی[۱۳]
طراحی گروهی در کارهای فنی
استفاده از برنامهنویسی مناسب، بر روی شبکه گرید میتواند دلایل مختلفی داشته باشد:
استفاده از طبیعت توزیعی یک کاربرد.
فرم در حال بارگذاری ...