برای مرحله بعدی الگوریتم ctc – mc زمان اجرای تخمینی و نیز هزینه هر وظیفه آماده برای هر سرویس موجود را حساب میکند.فرض میشود که تعداد میانگین منابع توانا برای هر وظیفه r است. این مرحله پیچیدگی محاسباتی o(t*r) را خواهد داشت. بعد، الگوریتم ctc – mc هر وظیفه را به سرویسی اختصاص میدهد که زمان اجرایی را میگیرد که از زیر مهلت وظیفه با کمترین هزینه تجاوز نمیکند، این مرحله نیز پیچیدگی o(t*r) را دارد.
حلقه برای زمانبندی کردن وظایف بررسی میشود با t+t*(t*r+t*r)، الگوریتم ctc- mc پیچیدگی محاسباتی O(t2*r) را دارد، بهگونهای که t تعداد همه وظایف و r مقدار میانگین منابع برای هر وظیفه میباشد.
۲-۹-۵-۲ الگوریتم ctc – mt
هدف الگوریتم زمانبندی ctc – mc، مینیمم کردن هزینه اجرا تحت بودجه در نظر گرفتهشده کاربر(ub[24]) است.درواقع بر اساس الگوریتم ctc – mc است و از یک استراتژی جستجوی باینری استفاده میکند و بهصورت زیر شرح داده میشود.
ابتدا، به دلیل اینکه MAXEOD برابر با زمان اجرای کلی است اگر تمام وظایف روی ارزانترین و آهستهترین سرویسها زمانبندی شوند، CTC – MT کران پایین را صفر و کران بالا را MAXEOD قرار میدهد و شروع به جستجوی باینری میکند.مهلت سراسری فعلی ۲/(کران بالا+کران پایین) قرار داده میشوند و هزینه در مهلت سراسری جاری بر اساس الگوریتم ctc – mt محاسبه میشوند.
اگر هزینه کمتر از UB باشد، یعنی ممکن است برخی از وظایف روی سرویسهای سریعتر اما گرانتر اجرا شوند تا هزینه اجرای سراسری کمتر شود، محدوده بالاتر جدید به نیمی از مقدار فعلی تنظیم میشود.اگر هزینه بالاتر از UB باشد، به این معنی است که غیرممکن است وظایف در این بودجه کامل شوند، چراکه ctc – mt همیشه به دنبال کمترین هزینه در هر مرحله است. درنتیجه مجبور هستیم که مهلت سراسری را افزایش دهیم تا به وظایف بیشتری اجازه دهیم بر روی سرویسهای ارزانتر اما کندتر اجرا شوند برای اینکه هزینه کاهش یابد و از ub تجاوز نکند همچنین محدوده بالاتر جدید به مهلت سراسری فعلی تنظیم میشود.ازسرگیری تکرار میشود تا زمانی که هزینه برابر UB شود. این درست است اما در اغلب شرایط بعید است، درصورتیکه در این شرایط هزینه باید کمی کمتر از ub باشد.
یک گراف ارتباط هزینه- زمان بهموقع را برای کاربر فراهم میکند تا بهطور اختیاری یک مهلت توافقی بهروز شده را برای زمانبندی اختیار کند. جفتهای مقادیر (هزینه – مهلت) در گراف از تکرار قبلی دنبال میشود. پسازاینکه کاربر یک مهلت توافقی بهروز شده را انتخاب کرد، زمانبند در این مهلت طراحی میشود و هزینه اعمال میشود. اگر هیچ ورودی کاربری فراهم نشود، آن در مهلت سراسری جاری زمانبندیشده، اعمال خواهد شد.
برای الگوریتم ctc – mt از یک جستجوی باینری استفاده میشود، این الگوریتم پیچیدگی محاسباتی o(i*t2*r) را دارد که i ماکزیمم تکرار، t تعداد وظایف و r مقدار میانگین منابع توانا برای هر وظیفه میباشد.
میتوان از ایدهی تست تحمل خطا استفاده کرد، یعنی یک مقدار را به عنوان نرخ شکست اجرا برای هر وظیفه در نظر گرفت. به این معنی که هر وظیفه که نرخی کمتر از این مقدار را داشته باشد برای کامل شدن شکست خواهد خورد و اگر یک وظیفه با شکست مواجه شود اولویت بالاتری را در مرحله بعدی زمانبندی کردن پردازش خواهد داشت.
۲-۹-۶ بزرگترین تکه ابر، سریعترین عنصر پردازشی(lcfp[25])
در این الگوریتم پیچیدگی محاسباتی تکهها درحالیکه تصمیمات زمانبندی گرفته میشود بررسی میشود. تکههای طولانیتر به عناصر پردازشی(pe[26]) که قدرت محاسباتی بالایی دارد نگاشت میشود ازاینرو مدتزمان اجرا را مینیمم میکند. در این الگوریتم، کارهای طولانیتر در مقایسه با fcfs سریعتر تمام میشوند و این در حالی است که نیازمندیهای پردازش کردن کارها درجایی که تصمیمات زمانبندی گرفته میشود، بررسی نمیشود.
شرح الگوریتم بهصورت زیر میباشد:
مرتب کردن تکه ابرها بهطور نزولی بر اساس طول.
مرتب کردن PE های میان تمام میزبانها بهطور نزولی بر اساس قدرت پردازش.
ایجاد ماشینهای مجازی در لیست مرتبشدهای از pe ها از طریق بستهبندی تعدادی از ماشینهای مجازی که در سریعترین pe امکانپذیر هستند.
نگاشت تکههای ابر از لیست مرتبشده به ماشینهای مجازی ایجادشده.
در این الگوریتم، تکه ابرهای کوتاهتر به pe هایی که قدرت محاسباتی بالایی دارند، نگاشت میشوند تا زمان گردش کار (مجموع زمان تکمیل یک مجموعه از کارها) کاهش یابد، درحالیکه همان زمان طول میکشد تا بررسی کند که کارهای طولانیتر گرسنه[۲۷] نشدهاند.
۲-۹-۷ الگوریتم قیمتگذاری بر اساس فعالیت بهبودیافته(abc[28])
این الگوریتم، یک الگوریتم زمانبندی مبتنی بر هزینه بهبودیافته برای نگاشت مؤثر وظایف به منبع در دسترس گرید است که هم هزینه منبع و هم هزینه عملکرد محاسباتی را در نظر میگیرد و نرخ ارتباطات/ محاسبه را از طریق گروهبندی وظایف کاربر بر اساس توانایی پردازش یک منبع گرید خاص و فرستادن کارهای گروهبندیشده به منبع، بهبود میبخشد. هدف الگوریتم حداقل کردن زمان تکمیل وظیفه نهایی و حداقل کردن هزینه است.
ازآنجاییکه منابع، هزینهی منبع و هزینهی عملکرد محاسباتی مختلفی دارند، با گروهبندی کردن وظایف در سکوهای محاسباتی گرید و پردازش کردن وظایف دانهدرشت در منابع انتخابشده، نرخ محاسبه به ارتباط را کاهش میدهد.
برای کاهش سربار ارتباطی استراتژی زمانبندی باید یک تعداد از وظایف کاربر را بر اساس توانایی پردازش کردن یک منبع خاص، باهم در یک گروه قرار دهد و کارهای گروهبندیشده را به یک منبع ارسال کند.توانایی پردازش هر منبع با MIPS[29] و سایز هر وظیفه با mi[30] مشخص میشود. زمانبند، تعدادی از وظایف، میانگین MI وظایف و مقدار انحراف سایز دانه بودن mi را میپذیرد و همچنین سربار تمام وظایف را پردازش میکند. منابع انتخاب میشوند، وظایف بر اساس اولویتشان (سطوح اولویت وظایف بر اساس فرمولی محاسبه میشوند) مرتب میشوند و آنها در سه لیست مختلف بر اساس سه سطح اولویت (اولویت کم، اولویت متوسط و اولویت بالا) قرار میدهد. حال الگوریتمی برای گروهبندی کردن کار در لیستهای بالا به کار گرفته میشوند تا گروههای وظایف را به منابع در دسترس مختلف اختصاص دهد.الگوریتم abc بهبودیافته، الگوریتمی برای مرتب کردن وظایف بر اساس سطوح اولویتشان را اجرا میکند، درحالیکه تمام لیستها پردازش میشوند. سپس الگوریتمی برای گروهبندی کار اجرا میشود تا وظایف را در هر لیست زمانبندی کند.
از نرمافزار cloudsim برای شبیهسازی استفادهشده است. ورودیها شامل تعداد نهایی وظایف، میانگین mi وظایف، درصد انحراف MI، سایز دانهدانهای بودن و زمان بالاسری وظایف میباشد.
الگوریتم abc بهبودیافته فقط جستجوی اولیه را روی زمانبندی وظیفه در سکوی گرید انجام میدهد.
۲-۹-۸ الگوریتم زندگی زنبورها ((bla[31]
bla بهطور کارایی، کارهای محاسباتی را میان منابع پردازشی روی مراکز داده زمانبندی میکند، هدف این الگوریتم توزیع بهینه حجم کاری بین منابع پردازشی است بهطوریکه زمان اجرای نهایی کارها را کاهش داده و سپس کارایی سرویسهای محاسباتی گرید را بهبود بخشد.
bla از زندگی زنبورها الهام میگیرد که رفتار بسیار مهمی در تولیدمثل و جستجو کردن منابع غذایی دارند. تعداد ۱ ملکه، w کارگر و d زنبور نر را در جمعیت داریم.شرح الگوریتم به این صورت است که ابتدا مقداردهی اولیه جمعیتی انجام میشود که شامل N زنبور است که بهطور تصادفی از فضای جستجو انتخابشدهاند. در مرحله بعد شایستگی جمعیت ارزیابی میشود، از مجموع زنبورهای نر مختلف فقط یکی مناسب ملکه است. هر چرخه از زندگی زنبورها شامل دو رفتار است: تولیدمثل و تهیه غذا، در تولیدمثل، ملکه شروع به جفتگیری در فضا از طریق عملکرد تطابق، با زنبورهای نر شایسته از طریق عملگرهای تغییر و تقاطع میکند. سپس ملکه شروع به پرورش N بچه میکند و شایستگی بچهها ارزیابی میشوند، اگر شایستهترین بچه مناسبتر از ملکه باشد، آن بچه به عنوان ملکه جدید برای جمعیت بعدی انتخاب میشود. همچنین از بین جمعیت d زنبور انتخاب میشوند تا جمعیت زنبورهای نر بعدی را تشکیل دهند، پسازآن W زنبور از بین جمعیت باقیمانده انتخاب میشوند تا بهمنظور اطمینان از یافتن غذا کار کنند.
بهمنظور بهبود قابلیت اطمینان و کارایی این الگوریتم، یک مجموعه از آزمایشها را روی آن انجام داده و آن را با GA[32] به عنوان یک الگوریتم شناختهشده مقایسه میکنیم و نتایج آزمایشها نشان میدهد که این الگوریتم در زمان اجرا پیچیدگی کمتری دارد و با کارایی و عملکرد بهتری عمل میکند.میتوان در کارهای بعدی، زمانبندی کار پویا در محاسبات گرید را با بهره گرفتن از bla، بهگونهای که تعداد مراکز داده بتوانند متفاوت باشند و یا اجرای کارهای بلادرنگ را بررسی کرد.
۲-۹-۹ چندین گردش کاری با چندین محدودیت(mqmw[33]) qos[34]
گردشهای کاری روی سکوی محاسبات گرید که چندین محدودیت qos رادارند یک چالش مهم برای سیستم گردش کاری هستند، mqmw بهمنظور زمانبندی گردشهای کاری محدود به چندین qos است. ازآنجاییکه الگوریتمهای زمانبندی موجود این مسئله را در نظر نگرفتهاند، الگوریتم ۰ ارائه شد که چندین qos از چندین گردش کاری محاسبات گرید را در نظر میگیرد.mqmw بر اساس ویژگیهای کلیدی ابرها و مشخصات برنامههای کاربردی گردش کاری، چهار فاکتور را بررسی میکند که زمان اجرای نهایی و هزینه گردش کاری را تحت تأثیر قرار میدهد. بر اساس این چهار فاکتور، یک زمانبند را برای برآورده کردن نیازمندیهای qos و حداقل کردن زمان اجرا و هزینه گردشهای کاری و افزایش نرخ موفقیت زمانبندی گردش کاری تولید میکند.
استراتژی شامل سه مؤلفه میباشد: پیش پردازنده، زمانبند و اجراکننده.
پیش پردازنده چهار ویژگی از وظایف آماده (تعداد سرویس آماده، واریانس زمان و هزینه، سهم هزینه، سهم زمان) را محاسبه میکند. علاوه بر این پیش پردازنده، هزینه و زمان باقیمانده گردش کاری را نیز محاسبه میکند، سپس وظایف آماده صف زمانبند را که یک مجموعه مرتبشده، شامل تمام وظایف کاربران مختلفی که منتظر هستند که زمانبندی شوند را تأیید میکند، بعدازآن زمانبند ویژگیهای وظایف موجود در صف را مجدداً محاسبه میکند و سپس تمام وظایف در صف را بر اساس استراتژی mqmw مجدداً مرتب میکند. اجراکننده بهترین سرویس را برای اجرای دائمی وظایف در صف انتخاب میکند.
شکل ۲-۵ مروری برگردش کاری زمانبند [۷]
نتایج آزمایشها نشان میدهد که این استراتژی قادر است بهطور قابلتوجهی نرخ موفقیت زمانبندی را افزایش دهد. مدتزمان اجرا و هزینه گردشهای کاری را نیز به کاهش میرساند.
۲-۹-۱۰ الگوریتم کاهش تعادل ([۳۵]bar)
در سالهای اخیر دادههای مقیاس بزرگ معمولاً بهطور افزایشی در سیستمهای محاسبات گرید از قبیل mapreduce,hadoop و DRYAD پردازش میشوند. در این سیستمها، فایلها به بلاکهای بسیار کوچکی تقسیم میشوند، تمام بلاکها روی چندین سرور تکرار میشوند. برای اینکه پردازش کارها بهصورت کارا انجام شود، هر کار به چندین وظیفه تقسیم میشود و هر وظیفه به یک سرور اختصاص داده میشود تا با یک بلاک فایل سروکار داشته باشد. ازآنجاییکه پهنای باند شبکه یک منبع محدود در این سیستمها است، افزایش محلیت داده وظیفه (قرار گرفتن وظایف روی سرورهایی که شامل بلاکهای ورودیشان هستند) برای زمان تکمیل کار بحرانی است.
باوجوداینکه رویکردهای بسیاری برای بهبود محلیت داده وجود دارد، اغلب آنها بهینهسازی سراسر را نادیده میگیرند و یا از پیچیدگی محاسباتی بالا رنج میبرند؛ بنابراین الگوریتم زمانبندی وظیفه اکتشافی به نام bar ارائه شد که ابتدا در یک تخصیص وظیفه اولیه تولید میشود سپس زمان تکمیل کار میتواند بهتدریج از طریق تعدیل کردن تخصیص وظیفه اولیه کاهش یابد. bar یا الگوریتم زمانبندی کارا مبتنی بر محلیت داده برای محاسبات گرید است.
با یک دید کلی میتوان گفت bar به میزان محلیت داده، حالت شبکه و حجم کاری، کلاستر را میگیرد و در دو فاز مسئله زمانبندی وظیفه را حل میکند.۱- یک تخصیص وظیفه اولیه تولید میشود (balance phase) درحالیکه تمام وظایف محلیت داده رادارند ۲- زمان تکمیل کار بهتدریج توسط متعادل کردن تخصیص وظیفه اولیه کاهش مییابد.
bar بهترین راهحل را در زمان n}.m) o (max {m+n ,n log پیدا میکند، در کل bar ، محلیت داده را بهطور پویا بر اساس حالت شبکه و حجم کاری کلاستر تعدیل کند.
نتایج شبیهسازی نشان میدهد که bar قادر است با نمونه مسائل بزرگ در ثانیههای اندکی سروکار داشته باشد و در بین الگوریتمهای زمانبندی موجود ازنظر زمان تکمیل کار بهتر عمل میکند.
۲-۹-۱۱ الگوریتم زودترین زمان پایان ناهمگن (heft[36])
الگوریتم heft شامل ۳ فاز است: (۱) فاز وزن کردن: واگذاری وزنها به گرهها و لبهها در گردشکاری (۲) فاز رتبهبندی: ایجاد کردن یک لیست مرتبشده از وظایف، به این منظور که چگونه آنها باید اجرا و سازماندهی شوند (۳) فاز نگاشت کردن: واگذاری وظایف به منابع.
در فاز وزن بندی، وزنها به گرهها و لبهها واگذار میشوند. وزنهایی که به گرهها واگذارشدهاند بر اساس زمانهایی اجرایی پیشبینیشده از وظایف محاسبه میشوند و وزنها به لبههایی واگذار میشوند که بر اساس زمانهای پیشبینیشده از انتقال داده بین منابع محاسبه میشود.در فاز رتبهبندی با پیمایش کردن رو به بالای گردشکاری dag انجام میشود و یک مقدار رتبه را به هرکدام از وظایف واگذار میکند. مقدار رتبه برابر وزن نود بعلاوه زمان اجرای جانشینها است. زمان اجرای جانشینها تخمین زدهشده است، برای هر لبه جانشینهای نود فوراً به وجود میآیند، وزن را به مقدار رتبه از نود جانشین اضافه میکند و ماکزیمم مجموعها را انتخاب میکند.
در فاز نگاشت کردن، وظایف پشت سر هم از لیست رتبهبندی کردن به منابع نگاشت میشود. برای هر وظیفه، منبعی که زودترین زمان پیشبینیشده را فراهم میسازد بهمنظور اتمام اجرا انتخاب میشود.heft برای زمانبندی چندپردازندهای گراف وظیفه برنامه کاربردی است که بهآسانی پیادهسازی میشود و در مقایسه با بسیاری از الگوریتمها بهخوبی عمل میکند، این الگوریتم شامل مراحل زیر میباشد:
۱-واگذاری وزن لبه/رأس: ابتدا heft هزینههای محاسباتی مراحل و هزینههای ارتباطی لبهها را بر اساس مقادیر میانگین محاسبهشده روی تمام پردازندهها و لینکهای داده در سیستم مشخص میکند.
۲- اولویتبندی وظیفه: heft به هر مرحله vi یک مقدار ارزش رو به ترقی را واگذار میکند ranku(vi) که طول مسیر بحرانی از مرحله vi به مرحله خروجی شامل هزینه محاسبه vi است. مراحل از طریق کاهش دادن مرتبه با شکستن تصادفی روابط مرتب میشوند.
۳- انتخاب پردازنده: سرانجام HEFT از لیست مراحل در کاهش دادن به ترتیب رتبه افزایشی و VIPlaces stage روی پردازنده PK که نزدیکترین زمان پایان HEFT(VI,PK) را مینیمم میکند عبور میکند و هر مرحله را با بهره گرفتن از سیاست مبتنی بر درج زمانبندی میکند. با این سیاست اگر طول شکاف بهاندازه طول برای یک مرحله جدید باشد یک مرحله ممکن است در یک شکاف زمانبند پردازنده بین دو مرحله از پیش زمانبندیشده روی این پردازنده درج شود.پیچیدگی HEFT، O(EP) است، بهطوریکه E تعداد لبهها در یک گراف و P تعداد پردازندههاست. برای گرافهای متراکم E=O(V2) پیچیدگی الگوریتم HEFT، O(V2P) است که V تعداد رئوس در گراف است.این الگوریتم ابتدا میانگین زمان اجرا را برای هر پردازنده و نیز میانگین زمان ارتباط بین منابع از هر دو وظیفه متوالی را محاسبه میکند، سپس وظایف گردشکاری را روی یک تابع مرتب (غیر افزایشی) رتبهبندی میکند.وظایف با رتبه بالاتر اولویت بالاتری را میگیرد. در فاز انتخاب منبع، وظایف با توجه به اولویتشان زمانبندی میشوند و وظیفه به منبعی که آن را در اسرع وقت (نزدیکترین زمان ممکن) کامل کند، اختصاص داده میشود.
۲-۹-۱۲ الگوریتم زمانبندی آگاه از منابع(RASA)[37]
سعید پارسا به همراه رضا مالکی الگوریتم ذیل را پیشنهاد دادهاند که مشخصات توزیعشدگی و مقیاسپذیری را موردبررسی قرار میدهد، RASA از مزایای دو الگوریتم معروف Min-Min و Min-Max استفاده میکند و معایب خود را میپوشاند.
Rasa به این صورت عمل میکند که ابتدا زمان اتمام وظایف روی هر یک از منابع که در دسترسی هستند را تخمین میزند، سپس الگوریتمهای Min-Min و Min-Max را متناوب به کار میگیرد.از استراتژی Min-Min استفاده میکند تا وظایف کوچکتر را قبل از بزرگترها اجرا کند و از استراتژی Max-Min استفاده میکند تا از تاخیرات در اجرای وظایف بزرگتر جلوگیری کند. همچنین از همزمانی در اجرای وظایف کوچکتر بزرگتر پشتیبانی میکند.