(۲۲ آذر ۱۳۹۲ ۰۱:۲۶ ق.ظ)crevice نوشته شده توسط: (21 آذر ۱۳۹۲ ۱۰:۵۲ ب.ظ)alireza1989 نوشته شده توسط: ...
پیاده سازی الگوریتم چی چی؟ هدفتون چیه؟ خوب برای کار کلی مثل پیاده سازی الگوریتم های پایه بدون در نظر گرفتن sla و انرژِی میتونید از همون ۷ تا سمپل اولیه کلودسیم استفاده کنید.
اگر میخواید sla و انرژی رو در نظر بگیری میتونید از سمپلهای درون پوشه examples\power استفاده کنید و اگر میخواید فقط سمپل ها رو برای timespan و یا loadbalance استفاده کنید(که اینکارها بیشتر درگرید رایجه!) میتونید از سمپل های ساده درون پوشه examples استفاده کنید. هر کار شما هم میتونه با ورودی تصادفی و یا خواندن اطلاعات vm ها از ورکلود باشه که خود کلودسیم ورکلود ۱۰ روز رو درون پوشه workload داره که واسه Comon هستش.
موفق باشید
سلام ممنون که جواب دادید راستش یه مقاله هست در مورد زمانبندی صف کار ها و وظیفه ها که سه تا الگوریتمو میخاد پیاده سازی کنه
اولیش که برای تخصیص ماشینها به وظیفه ها است دومیش مربوط به زمانبندی که میگه کاری که اول اومده اول سرویس داده میشه و سومیش هم میگه کاری که بزرگتره اول سرویس داده میشه سه تا الگوریتم در زیر اوردم ممنون میشم یه نگاه بندازید واقعا بهشون نیاز دارم با تشکر فراوان
(نقطه ی ورودی برنامه برای سیستم توزیع گرVM می باشد.اگر درجه ی موازی سازی هر برنامه دریافتی کمتر یا معادل تعداد VMS های دسترس پذیرباشد برنامه فورا توزیع می شود.اختصاص VMS ها به فرآیند ها توسط DVM انجام می گیرد که الگوریتم SQF برای این منظور به کار برده میشود.SQF فرآیند ها (وظایف) را با کوتاهترین و کمترین بار و صف به VMS توزیع می کند . فرآیند هایی که متعلق به برنامه مشابه باشند فرآیند ها ی همزاد(هم گره) نیز نامیده می شوند. فرآیندهای هم زاد آن صف مشابهی که برنامه ریزی GANG را ملزم به ایجاد طراحی یک به یک فرآیند برای سرور VMS می نمود.اشغال نمی کند .(درگیرنمی کند.)
نمای چکیده ای از SQF که در لیست ۱ فرآهم شده است.
Algorithm 1 Shortest Queue First
vmsByQueueLength := getVMsByQueueLengthIncremental
for i = 0 to numberOfTasks do
vmsByQueueLength[i].InsertInQueue(Task[i
end for)
////////////////////////////////////////////////////////
Algorithm 2 Adaptive First Come First Serve
freeVMs := getFreeVMs
for each vm in freeVMs do
tasksWaiting := vm.getWaitingTasks
for each task in tasksWaiting do
job := task.belongsToJob
check := checkIfJobCanBeExecuted(job
if check == true then
return job
else
continue
end if
end for
//////////////////////////////
Algorithm 3 Largest Job First Served
jobsBySize := getJobsBySizeDecremental();
for each job in jobsBySize do
check := checkIfJobCanBeExecuted(job);
if check == true then
return job;
else
continue;
end if
end for