Ứng dụng khoa học thường được mô hình hóa như một workflow công việc.Đề thực thi có hiệu quả workflow và tận dụng các nguôn tài nguyên được phân phốitrên cloud một cách thích hợp, vì thế
Lập lịch các công việc độc lap (Independent task scheduling)
MET (Minimum Excecution Tìme)
Giải thuật MET [15, 18] dua trên ý tưởng tinh ước lượng thời gian thực thi của mỗi tac vu (task) trên các tài nguyên khác nhau, sau đó gán mỗi tác vụ vào tài nguyên mà nó cho là tốt nhất để thực hiện tác vụ đó, không quan tâm tại thời điểm đó tài nguyên này có sẵn sàng hay chưa Giải thuật này có nhược điểm là không cân bằng tải sử dụng vì nhiều khả năng tất cả các tác vụ sẽ chỉ được gán vào một tài nguyên có khả năng tính toán mạnh.
Vi dụ: Giả sử có hai task cần thực hiện, task thứ nhất có kích thước t, = 120, task thứ hai có kích thước tg = 240 Hai tài nguyên có khả năng lần lượt là m, = 60 và mạ = 80 Gia sử thời gian thực hiện của task 2 trên tài nguyên 7 là hy = 1; / m¿; Tinh thời gian thực hiện các tác vụ trên các tài nguyên tương ứng, ta được:
Eịi = tị/mị = 120/60 = 2.0, Bx = te/m, = 240/60 = 4.0, Eyy = ty /my = 120/80 = 1.5, Ey = te/my = 240/80 = 3.0,
— > Fj có giá trị nhỏ nhất nên ?¡ được gan vào ma.
Thực hiện tương tự cho các task còn lại:
Bx = ty/m, = 240/60 = 4.0, Bx: = te/my = 240/80 = 3.0,
— > Fo có giá trị nhỏ nhất nên ?¿ được gan vào me.
Vậy cả hai task t),t2 đều được gan lần lượt trên mg nên thời gian hoàn thành của chúng là makespan = 1.5+4+ 3.0 = 4.5.
MCT (Minimum Completion Time)
MCT la giải thuật kết hop MET và cân bang tải, giải thuật [15, 18] thực hiện gan các công việc cho tài nguyên sao cho công việc đó được hoàn thành sớm nhất.
Như vậy, giải thuật này dựa vào thời gian hoàn thành chứ không dựa vào thời gian thực thi, khi đó tài nguyên tốt chưa chắc được chọn vì nó dang bận thực thi một tác vụ nào đó (có xét đến thời điểm để một task có thể bắt đầu thực thi).
Ví dụ: Cũng với các giả sử có các task và tài nguyên giống trong ví dụ ở phần 2.2.1 Gia sử thời gian hoàn thành của task ¿ trên tài nguyên j là 1;; = S; + Ej; với S; là thời điểm có thể bắt đầu thực hiện một task trên tài nguyên j va Ej; = tị/m; là thời gian thực hiện task 7 trên tài nguyên 7 Tinh thời gian hoàn thành các tác vụ trên các tài nguyên tương ứng, giả sử ban đầu tất cả các tài nguyên đều sẵn sàng ở thời điểm bắt đầu là 0:
Fy = 6+ En =0+t1/m, = 120/60 = 2.0, Fy = S; + Ey =0 + te/m, = 240/60 = 4.0, Fyy = So + Ea = 0 +t1/my = 120/80 = 1.5, Foy = Sy + Eon = 0 + te/my = 240/80 = 3.0,
— > Fy có giá trị nhỏ nhất nên ¡ được gấn vào mz, đồng thời cập nhật So = 1.3.
Lap lại các bước thực hiện với các task còn lại:
Fy = 6 + Ey =0 + te/m, = 240/60 = 4.0, Fog = Sp + Egg = 1.5 + †a/mạ = 1.5 + 240/80 = 4.5,
—> Fy, có giá trị nhỏ nhất nên ?¿ được gan vào my, cập nhật S; = 4.0.
Vậy thời gian hoàn thành của hai task ft, tg là makespan = max {1.5, 4.0} 4.0.
Min-Min, Max-Min
Thuật giải Min-Min [15, 18] sử dung ma trận Minimum Completion Time Ở mỗi bước tính, giải thuật ước lượng thời gian hoàn thành của tất cả các task trên tat cả các tài nguyên hiện có Task nào được gáấn việc thực thi vào tài nguyên tương ứng có thời gian hoàn thành sớm nhất sẽ được chọn Sau đó xét lại từ đầu các task và tiếp tục như vậy cho đến khi hoàn thành gán tất cả các task.
Ví dụ: Cũng với giả sử giống ví dụ ở phần 2.2.2, giải thuật Min-Min sẽ thực hiện các bước như sau:
Tính thời gian hoàn thành của task ? trên các tài nguyên khác nhau:
Fy = $+ Ey =0+t,/m, = 120/60 = 2.0, Fig = Sp + Eig = 04+ t)/me = 120/80 = 1.5, Tính thời gian hoàn thành cua task ty trên các tài nguyên khác nhau:
Fo, = S1 + Eo, =0 +f¿/mị = 240/60 = 4.0, Fog = Sp + Egg = 0 + te/me = 240/80 = 3.0,
=> Trong số các thời gian hoàn thành nhỏ nhất của các tác vụ, chon nhỏ nhất một lần nữa: min {min {F\,, Fig}, min { Fo, F22}} = min {1.5,3.0} = 1.5.
Do đó chon task f¡ gan trên mg, cập nhật giá tri Sp = 1.5.
Lap lại các bước trên cho các task chưa gan còn lại:
Fo, = S1 + Eo, =0 +f¿/mị = 240/60 = 4.0, Fog = Sp + Egg = 1.5 + †a/mạ = 1.5 + 240/80 = 4.5, Vi chi còn một task tf) nên ty được gan trên tài nguyên m1, do có thời gian hoàn thành thực thi nhỏ nhất.
Vậy thời gian hoàn thành hai task ¢,,t2: makespan = max {1.5, 4.0} = 4.0.
Tương tự như thuật giải Min-Min nhưng Max-Min ưu tiên gan những task có thời gian thực hiện lớn Trong những task có thời gian hoàn thành nhỏ, task nào có thời gian thực hiện lớn mà hoàn thành sớm thì ưu tiên được chọn.
2.3 Lập lịch workflow (Dependent task schedul- ing)
Lập lịch workflow là quá trình phân bổ việc thực thi các công việc liên quan đến nhau cho các nguồn lực phân tán Mục đích của việc phân phối này là để hoàn thành công việc một cách hiệu quả, đáp ứng các mục tiêu cụ thể do người dùng đặt ra.
Về cơ bản, có hai lớp lập lich workflow: best-effort và QoS constraint [1T].
Chiến lược lập lịch best-efort cố gắng tối thiểu hóa thời gian thực thi workflow,bỏ qua các yếu tố khác như chi phí thuê tài nguyên, thỏa mãn yêu cầu về dịch vụ của người dùng (users’ QoS satisfaction) Ngược lại, lập lịch QoS contraint thì cố gắng tối đa hóa độ hiệu quả dựa theo các ràng buộc về yêu cầu dịch vụ
Lập lich workflow (Dependent task scheduling)
Lập lich best-effort 0 0.0.0 0.0.0 9
Giải thuật HEFT [11] bao gồm hai giai đoạn (phase) chính: (1) tính toán độ ưu tiên của các task (task prioritizing), (2) chọn lựa tài nguyên để thực thi task (selection processor), sắp xếp theo thứ tự về độ ưu tiên của các task và gén bừng task đến tài nguyên tốt nhất để thực thi task ấy với thời gian hoàn thành được nhỏ nhất.
Quá trình tính toán độ ưu tiên tác vụ được tiến hành thông qua việc tính giá trị bật hạng của tác vụ trên biểu đồ DAG luồng công việc theo thứ tự tăng dần (bắt đầu từ tác vụ kết thúc) Tác vụ có giá trị bật hạng cao sẽ có độ ưu tiên cao hơn Giá trị bật hạng được xác định dựa trên thời gian trung bình để thực hiện tác vụ trên tất cả tài nguyên và thời gian trung bình để truyền dữ liệu giữa hai tác vụ qua các kết nối có sẵn Cụ thể, giá trị bật hạng của một tác vụ được tính theo công thức đệ qui như sau: `rank(tecit) = 10ezir (2.1a)` `rank(u¡) = tị + ∑ Gj + rank(u;)} (2.1b)`
Trong đó, #zz„ là thời gian trung bình để thực thi task trên tất cả tài nguyên, Gj là thời gian trung bình để truyền dẫn dữ liệu sinh ra giữa hai task trên tất cả kết nối của tài nguyên.
Trong giai đoạn chọn lựa tài nguyên, các task được định thời theo thứ tự về độ ưu tiên của chúng và mỗi task được gan vào tài nguyên có khả năng hoàn thành thực thi trong thời gian ước lượng là sớm nhất Algorithm 1 là mã giả của giải thuật HEFT.
Algorithm 1 HEF'T algorithm Input: A workflow DAG G = (U, E).
Compute the average execution time for each task u € U.
Compute the average data transfer time between tasks and their successors.
Compute rank value for each task.
Sort the tasks in a scheduling list Q by decreasing order of task rank value. while Q 4 @ do u < remove the first task from Q. r < find a resource which can complete œ at earliest time. end while
Giải thuật hybrid heuristic [12] được dé xuất cho việc lập lich các task của work- flow DAG trên hệ phan bố Giải thuật heuristic này kết hợp với giải thuật lập lịch các task độc lập sau khi đã nhóm các task không có phụ thuộc dữ liệu với nhau Tương tự HEFT, hybrid heuristic cũng tiến hành tính toán độ ưu tiên của từng task, sắp xếp các task theo thứ tự độ ưu tiên giảm dần, và sau đó gom các task không có sự phụ thuộc dữ liệu thành các nhóm ‘Trong giai đoạn gom các task độc lập thành các nhóm, giải thuật phân nhóm các task theo thứ tự độ ưu tiên của chúng và thêm task vào nhóm hiện tại Khi nhận thấy một task có sự phụ thuộc dữ liệu với task khác trong cùng nhóm, thì sẽ tạo nhóm mới và thêm task này vào nhóm đó Số của nhóm được gan dựa vào thứ tự giá trị rank của các task trong cùng nhóm Sau cùng sẽ áp dụng các giải thuật lập lịch các task độc lập cho từng nhóm (ví dụ như giải thuật MCT, Min-Min, Max-Min, ) Ma giả của giải thuật Hybrid heuristic được trình bày ở Algorithm 2.
Algorithm 2 Hybrid heuristic Input: A workflow DAG G = (U, E).
Output: A schedule. a se =NSP So PF WwW NY Fr
Compute the average execution time for each task u € U.
Compute the average data transfer time between tasks and their successors.
Compute rank value for each task.
Sort the tasks in a scheduling list Q by decreasing order of task rank value.
Create a new group C; and ¿ = 0. while Q 4 @ do u < remove the first task from Q. if ¢t has dependence with a task in C; then i++; create a new group C;
Add u to C; end if : end while : j7 =0 : while 7 [u/A,] x [tau + Yue) /2, s=t—[wy/Arv |
Vu EU, Vu € V,Vt€ {|u„/A„,|, , mac}; e Hàng buộc 5:
Bất phương trình (3.14, 3.15, 3.19, 3.20) biểu diễn cho các ràng buộc 1, 3, 4 là phi tuyến Chúng cần được chuyển đổi sang các công thức tuyến tính tương đương bằng cách biến đổi như đã thực hiện ở bất phương trình (3.6) như sau: e Diễn trung gian mae = | (uv + u¿)/2], Muoe = 1 khi task u được phan
19 bo đến VM 0 hoàn thành tại thời điểm t: e Diễn trung gian 0%, „; = |(Z„„ + Z„¿)/2], n„„¿ = 1 khi task được phan bo đến VM v được thực thi tại thời điểm f; e Diễn trung gian h„„„ = |(Z„w+#z)/2|; hu„„, = 1 khi task được phan bổ đến VM v và task z được phân bổ đến VM k; e Dất phương trình (3.14, 3.15, 3.19, 3.20) được biến đổi thành:
So mut