فهرست مطالب
عنوان صفحه
فصل اول : مقدمه
1-1مفهوم گرید.... .2
1-2طبقه بندی گرید. . 4
3-1 ارزیابی گرید. 4
1-4کاربردگرید. .5
1-5 تعریف زمانبندی گرید... ..6
1-6 مروری بر تحقیقات گذشته. .7
1-7 مفهوم اصطلاحات به کار برده شده.. 8
1-8 نمای کلی پایان نامه. .9
فصل دوم:زمانبندی کارها در سیستم های توزیع شده
2-1 زمانبندی کلاستر و ویژگیهای آن ... . 10
2-2 زمانبندی گرید و ویژگیهای آن................................13
3-2 رده بندی الگوریتم های زمانبندی گرید....................... 16
2-3-1 زمانبندی محلی/سراسری................................. 16
2-3-2 زمانبندی ایستا/پویا...................................16
2-3-3 زمانبندی بهینه/نزدیک به بهینه...........................21
2-3-4 زمانبندی توزیع شده/مرکزی..............................22
2-3-5 زمانبندی همکار و مستقل...............................22
2-3-6 زمانبندی زمان کامپایل /اجرا........................ 23
2-4-1 رده بندی الگوریتم های زمانبندی از دیدگاهی دیگری..... 23
2-4-2 اهداف زمانبندی.........................................23
2-4-3 زمانبندی وفقی.......................................24
2-4-4 رده بندی برنامه های کاربردی...........................25
2-4-4-1 کارهای وابسته.....................................25
2-4-4-2 گراف کار..........................................26
2-4-5 وابستگی کارهای تشکیل دهنده برنامه کاربردی........... 26
2-4-6 زمانبندی تحت قیود کیفیت سرویس..........................26
2-4-7 راهکارهای مقابله با پویایی گرید.......................28
2-5 الگوریتم های زمانبندی کارهای مستقل......................32
2-5-1 الگوریتمMET ...........................................32
2-5-2 الگوریتمMCT ..............................................32
2-5-3 الگوریتم Min-min...............................................33
2-5-4 الگوریتم Max-Min ................................................33
2 -5-5 الگوریتم Xsuffrage ..............................................34
2 -5-6- الگوریتم GA............................................35
2-5-7- الگوریتم SA............................................37
فصل سوم:الگوریتم های زمانبندی گراف برنامه
3-1 مشکلات زمانبندی گراف برنامه.................................39
3-2 تکنیکهای مهم زمانبندی گراف برنامه در سیستمهای توزیع شده.....40
3-2-1- روش ابتکاری بر پایه لیست ................................ 40
3-2-2- روش ابتکاری بر پایه تکثیر................................40
3-2-3- روش ابتکاری کلاسترینگ......................................41
3-3- دسته بندی الگوریتمهای زمانبندی گراف برنامه در سیستمهای توزیع شده.....................................................44
3-4- پارامترها و مفاهیم مورد استفاده در الگوریتمهای زمانبندی گراف برنامه.........................................................46
3-5- الگوریتمهای زمانبندی گراف برنامه با فرضیات محدودکننده......50
3-5-1- الگوریتمی با زمان چند جملهای برای گراف های درختی - الگوریتم HU ....................................................50
3-5-2- الگوریتمی برای زمانبندی گراف برنامه با ساختار دلخواه در سیستمی با دو پردازنده..........................................51
3-5-3- الگوریتمی برای زمانبندی گراف بازهای مرتب شده............52
3-6- الگوریتمهای زمانبندی گراف برنامه در محیطهای همگن ..........54
3-6-1- الگوریتم Sarkar................................................54
3-6-2- الگوریتمHLFET................................................55
3-6-3- الگوریتم ETF................................................55
3-6-4- الگوریتم ISH ..............................................55
3-6-5- الگوریتم FLB................................................56
3-6-6- الگوریتم DSC................................................56
3-6-7- الگوریتم CASS-II..............................................58
3-6-8- الگوریتم DCP................................................59
3-6-9- الگوریتم MCP................................................60
3-6-10- الگوریتم MD...............................................61
3-6-11- الگوریتم TDS...............................................61
3-7- الگوریتمهای زمانبندی گراف برنامه در محیطهای ناهمگن...............63
3-7-1- الگوریتم HEFT................................................63
3-7-2- الگوریتم CPOP..................................................63
3-7-3- الگوریتمLMT.................................................64
3-7-4- الگوریتمTANH.................................................65
فصل چهارم :الگوریتم FLB
1-4 ویژگیهای الگوریتم........................................66
4-2 اصطلاحات به کار برده شده.................................66
4-3 الگوریتم................................................67
4-4 پیچیدگی الگوریتم........................................75
4-5 کارایی الگوریتم.........................................77 .
فصل پنجم: شبیه سازی گرید
5-1 ابزار شبیه سازی...................................79
5-1-1- optosim..................................................79
5-1-2SimGrid ..................................................80
5-1-3- Gridsim ..................................................80
کارهای انجام شده...............................................83 پیشنهادات............................................................83
مراجع.............................................................85
فهرست اشکال
عنوان صفحه
شکل 1-2 ساختار کلاستر ......................................11
شکل 2-2 ساختار زمانبند گرید ...............................14
شکل 2-3-2 رده بندی الگوریتم های ایستا.......................19
شکل 2-4 رده بندی برنامه های کاربردی.........................26
شکل 2-5-6کلاس بندی برنامه های کاربردی .......................37
شکل 3-2-3 گراف نمونه با هزینه محاسباتی و ارتباطی .............43
شکل 3-3 دسته بندی الگوریتم های گراف برنامه..................45
شکل 3-4 گراف کارها .........................................50
شکل 3-5-3 گراف بازه ای مرتب شده با هزینه محاسباتی یکسان .....53
شکل 3-5-3 مقایسه الگوریتم های زمانبندی گراف برنامه در محیطهای
همگن ........................................................54
شکل 4-1 گراف کار...........................................76
شکل 5-2 ساختار Gridsim .....................................81
فصلاول : مقدمه
قبل از ابداع کامپيوترهای شخصی، عملا سیستم های توزيع شده ای وجود نداشته است . در آن دوران ، استفاده از کامپيوتر، شامل نشستن پشت يک ترمينال و برقراری ارتباط با يک سيستم بزرگ بود. با اينکه ترمينال ها در چندين ساختمان و يا حتی محل فيزيکی قرار می گرفتند ، ولی عملا يک کامپيوتر مرکزی وجود داشت که مسئوليت انجام تمامی پردازش ها و ذخيره سازی داده ها را برعهده می گرفت .
Mainfram معایب
مسائل فوق، ضرورت حرکت بسمت ايجاد يک الگوی جديد بمنظور طراحی برنامه های کامپيوتری را مطرح و بر همين اساس نسل جديدی از برنامه های کامپيوتری با عنوان " برنامه های توزيع شده" در عرصه نرم افزار بوجود آمد.که این برنامه ها به سیستم های توزیع شده نیاز دارد.
يک برنامه توزيع شده، برنامه ای است که پتانسيل های پردازشی آن ممکن است توسط چندين کامپيوتر فيزيکی تامين و داده های آن در چندين محل فيزيکی، مستقر شده باشد .
یک سیستم توزیع شده مجموعه ای از کامپیوتر هاست که دارای منابع اجرایی مختلف و زیادی هستند.
مفهوم گرید1-1
در گريد هر شخصي مي تواند به راحتي وارد يك شبكه شود و از توان محاسباتي موجود در شبكه استفاده كند.در شیوه های نوین به جای استفاده از رایانه های اختصاصی برای حل مسائل بزرگ، با استفاده از رایانه های موجود پراکنده که از همه توان محاسباتی خود استفاده نمی کنند، سعی می شود با جمع آوری این توانهای پراکنده که اغلب بی استفاده می مانند، کارهای خود را انجام دهند. این منابع محاسباتی اگرچه اغلب قدرت و هماهنگی رایانه های اختصاصی را ندارند، اما تعداد زیادی از آنها به وفور در مراکز عمومی از قبیل دانشگاه ها، اداره ها، کتابخانه ها و غیره و حتی در منازلی که اتصال قوی به اینترنت دارند یافت می شوند و این موجب می شود که توان محاسباتی آن در مجموع بسیار بالا باشد و در عین حال هزینه آن به مراتب پایین تر می باشد.
مخصوصاً اینکه هزینه های نگهداری به عهده مالکین منابع می باشد و مدیریت این سیستم صرفاً از منابع برخط در زمانبندی برنامه ها استفاده می کنند. با استفاده از گرید توان کامپیوتر ها دیگر بی معنا است ، صرف نظر از آن که کامپیوتر شما ضعیف و ابتدایی است ، می توانید به بیش از قدرت کامپیوتری دست یابید که هم اکنون در پنتاگون وجود دارد .
یکی ازمزایای مهم سیستمهای توزیع شده سرعت بالای اجرای برنامههاستچرا که یک برنامههمزمان میتواند از چندین کامپیوتر برای اجراء شدنش استفاده کند.[22]
همچنینبه علت توزیع شدن اطلاعات, بانکهای اطلاعاتی حجیم میتوانند روی یکسریکامپیوترهای شبکه شده قرار بگیرند. و لازم نیست که همه اطلاعات به یک کامپیوترمرکزی فرستاده شود(که در نتیجه این نقل و انتقالات حجیم زمان زیادی به هدرمیرود.(
به علتتأخیرهای انتقال در شبکه ونویزهای احتمالی در خطوط انتقالی قابلیتاعتماد اجرای یک برنامه دریک سیستم تنها,بیشتراز قابلیت اجرای آن دریک سیستم توزیعشده است .
همچنیندرسیستم توزیع شده اگر یکی از کامپیوترهایی که وظیفه اصلی برنامه جاری را برعهدهدارد خراب شود کل عمل سیستم مختل خواهد شد . از طرف دیگر اگر اطلاعاتی همزمان درچند کامپیوتر به صورت یکسان ذخیره گردد ویکی از کامپیوترها خراب شود, داده هارا میتوان از کامپیوترهای دیگر بازیابی کرد از این نظر امنیت افزایشمییابد.
اشتراک به منابع محاسباتی محدود نمیشود. انواع منابع اعم از انبارهها،نرمافزار و بانکهای اطلاعاتی را در بر میگیرد. در عین حال، امنیت و سیاست محلی نیز تضمین میشود.[21]
بعد از اتصال به گرید، کاربر استخر بزرگی از منابع را در اختیار دارد. هنگامی که بار کاری سیستم محلی سنگین باشد، میتوان بخشی از بارکاری را به سایر منابع گرید منتقل کرد.
2-1طبقه بندی گرید
هرچند مرز مشخصی بین این سه دسته وجود ندارد، اما بحث ما معطوف به گریدهای محاسباتی است.
انگيزه گريد محاسباتي، مجتمع كردن منابع توزيع شده ناهمگون جهت حل مسائل پيچيده علمي، صنعتي و تجاري است . جهت رسيدن به اين هدف يك سيستم زمانبندي كارآمد به عنوان يك بخش حياتي براي گريد لازم است . متاسفانه پويايي و ناهمگوني منابع گريد باعث پيچيدگي زمانبندي وظايف مي شوند. بعلاوه با معرفي مدل اقتصادي گريد، علاوه بر زمان اتمام كار،
هزينه اجراي كار نيز به نگراني هاي كاربران اضافه شد .
1 – 3 ارزیابی گرید
سه مرحله برای ارزیابی گرید وجود دارد اول:تولید سیستم هایی که در اوایل 1990 متولد شد. دوم:تولید سیستم با تمرکز روی ابزار برای حمایت از معیار های بزرگ داده و محاسبه جریان الکتریکی . سوم: تولید سیستم هایی که برای همکاری جهانی بر تغییرات تاکیید دارد .
اولین تولید فوریتی فرا محاسبه یا محیط های گرید نام گذاری شدهاست. عموما واقعیت این پروژه بهبود بخشیدن به منابع محاسباتی در یک دامنه کاربردوسیع بود. پروژه ارائه شده پیشگام این تکنولوژی [3]فافنر بود.
نسل دوم گرید در نتیجه یک فوریت از یک زیر ساخت که قادر به بهم پیوند دادن بیشتر مرکزهای سوپر محاسباتی مشخص شده است. اکنون با ارتقا تکنولوژیهای شبکه وسازگاری آن با استانداردهای گرید می تواند به عنوان یک زیر ساخت توزیع کننده ممکن و قابل قبول در مقیاس های بزرگ که محاسبات را می خواهند حمایت کنند. در این نوع گرید به طور معمول طبیعت نا همگون منبع ها و بهبود بخشیدن کاربرد ها با محیط همگون ویکنواخت را با مجموعه ای از واسط های استاندارد پنهان می کند.گلو باس [20]یکی از پروژه های توزیع شده است که برای اینکه گرید را استوار کند.
نسل سوم:سازگاری و انطباق زیادی از مدل های خدمات هدفمند وجود دارد . یک حالت قوی از اتوماسیون در سیستم های این نسل وجود دارد . برای مثال زمانی که انسانها نمی توانند برای مدت طولانی مقیاس و ناهمگونی منابع را ارتباط دهند اما ارسال برای پردازش انجام می شود که باعث خود گردانی درون سیستم ها می شود.
4-1 کاربردهای گرید
اخیرا تلاش زیادی برای انتقال دادن برنامههای کاربردی به گرید صورت گرفته است.یک مثال پروژه EGEE است. هدف های آن بهبود بخشیدن کار محققان در دانشگاه و صنعت با دسترسی به منبع های محاسباتی اصلی و مستقل از محل جغرافیایی آنها است.تمرکز روی تعداد زیادی از کاربران گرید است.دو کاربرد برای پیدا کردن تایید اجرا و کارایی زیر ساختها انتخاب شده است یکی محاسبه برخوردها با پشتیبانی از انرژی فیزیکی بالا در آزمایشات فیزیک ودیگری گرید های پزشکی که چندین گروه به طور یکسان با مشکلات سیل عظیم اطلاعات و داده های مراقبت از سلامت روبه رو هستند.[14]
نمونه : تلسکوپ جادوگر(majic)
تلسکوپ طراحی شده برای جستجو در آسمان تا منابع انرژی گاما را مشاهده و کشف کند و اطلاعات فیزیکی زیادی را بررسی کند.
آن بزرگترین تلسکوپ اشعه گاما در جهان است و چندین تلسکوپ دیگر در کشورهای اروپایی به آن در جمع آوری اطلاعات کمک می کنند.توزیع جغرافیایی منابع مدیریت آنها را مشکل می کند و این یک نمونه برای گرید محاسباتی است که می تواند کمک بزرگی بکند زیرا محققان می تواند به طور یکسان به تمام منابع دسترسی داشته باشند. تلسکوپ در شبهای اول ماه کار می کند و حدود 600 گیگا بایت اطلاعات در شب ثبت می کند داده های اضافی تلسکوپ و اطلاعات هوا شناسی نیز ذخیره می شوند.تمام این داده ها باید دریافت و آنالیز شوند.[11]
نمونه رایج استفاده از گرید در هواشناسی است.که در آن ایستگاه تلوزیون و شرکت ماهواره ای و مر کز تجسم و یک کامپیوتر مرکزی وجود دارد که ایجاد امنیت و ارتباطات آنها در محیط گرید فراهم می شود.
قدرت گرید بخصوص در پردازش های فشرده مثل تحقیقات علمی و نمونه های مالی و طراحی های صنعتی و نمودار پرداخت تصویر مفید تر است.
1-5 تعریف زمان بندی گرید
زمانبند، مدیر منبعی میانی است و واسطی است بین مصرف کنندهها و منابع.
در محیطهای توزیع شده، گروهی از کاربران برنامههای خود را برای اجرا به مجموعه ای از منابع میفرستند. سیستم زمانبند چنین محیط توزیع شدهای، مسئول مدیریت منابع و برنامههاست. سیستم زمانبند بایستی بتواند منابع مناسبی به برنامهها اختصاص داده و اهداف کارایی را نیز برآورده سازد.سیستم زمانبند محیطهای محاسباتی موازی سنتی به دلیل خصوصیات یکسان برنامهها وخصوصیات یکسان منابع، ساده تر است. در فرهنگ لغت GGF [1]، مراحل زمانبندی گرید به شرح زیر بیان شده است: کشف منبع در دسترس برای برنامه، انتخاب سیستم یا سیستمهای مناسب آن و پذیرشبرنامه. به طور خلاصه میتوان گفت زمانبندی گرید، قالبی است نرمافزاری که اطلاعات وضعیت منابع را جمع نموده، منابع مناسب را نامزد نموده، کارایی هر نامزد را پیش بینی نموده و بهترین منبع را تعیین میکند.
1-6 مروری بر تحقیقات گذشته
طیف وسیع کاربران گرید دارای برنامههایی با نیازمندیهای متفاوت هستند. ممکن است برنامههای آنان دستهای و یا به خط[2] باشد، شامل کارهای وابسته به هم و یا مستقل باشد. به همین دلیل، ارائه الگوریتم زمانبندی همه منظوره که بتواند برای تمامی سناریوها مناسب باشد، امکانپذیر نیست. از این رو ما بحث خود را به زمانبندی کارهای وابسته، معطوف نموده ایم. هنگامی که کارهای تشکیل دهنده برنامه دارای ترتیب تقدمی باشند، برنامه، به شکل گراف جهتدار بدون سیکل (DAG[3]) مدل میشود که در آن گرهها نشان دهنده کارها و لبهها نشان دهنده ترتیب گرههاست. گاهی اوقات وزنی نیز به گرهها و لبهها اضافه میشود که به ترتیب نشان دهنده هزینههای محاسباتی و هزینههای ارتباطی است. ایجاد تعادل بین به حداکثر رساندن موازی سازی و به حداقل رساندن تاخیر ارتباطی به عنوان مسئله مهمی در زمانبندی کارها مطرح است. برای زمانبندی گراف برنامه، الگوریتمهای ابتکاری[4] متعددی مطرح شده است. برای زمانبندی گراف برنامه، الگوریتمهای ابتکاری[5] متعددی مطرح شده است. این الگوریتمها را میتوان به سه دسته کلی تقسیم کرد. الگوریتمهای بر پایه لیست[6]، الگوریتمهای بر پایه تکرار[7] و الگوریتمهای کلاسترینگ[8].
در روش بر پایه لیست به هر کار، اولویتی داده میشود و کارها به ترتیب اولویت در لیست قرار میگیرند. اولویت باید به گونهای تعیین شود که ترتیب تقدمی کارها، نقض نشود. انتخاب کار برای پردازش به ترتیب اولویت انجام میگیرد و کار با اولویت بالاتر زودتر به منبع واگذار میشود. تفاوت اصلی الگوریتمهای این دسته، در چگونگی تعریف اولویت و تعریف آماده بودن کار برای واگذاری است.
یکی از روشهای کم کردن زمان اجرای گراف برنامه، تکثیرکارها در منابع مختلف است. ایده اصلی الگوریتمهای بر پایه تکرار، بهرهوری از زمان بیکاری منابع است. تکثیر یک کار در چندین منبع، باعث اجتناب از انتقال نتایج از کار قبلی به کار بعدی شده و به همین دلیل هزینه ارتباطی را کاهش میدهد. الگوریتمهای مختلف این روش، بر اساس نحوه گزینش کار برای تکثیر، از هم متمایز میشوند. این الگوریتمها دارای پیچیدگی بالاتری نسبت به الگوریتمهای ابتکاری لیست هستند.
در سیستمهای موازی و توزیع شده، کلاسترینگ روش مناسبی برای کاهش تاخیر ارتباطی گراف به حساب میآید. در این روش کارهایی که ارتباط زیادی باهم دارند در یک کلاستر قرار میگیرند و اعضای یک کلاستر به یک منبع واگذار میشوند و بدین شکل، تاخیر ارتباطی کاهش مییابد.
1- 7 مفهوم اصطلاحات بکاربرده شده در این پایان نامه
ü application:مجموعهای از کارهای وابسته و یا مستقل است که به حل مسئله معینی منتهی میشود. در این تحقیق از واژه فارسی "برنامه" به جای واژه " application " استفاده شده است. در این تحقیق واژه job نیز معادل واژه application تلقی شده است.
ü task: واحد کار application گرید به شمار میآید که میتوان آن را برای اجرا فقط به یک منبع محاسباتی فرستاد . در این تحقیق از واژه فارسی "کار" به جای واژه " task " استفاده شده است.
ü scheduling: به فرایند کشف منبع، انتخاب منبع و ارسال کار به منبع گفته میشود . در این تحقیق "زمانبندی" ترجمه شده است.
DAG: برنامه حاوی چندین کار موازی، به شکل گراف جهتدار بدون سیکل "DAG" مدل میشود. از این واژه با عنوان گراف برنامه و یا به اختصار گراف یاد شده است.
1- 8 نمای کلی پایان نامه
در فصل اول (فصل جاری)، مفاهیم و تعاریف پایه بیان شده است. مفهوم گرید و مسئله زمانبندی تبیین شده، روشهای موجود زمانبندی گراف برنامه به طوراجمال بیان شده است.
در فصل دوم، به بحث زمانبندی در سیستمهای توزیع شده پرداخته شده و موانع
زمانبندی گرید ذکر شده و الگوریتمهای موجود، مطرح و مقایسه گردیده است.
در فصل سوم، موضوع زمانبندی گراف برنامه در سیستمهای توزیع شده، مورد بحث و بررسی قرار گرفته، پارامترها و عناصر تاثیرگذار بر الگوریتمها بیان شده است.
در فصل چهارم الگوریتم flb را بیان نموده که می خواهیم آن را پیاده سازی کنیم ودر فصل پنجم شبیه سازهای گرید رامورد بررسی قرار می دهیم.در انتها نیز کارهای انجام شدهو نتایج بدست آمده و پیشنهادات رامطرح می کنیم.
فصل دوم: زمانبندی کارها در سیستمهای توزیع شده
2-1- زمانبندی کلاسترها و ویژگیهای آن
در سالهای اخیر کلاسترها جایگزین سوپرکامپیوترهای موازی گران قیمت شده اند. چون دارای کارایی مشابه بوده و در عین حال بسیار ارزان ترند. هر کلاستر مجموعه ای از گرههای محاسباتی مستقل است که با شبکه ای درون سیستمی و سرعت بالا به هم متصل شده اند و به شکل سیستمی واحد، کار میکنند.
نهادی مرکزی کنترل همه گرههای محاسباتی را بر عهده دارد. نمونه ای از پیاده سازی کلاستر میتواند بدین صورت باشد: گرههایی که سیستم عامل لینوکس دارند و نرم افزار Beowulf که امکان موازیسازی را فراهم میکند . شکل زیر ساختار کلاستر را نشان می دهد.
شکل 2-1 ساختار کلاستر
کلاسترها به صورت رئیس/مرئوس[9] سازماندهی میشوند.[6] گره رئیس، مسئولیت قبول کارها،
زمانبندی آنها، ارسال آنها به گره مرئوس را برای اجرا بر عهده دارد. گره مرئوس، کامپیوتر مستقلی است که پردازنده، حافظه و سیستم عامل خودش را دارد و مسئول اجرای کار و برگشت دادن نتیجه به کاربران است. گرههای مرئوس معمولا با شبکه ای با سرعت بالا، تاخیرکم و عرض باند زیاد که امکان ارتباط بین پردازنده ای را فراهم میکند، به هم متصل هستند. ارتباط بین پردازنده ای با مکانیسم ارسال پیام[10] مانند PVM یا MPI انجام میشود.
کلاستر، هم برای اجرای کارهای ترتیبی و هم کارهای موازی، وسیله مناسبی است. برنامه نویس بر اساس مکانیسمهای ارسال پیام، نحوه توازی برنامهها را مشخص میکند. اجرای موازی نیازمند کتابخانه زمان اجرایی[11] است که از PVM و MPI حمایت کند. سیستم زمانبند کلاستر ساختار رئیس/مرئوس دارد. گره رئیس،کارها را از سرویس گیرندهها[12] دریافت نموده و در صف قرار میدهد. گره رئیس اطلاعات مربوط به کارهای پذیرفته شده را در اختیار دارد. گره رئیس کارهای منتظر در صف را برای اجرا به گرههای مرئوس میفرستد. یعنی نقش زمانبند را نیز بازی میکند. همه گرههای کلاستر همسان هستند، یعنی پردازنده، اندازه حافظه و عرض باند شبکه یکسانی دارند. تعداد گرههای مرئوس نیز معمولا ثابت است. همه گرهها نیز به محاسبه کلاستر اختصاص دارند. شبکه ارتباطی، خصوصی و سرعت بالاست یعنی امکان ارتباط بین هر زوج از گرهها در اغلب مواقع تضمین شده است. گره رئیس که نقش زمانبند را نیز بازی میکند، با مجموعه ثابتی از گرههای مرئوس در ارتباط است.
زمانبند در هنگام تصمیم گیری فقط به در دسترس بودن گرهها توجه دارد. گره مرئوسی که اجرای کاری را به پایان میرساند، در دسترس بودن خود را به زمانبند گزارش میدهد. یعنی در هر زمان، زمانبند اطلاعات وضعیت همه گرهها را در اختیار دارد. روش کار بدین صورت است که هر برنامه، درخواستهای منبع خود را در یک فایل اسکریپت ثبت مینماید و زمانبند این فایل را تفسیر میکند. ممکن است برنامه ای شامل چندین کار کوچکتر شود که انتظار می رود هرکدام در گره مرئوس مجزایی اجرا شوند. برنامه هنگام تقاضای منبع، تعداد گرههای درخواستی و زمان اجرای انتظاری را مشخص میکند. ممکن است زمانبند ابتدا صف کارها را مرتب نماید.متداولترین الگوریتمهای مرتب سازی در کلاسترها عبارت است از: ابتدا اولین کار[13] ، ابتدا کار با کوچکترین تقاضا[14]، ابتدا کوتاهترین کار[15] و backfill .
بعد از مرتب سازی صف کارها، اولین کاری که زمانبندی میشود، کار ابتدای صف است. بر اساس تقاضای برنامه، زمانبند به تعداد گرههای درخواستی برنامه، گره انتخاب کرده و گرههای مرئوس منتخب را به برنامه مربوطه تخصیص میدهد. هنگامی که اجرای همه کارهای کوچک به اتمام رسید، نتیجه کار در فایلی در گره رئیس نوشته شده و نهایتا به سرویس گیرنده پذیرنده برنامه ارسال میشود. اهداف کارایی سیستم زمانبند کلاستر معمولا اهدافی سیستمگرا مانند به حداکثر رساندن توان عملیاتی[16] میباشد.
خصوصیات زمانبند کلاستر از خصوصیات محیطهای محاسباتی کلاستر ناشی میشود. این خصوصیات عبارتند از:
به دلیل همسانی گرههای محاسباتی، تخمین زمان اجرای کار در یک گره نسبتا ساده است. از طرفی به دلیل شباهت کاربران کلاستر، برنامههای آنان نیز ساختار مشابهی داشته و مدل نیاز به منبع مشابهی نیز دارند.
اغلب کلاسترها در یک دامنه مدیریتی قرار دارند و گرههای محاسباتی و شبکه ارتباطی هردو به محاسبات کلاستر اختصاص دارند. به همین دلیل رفتار گرههای محاسباتی و ظرفیت ارتباط قابل پیش بینی است.
در کلاستر، نهادی مرکزی وظیفه زمانبندی را بر عهده دارد. زمانبند بر روی همه گرههای محاسباتی و اطلاعات کارها، کنترل کامل دارد.
محل گرههای محاسباتی اهمیتی ندارد، چون شبکه ارتباط داخلی خصوصی و سریع بوده و عرض باند کافی را فراهم میکند.
کل کلاستر یک هدف کارایی را دنبال میکند و زمانبند برای رسیدن به این هدف تلاش
میکند. به همین دلیل طراحی زمانبند برای چنین سیستمی، ساده است.
2-2- زمانبندی گرید و ویژگیهای آن
با وجود آنکه گرید در دسته محیطهای محاسباتی موازی توزیع شده قرار دارد اما ویژگیهای منحصربفرد آن، زمانبندی را بسیار مشکل نموده است. سیستم زمانبند گرید بایستی بر چالشهای زیر غلبه کند تا بتواند خدماتی با کارایی مناسب ارائه نموده و پتانسیلهای گرید را به فعل در آورد.
گرید محاسباتی از دو نوع منبع تشکیل شده است: منابع محاسباتی و ارتباطی(شبکه). در هردوی آنها ناهمگونی به چشم میخورد. شبکهها در عرض باند و پروتکلهای ارتباطی متفاوتند. منابع محاسباتی دارای سخت افزار متفاوت(مجموعه دستورات، معماری، تعداد پردازندهها، اندازه حافظه فیزیکی، سرعت پردازنده) و نرم افزار متفاوت (سیستم عامل، سیستم فایل، نرم افزار مدیریت کلاستر) میباشند. این ناهمگونیها یعنی تفاوت در پردازش کارها. سیستم زمانبند باید از این توانهای محاسباتی متفاوت به شکل بهینه استفاده نماید.
ممکن است گرید از چندین دامنه [18] مدیریتی مختلف تشکیل شده باشد که هرکدام سیاستهای مدیریتی و امنیتی خاص خود را دارند و معمولا به گروهی از کاربران اجازه استفاده از منابعشان را میدهند. یعنی نباید امکان اجرای برنامههای کاربران غیر مجاز آن دامنه در منابع آن دامنه وجود داشته باشد. هر سایت نهاد مستقلی است و سیاست زمانبندی خاص خود را دارد و همین مسئله پیش بینی اجرای کار در سایتها را غیر ممکن میسازد. از طرفی تعیین هدف کارایی کلی واحد نیز غیرممکن است چون هر سایتی با توجه به اهداف خود و مستقل از سایرین در خصوص زمانبندی تصمیم میگیرد.
به دلیل وجود منابع تخصیص نیافته، رقابت زیادی بر سر استفاده از منابع وجود دارد. یعنی ممکن است که منبعی به طور همزمان به چند گرید متصل باشد و کاربران محلی و سایر گریدها بطور همزمان در آن منبع شریک باشند. یکی از نتایج رقابت این است که رفتار و کارایی در خلال زمان تغییر میکند. به عنوان مثال در شبکههای گسترده که از مجموعه پروتکل اینترنت[19] استفاده میکنند، خصوصیات شبکه مانند تاخیر و عرض باند در خلال زمان تغییر میکند. در چنین محیطی، طراحی مدل کارایی دقیق کار بسیار مشکلی است. با سنجش کسری از منابع در دسترس به شکل پویا میتوان رقابت را تشخیص داد. سیستم مدیریت منبع با ضمانت کیفیت سرویس و رزرو منبع، پیش بینی کارایی منبع را سادهتر میکند.[9]
طیف وسیع کاربران گرید دارای برنامههایی با نیازمندیهای خاص خود هستند. ممکن است برنامهها نیازمند اجرای ترتیبی و یا همروند باشند. ممکن است برنامهها شامل کارهای وابسته به هم و یا مستقل باشند. از این دیدگاه نیز ساخت سیستم زمانبند همهمنظورهای که بتواند برنامههای متفاوت را مدیریت کند نیز کار سختی است.
در محیطهای محاسباتی موازی سنتی مانند کلاستر، استخر منبعی با منابع ثابت وجود دارد. اما در گرید هم در شبکه و هم در منابع محاسباتی پویایی وجود دارد. اولا شبکهای که کاربران زیادی به آن متصل اند، نمیتواند عرض باند تضمین شده را فراهم کند در ثانی در دسترس بودن منابع و توانایی آنها نیز حالتی پویا دارد یعنی ممکن است منابع جدیدی به شبکه افزوده شود و یا به دلیل مشکلات شبکه منابعی از دسترس خارج شوند. به دلیل وجود رقابت بین اعضای شریک در یک منبع، توانایی منابع در حین زمان نیز تغییر میکند. زمانبند باید بتواند با چنین رفتار پویایی سازگار شده، بعد از اتصال منبع جدیدی به طور خودکار آن را تشخیص داده و در تصمیم گیریهای آتی آن را به شمار آورد و هنگامی که به دلایل نامعلومی، منبعی از دسترس خارج میشود با اعمال مکانیزمهایی مانند نقطه وارسی[20] و یا زمانبندی مجدد[21] قابلیت اطمینان سیستم گرید را تضمین کند.شکل زیر ساختار زمانبند گرید را نشان می دهد.
شکل 2-2 ساختار زمانبند گرید [28]
2-3- رده بندی الگوریتمهای زمانبندی گرید
2-3-1- زمانبندی محلی/ سراسری
زمانبندی محلی، نحوه تخصیص و اجرای کارها در یک پردازنده را تعیین میکند ولی سیاست زمانبندی سراسری از اطلاعات سیستم بهره میبرد تا کارها را بین چندین پردازنده به گونهای تقسیم کند که کارایی سیستم بهینه شود. مشخص است که زمانبندی گرید در دسته زمانبندی سراسری قرار دارد.[8]
2-3-2- زمانبندی ایستا/ پویا
در زمانبندی ایستا فرض میشود که اطلاعات مربوط به همه منابع گرید، همچنین اطلاعات مربوط بهکارهای یکبرنامه کاربردیدر هنگام زمانبندی در دسترس است. در زمانبندی پویا، ایده اصلی این است که تخصیص کارها، در حین اجرایبرنامه کاربردی انجام شود.این شیوه هنگامی مفید است که تعیین زمان اجرا غیر ممکن باشد، سمت انشعاب و تعداد تکرارهای حلقه نامشخص باشد و کارها زمان حقیقی[22] باشند. زمانبندی گرید میتواند به هر دو شکل ایستا و پویا انجام گیرد.
در زمانبندی ایستا هرکار تشکیل دهنده برنامه، یک بار به یک منبع واگذار میشود . بنابراین محل برنامه کاربردی ثابت است و میتوان تخمین درستی از هزینه محاسبات را در حین پیشرفت اجرای واقعی ارائه کرد. مزیت اصلی این روش سادگی برنامه نویسی از دیدگاه زمانبند است. این مدل، دیدی سراسری به کارها و هزینهها را امکان پذیر میسازد. اما تخمین هزینه بر اساس اطلاعات ایستا وفقپذیر با موقعیتهای جدید نیست مثلاً اگر گرهای که قرار است محاسبهای را انجام دهد، خراب شود یا به علت اشکالات شبکه در دسترس نباشد یا به علت ترافیک شبکه، زمان پاسخ از حد انتظار بیشتر شود. البته برای کاهش چنین مشکلاتی میتوان از مکانیزمهای خاصی مانند زمانبندی مجدد بهره گرفت تا هنگام بروز چنین موقعیتهایی امکان مهاجرت کارها فراهم شود، که طبعاً سرباری اضافی را به سیستم تحمیل میکند. استفاده از این مکانیزمها، فاصله بین زمانبندی ایستا و پویا را کم اهمیتتر کرده است. معمولاهنگامی از زمانبندی پویا استفاده میشود که پیشبینی هزینه برنامه کاربردی مشکل باشد یا کارها حالتی پویا داشته و به خط باشند. همانند سیستمهای محاسباتی کندر و لژیون. زمانبندی پویا شامل دو بخش است : تخمین وضعیت (به جای تخمین هزینه در زمانبندی ایستا) و تصمیمگیری.
شکل زیر سلسله مراتب الگوریتم های زمانبندی ایستا را نشان می دهد.
شکل 2-3-2 رده بندی الگوریتم های ایستا
تخمین وضعیت سیستم شامل جمعآوری وضعیت اطلاعات کل گرید و ساخت یک تخمین میشود. بر اساس تخمینهای مزبور، تصمیمگیری میشود که کارها به کدام منبع واگذار شود. چون هزینه واگذاری قابل محاسبه نیست، راه طبیعی که بتوان سیستم را سالم و پویا نگاه داشت، متوازنسازی بار کل منابع سیستم است. مزیت متوازنسازی پویا بر زمانبندی ایستا این است که در این روش نیازی نیست که سیستم از رفتار زمان اجرای برنامههای کاربردی قبل از اجرا اطلاع داشته باشد. این مسئله به ویژه در سیستمی که هدف کارایی آن حداکثر نمودن بهرهوری منابع است مفید است .
اگر به منبعی تعداد زیادیکار واگذار شود، سیاست متوازنسازی مشخص میکند که آیا لازم است که تعدادی ازکارها به منابع دیگر فرستاده شود یا نه و در صورت لزوم ، کدام کارها باید منتقل شوند. توازن بار پویا به چهار روش مختلف انجام میشود. روش FIFOی غیر مقید[23]، روش مقید به توازن، روش مقید به هزینه و روش ترکیبی[24] که در ذیل به توضیح آنها خواهیم پرداخت.
- روش FIFOی غیر مقید
در این روش ، کار وارده، به منبعی که در حال حاضر کوتاهترین طول صف و یا کمترین زمان انتظار در صف را دارد، واگذار میشود. به این روش، توازن بار مصلحتبین[25] نیز گفته میشود.
- روش مقید به توازن
در این روش سعی میشود که بار بر روی کل منابع دوباره توزیع شود. بدین صورت که به طور دورهای کارهای منتظر را از یک صف به صف دیگر منتقل میکند. در سیستم بزرگی همچون گرید به علت تاخیر ارتباطی قابل ملاحظه ای که وجود دارد، روش گرانی است . البته میتوان ابتکاراتی محلی و وفقپذیر برای متوازنسازی مجدد بار در نظر گرفت . به عنوان مثال میتوان ابتدا کارها را بین همه منابع توزیع نمود. سپس به جای انجام توازن مجدد به شکل سراسری، توازن مجدد را فقط در سطح همسایهها انجام داد (گرههای همسایه، دارای هزینه ارتباطی پایینتری هستند).
این شیوه مزایای زیادی دارد. بارهای اولیه سریعا بین منابع توزیع شده و اجرای آنها آغاز میشود، پروسه متوازنسازی مجدد، توزیع شده و قابل توسعه[26] است. تاخیر ارتباطی آن کم است چون انتقال کارها فقط بین منابع نزدیک به هم انجام میگیرد. چن و همکارانش با بهرهگیری از این روش، الگوریتم زمانبندی برای گرید ارائه داده اند.
- روش مقید به هزینه
این روش بهبود یافته روش مقید به توازن است. یعنی هنگام متوازنسازی مجدد به هزینه ارتباط کارها نیز توجه دارد. یعنی به جای تعویض کارها به شکل دورهای،کارها را قبل از انتقال بررسی میکند. اگر هزینه ارتباطی مربوط به انتقال کار از کاهش زمان اجرای آن بزرگتر باشد، کار منتقل نخواهد شد. این روش هنگامی که هزینه ارتباط بین منابع ناهمگون باشد و هزینه ارتباط در اجرای برنامه کاربردی، دغدغه اصلی باشد، از روش قبلی کارآمدتر است. کوروسکی و همکارانش سیاست زمانبندی خود را بر این اساس پایه نهادند[25].
-روش ترکیبی
روش بعدی، زمانبندی ترکیبی ایستا/ پویا ست. ایده اصلی این تکنیک، استفاده همزمان از مزایای زمانبندی ایستا و کنترل رفتارهای غیرمطمئن برنامههای کاربردی و منابع است. برای سناریوی برنامهای با رفتار نامطمئن، زمانبندی ایستا برای آن بخشهایی که همیشه اجرا میشوند، بکار گرفته میشود. در زمان اجرا، زمانبندی با استفاده از تخمینهای محاسبه شده به شکل ایستا انجام میشود تا سربار زمان اجرا کاهش یابد. یعنی کارهای همیشه در حال اجرا به شکل ایستا زمانبندی میشوند و سایر کارها به شکل پویا. به عنوان مثال، هنگامی که کیفیت سرویس خاصی مورد نیاز بعضی کارهاست، میتوان از فاز ایستا برای نگاشت کارهای نیازمند کیفیت سرویس استفاده کرد و سایر کارها را به شکل پویا زمانبندی کرد. یا زمانی که امکان پیشبینی رفتار منابع کم است، در شروع کار برای تخصیص اولیه کارها ، از زمانبندی ایستا استفاده میشود و هنگامی که تخمین کارایی که زمانبندی ایستا بر اساس آن کار میکند، با شکست مواجه شود، زمانبند پویا فعال میشود.
در بعضی از الگوریتمهای زمانبندی پویا مانند ، منابع رزرو میشوند. به ویژه در گرید برای رسیدن به درجهای از قطعیت کارایی منابع، این تکنیک عمومیت دارد.
2-3-3-بهینه / نزدیک به بهینه
در حالتی که همه اطلاعات مربوط به منابع و کارها شناخته شده باشند، تخصیص بهینه بر اساس معیارهایی مانند "به حداقل رساندن زمان گسترش[27]" یا "حداکثر نمودن بهرهوری منابع[28] " صورت میگیرد. اما به علت طبیعت NP-complete الگوریتمهای زمانبندی، داشتن فرضیات معقول مشکل بوده و معمولا اثبات بهینگی چنین الگوریتمهایی سخت است. به همین دلیل تحقیقات فعلی به دنبال راه حلهای نزدیک به بهینه است. الگوریتمهای نزدیک به بهینه به دو دسته تقریبی و ابتکاری تقسیم میشوند. الگوریتمهای تقریبی مدلهای محاسباتی رسمی[29] را بکار میبرند اما کل فضای جواب را جستجو نمیکنند بلکه هنگامی که راه حلی به اندازهی کافی خوب پیدا شود، جستجو متوقف میشود. زمانی که متریک مناسبی برای ارزیابی جواب وجود داشته باشد، این روش زمان صرف شده برای یافتن زمانبندی [30] را کاهش میدهد.
فاکتورهایی که به کمک آن میتوان تعیین کرد که آیا ادامه روش مناسب است یا نه عبارتند از:
دسته دیگر الگوریتمهای نزدیک به بهینه، ابتکارات هستند. این دسته الگوریتمها فرضیات مبتنی بر واقعیتی در مورد پردازش و خصوصیات بار سیستم دارند. راه حلی که این الگوریتمها ارائه میدهند، منتهی به جواب بهینه نمیشود اما هزینه و منابع مورد نیاز آنها معقول است. ارزیابی این نوع راهحلها در محیط واقعی و یا شبیهسازی شده انجام میشود. الگوریتمهای ابتکاری با محیط گرید بسیار وفقپذیرند به همین دلیل اکثر الگوریتمهای بحث شده در این تحقیق در این دسته جای میگیرند.
2-3-4- توزیع شده/ مرکزی
در زمانبندیهای پویا، مسئولیت تصمیمگیری در خصوص زمانبندی سراسری بر عهده یک زمانبند مرکزی قرار داده میشود و یا بین چندین زمانبند توزیع شده به اشتراک گذاشته میشود. پیادهسازی زمانبند مرکزی ساده است اما قابل توسعه نیست، تحمل خطا ندارد و احتمال زیادی وجود دارد که تبدیل به گلوگاه کارایی شود. سابین و همکارانش زمانبندی مرکزی ارائه کردند که کارهای موازی سایتهای ناهمگون را به روش backfilling زمانبندی میکرد. آرورا و همکارانش زمانبندی غیرمرکزی ، پویا، با متد "فرستنده آغازگر[31]" با توازن بار ارائه نمودند که در آن برای یافتن گرههای پدری که باید کار به آن جا مهاجرت کند، از تکنیک جستجوی هوشمندانهای بهره گرفته شده است. در این الگوریتم پروسه تصمیمگیری با روند اجرای واقعی کارها، رویهماندازی شده است تا در سیکلهای گرانبهای پردازنده صرفهجویی شود.
2-3-5- همکار/مستقل
نکته قابل توجه دیگر در الگوریتمهای زمانبندی توزیع شده این است که آیا گرههای درگیر زمانبندی به شکل همکار، کار میکنند یا به شکل مستقل؟ درحالت مستقل، هر زمانبند[6] به صورت خودمختار و بر اساس اهداف بهینه خود و بدون توجه به تاثیر تصمیمش بر روی بقیه سیستم، تصمیمگیری میکند. مثال این نوع زمانبندها، زمانبند سطح برنامه کاربردی است. در حالت همکار، هر زمانبند کارهای بخش مربوط به خود را زمانبندی میکند اما همه زمانبندها به سمت یک هدف مشترک سیستمی پیش میروند و هدف مشترک، بالا بردن کارایی کل سیستم است نه کارایی محلی و نه کارایی برنامه خاصی.
2-3-6- زمانبندی زمان کامپایل /اجرا
زمانبند زمان کلی یک مجموعه کاربردی رادر زمان کامپایل محاسبه می کندکه زمانبندی زمان کامپایل نامیده می شود.در این زمانبند فرض می شود که اطلاعاتی ماند پردازنده سرعت و پارامتر های کرای را می دانیم. این مدل بسیار محبوب است زیرا برای برنامه زمانبند آسان تر است.زمانبندی در زمان اجرا این است که زمان کلی در زمان اجرا توسط زمانبند مشخص می شود.
2-4-1 دستهبندی الگوریتمهای زمانبندی از دیدگاهی دیگر
کاساوانت و همکارانش این جنبهها را خصوصیات دسته بندی مسطح نامیدند. این جنبهها در گرید محاسباتی عبارتند از: هدف زمانبند، وفق پذیر بودن یا نبودن الگوریتم، وابسته یا مستقل بودن کارهای برنامه کاربردی، تامین کیفیت سرویس، نحوه غلبه بر پویایی محیط گرید.
2-4-2- اهداف زمانبندی
مصرفکنندگان منابع (کاربران گرید) و فراهمکنندگان منابع، اهداف متفاوتی را دنبال میکنند. کاربران به دنبال کارایی بیشتر برنامه کاربردی خود هستند و هزینه کمتر در حالی که فراهمکنندگان منبع به دنبال بهرهوری بیشتر از منابع خود هستند و منفعت بیشتر.
هدف الگوریتمهای زمانبندی برنامهگرا این است که کارایی تک تک برنامههای کاربردی را بطور مجزا بهبود بخشد. تمرکز این الگوریتم معیار زمان است. مثلا زمان گسترش. زمان گسترش یکی از عمومیترین معیارها برای الگوریتمهای زمانبندی است و زمانی است که از آغاز اولین کار یک برنامه تا اتمام آخرین کار آن طول میکشد. در مدلهای اقتصادی، دغدغه اصلی کاربر هزینه ایست که برای بهرهبرداری از منبع باید بپردازد. بعضی از برنامههای کاربردی ترکیب دو هدف فوق را دنبال میکنند. البته چنین ترکیبی زمانبندی را بسیار پیچیده میکند . در حال حاضر توسعه فراساختار گرید، نیازهای جدیدی را مطرح ساخته است یعنی "کیفیت سرویس". کیفیت سرویس قید تحمیل شدهای بر پروسه زمانبندی است. بحث کیفیت سرویس معمولا بر مرحله انتخاب منبع و مرحله بهینهسازی هدف نهایی تاثیر میگذارد.
الگوریتمهای زمانبندی با هدف منبع گرا، تلاش دارند که کارایی منابع را بهبود بخشند یعنی توان عملیاتی[32](تعداد برنامههای پردازش شده یک منبع در یک پریود خاص) را بالا برند و بهرهوری(درصد مشغول بودن یک منبع) را بهبود بخشند. بهرهوری پایین به معنای بیکار بودن منبع و تلف شدن توان آن است. در یک منبع دارای چند پردازنده، بهرهوری پردازنده ها، متفاوت است و برای بهبود توان عملیاتی بایستی بار پردازندهها را متوازن ساخت. کندر سیستمی است که هدف زمانبندی آن افزایش توان عملیاتی است.
در محیط گرید به دلیل خودمختاری کاربران منابع و فراهمکنندگان منابع ، اهداف برنامهگرا و منبعگرا معمولا در تضاد باهم هستند. لژیون امکانی را فراهم کرده که به هر دو گروه اجازه میدهد که خواستههایشان را بیان کنند. لژیون همانند واسطی برای یافتن تخصیص منبعی که برای هر دو گروه قابل قبول باشد تلاش میکند.
[1] Global Grid Forum
[2] On Line
[3] Directed Acyclic Graph
[4] Heuristic
[5] Heuristic
[6] List scheduling
[7] Duplication based
[8] Clustering
[9] Master/Slave
[10] Message Passing
[11] Run Time
[12] Client
[13] First Come First Serve
[14] Minimal Request Job First
[15] Shortest Job First
[16] Throughput
[17] Dedicated
[18] Domain
[19] IP
[20] Check Pointing
[21] Rescheduling
[22] Real Time
[23] Unconstrained FIFO
[24] Hybrid
[25]Opportunistic Load Balancing
[26]Scalable
[27] Make Span
[28] Utilization
[29]Formal
[30]Schedule
[31] Sender-initiated
[32]Throughput
مبلغ قابل پرداخت 24,300 تومان