استفاده از الگوریتم ژنتیک و منطق فازی برای بهینه سازی منابع بازار براساس شبکه بندی |
اشینها در هر گرید،نرم افزارهای گرانی نصب شده باشند که نصب آنها بر روی تمامی ماشینهای گرید،به دلیل پر هزینه بودن،امکانپذیر نباشد.با استفاده از یک گرید،می توان کارهایی را که احتیاج به این نرم افزارها دارند را به سمت ماشینهای دارنده آنها ارسال کرد تا بر روی آن ماشین اجرا گردند.زمانی که هزینه محوزهای نرم افزارها،قابل توجه باشد،این رهیافت،می تواند به مقدار زیادی از مخارج سازمان بکاهد و در هزینه ها،صرفه جویی ایجاد کند.
برخی از مجوزهای نرم افزاری،به این صورت هستند که نرم افزار را بتوان بر روی تمامی ماشینهای گرید نصب کرد،اما تعداد محدود و تعریف شده ای از کاربران،امکان استفاده همزمان از آن(بر روی ماشینهای مختلف)را دارند.در این نرم افزارها،یک سیستم مدیریت مجوز وجود دارد که در طول زمان مانیتور می کند در هر لحظه چند کپی از برنامه در حال اجرا در شبکه هستند و از اینکه تعداد نسخه های در حال اجرا،از عدد تعریف شده در مجوز بیشتر شود،جلوگیری می کند.در چنین سناریویی،زمانبندهای گرید می توانند طوری تنظیم شوند که چنین مجوزهای نرم افزاری را در محاسبات خود لحاظ کند و با در نظر گرفتن اولویت برنامه های کاربردیکه نیاز به اجرای این برنامه های مجوز دار،دارندو با اعمال دیگر سیاست های لازم،امکان استفاده حساب شده از مجوز نرم افزارها و متعادل سازی اجرای برنامه ها فرآهم می گردد.
۱-۴سایر منابع:تجهیزات خاص،ظرفیت ها،سیستم عاملها،معماریها و منابع مصنوعی۲۴
ماشینهای روی گرید،اعلب معماریها،سیستم عاملها،تجهیزات و ظرفیت های متفاوت دارند.هر کدام از این موارد در واقع بیانگر نوعی منبع در گرید هستند،زیرا ممکن است برنامه کاربردی،آنها را به عنوان یکی از ضوابطی ذکر کرده باشد که باید هنگام واگذاری کارها به ماشینهای گرید،جهت تعیین صلاحیت ماشین مقصد برای اجرای کار،بررسی شوند.
۱-۵ بررسی محیط گرید به لحاظ مدیریت و زمانبندی۲۴
محیط گرید،محیط پیچیده ای است و انواع آن منابع با سیاست های مختلف و در فواصل جغرافیایی دور از یکدیگر ممکن است قرار داشته باشند.مدیریت منابع در چنین محیطی بسایر پیچیده و زمانبندی بهینه در آن کاری بسیار دشوار است.به همین دلیل است که تقریباً مهمترین بحث در سیستمهای گرید،مدیریت بهینه منابع تحت پوشش و زمانبندی کارها است.بسایری از مباحث تحقیقاتی در حوزه گرید،امروزه در زمینه سیستمها،روشها و الگوریتمهای مدیریت منابع و زمانبندی در شبکه های گرید ارائه می شوند.
برای اینکه تصویر دقیق تری از محیط یک گرید بدهیم،در ابتدا لازم است ماهیت خود برنامه های کاربردی و نیز کارهایی که در محیط گرید اجرا می شوند،شرح داده شود.تا زمانی که ماهیت برنامه های کاربردی توزیع شده و کارها در گرید بررسی نشوند،نمی توان درک درستی نسبت به محیط از دیدگاه مدیریت منابع و زمانبندی داشت.از سوی دیگر،در واقع درست است که می گوییم کاربران و برنامه های کاربردی از منابع گرید استفاده می کنند،اما در نهایت این برنامه های کاربردی هستند که از منابع گرید استفاده می کنند و کاربر از طریق این برنامه کاربردی است که منابع گرید را در اختیار می گیرد.نکته دیگری که باید ذکر کرد این است که،گاهاً دو کلمه برنامه کاربردی و کار اشتباهاً به جای یکدیگر به کار برده می شوند.اما خصوصاً در محیط گرید،باید تفاوت اساسی میان آنها قائل شد.
۱-۶ نگاهی دقیق به برنامه های کاربردی و کارها در محیط گرید۲۴
اگرچه ممکن است طیف وسیعی از منابع مختلف در گرید میان کاربران به اشتراک گذارده شده باشد،اما دسترسی به این منابع از طریق اجرای یک برنامه کاربردی یا یک کار خواهد بود.گاهی دو اصطلاح برنامه کاربردی و کار اشتباهاً به جای یکدیگر به کار برده می شوند.در سیستمهای گرید اصطلاح برنامه کاربردی به بالاترین واحد پردازشی گفته می شود که توسط کاربران جهت اجرا به گرید واگذار می گردد.هر برنامه کاربردی ممکن است به یک یا چند کار شکسته شود و سپس این کار(کارها)به روی ماشین(ماشینهای)پردازشگر توسط سرویس دهنده گرید جهت اجرا ارسال(واگذار)خواهد شد.پس در عمل برنامه کاربردی است که جهت اجرا توسط کاربر به گرید واگذار می شود،اما با شکسته شدن یک برنامه کاربردی به یک یا چند کار،در عمل،کار است که توسط سرویس دهنده گرید به ماشین پردازشگر جهت اجرا واگذار می گردد و کار است که بر روی ماشین پردازشگر در عمل اجرا خواهد شد.زمانبندی نیز در مورد کارها صورت می گیرد.
برنامه کاربردی را بالاترین سطح یک برنامه در گرید می دانیم که ممکن است به تعدادی کار توزیع شده ویا موازی شکسته شود.بنابراین،هر برنامه کاربردی به صورت مجموعه ای از کارها طوری سازماندهی می شود که کارها بتوانند به صورت توزیع شده ویا موازی بر روی ماشینهای مختلف اجرا شوند.برخی سیستمهای گرید این امکان را می دهند که کارها بتوانند در طول اجرا با یکدیگر تعاملهای چند باره آسنکرون یا سنکرون داشته باشند و مرتباً میان یکدیگر در طول اجرا داده هایی را رد و بدل کنند،اما گاهی اوقات سیستم گرید صرفاً این امکان را دارد که خروجی نهایی یک کار از یک برنامه کاربردی،بتواند ورودی کاردیگری از همان برنامه کاربردی باشد(به نوعی تعامل یک باره آن هم صرفاًدر انتها و خاتمه اجرای یک کار)و سپس با بررسی وابستگی کارها به یکدیگر،آنها را به ترتیبی اجرا می کنند که چنین اتفاقی بیافتد.با بررسی دقیق کارها،می توان کارهایی را که مستقل از یکدیگر هستند به صورت هم
زمان و موازی اجرا کرد ولی کارهایی که به نتایج یکدیگر نیازمندند،باید به ترتیب لازم،اجرا گردند.
واحد کاری را یک واحد اجرایی می دانیم که عملاً به یک ماشین پردازشگر جهت اجرا واگذار خواهد شد و همانطوری که گفتیم،یک واحد کاری تمامی اطلاعاتی را که جهت اجرای یک برنامه لازم است در بر می گیرد:خود برنامه اجرایی(یا اشاره گری به محل نگهداری ان بر روی یک محل مشترک)،کلیه داده های ورودی مورد نیاز برنامه(یا اشاره گرهایی به محل داده های ورودی)،اطلاعاتی در مورد اینکه خروجیهای برنامه چگونه و کجا باید ذخیره شوند،لیست کلیه نیازمندیهایی(منابع)که برای اجرای برنامه لازم است(پارامترهایی مانند معماری،سیستم عامل،مولفه های نرم افزاری،پردازنده،حافظه اصلی،ظرفیت دیسک سخت،پهنای باند و…)،پارامترهای کیفیت سرویس،اولویت برنامه و…همه و همه مواردی هستند که در واحد کاری وجود دارند.گاهی اوقات یک برنامه کاربردی در واحد کاری قرار می گیرد و توسط کاربر به زمانبند گرید ارسال می شود.در این حالت واحد کاری،حاوی اطلاعات کلیه زیربرنامه (کارها)و بیانگر نحوه ارتباط این کارها به یکدیگر و کلیه مواردی است که جهت اجرای توزیع شده تمامی کارها لازم است.گاهی منظور از واحد کاری،مفهومی سطح پایین تر از برنامه کاربردی است و در واقع یک کار به همراه کلیه اطلاعات مورد نیاز است که باید در نهایت بر روی ماشین پردازشگر اجرا شود و اسن واحد کاری،توسط زمانبند گرید به ماشین پردازشگر ارسال می شود.
کارها واحدهای اجرایی هستند که در نهایت بر روی یک ماشین پردازشگر گرید اجرا خواهند شد.آنها ممکن است محاسباتی انجام دهند،داده ها را از مکانی و شکلی به مکانی و شکل دیگر منتقل کنند،داده هایی را جمع آوری کنند،ارتباطاتی با سایر کارها در گرید یا با دنیای خارج گرید برقرار کنند،دستوراتی را بر روی سایر ماشینها اجرا و الی آخر.برخی از سیستمهای گرید،این امکان را می دهند که یک کار نیز بتواند به نوبه خود به چند زیر-کار(subjob)شکسته شود.به شکل زیر توجه کنید.
نمای یک برنامه کاربردی گرید که به صورت مجموعه ای از کارها و زیر کارها سازماندهی شده است.۲۴
ذکر چند نکته در مورد برنامه های کاربردی گرید ضروری است:
۱٫برخی سیستمهای گرید،صرفاً از سازماندهی و شکستن دو سطحی پشتیبانی می کنند:برنامه کاربردی می تواند به تعدادی کار شکسته شود و هر کار نیز ممکن به تعدادی زیر-کار شکسته شود.اما برخی دیگر از سیستمها امکان شکستن در بیش از دو سطح را می دهند.به این طریق برنامه کاربردی می تواند به تعدادی کار شکسته شود(کار در این حالت موجودیت اجرایی نیست).هر کار ممکن است به تعدادی کار ویا task شکسته شود و در نهایت برگهای درخت،taskها هستند که برنامه های اجرایی هستند که به ماشینهای پردازشگر جهت اجرا واگذار خواهند شد.
۲٫سازماندهی برنامه کاربردی به تعدادی کار توزیع شده ویا موازی،ممکن است به دو صورت اتوماتیک و غیر اتوماتیک صورت گیرد.در سازماندهی اتوماتیک،برنامه کاربردی به صورت یک برنامه ترتیبی غول پیکر نوشته می شود(در یک زبان رویه ای یا شی گرا)و سپس متن این برنامه در اختیار سوپر کامپایلر پیشرفته گریدی گذارده می شود.سوپر کامپایلر،خود برنامه را تجزیه و تحلیل می کند و با تکنیک های فوق پیشرفته کامپایلر،آن را به تعدادی زیربرنامه طوری می شکند که این زیربرنامه ها،به صورت موازی و توزیع شده بر روی ماشینهای مختلف در گرید قابل اجرا باشند.در این حالت،خروجی سوپر کامپایلر،حالت سازماندهی شده برنامه کاربردی اولیه در قالب محموعه ای از کارهای توزیع پذیر و موازی است.البته،تولید چنین کامپایلر هایی بسیار دشوار است و متخصصان بسیاری بر روی آن هنوز به عنوان مبحثی در دست تحقیق،کار می کنند.در حالت غیر اتوماتیک،سیستم گرید در سطح انتزاعی بالا این امکان را می دهد که تولید کنندگان برنامه های کاربردی گرید،نتوانید به صورت ویژوال چنین درختی را(معمولاً در محیط مرورگرهای سبک وب)تولید کنند.در این سیستمها،ابتدا درخت برنامه کاربردی در قالب کلیه نودها(کارها و زیر کارها یا کارها و taskها،بسته به معماری مجاز قابل پشتیبانی توسط سیستم)و لبه ها(که معرف نحوه ارتباط باشند)رسم می شود.سپس نحوه ارتباط نودها(به لحاظ ارتباطات سنکرون و آسنکرون و یا به لحاظ وابستگیها)مشخص می شود.در ادامه نسخه اجرایی یا Source code مربوط به هر نود اجرایی(برگ درخت)مشخص می شود.کلیه اطلاعات و نیازمندیهای لازم آن،در قالب واحدهای کاری مجزا ذکر خواهد شد.ممکن است لازم باشد اطلاعات دیگری نیز،بسته به خود سیستم گرید،ارائه شود.در نهایت،کلیه این اطلاعات جهت زمانبندی و اجرا به زمانبند گرید داده خواهد شد.
اکنون که دید دقیقی نسبت به یک برنامه کاربردی در گرید به دست آوردیم،مشخص می شود زمانبندی و اجرای چنین برنامه هایی،خصوصاً در گرید های گسترده باچه مشکلات و معضلاتی روبرو است.به طور مثال،در سیستمهای گریدی که امکان ارتباط چند باره سنکرون وآسنکرون به کارهای یک برنامه کاربردی را می دهند،باید دقت شود کارهایی که نیاز به تعامل با یکدیگر دارند،به ماشینهایی که از لحاظ جغرافیایی فاصله زیادی دارند و یا بستر ارتباطی شبکه ای ضعیف میان آنها وجود دارد،واگذار نشوند.در سیستمهای گریدی که امکان ارتباطات فوق را به کارها نمی دهند ولی در عوض وابستگیهای آنها را در نظر می گیرند و خروجیهای آنها را در اختیار یکدیگر می گذارند،زمانبند گرید باید با رعایت ترتیب لازم،کارها را اجرا ک
ند.به علاوه باید کارهای مستقلی را که می توانند با یکدیگر موازی اجرا شوند شناسایی کند تا برنامه در بهترین حالت خود اجرا شود و نیز اگر خروجی یک کار،ورودی کار دیگر است،منطقی این است که هر دو به ترتیب بر روی یک ماشین پردازشگر واحد اجرا شوند تا از نقل و انتقالات بی مورد داده های احتمالاً حجیم،در سیستم تا حد ممکن جلوگیری شود.نکته دیگر این که،در زمانبندیها،باید دقت شود اگر داده های ورودی یک کار،به همراه خود کار در واحد کاری قرار نگرفته اند(صرفاً اشاره گرهایی به محل آنها در واحد کاری آمده است)،حتی الامکان باید کار بر روی ماشین نزدیک(به لحاظ سرعت و ارتباطات شبکه ای)به ماشین نگهداری کننده داده های ورودی اجرا شود.همین مطلب در مورد داده های خروجی زمانی که باید بر روی یک ماشین راه دور ذخیره شوند نیز صدق می کند.در واقع در تشخیص بهترین ماشین جهت واگذاری یک کار،به علاوه بر سرعت پردازنده،میزان بار روی ماشین پردازشگر و…باید چنین مواردی نیز کاملاً توسط زمانبند لحاظ شود.با ذکر تمامی نکات فوق،می توان دریافت زمانبندی و مدیریت منابع در محیط گرید،چه کار دشواری(مثلاً در قیاس با سیستمهای کلاستر عادی)است.
۱-۷ نگاهی دقیق به گرید از دیدگاه کاربران استفاده کننده۲۴
اگر بدانیم کاربر سیستم گرید چگونه کار می کند،چگونه برنامه هایش را جهت اجرا به گرید واگذار می کند،چگونه ممکن است از منابع مختلف تحت پوشش گرید مطلع شود و مسائلی از این قبیل،می توانیم دید نسبتاً بهتری نسبت به زمانبندها،واسطه گرها و سیستمهای مدیریت منابع گرید به دست آوریم.در ابتدا باید گفت کاربری که تمایل به استفاده از گرید دارد،باید در ابتدا در گرید ثبت نام شود.با انجام این عمل،یک نام کاربری منحصربفرد به کاربرل در کل سیستم داده خواهد شد که مستقل از ماشین،محل یا حتی ناحیه ثبت نام کردن کاربر است.بعد از این کار،کاربر باید نرم افزاری تحت عنوان نرم افزاری واگذاری را دریافت و بر روی کامپیوتر خود نصب کند.کاربر از این نرم افزار برای تعامل با گرید استفاده خواهد کرد.در ادامه تک تک امکاناتی که این نرم افزار باید داشته باشد را معرفی خواهیم کرد.اما نکته مهم این است مه هر سیستم گرید،ممکن است نرم افزار واگذاری منحصر بفرد خود با قابلیت ها و امکانات خود را داشته باشد.
در عمل هدف اصلی نرم افزار واگذاری این است که کاربر بتواند از امکانات و سرویسهای مختلف گرید استفاده کند.حداقل نیاز هر کاربر(صرف نظر از نوع نرم افزار واگذاری که یک سیستم گرید در اختیار ما قرار داده است)،به ترتیب شامل موارد زیر است:
۱-اتصال و ورود به گرید
۲-کاربر باید بتواند برنامه های کاربردی اش را تعریف کند(به لحاظ ساختار خود خود برنامه از نظر کارها،زیر کارها یا taskها و بیان نحوه ارتباط انها با یکدیگر،داده های ورودی یا اشاره گرهایی به محل آنها،نحوه و محل ذخیره داده های خروجی و…)،نیازمندیهای فنی لازم جهت اجرای برنامه را مشخص کند(مانند معماری،سیستم عامل،نرم افزارها،مولفه های مورد نیاز و…)،نیازمندیهای کیفیت سرویس را در صورت نیاز مشخص کند(مانند حداقل نیازمندیهای سخت افزاری،شبکه ای و ارتباطی،اولویت برنامه کاربردی،ماکزیمم مهلت زمانی جهت شروع وخاتمه پردازش و …)و نیازمندیهای غیر فنی را در صورت وجود مشخص کند(مانند حداکثر هزینه ای که می تواند بپردازد و …).
۳-واگذاری برنامه کاربردی به سیستم گرید جهت اجرا.
[جمعه 1399-09-21] [ 02:03:00 ب.ظ ]
|