nghiŒncÙum¸ts¨v⁄n˚Šl−plÀchtrŒn … · 2020. 2. 20. ·...
TRANSCRIPT
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
NGUYỄN HOÀNG HÀ
NGHIÊN CỨU MỘT SỐ VẤN ĐỀ LẬP LỊCH TRÊN
MÔI TRƯỜNG TÍNH TOÁN ĐÁM MÂY
LUẬN ÁN TIẾN SĨ KHOA HỌC MÁY TÍNH
HUẾ - NĂM 2016
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
NGUYỄN HOÀNG HÀ
NGHIÊN CỨU MỘT SỐ VẤN ĐỀ LẬP LỊCH TRÊN
MÔI TRƯỜNG TÍNH TOÁN ĐÁM MÂY
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 62.48.01.01
LUẬN ÁN TIẾN SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học:
1. PGS.TS. Lê Văn Sơn
2. PGS.TS. Nguyễn Mậu Hân
HUẾ - NĂM 2016
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu do tôi thực hiện, dưới sự hướng
dẫn khoa học của PGS.TS. Lê Văn Sơn và PGS.TS. Nguyễn Mậu Hân. Các số liệu và
kết quả trình bày trong luận án là trung thực, chưa được công bố bởi bất kỳ tác giả
nào hay ở bất kỳ công trình nào khác.
Nghiên cứu sinh
Nguyễn Hoàng Hà
i
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
LỜI CẢM ƠN
Trong quá trình thực hiện đề tài “Nghiên cứu một số vấn đề lập lịch trên
môi trường tính toán đám mây” , Tôi đã nhận được rất nhiều sự giúp đỡ, tạo
điều kiện của tập thể Ban Giám hiệu, Phòng Đào tạo Sau Đại học, Khoa Công nghệ
Thông tin, giảng viên, cán bộ các phòng chức năng Trường Đại học Khoa học, Đại
học Huế. Tôi xin bày tỏ lòng cảm ơn chân thành về sự giúp đỡ đó.
Tôi xin bày tỏ lòng biết ơn sâu sắc tới PGS.TS. Lê Văn Sơn và PGS.TS. Nguyễn
Mậu Hân là những thầy giáo trực tiếp hướng dẫn và chỉ bảo cho Tôi hoàn thành luận
án này.
Tôi xin chân thành cảm ơn bạn bè, đồng nghiệp của Tôi đang công tác tại Khoa
Công nghệ Thông tin và gia đình đã động viên, khích lệ, tạo điều kiện và giúp đỡ Tôi
trong suốt quá trình thực hiện và hoàn thành luận án này.
TÁC GIẢ LUẬN ÁN
Nghiên cứu sinh
Nguyễn Hoàng Hà
ii
MỤC LỤC
Lời cam đoan i
Lời cảm ơn ii
Danh mục các từ viết tắt iv
Danh mục các ký hiệu v
Danh mục bảng biểu vi
Danh mục hình vẽ vii
Mở đầu 1
Chương 1. Tổng quan về các vấn đề lập lịch trên tính toán đám mây 5
1.1 Tổng quan về tính toán đám mây . . . . . . . . . . . . . . . . . . . . . 5
1.1.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.2 Đặc điểm của tính toán đám mây . . . . . . . . . . . . . . . . . 7
1.1.3 Kiến trúc của tính toán đám mây . . . . . . . . . . . . . . . . . 8
1.1.4 Các mô hình trên tính toán đám mây . . . . . . . . . . . . . . . 8
1.1.5 Các thách thức trên tính toán đám mây . . . . . . . . . . . . . 10
1.2 Công cụ mô phỏng trên tính toán đám mây . . . . . . . . . . . . . . . 11
1.2.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.2 Một số công cụ mô phỏng trên tính toán đám mây . . . . . . . 11
1.2.3 Công cụ mô phỏng CloudSim . . . . . . . . . . . . . . . . . . . 12
1.3 Bài toán lập lịch trên tính toán đám mây . . . . . . . . . . . . . . . . . 15
1.3.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.2 Mô hình tổng quát để lập lịch trên các trung tâm dữ liệu . . . . 16
1.3.3 Sự khác nhau giữa lập lịch trên TTĐM so với các hệ thống khác 18
1.3.4 Các phương pháp lập lịch . . . . . . . . . . . . . . . . . . . . . 19
1.3.5 Mô hình kinh tế cho bài toán lập lịch . . . . . . . . . . . . . . . 20
1.4 Các nghiên cứu liên quan đến lập lịch trên tính toán đám mây . . . . . 24
1.4.1 Lập lịch tĩnh và động . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4.2 Lập lịch heuristic . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.4.3 Lập lịch luồng công việc . . . . . . . . . . . . . . . . . . . . . . 26
1.4.4 Lập lịch công việc thời gian thực . . . . . . . . . . . . . . . . . 27
1.5 Mục tiêu và nội dung của luận án . . . . . . . . . . . . . . . . . . . . . 28
1.6 Tiểu kết Chương 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Chương 2. Lập lịch công việc thời gian thực trong tính toán đám mây 30
2.1 Mô hình lập lịch truyền thống . . . . . . . . . . . . . . . . . . . . . . . 30
2.1.1 Mô hình các máy tham gia lập lịch . . . . . . . . . . . . . . . . 31
2.1.2 Mô hình công việc . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.1.3 Mô tả mục tiêu của bài toán . . . . . . . . . . . . . . . . . . . . 32
iii
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
2.2 Mô hình lập lịch công việc thời gian thực . . . . . . . . . . . . . . . . . 32
2.2.1 Mô tả bài toán . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.2 Mô hình toán học cho bài toán . . . . . . . . . . . . . . . . . . 35
2.2.3 Mục tiêu tối ưu về chi phí . . . . . . . . . . . . . . . . . . . . . 37
2.2.4 Mục tiêu tối ưu về thời gian . . . . . . . . . . . . . . . . . . . . 37
2.3 Mô hình tối ưu về kinh tế . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4 Thuật toán lập lịch trên hệ thống thời gian thực . . . . . . . . . . . . . 39
2.4.1 Thuật toán lập lịch tối ưu về thời gian . . . . . . . . . . . . . . 39
2.4.1.1 Thuật toán CTO . . . . . . . . . . . . . . . . . . . . . 40
2.4.1.2 Thuật toán MINC . . . . . . . . . . . . . . . . . . . . 43
2.4.1.3 Phân tích thuật toán CTO và MINC . . . . . . . . . 45
2.4.1.4 Mô phỏng và đánh giá thuật toán . . . . . . . . . . . . 46
2.4.2 Thuật toán lập lịch tối ưu về chi phí . . . . . . . . . . . . . . . 50
2.4.2.1 Thuật toán TCO . . . . . . . . . . . . . . . . . . . . . 51
2.4.2.2 Mô phỏng và đánh giá thuật toán . . . . . . . . . . . 53
2.5 Tiểu kết Chương 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Chương 3. Lập lịch công việc theo hướng tối ưu đa mục tiêu trong
tính toán đám mây 58
3.1 Mô hình lập lịch theo hướng tối ưu đa mục tiêu . . . . . . . . . . . . . 58
3.1.1 Mô hình người dùng . . . . . . . . . . . . . . . . . . . . . . . . 59
3.1.2 Mô hình nhà cung cấp IaaS . . . . . . . . . . . . . . . . . . . . 60
3.1.3 Mô hình nhà cung cấp SaaS . . . . . . . . . . . . . . . . . . . . 61
3.1.4 Mô hình nhà cung cấp PaaS . . . . . . . . . . . . . . . . . . . . 61
3.2 Xây dựng bài toán theo hướng tối ưu đa mục tiêu . . . . . . . . . . . . 63
3.2.1 Tối ưu hóa đàn kiến (ACO) . . . . . . . . . . . . . . . . . . . . 64
3.2.2 Tối ưu hóa bầy đàn (PSO) . . . . . . . . . . . . . . . . . . . . 68
3.3 Thuật toán lập lịch tối ưu đa mục tiêu dựa trên ACO . . . . . . . . . . 73
3.3.1 Phát biểu bài toán . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.3.2 Thuật toán lập lịch tối ưu đa mục tiêu về chi phí . . . . . . . . 74
3.3.2.1 Thuật toán ACACO . . . . . . . . . . . . . . . . . . 74
3.3.2.2 Thuật toán Mprofit . . . . . . . . . . . . . . . . . . 76
3.3.2.3 Phân tích thuật toán ACACO và Mprofit . . . . . . 77
3.3.2.4 Mô phỏng và đánh giá thuật toán . . . . . . . . . . . 78
3.3.3 Thuật toán lập lịch tối ưu đa mục tiêu về thời gian . . . . . . . 83
3.3.3.1 Thuật toán ACTACO . . . . . . . . . . . . . . . . . . 84
3.3.3.2 Áp dụng thuật toán Mprofit . . . . . . . . . . . . . . 85
3.3.3.3 Mô phỏng và đánh giá thuật toán . . . . . . . . . . . . 85
3.4 Thuật toán lập lịch tối ưu đa mục tiêu dựa trên PSO . . . . . . . . . . 88
3.4.1 Phát biểu bài toán . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.4.2 Thuật toán tối ưu ACPSO . . . . . . . . . . . . . . . . . . . . 89
iv
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
3.4.2.1 Thuật toán ACPSO . . . . . . . . . . . . . . . . . . . 90
3.4.2.2 Áp dụng thuật toán Mprofit . . . . . . . . . . . . . . 91
3.4.2.3 Phân tích thuật toán ACPSO . . . . . . . . . . . . . 91
3.4.2.4 Mô phỏng và đánh giá thuật toán . . . . . . . . . . . . 92
3.5 Tiểu kết Chương 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Kết luận 97
Danh mục các công trình khoa học của tác giả liên quan đến luận án 99
Tài liệu tham khảo 100
v
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
DANH MỤC CÁC TỪ VIẾT TẮT
Viết tắt Dạng đầy đủ Diễn giải ý nghĩa
ACACO Admission Control by using ACO Kiểm soát đầu vào bằng cách sử
dụng ACO
ACO Ant Colony Optimization Tối ưu hóa đàn kiến
ACPSO Admission Control by using PSO Kiểm soát đầu vào bằng cách sử
dụng PSO
API Application Programming Inter-
face
Giao diện lập trình ứng dụng
CIS Cloud Information Services Các dịch vụ thông tin trên đám
mây
CTO Cost-Time Optimization Tối ưu về thời gian và chi phí
EDF Earliest Deadline First Ưu tiên về thời hạn sớm nhất
GA Genetic Algorithm Thuật toán di truyền
GIS Geographical Information System Hệ thống thông tin địa lý
IaaS Infrastructure as a Service Cơ sở hạ tầng như một dịch vụ
MCT Minimum Completion Time Thời gian hoàn thành nhỏ nhất
MET Minimum Execution Time Thời gian thực hiện nhỏ nhất
MI Million Instructions Triệu chỉ thị
MIPS Million Instructions Per Second Triệu chỉ thị trên một giây
Mprofit Maximum Profit Lợi nhuận lớn nhất
OLB Opportunistic Load Balancing Cân bằng tải cơ hội
PaaS Platform as a Service Nền tảng như một dịch vụ
PSO Particle Swarm Optimization Tối ưu hóa bầy đàn
QoS Quality of Service Chất lượng dịch vụ
SaaS Software as a Service Phần mềm như một dịch vụ
SLA Service Level Agreement Thỏa thuận dịch vụ
TCO Time-Cost Optimization Tối ưu về chi phí và thời gian
TSP Travelling Salesman Problem Bài toán người du lịch
VMs Virtual Machines Các máy ảo
vi
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
DANH MỤC CÁC KÝ HIỆU
Ký hiệu Diễn giải ý nghĩa
R Tập tài nguyên
T Tập các yêu cầu người dùng
X Tập các nhà cung cấp tài nguyên trên IaaS
γ Mục tiêu của bài toán
Cmin Mục tiêu chi phí nhỏ nhất
Tmin Mục tiêu thời gian thực hiện nhỏ nhất
F Hàm cực tiểu
η Thông tin heuristic
τ Mùi để lại của các con kiến
P Xác suất
pos Vị trí của mỗi cá thể
fcost(ti) Hàm mục tiêu về chi phí cho yêu cầu ti
ftime(ti) Hàm mục tiêu về thời gian cho yêu cầu ti
Fcost(pos) Hàm thích nghi về chi phí tại vị trí pos
Ftime(pos) Hàm thích nghi về thời gian tại vị trí pos
Scost(x) Hàm tính tổng chi phí tại phút thứ x
Scycle(x) Hàm tính tổng chu kỳ thực hiện tại phút thứ x
Pbest Vị trí tối ưu cục bộ
Gbest Vị trí tối ưu toàn cục
vmjx Máy ảo thứ j của nhà cung cấp x
vii
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
DANH MỤC BẢNG BIỂU
2.1 Chi phí và tốc độ ban đầu của các tài nguyên . . . . . . . . . . . . . . 41
2.2 Chi phí và tốc độ của các tài nguyên sau khi phân nhóm theo tốc độ . 41
2.3 Chi phí và tốc độ của các tài nguyên sau khi sắp xếp theo chi phí . . . 41
2.4 Mảng kết quả xác định số lượng tài nguyên cho mỗi yêu cầu của CTO 43
2.5 Các thông số mô phỏng trên CloudSim . . . . . . . . . . . . . . . . . . 47
2.6 Chi phí và tốc độ ban đầu của các tài nguyên . . . . . . . . . . . . . . 52
2.7 Chi phí và tốc độ của các tài nguyên khi phân nhóm theo chi phí . . . 52
2.8 Chi phí và tốc độ của các tài nguyên sau khi sắp xếp theo tốc độ . . . 52
2.9 Mảng kết quả được đưa ra bởi thuật toán TCO . . . . . . . . . . . . . 53
viii
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
DANH MỤC HÌNH VẼ
1.1 Mối quan hệ giữa các hệ thống phân tán với TTĐM . . . . . . . . . . 6
1.2 Kiến trúc của TTĐM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Biểu đồ lớp trong CloudSim . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 Mô hình lập lịch trên CloudSim . . . . . . . . . . . . . . . . . . . . . . 15
1.5 Mô hình hệ thống để lập lịch trên TTĐM . . . . . . . . . . . . . . . . 17
1.6 Các phương pháp lập lịch . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1 Ánh xạ đồng thời t1 và t2 vào tài nguyên r1 và r3 . . . . . . . . . . . . 35
2.2 Ánh xạ đồng thời t1 và t2 vào tài nguyên r1 và r2 . . . . . . . . . . . . 35
2.3 So sánh tổng thời gian của 3 thuật toán khi thay đổi số yêu cầu . . . . 48
2.4 So sánh tổng chi phí của 3 thuật toán khi thay đổi số yêu cầu . . . . . 48
2.5 So sánh tổng thời gian thực hiện của 3 thuật toán khi thay đổi ρ . . . 50
2.6 So sánh tổng chi phí của 3 thuật toán khi thay đổi ρ . . . . . . . . . . 50
2.7 So sánh tổng chi phí của 3 thuật toán khi thay đổi số yêu cầu . . . . . 54
2.8 So sánh tổng thời gian của 3 thuật toán khi thay đổi số yêu cầu . . . . 54
2.9 So sánh tổng chi phí của 3 thuật toán khi thay đổi ρ . . . . . . . . . . 55
2.10 So sánh tổng thời gian thực hiện của 3 thuật toán khi thay đổi ρ . . . 56
3.1 Mô hình tổng quát của các thành phần trong TTĐM. . . . . . . . . . . 59
3.2 Mô hình tổng quát của thuật toán ACO . . . . . . . . . . . . . . . . . 65
3.3 Minh họa PSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.4 Thuật toán PSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.5 Tổng chi phí của các thuật toán khi cố định số lượng yêu cầu . . . . . . 80
3.6 Tổng số yêu cầu bị phạt của các thuật toán khi cố định số lượng yêu cầu 81
3.7 Tổng yêu cầu bị phạt của các thuật toán khi thay đổi số lượng yêu cầu. 81
3.8 Tổng chi phí của các thuật toán khi thay đổi số lượng yêu cầu. . . . . . 82
3.9 Tổng chi phí của các thuật toán khi thay đổi số lượng máy ảo. . . . . . 82
3.10 Tổng thời gian của các thuật toán khi thay đổi số lượng máy ảo. . . . . 83
3.11 So sánh tổng thời gian của 4 thuật toán khi cố định số yêu cầu. . . . . 86
3.12 So sánh tổng chi phí của 4 thuật toán khi cố định số yêu cầu. . . . . . 86
3.13 So sánh tổng số yêu cầu bị phạt của 3 thuật toán khi cố định số yêu cầu. 87
3.14 So sánh tổng thời gian của các thuật toán khi thay đổi số yêu cầu . . . 88
3.15 Tổng chi phí của các thuật toán khi thay đổi số yêu cầu. . . . . . . . . 88
3.16 So sánh tổng số yêu cầu bị phạt khi thay đổi số yêu cầu . . . . . . . . 89
3.17 Tổng chi phí của các thuật toán khi cố định số yêu cầu. . . . . . . . . . 93
3.18 Tổng lợi nhuận của các thuật toán khi cố định số yêu cầu. . . . . . . . 93
3.19 Tổng chi phí của các thuật toán khi thay đổi số yêu cầu. . . . . . . . . 94
3.20 Tổng lợi nhuận của các thuật toán khi thay đổi số yêu cầu. . . . . . . . 95
ix
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
MỞ ĐẦU
1. Lý do chọn đề tài
Tính toán đám mây (TTĐM) ra đời xuất phát từ nhu cầu tính toán và yêu
cầu dịch vụ với chi phí thấp của người sử dụng. Thực tế, các tổ chức, cơ quan
và doanh nghiệp đều đối mặt với những thử thách như sau: (1) Khối lượng dữ
liệu xử lý lớn, như các công ty lưu trữ thông tin địa lý (GIS), thông tin về biến
đổi khí hậu trên một khu vực, các công ty tài chính, chứng khoán, v.v.; (2) Tính
toán nhiều (computation intensive), như các công ty phân tích về thị trường,
phân tích về không gian, phân tích mạng cần thời gian tính toán nhanh, v.v.;
(3) Chi phí trang bị phần mềm cao, nhất là đối với các cá nhân và tổ chức nhỏ
mong muốn phát triển bằng các công nghệ phần mềm thương mại mới. Do đó,
các tổ chức này cần tìm ra các giải pháp mới có năng lực tính toán mạnh mẽ và
chi phí thấp hơn. Hiện nay có 2 cách cơ bản để giải quyết vấn đề này:
• Thứ nhất: nâng cấp cơ sở hạ tầng để tính toán như mua thêm máy chủ,
máy trạm, siêu máy tính, các phần mềm cài trên các thiết bị, v.v.. Rõ ràng
cách này cần đầu tư một chi phí lớn và tốn nhiều nguồn nhân lực để điều
hành các hệ thống này.
• Thứ hai: tận dụng nguồn tài nguyên nhàn rỗi trong các tổ chức hoặc thuê
các nguồn tài nguyên từ bên ngoài. Cách giải quyết thứ hai này chính là
mục tiêu của TTĐM. TTĐM xem phần cứng, phần mềm như là các dịch
vụ, thông qua Internet người dùng có thể chia sẻ tài nguyên (đám mây cộng
đồng) hoặc thuê tài nguyên thông qua các dịch vụ và trả tiền khi sử dụng
(đám mây công cộng). Việc sử dụng dịch vụ của TTĐM giống như dùng
dịch vụ của lưới điện, người dùng cứ cắm điện vào dùng và trả tiền theo số
KW tiêu thụ. Chính các công nghệ mạng và truyền thông phát triển mạnh
mẽ trong những năm qua đã giúp cho việc sử dụng dịch vụ trên TTĐM
dần trở thành hiện thực.
TTĐM là sự phát triển của tính toán phân tán, vì vậy nó gặp phải nhiều
thách thức lớn cần phải giải quyết. Hiện nay, ngày càng có nhiều nhà cung cấp
dịch vụ trên TTĐM, mỗi nhà cung cấp có chính sách quản lý tài nguyên khác
nhau. Các tài nguyên này rất đa dạng, không đồng nhất và khác nhau về mặt
kiến trúc, giao diện, khả năng xử lý, v.v.. Sử dụng hiệu quả các nguồn tài nguyên
1
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
này hoàn toàn không dễ dàng. Tại mỗi thời điểm có thể có rất nhiều người dùng
yêu cầu dịch vụ trên TTĐM, mỗi người dùng có các yêu cầu về ràng buộc khác
nhau. Vì vậy, làm sao để đưa ra một lịch trình tối ưu cho người dùng và đem lại
lợi ích lớn nhất cho nhà cung cấp là một thách thức lớn cần phải giải quyết.
Bài toán lập lịch trên TTĐM phức tạp hơn nhiều so với bài toán lập lịch
truyền thống vì việc lập lịch trên TTĐM phải xét trong môi trường phân tán,
động, các tài nguyên từ nhiều nhà cung cấp khác nhau, các yêu cầu của người
dùng có các ràng buộc chất lượng dịch vụ khác nhau, v.v.. Mô hình ứng dụng
trong TTĐM cũng đa dạng hơn rất nhiều so với các mô hình tính toán truyền
thống, do đó phải nghiên cứu những thuật toán cụ thể để đáp ứng nhu cầu cho
những dạng ứng dụng cụ thể. Chính vì vậy, bài toán kiểm soát đầu vào và lập
lịch cho yêu cầu người dùng trên TTĐM là một bài toán khó, chúng ta phải tìm
ra các thuật toán tối ưu để giải quyết các bài toán này.
Các nghiên cứu trước đây chủ yếu nghiên cứu lập lịch công việc theo hướng
hiệu năng về hệ thống, nhằm mục đích tận dụng tối đa hiệu năng của hệ thống,
giảm thiểu thời gian hoạt động. Trên TTĐM, các nhà nghiên cứu tập trung
nghiên cứu lập lịch công việc theo hướng hiệu năng về kinh tế. Mục tiêu của
hướng này nhằm đem lại lợi nhuận cho nhà cung cấp, thời gian thực hiện nhỏ
nhất cho người dùng đồng thời phải thỏa mãn các ràng buộc đặt ra của nhà cung
cấp và người dùng. Các thuật toán lập lịch trên TTĐM thường là các thuật toán
lập lịch động. Vì vậy, làm sao tối ưu thời gian đưa ra lịch trình là vấn đề mà các
nhà khoa học hiện nay đang quan tâm và nghiên cứu.
Xuất phát từ việc tìm hiểu, nghiên cứu các đặc điểm và các thách thức về
các vấn đề lập lịch trên TTĐM, chúng tôi chọn đề tài “Nghiên cứu một số
vấn đề lập lịch trên môi trường tính toán đám mây” .
2. Đối tượng và phạm vi nghiên cứu
TTĐM là môi trường có qui mô hoạt động rất lớn, bao gồm các tác nhân và
hệ thống lập lịch. Các tác nhân bao gồm người dùng, nhà cung cấp SaaS, nhà
cung cấp PaaS và nhà cung cấp IaaS, mỗi tác nhân có các chức năng và nhiệm
vụ khác nhau. Hệ thống lập lịch bao gồm các chức năng ở mức ứng dụng và mức
nền tảng. Luận án tập trung nghiên cứu mô hình của nhà cung cấp PaaS và xây
dựng các thuật toán kiểm soát đầu vào và lập lịch ở mức nền tảng.
3. Phương pháp nghiên cứu
Chúng tôi tập trung tiếp cận trên một số phương pháp chính:
• Phương pháp tổng hợp và mô hình hóa: tìm kiếm, thu thập tài liệu
2
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
về các công trình nghiên cứu đã được công bố, các bài báo đăng ở các hội
thảo và tạp chí lớn để xây dựng mô hình toán học cho các thành phần trên
TTĐM.
• Phương pháp hệ thống hóa: dựa trên mô hình toán học của các thành
phần trên TTĐM và các ràng buộc của người dùng để xây dựng bài toán.
Từ đó, đề xuất các thuật toán lập lịch công việc thời gian thực và các thuật
toán tối ưu đa mục tiêu nhằm thỏa mãn mục tiêu cụ thể của người dùng
và nhà cung cấp dịch vụ.
• Phương pháp thực nghiệm khoa học: sử dụng công cụ CloudSim để
cài đặt mô phỏng, phân tích và đánh giá các thuật toán đề xuất với các
thuật toán đã công bố.
4. Ý nghĩa khoa học và thực tiễn
Ý nghĩa khoa học
Những đóng góp chính của luận án về khoa học:
• Đề xuất các thuật toán lập lịch công việc thời gian thực áp dụng cho lớp
các bài toán song song trên TTĐM. Luận án đưa thêm tham số chi phí, kết
hợp việc phân nhóm tài nguyên và xử lý song song để đưa ra lịch trình tối
ưu về chi phí và thời gian cho các yêu cầu người dùng.
• Xây dựng mô hình toán học cho nhà cung cấp PaaS và đề xuất các thuật
toán kiểm soát đầu vào và lập lịch theo hướng tối ưu đa mục tiêu trên
TTĐM. Áp dụng 2 heuristic ACO và PSO, luận án xây dựng công thức để
tính thông tin heuristic và xác xuất của mỗi con kiến; xây dựng hàm thích
nghi, vị trí tối ưu cục bộ của mỗi cá thể và vị trí tối ưu toàn cục của cả
bầy đàn. Từ đó, xây dựng bài toán và đề xuất các thuật toán kiểm soát
đầu vào và lập lịch theo hướng tối ưu đa mục tiêu về chi phí và thời gian.
Ý nghĩa thực tiễn
• Kết quả nghiên cứu nếu được áp dụng trên thực tế sẽ đem lại lợi nhuận cho
nhà cung cấp SaaS, tổng thời gian thực hiện thấp và thỏa mãn các ràng
buộc QoS của người dùng.
• Luận án có thể được sử dụng làm tài liệu tham khảo cho các sinh viên đại
học và học viên cao học ngành công nghệ thông tin thực hiện đề tài về lập
lịch công việc trong hệ phân tán và nghiên cứu các heuristic về bầy đàn.
5. Bố cục của luận án
3
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Ngoài phần mở đầu và kết luận, luận án được chia thành 3 chương:
• Chương 1: tổng quan về các vấn đề lập lịch trên tính toán đám mây. Trình
bày tổng quan về các vấn đề liên quan mật thiết đến luận án như tổng quan
về TTĐM, các công cụ mô phỏng, phân tích và đánh giá các công trình
nghiên cứu về bài toán lập lịch cũng như các loại lập lịch trên TTĐM. Từ
đó, xác định mục tiêu và nội dung nghiên cứu của luận án.
• Chương 2: lập lịch công việc thời gian thực trong tính toán đám mây.
Chương này tập trung xây dựng mô hình cho bài toán lập lịch công việc
thời gian thực áp dụng cho lớp bài toán song song. Sau đó, xây dựng các
thuật toán lập lịch công việc thời gian thực và sử dụng công cụ mô phỏng
CloudSim để cài đặt, phân tích và so sánh với các thuật toán lập lịch EDF
hiện có.
• Chương 3: lập lịch công việc theo hướng tối ưu đa mục tiêu trong tính toán
đám mây. Chương này xây dựng mô hình và bài toán lập lịch công việc việc
theo hướng tối ưu đa mục tiêu. Sau đó, xây dựng các thuật toán lập lịch và
sử dụng công cụ mô phỏng CloudSim để cài đặt, phân tích và so sánh với
các thuật toán lập lịch khác.
Các kết quả của luận án được công bố trong 8 công trình khoa học được đăng
trong các hội nghị và tạp chí chuyên ngành trong và ngoài nước. Trong đó có 02 bài
đăng trong kỷ yếu hội thảo quốc gia, 01 bài đăng ở hội thảo quốc tế, 02 bài đăng ở
tập chí Khoa học và Công nghệ, 03 bài đăng ở các tạp chí chuyên ngành.
4
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
CHƯƠNG 1.
TỔNG QUAN VỀ CÁC VẤN ĐỀ LẬP LỊCH
TRÊN TÍNH TOÁN ĐÁM MÂY
1.1. Tổng quan về tính toán đám mây
1.1.1. Giới thiệu
Tính toán đám mây (TTĐM) là sự phát triển của tính toán phân tán, tính toán
song song và tính toán lưới [50]. Tùy theo mục đích sử dụng mà hiện nay có nhiều
định nghĩa khác nhau về TTĐM.
Đứng về khía cạnh người dùng: “TTĐM là môi trường tính toán dựa trên Internet
mà ở đó tất cả phần cứng, phần mềm, dữ liệu (gọi chung là tài nguyên) được cung cấp
cho người dùng theo nhu cầu (tương tự như mạng điện).”
Đứng về khía cạnh khoa học kỹ thuật, Rajkumar Buyya và Ian Foster định nghĩa
TTĐM như sau:
• Theo Rajkumar Buyya: “TTĐM là một loại hệ thống phân tán và xử lý song
song gồm các máy tính ảo kết nối với nhau và được cung cấp động cho người
dùng như một hoặc nhiều tài nguyên đồng nhất dựa trên sự thỏa thuận dịch vụ
giữa nhà cung cấp và người sử dụng.”
• Theo Ian Foster: “TTĐM là một mô hình tính toán phân tán có tính co giãn
lớn mà theo hướng co giãn về mặt kinh tế, là nơi chứa các sức mạnh tính toán,
kho lưu trữ, các nền tảng và các dịch vụ được trực quan, ảo hóa và co giãn linh
động, sẽ được phân phối theo nhu cầu cho các khách hàng bên ngoài thông qua
Internet.”
Cả hai định nghĩa của Rajkumar Buyya và Ian Foster đều định nghĩa TTĐM là
một hệ phân tán, cung cấp các dạng tài nguyên ảo dưới dạng các dịch vụ theo nhu
cầu của người dùng trên môi trường Internet.
TTĐM khác với mô hình truyền thống ở một số điểm:
• Khả năng mở rộng rất lớn.
5
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
• Nó được phát triển trên mô hình kinh tế.
• Các dịch vụ có thể được cấu hình một cách tự động (thông qua ảo hóa hoặc
phương pháp khác) và phân phối các dịch vụ theo yêu cầu của người dùng.
Về lịch sử phát triển, TTĐM phát triển từ tính toán lưới kết hợp với Web 2.0 như
thể hiện ở Hình 1.1. Vào thập niên 60, siêu máy tính bắt đầu xuất hiện và phát triển
rất nhanh chóng. Khi mạng bắt đầu phát triển và để tiết kiệm chi phí, tăng khả năng
tính toán người ta nối các máy tính lại với nhau và tạo ra các cụm máy tính. Cụm máy
tính thương mại đầu tiên ra đời năm 1977 có tên là ARC. Cho đến những năm 1990,
Ian Foster và Carl Kesselman mới đưa ra khái niệm tính toán lưới. Tính toán lưới
phát triển mạnh nhất từ năm 2001 đến 2008, trong khoảng thời gian này các dự án
lớn ra đời và áp dụng rất rộng rãi ngoài thực tế như TeraGrid(2001), Gid5000(2003),
EGEE(2004), BeinGRID(2006),v.v.
Hình 1.1: Mối quan hệ giữa các hệ thống phân tán với TTĐM
Thuật ngữ TTĐM ra đời giữa những năm 2007 không phải để nói về một trào lưu
mới, mà để khái quát lại các hướng đi của cơ sở hạ tầng thông tin vốn đã và đang diễn
ra từ nhiều thập kỷ qua. Ian Foster cho rằng việc sử dụng TTĐM giống như mạng lưới
điện, nơi người dùng có thể cắm vào lưới điện, sử dụng dịch vụ và trả tiền theo KW
6
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
số tiêu thụ. Salesfore là công ty đầu tiên phát triển ứng dụng trên môi trường TTĐM.
Sau đó, cùng với sự phát triển mạnh mẻ của Web 2.0, ngày nay có rất nhiều công
ty phát triển ứng dụng trên môi trường này như Amazon (2006), IBM Blue Cloud
(2007), Google App Engine (2008), Sun Open Cloud (2009), Hp Service Automation
(2010), Open Networking Foundation (2011), v.v.
1.1.2. Đặc điểm của tính toán đám mây
Các dịch vụ cung cấp trên TTĐM có những đặc điểm chung như sau [1], [12]:
• Giá rẻ: cơ sở hạ tầng được cung cấp bởi các nhà cung cấp trên TTĐM. Vì vậy,
các doanh nghiệp không cần đầu tư, xây dựng cơ sở hạ tầng, thay vào đó họ chỉ
cần thuê tài nguyên trên các trung tâm dữ liệu.
• Khả năng co giãn: khả năng này cho phép tự động mở rộng hoặc thu nhỏ hệ
thống tùy theo nhu cầu của người dùng. Khi nhu cầu tăng, hệ thống sẽ tự động
mở rộng bằng cách thêm tài nguyên vào. Khi nhu cầu giảm, hệ thống sẽ tự động
giảm bớt tài nguyên. Khả năng co giãn giúp cho nhà cung cấp sử dụng tài nguyên
một cách hiệu quả, tận dụng triệt để tài nguyên dư thừa và phục vụ được nhiều
khách hàng. Đối với người sử dụng dịch vụ, khả năng co giãn giúp họ giảm chi
phí vì họ chỉ trả phí cho những tài nguyên thực sự dùng.
• Độ tin cậy: số lượng tài nguyên trên các trung tâm dữ liệu là rất lớn. Vì vậy,
đảm bảo tính liên tục trong kinh doanh và khôi phục dữ liệu khi gặp thất bại.
• Dùng chung tài nguyên và độc lập vị trí: tài nguyên của nhà cung cấp dịch vụ
được dùng chung, phục vụ cho nhiều người dùng. Người sử dụng không cần quan
tâm tới việc cài đặt hoặc không cần phải biết chính xác vị trí của các tài nguyên
sẽ được cung cấp.
• Ảo hóa: nhờ có công nghệ ảo hóa mà có nhiều nguồn tài nguyên có thể kết hợp
và cung cấp cho người dùng. Người dùng có thể xây dựng một ứng dụng mới
trong vài phút thay vì vài ngày hay vài tuần. Người dùng truy cập vào các nguồn
tài nguyên thông qua cổng thông tin và đưa vào sử dụng ngay lập tức.
• Truy cập diện rộng: TTĐM cung cấp các dịch vụ chạy trên môi trường Internet,
vì vậy khách hàng chỉ cần kết nối được với Internet là có thể sử dụng được các
dịch vụ.
• Dùng bao nhiêu trả bấy nhiêu: người dùng có thể sử dụng dịch vụ theo yêu cầu
và trả phí khi sử dụng. Người dùng có thể hủy dịch vụ khi cần.
7
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
• Độc lập thiết bị: người sử dụng có thể sử dụng các dịch vụ bằng nhiều loại thiết
bị khác nhau như: laptop, smartphone, tablet, v.v. với điều kiện là các thiết bị
kết nối được mạng Internet.
• Nhiều người thuê: tài nguyên trong hệ thống có thể được chia sẻ để nhiều người
sử dụng. Tại một thời điểm sẽ có nhiều người sử dụng tài nguyên một cách đồng
thời và nhà cung cấp sẽ được lợi về mức đầu tư hệ thống còn người sử dụng sẽ
được thừa hưởng những hạ tầng tính toán hiệu năng cao.
1.1.3. Kiến trúc của tính toán đám mây
Kiến trúc TTĐM được Ian Foster [25] chia thành 4 tầng như Hình 1.2.
Hình 1.2: Kiến trúc của TTĐM
• Tầng tác chế (Fabric): bao gồm các tài nguyên phần cứng như các tài nguyên
tính toán, tài nguyên lưu trữ và tài nguyên mạng.
• Tầng tài nguyên hợp nhất (Unified Resource Layer): bao gồm các tài nguyên
được ảo hóa để có thể giao tiếp với tầng tác chế và người dùng cuối như các tài
nguyên hợp nhất. Ví dụ như các máy ảo, các cụm ảo, v.v..
• Tầng nền tảng (Platform Layer): cung cấp các thông tin tài nguyên, các công cụ
chuyên dụng, các middleware và các dịch vụ để xây dựng, phát triển hay triển
khai một ứng dụng của người dùng. Ví dụ như dịch vụ lập lịch, dịch vụ Web
hosting, v.v..
• Tầng ứng dụng (Application Layer): chứa các ứng dụng có thể chạy trên TTĐM.
Nó cung cấp các tài nguyên phần mềm khi người dùng có yêu cầu.
1.1.4. Các mô hình trên tính toán đám mây
Theo NIST [58], TTĐM bao gồm 3 mô hình dịch vụ và 4 mô hình triển khai. Ba
mô hình dịch vụ bao gồm:
8
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
• SaaS (Software as a Service): là mô hình cung cấp phần mềm, trong đó các ứng
dụng được truy cập bởi một giao diện đơn giản, chẳng hạn như một trình duyệt
web trên Internet. Người sử dụng không quan tâm đến cơ sở hạ tầng trên TTĐM
như mạng, máy chủ, hệ thống điều hành, lưu trữ, nền tảng, v.v..
• PaaS (Platform as a Service): là mô hình cung cấp một môi trường tích hợp ở
mức cao để xây dựng, kiểm tra, triển khai và tạo máy chủ cho khách hàng.
• IaaS (Infrastructure as a Service): là mô hình cung cấp khả năng xử lý, lưu trữ,
mạng và các tài nguyên tính toán cơ bản khác cho người dùng. Người sử dụng
IaaS có thể triển khai ứng dụng, phần mềm, hệ điều hành trên cơ sở hạ tầng
một cách tùy ý. Các cơ sở hạ tầng trên TTĐM được ảo hóa một cách linh hoạt
để đáp ứng yêu cầu của người dùng.
TTĐM được triển khai trên các mô hình khác nhau, tùy thuộc vào phạm vi sử
dụng của các tổ chức. Hiện nay, có 4 mô hình triển khai chính trên TTĐM như sau:
• Đám mây công cộng (Public Cloud): cơ sở hạ tầng của TTĐM được một tổ chức
sỡ hữu và cung cấp dịch vụ rộng rãi cho tất cả các khách hàng thông qua hạ
tầng mạng Internet hoặc các mạng công cộng diện rộng. Các ứng dụng khác
nhau chia sẻ chung tài nguyên tính toán, mạng và lưu trữ. Do vậy, cơ sở hạ tầng
được thiết kế để đảm bảo cô lập về dữ liệu giữa các khách hàng và tách biệt về
truy cập.
• Đám mây riêng (Private Cloud): cơ sở hạ tầng của TTĐM được sở hữu bởi một
tổ chức và phục vụ cho người dùng của tổ chức đó. Đám mây riêng có thể được
vận hành bởi một bên thứ ba và hạ tầng đám mây có thể được đặt bên trong
hoặc bên ngoài tổ chức sở hữu. Với mô hình đám mây riêng, các doanh nghiệp
có thể tối ưu được cơ sở hạ tầng của mình, nâng cao hiệu quả sử dụng và trực
tiếp quản lý việc cấp phát hoặc thu hồi tài nguyên.
• Đám mây cộng đồng (Community Cloud): cơ sở hạ tầng đám mây được chia sẻ
bởi một số tổ chức cho cộng đồng người dùng. Các tổ chức này chia sẻ chung
một hạ tầng TTĐM để nâng cao hiệu quả đầu tư và sử dụng.
• Đám mây lai (Hybrid Cloud): là mô hình kết hợp với đám mây công cộng và
đám mây riêng. Mô hình đám mây lai cho phép chia sẻ cơ sở hạ tầng hoặc đáp
ứng nhu cầu trao đổi dữ liệu.
9
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
1.1.5. Các thách thức trên tính toán đám mây
Bên cạnh những lợi ích to lớn, TTĐM hiện nay gặp một số thách thức về bảo mật,
tính riêng tư, lập lịch công việc, tắt nghẽn mạng [78], [70].
TTĐM là môi trường khá mới mẻ, vì vậy gặp phải một số khó khăn về bảo mật
như sau:
• Làm sao duy trì được việc bảo mật được ở tất cả các mức (dữ liệu, ứng dụng,
mạng).
• Làm thế nào để có thể xác định bản quyền về trí tuệ cho những sản phẩm công
nghệ được lưu hành trên Internet.
• Khó khăn trong việc đảm bảo tính riêng tư về dữ liệu.
Lập lịch công việc là một khía cạnh rất quan trọng trong TTĐM. Tài nguyên trong
môi trường này được cung cấp bởi nhiều nhà cung cấp. Mỗi nhà cung cấp có thể cung
cấp một số lượng lớn các tài nguyên, các tài nguyên này được chia sẻ cho nhiều người
dùng với các ràng buộc chất lượng dịch vụ khác nhau. Vì vậy, khi lập lịch công việc
trên TTĐM gặp phải một số thách thức sau:
• Chính sách lập lịch: tìm ra chính sách lập lịch hợp lý để tận dụng một cách hiệu
quả các nguồn tài nguyên, nhằm mục tiêu đảm bảo lợi ích cho người dùng cũng
như nhà cung cấp. Với số lượng tài nguyên rất lớn trên TTĐM thì làm sao để
chọn tài nguyên tốt nhất về chi phí và thời gian thực hiện nhưng vẫn thỏa mãn
ràng buộc QoS (Quality of Service) cho người dùng và đem lại lợi ích lớn nhất
cho nhà cung cấp dịch vụ.
• Trong suốt quá trình lập lịch công việc trên TTĐM thường phải xem xét các
ràng buộc về QoS của người dùng như ngân sách (budget) và thời hạn (deadline).
Vì vậy, làm thế nào để kết hợp giữa việc sử dụng QoS vào chính sách lập lịch để
tối ưu một hoặc cả hai ràng buộc. Tối ưu cả thời hạn và ngân sách là bài toán
có thời gian đưa ra lịch trình lớn, do đó làm thế nào để tối ưu thời gian đưa ra
lịch trình là một thách thức lớn trong lập lịch.
TTĐM cung cấp dịch vụ thông qua Internet, vấn đề đặt ra là làm sao để tránh
nghẽn mạng khi lượng dữ liệu lưu thông và lượng khách hàng lớn?
Trên đây là thách thức rất lớn cho các nhà cung cấp dịch vụ trên TTĐM và mở
các chủ đề mới cần nghiên cứu trên TTĐM.
10
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
1.2. Công cụ mô phỏng trên tính toán đám mây
1.2.1. Giới thiệu
Ngày nay, hầu hết các tổ chức tập trung vào việc áp dụng mô hình TTĐM để họ
có thể cắt giảm chi phí đầu tư và chi phí vận hành hệ thống. Đó là lý do chính để các
tổ chức áp dụng TTĐM trong mô hình kinh doanh của mình.
Một số dịch vụ ứng dụng trên TTĐM có các yêu cầu thành phần, cấu hình và mô
hình triển khai khác nhau. Thêm vào đó, ước lượng hiệu năng về hệ thống của các
chính sách lập lịch trong một môi trường TTĐM thực là một thách thức lớn. Việc
sử dụng cơ sở hạ tầng thực để thử nghiệm về hiệu suất của ứng dụng khi điều kiện
ràng buộc thay đổi sẽ bị hạn chế. Vì vậy, người ta không thể thực hiện các thí nghiệm
trong môi trường có thể lặp lại, đáng tin cậy, và khả năng mở rộng bằng cách sử dụng
môi trường đám mây thực [2], [13]. Để khắc phục các nhược điểm trên, sử dụng công
cụ mô phỏng trên TTĐM là một giải pháp thay thế hiệu quả nhất. Các công cụ mô
phỏng có thể kiểm tra các thành phần trên TTĐM nhằm mục đích giảm độ phức tạp
và đánh giá hiệu năng của hệ thống theo nhiều kịch bản khác nhau. Vì vậy, cách tiếp
cận dựa trên mô phỏng sẽ mang lại lợi ích cho các tổ chức như sau:
• Các tổ chức không cần đầu tư cơ sở hạ tầng để triển khai một đám mây.
• Dễ dàng thay đổi các dữ liệu đầu vào và các thông số khác để cho ra kết quả tốt
và hiệu quả hơn.
• Mỗi công cụ mô phỏng đều cung cấp các lớp trừu tượng để mô phỏng các thành
phần trên TTĐM. Vì vậy, người lập trình chỉ cần tạo ra các lớp kế thừa lên các
lớp có sẵn của nó để xây dựng đám mây theo mục đích của mình.
• Các tổ chức có thể thử nghiệm các dịch vụ của mình trong môi trường có thể
lặp lại, kiểm tra và đánh giá kết quả thử nghiệm với khối lượng công việc và tài
nguyên khác nhau.
1.2.2. Một số công cụ mô phỏng trên tính toán đám mây
Hiện nay, các nhà nghiên cứu đã cung cấp một số công cụ tin cậy để mô phỏng
trên TTĐM. Mỗi công cụ đều có những ưu và nhược điểm riêng của nó.
Năm 2009, trường đại học Pennsylvania State, tạo ra công cụ mô phỏng DCSim.
Nó cung cấp các đặc điểm của phần cứng như có thể tạo ra máy chủ, truyền dữ liệu,
giao tiếp giữa các nhà cung cấp và cho phép ước lượng điện năng tiêu thụ.
CloudSim [11],[13] được phát triển bởi giáo sư Rajkumar Buyya và các đồng nghiệp
11
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
tại trường đại học Melbourne Australia, phiên bản mới nhất xuất bản năm 2011. Nó
là công cụ mô phỏng tổng quát và có khả năng mở rộng. Người dùng có thể mô hình
hóa, mô phỏng và thử nghiệm trên hệ thống TTĐM. CloudSim giúp các nhà nghiên
cứu thiết kế một hệ thống cụ thể mà không quan tâm đến các chi tiết ở mức thấp liên
quan đến cơ sở hạ tầng và các dịch vụ dựa trên đám mây.
Năm 2011, GroudSim được phát triển bởi S. Ostermann và các đồng nghiệp [62].
Công cụ này chủ yếu mô phỏng cho các ứng dụng khoa học trên tính toán lưới và
TTĐM. Nó chủ yếu mô phỏng trên cơ sở hạ tầng (IaaS) như mô phỏng các tài nguyên,
chi phí tính toán, chi phí vận chuyển, v.v..
TeachCloud [32] là công cụ mô phỏng đám mây chủ yếu phục vụ cho giáo dục được
xây dựng năm 2012 bởi Jararweh và các đồng nghiệp. TeachCloud cung cấp giao diện
đồ họa để sinh viên có thể thay đổi cấu hình và thực hiện các thí nghiệm đơn giản
trên đám mây. iCanCloud [61] là một framework để mô phỏng các ứng dụng trên các
mạng lưu trữ lớn. Nó cung cấp giao diện đồ họa đầy đủ để thiết kế và chạy các ứng
dụng.
Rahul Malhotra [55]và Parveen Kumar [45] đã nghiên cứu và so sánh các công cụ
mô phỏng trên TTĐM. Kết quả là công cụ mô phỏng CloudSim là công cụ tổng quát
nhất, giúp cho các nhà nghiên cứu tự xây dựng một đám mây hoàn chỉnh.
1.2.3. Công cụ mô phỏng CloudSim
CloudSim là một bộ công cụ mô phỏng có khả năng mở rộng lớn, cho phép mô hình
hóa và mô phỏng cơ sở hạ tầng và các dịch vụ trên TTĐM [11],[13]. Phần này chúng
tôi tập trung nghiên cứu cấu trúc, biểu đồ lớp và mô hình lập lịch trên CloudSim.
Cấu trúc của CloudSim
Cấu trúc của CloundSim được phát triển từ SimJava và GridSim, bao gồm ba
thành phần chính [18]:
• Người dùng: thiết lập các thông số kỹ thuật về máy chủ, máy ảo và các đặc
điểm của ứng dụng lên TTĐM.
• Các thành phần của CloudSim: cung cấp các thành phần khác nhau ở mức
trừu tượng như công nghệ ảo hóa, máy ảo, máy vật lý, các chính sách lập lịch,
định vị tài nguyên, v.v.. Các thành phần này mô phỏng mô hình IaaS, PaaS và
SaaS của TTĐM. CloudSim có thể hỗ trợ để tạo ra cơ sở hạ tầng TTĐM với
quy mô lớn, bao gồm các trung tâm dữ liệu trên một nút máy tính vật lý và máy
ảo java. Nó cung cấp mô hình của trung tâm dữ liệu, môi giới dịch vụ, lập lịch
và các chính sách định vị tài nguyên.
12
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
• Các sự kiện điều khiển mô phỏng: phát sinh các sự kiện và cập nhật lại các
trạng thái của hệ thống trong suốt quá trình mô phỏng.
Biểu đồ lớp của CloudSim
CloudSim là phần mềm mã nguồn mở được viết bằng Java, CloudSim cung cấp
các lớp đối tượng để người lập trình có thể kế thừa và cài đặt lại các đối tượng theo
mục đích của từng bài toán. Biểu đồ lớp của CloudSim được thể hiện như Hình 1.3.
CloudSim cung cấp các lớp chính sau:
Hình 1.3: Biểu đồ lớp trong CloudSim
• DataCenter: lớp này chứa đối tượng để tạo ra các trung tâm dữ liệu trên
TTĐM.
• DatacenterBroker: chứa các đối tượng để môi giới dịch vụ, trách nhiệm của
bộ môi giới là làm trung gian giữa người dùng và các nhà cung cấp dịch vụ SaaS.
Dựa vào ràng buộc QoS của người dùng, bộ môi giới tìm ra các nhà cung cấp
dịch vụ phù hợp để triển khai các công việc cho người dùng.
13
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
• DatacenterCharacteristics: lớp này chứa các thông tin về cấu hình của các
nguồn tài nguyên trên trung tâm dữ liệu bao gồm: cấu trúc của tài nguyên, hệ
điều hành, chính sách lập lịch, chi phí thực hiện, v.v..
• VnAllocationPolicy: đây là lớp trừu tượng để lưu các chính sách lập lịch của
các máy ảo. Người lập trình có thể kế thừa lên lớp này để tạo ra các chính sách
lập lịch máy ảo mới.
• Host: lớp này trình bày các đặc điểm của máy vật lý như bộ xử lý, bộ nhớ
chính, kỹ thuật ảo hóa, đĩa và băng thông mạng. Cung cấp các chính sách về
CPU, đĩa, băng thông mạng và bộ nhớ cho các máy ảo.
• Vm: trình bày các đặc điểm của máy ảo như nguồn xử lý, bộ nhớ chính, băng
thông, v.v.. cũng như thống kê khả năng tiêu thụ tài nguyên khi chạy ứng dụng.
• CloudletScheduler: là lớp trừu tượng định nghĩa các chính sách lập lịch của
các Cloudlet. Các Cloudlet có thể thực hiện đồng thời hoặc tuần tự phụ thuộc vào
chính sách lập lịch CloudletSchedulerTimeShared hay CloudletSchedulerSpace-
Shared của CloudSim cung cấp.
• Cloudlet: trình bày các công việc chạy trên các máy ảo. Cloudlet bao gồm số
chỉ thị thực hiện, chiều dài, kích cỡ file đầu vào, đầu ra, v.v.. Nó cung cấp mô
hình công việc chung và xác dịnh số lượng máy ảo chạy trên nó.
• NetworkTopology: chứa các thông tin về cấu hình mạng trong mô phỏng.
Mô hình lập lịch trên CloudSim
Mô hình lập lịch trên CloudSim bao gồm các tập đối tượng: người dùng (users),
yêu cầu (tasks), máy ảo (virtual machines) và trung tâm dữ liệu (data center), mỗi
trung tâm dữ liệu bao gồm nhiều máy chủ có cấu hình khác nhau như thể hiện ở Hình
1.4. CloudSim cung cấp các hàm API để người lập trình tạo ra cơ sở hạ tầng, chính
sách lập lịch, dịch vụ, ảo hóa, v.v.. để mô phỏng trên một đám mây.
Đầu tiên, người lập trình sử dụng lớp DataCenter để tạo ra các trung tâm dữ liệu
và tạo ra tập Host và DatacenterCharacteristics để lưu trữ các thuộc tính của một
trung tâm dữ liệu. Bước tiếp theo, người lập trình tạo ra tập các máy ảo với cấu hình
khác nhau và tập các yêu cầu người dùng với các thuộc tính khác nhau. Sau đó, tạo
ra bộ môi giới trên trung tâm dữ liệu (sử dụng lớp DatacenterBroker) để môi giới giữa
yêu cầu người dùng với các máy ảo và giữa các máy ảo với các máy chủ trên các trung
tâm dữ liệu.
Như thể hiện ở Hình 1.4, tập các máy ảo của người lập trình tạo ra được gửi lên
14
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
trung tâm dữ liệu, trung tâm dữ liệu sử dụng bộ môi giới (DataCenter Broker) và các
chính sách cấp phát máy ảo (VmAllocation Policy) để tạo ra các máy ảo từ các Host
trên các trung tâm dữ liệu. Mỗi người dùng cung cấp tập các yêu cầu (task) độc lập
với các tham số khác nhau, bộ môi giới sử dụng bộ lập lịch máy ảo và chính sách lập
lịch của mình để ánh xạ yêu cầu vào máy ảo hợp lý.
Hình 1.4: Mô hình lập lịch trên CloudSim
CloudSim là bộ công cụ mô phỏng có khả năng mở rộng rất cao. Người lập trình có
thể hoàn toàn tạo ra đám mây theo mục đích của mình. Có thể mở rộng lớp CloudLet,
Host, Vm, v.v.. để tạo ra các yêu cầu, máy chủ, máy ảo, v.v.. với các thông số và ràng
buộc khác nhau. Sau đó, người lập trình có thể tạo ra các thuật toán lập lịch mới và
kế thừa lên lớp DataCenterBroker để đưa ra chính sách lập lịch phù hợp với các thuật
toán lập lịch đề xuất. Trong luận án này, chúng tôi đã đề xuất các thuật toán lập lịch
công việc và sử dụng cách tiếp cận này để mô phỏng các thuật toán trên TTĐM.
1.3. Bài toán lập lịch trên tính toán đám mây
1.3.1. Giới thiệu
Bài toán lập lịch hay lập kế hoạch là một bài toán hay gặp trong thực tế. Nội dung
của bài toán là dựa trên hiện trạng hiện tại của hệ thống để tìm ra một lịch trình thực
hiện các công việc một cách tối ưu. Tuy nhiên, tùy theo bài toán cụ thể mà yêu cầu
và phương pháp giải quyết của từng bài toán này là khác nhau.
15
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Trong TTĐM, bộ lập lịch là một thành phần của hệ quản lý tài nguyên có chức
năng phân phối các nguồn tài nguyên đến các yêu cầu của người dùng. Nhiệm vụ của
bộ lập lịch là tìm một ánh xạ từ tập các công việc của người dùng vào một tập con
của các tài nguyên trên các trung tâm dữ liệu. Mục đích của các thuật toán lập lịch
công việc trong bộ lập lịch là tìm ra một lịch trình hợp lý nhằm thỏa mãn mục tiêu
nào đó của người dùng hoặc của nhà cung cấp dịch vụ.
Lớp các bài toán lập lịch, lịch trình và lịch trình tối ưu được P.Brukner [9] định
nghĩa như sau:
Định nghĩa 1.1. (P.Brukner [9]) Cho tập tài nguyên R = {r1, r2, ..., rM}; tập các
yêu cầu T = {t1, t2, ..., tN}; tiêu chí tối ưu γ. Lớp các bài toán lập lịch là một bộ ba
< R, T, γ >.
Để lập lịch cho tập các yêu cầu không theo thứ tự ưu tiên (non-preemptive ký
hiệu là npmtn) trên tập tài nguyên R với mục tiêu tối ưu về thời gian thì lớp bài
toán lập lịch là < R, npmtn, Tmin >. Tương tự lớp các bài toán < R, pmtn, Tmin >,
< R, s− batch, Tmin > để lập lịch cho các yêu cầu theo thứ tự ưu tiên hoặc theo lô với
mục tiêu tối ưu về thời gian. Một lịch trình được định nghĩa như sau:
Định nghĩa 1.2. (P.Brukner [9]) Một lịch trình được xác định bởi hàm f : T → R,
trong đó mỗi yêu cầu ti ∈ T được ánh xạ vào tài nguyên rj ∈ R.
Định nghĩa 1.3. (P.Brukner [9]) Một lịch trình được gọi là tối ưu nếu nó thỏa mãn
tiêu chí tối ưu γ.
Mỗi lịch trình đều có mục tiêu khác nhau, tùy theo yêu cầu của mỗi bài toán như
tối ưu về chi phí, tối ưu về thời gian hoặc cả hai, v.v.
1.3.2. Mô hình tổng quát để lập lịch trên các trung tâm dữ liệu
Mô hình tổng quát để lập lịch trên TTĐM bao gồm các tác nhân và hệ thống lập
lịch [79]. Các tác nhân bao gồm người dùng, nhà cung cấp dịch vụ SaaS, PaaS và IaaS.
Hệ thống lập lịch bao gồm các chức năng ở mức ứng dụng và ở mức nền tảng như thể
hiện ở Hình 1.5. Trong đó:
• Mức ứng dụng: cung cấp các dịch vụ phần mềm bởi nhà cung cấp SaaS.
• Mức nền tảng: cung cấp các chức năng kiểm soát đầu vào và lập lịch cho các
yêu cầu người dùng, các chức năng này do nhà cung cấp PaaS cung cấp. Quá
trình kiểm soát đầu vào và lập lịch ở mức nền tảng được chia thành 3 giai đoạn
[71]:
16
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Hình 1.5: Mô hình hệ thống để lập lịch trên TTĐM
– Phát hiện và lọc các tài nguyên: đây là nhiệm vụ của bộ môi giới tại các
trung tâm dữ liệu. Bộ môi giới này phát hiện ra các tài nguyên và thu thập
các thông tin liên quan về các hệ thống hiện tại.
– Lựa chọn tài nguyên: việc lựa chọn tài nguyên phụ thuộc vào các yêu cầu
QoS của người dùng và các tham số của tài nguyên trên các trung tâm dữ
17
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
liệu. Đây là giai đoạn quan trọng nhất trong quá trình lập lịch.
– Gửi các yêu cầu của người dùng đến các tài nguyên được chọn trên các
trung tâm dữ liệu.
• Nhà cung cấp SaaS: thuê các tài nguyên từ các nhà cung cấp IaaS và cho
người dùng thuê phần mềm như là các dịch vụ. Mục tiêu của các nhà cung cấp
SaaS là đem lại lợi ích lớn nhất cho mình bằng cách thuê các tài nguyên có giá
rẻ từ nhà cung cấp IaaS nhưng vẫn thỏa mãn ràng buộc QoS của người dùng.
Trong trường hợp này, nhà cung cấp SaaS vấp phải một số thách thức lớn như
cần phải xác định được:
– Có bao nhiêu nhà cung cấp IaaS trên các trung tâm dữ liệu, mỗi nhà cung
cấp dịch vụ cung cấp bao nhiêu máy ảo và mỗi máy ảo cung cấp loại dịch
vụ gì.
– Có bao nhiêu ánh xạ từ yêu cầu người dùng đến các máy ảo.
– Nên chọn nhà cung cấp IaaS nào để thỏa mãn yêu cầu của người dùng.
– Với mỗi nhà cung cấp IaaS nên chọn bao nhiêu máy ảo để cung cấp cho
người dùng.
• Nhà cung cấp IaaS: cung cấp các máy ảo cho các nhà cung cấp SaaS và chịu
trách nhiệm để điều phối các máy ảo chạy trên các tài nguyên vật lý của chúng.
• Người dùng: người dùng gửi yêu cầu phần mềm kèm theo các ràng buộc QoS
lên nhà cung cấp SaaS. Hệ thống lập lịch sử dụng các chức năng ở mức ứng
dụng và mức nền tảng để diễn dịch và phân tích các tham số QoS. Sau đó, quyết
định chấp nhận hoặc từ chối yêu cầu dựa vào khả năng, tính sẵn sàng và giá của
các máy ảo. Nếu các yêu cầu được chấp nhận thì thành phần lập lịch chịu trách
nhiệm ánh xạ các yêu cầu vào các tài nguyên hợp lý trên nhà cung cấp IaaS.
1.3.3. Sự khác nhau giữa lập lịch trên TTĐM so với các hệ thống
khác
Lập lịch các công việc theo truyền thống chỉ dựa trên các công việc của các ứng
dụng. Tài nguyên sử dụng cho ứng dụng này không liên quan đến các ứng dụng khác,
nên các tài nguyên không thể chia sẻ cho nhau và chi phí tính toán sẽ cao lên, điều
này không hợp lý trên TTĐM [60].
Các nghiên cứu trước đây [47] [84] chủ yếu tập trung vào lập lịch cho các công
việc trên các hệ thống đa xử lý với số bộ xử lý cố định. Trong khi đó, tài nguyên trong
18
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
TTĐM là sự kết hợp của nhiều nguồn tài nguyên thuộc nhiều tổ chức khác nhau. Mỗi
tổ chức có chính sách quản lý tài nguyên riêng. Vì vậy, khi lập lịch trên TTĐM có
một số điểm khác biệt so với lập lịch trên các hệ thống khác:
• Trong các mô hình tính toán truyền thống, thông tin cung cấp cho bộ lập lịch
thường là tương đối đầy đủ, chính xác và cập nhật. Trong khi đó, lập lịch trên
TTĐM thường phải hoạt động trong môi trường thiếu thông tin đầy đủ và chính
xác.
• Số lượng máy ảo sẵn sàng trên các trung tâm dữ liệu là rất lớn, do đó tại mỗi
thời điểm dựa vào tốc độ và chi phí khác nhau ta có thể chọn số lượng và loại
máy ảo phù hợp. Ví dụ, để hoàn thành một yêu cầu người dùng, nhà cung cấp
có thể chọn một số lượng lớn máy ảo chậm hơn, rẻ hơn hoặc một số lượng máy
ảo ít hơn nhưng nhanh hơn, đắt hơn, hoặc có thể kết hợp cả hai.
• Mô hình ứng dụng trong TTĐM cũng đa dạng hơn rất nhiều so với các mô hình
tính toán truyền thống. Do vậy, người ta thường nghiên cứu những thuật toán
cụ thể để đáp ứng nhu cầu cho những dạng ứng dụng cụ thể.
1.3.4. Các phương pháp lập lịch
Bài toán lập lịch là một bộ ba < R, T, γ > (Định nghĩa 1.1). Bài toán này có thể
giải quyết dễ dàng trong trường hợp đầu vào của bài toán là nhỏ. P. Bruckner và M.
L. Pinedo [9], [66] đã phân tích lớp các bài toán lập lịch thực hiện trên một tài nguyên
để đưa ra lịch trình cho các yêu cầu độc lập hay phụ thuộc lẫn nhau với mục tiêu tối
ưu về thời gian là lớp các bài toán lập lịch dễ, thời gian đưa ra lịch trình tối ưu rất
nhanh. Trong trường hợp tập tài nguyên lớn và các tài nguyên này có thể thực hiện
song song là lớp các bài toán phức tạp, tốn một khoảng thời gian rất lớn để đưa ra
lịch trình.
Bài toán lập lịch được giải quyết bằng bốn phương pháp như thể hiện ở Hình 1.6.
Trong đó:
• Phương pháp liệt kê: phương pháp này để giải các bài toán tối ưu, các giải
pháp tối ưu của bài toán có thể lưu trong một danh sách, chọn một giải pháp
tối ưu nhất trong danh sách này. Trường hợp xấu nhất của thuật toán lập
lịch sử dụng phương pháp này có độ phức tạp rất lớn. Tuy nhiên khi số lượng
tham số đầu vào nhỏ, bài toán có thể giải quyết bằng độ phức tạp giả đa thức
(pseudopolynomial)
19
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Hình 1.6: Các phương pháp lập lịch
• Phương pháp heuristic: bài toán lập lịch trên TTĐM là một bài toán có thời
gian đưa ra lịch trình rất lớn. Do đó, để đưa ra một giải pháp tối ưu thường phải
tìm kiếm vét cạn khi đó cần một khoảng thời gian rất lớn để đưa ra lịch trình,
nên cách này không khả thi trong bài toán lập lịch. Để khắc phục nhược điểm
này người ta thường dùng các phương pháp heuristic để đưa ra một giải pháp
gần tối ưu như phương pháp tối ưu hóa đàn kiến (ACO) [22],[49], kỹ thuật tối
ưu hóa đàn ong mờ [51], phương pháp tham lam EDF [10], [42],v.v..
• Phương pháp nới giảm tham số: phương pháp này nới lỏng ràng buộc của
bài toán gốc. Sau khi nới lỏng ràng buộc, bài toán dễ dàng đạt được giải pháp
gần tối ưu so với bài toán gốc.
• Phương pháp xấp xỉ: phương pháp heuristic thường dựa trên các kinh nghiệm
của thế giới thực hoặc thông qua mô phỏng để tìm ra giải pháp gần tối ưu. Trong
khi đó, phương pháp xấp xỉ sử dụng các mô hình tính toán chuẩn nhưng thay
vì tìm trên toàn bộ các giải pháp để tìm ra giải pháp tối ưu nhất nó chỉ tìm ra
giải pháp được xem là đủ tốt. Phương pháp này được sử dụng để giảm thời gian
thực hiện nhằm tìm ra một lịch trình chấp nhận được.
1.3.5. Mô hình kinh tế cho bài toán lập lịch
Trong những năm gần đây, với sự phát triển mạnh mẻ của các nhà cung cấp dịch
vụ trên TTĐM như Amazon EC2, Microsoft Azure, IBM, v.v.. các giải pháp trên
TTĐM trở nên phù hợp với các doanh nghiệp. Các doanh nghiệp không phải đầu tư
20
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
cơ sở hạ tầng, họ thuê tất cả các tài nguyên thông qua các dịch vụ trên TTĐM. Với
sự phát triển của cả hai bên cung và cầu làm cho bài toán lập lịch trở nên rất phức
tạp trong TTĐM.
Mô hình kinh tế cho việc lập lịch trên đám mây phù hợp hơn các mô hình lập lịch
đa bộ xử lý truyền thống, đặc biệt là sự thay đổi giữa cung và cầu trên các tài nguyên
của TTĐM. Trong mô hình kinh tế, chủ yếu tập trung lập lịch trên hai chiến lược:
dựa trên thị trường (market-based) và lập lịch dựa trên đấu giá (auction-based) [74].
Lập lịch dựa trên thị trường được áp dụng khi một số lượng lớn người dùng không
thể trực tiếp kiểm soát giá dịch vụ. Nhà cung cấp đám mây áp dụng phương án giá
trong thực tế dựa trên thị trường, giá của mỗi nhà cung cấp là khác nhau. Trên đám
mây, nhà cung cấp dịch vụ và người sử dụng thể hiện các yêu cầu của họ thông qua
hợp đồng thỏa thuận dịch vụ. Nhà cung cấp cần cung cấp giá và khả năng của các tài
nguyên, trong khi người tiêu dùng cần đảm bảo đạt được các mục tiêu của họ. Lập
lịch dựa trên thị trường nhằm mục đích điều tiết giữa cung và cầu cho các tài nguyên.
Mô hình đấu giá thích nghi cho một số nhỏ người dùng tìm kiếm các dịch vụ tối
ưu. Đấu giá là cơ chế để định vị tài nguyên trong nhóm các người mua. Người mua sẽ
cập nhật việc đặt giá và người bán sẽ cập nhật lại giá được đưa ra. Mỗi phiên đấu giá
có 3 đối tượng là người mua, người bán và người quản lý việc đấu giá.
TTĐM thích ứng với mô hình kinh doanh theo hướng thị trường [80], và do đó
hợp đồng dịch vụ giữa người sử dụng và các nhà cung cấp dịch vụ được ký trước khi
thực hiện ứng dụng trên TTĐM. Nếu nhà cung cấp dịch vụ không thực hiện đúng
theo hợp đồng, họ sẽ phải bồi thường thiệt hại cho người dùng. Vì vậy, các nhà cung
cấp dịch vụ cần phải áp dụng một loạt các chiến lược về thị trường để đem lại lợi
nhuận cao nhất cho mình và bảo đảm thực hiện thành công các hợp đồng dịch vụ. Để
đảm bảo mục tiêu của nhà cung cấp và người dùng, các chiến lược lập lịch hướng thị
trường được đưa ra nhằm thỏa mãn bốn yêu cầu sau:
1. Thỏa mãn các ràng buộc QoS của từng người dùng.
2. Chi phí thực hiện của hệ thống là nhỏ nhất.
3. Kiểm tra ràng buộc QoS với hợp đồng thỏa thuận dịch vụ.
4. Tối ưu việc gán các yêu cầu đến các máy ảo.
Để thỏa mãn bốn yêu cầu này, việc lập lịch được chia thành hai mức [80]: lập lịch
ở mức dịch vụ nhằm thỏa mãn yêu cầu (1) và (3), lập lịch ở mức yêu cầu thỏa mãn
hai yêu cầu còn lại. Một chiến lược lập lịch chung được đưa ra như sau:
21
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
• Đầu vào: tập các yêu cầu, các ràng buộc QoS, các nhà cung cấp dịch vụ, tập
các máy ảo.
• Đầu ra: một kế hoạch lập lịch ở mức dịch vụ để định vị các dịch vụ thích hợp
cho các yêu cầu nhằm thỏa mãn ràng buộc QoS và hợp đồng thỏa thuận dịch
vụ; một kế hoạch lập lịch ở mức yêu cầu để ánh xạ các yêu cầu vào các máy ảo
theo mục tiêu của người dùng hoặc của nhà cung cấp hoặc cả hai.
Lập lịch ở mức dịch vụ: lập lịch ở mức dịch vụ là một phần của việc quản lý tài
nguyên trong PaaS. Đây là loại lập lịch tĩnh với mục đích định vị các dịch vụ hợp lý
cho các yêu cầu. Lập lịch ở mức dịch vụ bao gồm hai bước chính sau đây:
• Bước 1: tìm kiếm và cung cấp tập các dịch vụ thích hợp dựa trên các ràng buộc
QoS của các yêu cầu.
Bộ lập lịch tìm kiếm các dịch vụ được cung cấp bởi nhiều nhà cung cấp dịch
vụ trên các trung tâm dữ liệu khác nhau. Bước này tìm ra một tập các dịch vụ
thích hợp cho các yêu cầu.
• Bước 2: định vị các dịch vụ thích hợp và tiến hành ánh xạ các yêu cầu vào các
dịch vụ.
Trước khi lập lịch, người dùng và nhà cung cấp dịch vụ SaaS ký hợp đồng
với nhau để thỏa thuận dịch vụ. Dựa trên tập dịch vụ tìm kiếm được ở bước 1
và các ràng buộc QoS của người dùng, nhiệm vụ của bộ lập lịch là tìm ra các
dịch vụ thích hợp nhất thỏa mãn các ràng buộc của yêu cầu. Sau đó ra quyết
định chấp nhận hay từ chối các yêu cầu của khách hàng. Nếu yêu cầu được chấp
nhận thì bộ lập lịch sẽ ánh xạ yêu cầu vào dịch vụ tương ứng.
Lập lịch ở mức yêu cầu: lập lịch ở mức yêu cầu là loại lập lịch động với mục
đích tối ưu việc ánh xạ yêu cầu vào máy ảo để thỏa mãn ràng buộc QoS cho mỗi yêu
cầu nhằm làm cho tổng chi phí của hệ thống là thấp nhất. Lập lịch ở mức yêu cầu
thường là bộ lập lịch cục bộ được sử dụng bên trong một trung tâm dữ liệu, không ảnh
hưởng đến trung tâm dữ liệu khác. Mỗi nhà cung cấp dịch vụ có một chiến lược lập
lịch yêu cầu riêng để tối ưu chi phí bên trong trung tâm dữ liệu của nó. Tuy nhiên, khi
xây dựng một chiến lược lập lịch yêu cầu cũng có thể cài đặt một cách đồng thời trên
nhiều trung tâm dữ liệu, nó cũng có thể đáp ứng được mục tiêu làm cho chi phí nhỏ
nhất trên nhiều trung tâm dữ liệu. Lập lịch ở mức yêu cầu bao gồm ba bước chính:
• Bước 1: tìm ra các ràng buộc QoS cho mỗi yêu cầu.
22
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Kết quả của lập lịch mức dịch vụ tìm ra được tập các dịch vụ thích hợp cho
các yêu cầu. Tuy nhiên, vì kế hoạch lập lịch này được phát sinh bởi lập lịch ở
mức dịch vụ dựa vào các thông tin tĩnh (như thời gian có hiệu lực và khối lượng
công việc) của các nhà cung cấp dịch vụ, khi thực hiện các trạng thái của dịch
vụ có thể bị thay đổi như thay đổi khối lượng của các dịch vụ, tài nguyên sử
dụng có thể không còn hiệu lực hoặc nhà cung cấp bổ sung thêm tài nguyên. Do
đó, bước này chúng ta cần tìm ra các dịch vụ phù hợp với các ràng buộc QoS
của người dùng.
• Bước 2: tối ưu hóa việc gán yêu cầu vào các máy ảo.
Trong các trung tâm dữ liệu, tài nguyên vật lý được ảo hóa thành các tài
nguyên hợp nhất. Trong đó, các CPU và không gian bộ nhớ của các máy ảo
được tạo ra một cách hợp lý cho các ứng dụng trên TTĐM. Hầu hết các máy
ảo được tạo ra có tốc độ vừa phải. Tuy nhiên, trong một số ứng dụng lớn cần
các siêu máy tính, các siêu máy tính này có thể có trong trung tâm dữ liệu hoặc
thuê từ các nhà cung cấp dịch vụ khác. Vì vậy, các máy ảo trong trung tâm dữ
liệu thường có các tốc độ và mô hình giá khác nhau. Hơn nữa, chi phí truyền
thông trong một trung tâm dữ liệu thường không đáng kể, nhưng nếu đi thuê tài
nguyên từ các trung tâm dữ liệu khác thì phải cộng thêm chi phí truyền thông
vào tổng chi phí.
• Bước 3: cài đặt một kế hoạch lập lịch tối ưu.
Sau khi có kế hoạch lập lịch tối ưu hoặc gần tối ưu ở bước 2. Tiến hành cài
bộ lập lịch cục bộ trên các trung tâm dữ liệu để điều khiển các tài nguyên nằm
ở IaaS.
Lập lịch ở mức dịch vụ thuộc loại lập lịch tĩnh, nên các thông tin về tài nguyên
được xác định trước khi lập lịch, nhưng có thể các thông tin này không còn đúng khi
lập lịch ở mức yêu cầu. Ví dụ, trước khi lập lịch các nhà cung cấp dịch vụ đăng ký tốc
độ CPU, băng thông, chi phí,. . . cho trung tâm dữ liệu, nhưng đến lúc thực hiện các
thông tin này có thể bị thay đổi. Luận án này đề xuất các thuật toán lập lịch động,
kết hợp vừa lập lịch ở mức dịch vụ vừa lập lịch ở mức yêu cầu để ánh xạ các yêu cầu
vào các máy ảo dựa trên chi phí tính toán, chi phí truyền thông, tốc độ tính toán và
tốc độ truyền thông của các máy ảo.
23
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
1.4. Các nghiên cứu liên quan đến lập lịch trên tính toán đám
mây
Lập lịch trong các hệ phân tán như tính toán lưới và TTĐM có hai cách tiếp cận
chính [43], [82]:
• Hướng hiệu năng về hệ thống: mục tiêu của các tiếp cận này nhằm tìm ra
một ánh xạ từ tập các yêu cầu người dùng vào một tập con của tập tài nguyên
trên các trung tâm dữ liệu sao cho tổng thời gian thực hiện (makespan) của hệ
thống là nhỏ nhất. Lịch trình đưa ra nhằm để tận dụng tối đa hiệu năng của hệ
thống, giảm thiểu thời gian hoạt động. Đây là nhu cầu thực tế trong các ứng
dụng khoa học lớn và trên các đám mây cộng đồng, ở đó các ứng dụng chỉ quan
tâm đến thời gian thực hiện nhanh nhất không quan tâm đến chi phí về giá cả.
• Hướng đến hiệu năng về kinh tế: nhằm đưa ra lịch trình để tối ưu về chi
phí cho hệ thống. Cách tiếp cận này sử dụng cơ chế thị trường để phân phối các
nguồn tài nguyên cho các công việc của người dùng. Bộ lập lịch công việc hoạt
động như người tiêu dùng mua các dịch vụ từ các nhà cung cấp tài nguyên và
trả tiền để thực hiện các công việc. Các công việc này được lập lịch một cách
tự động tại thời gian chạy phụ thuộc vào chi phí của tài nguyên trên các trung
tâm dữ liệu và ràng buộc QoS của người dùng. Lập lịch hướng đến hiệu năng
về kinh tế có thể lựa chọn các nguồn tài nguyên có giá rẻ hơn nhưng thỏa mãn
ràng buộc QoS người dùng đặt ra. Vì vậy, cách tiếp cận này phức tạp hơn so với
lập lịch hướng đến hiệu năng về hệ thống, đặc biệt là sự thay đổi giữa cung và
cầu trên các tài nguyên của TTĐM. Nó phù hợp trên môi trường đám mây công
cộng, đám mây riêng và đám mây lai.
Cả hai cách tiếp cận này đều tập trung lập lịch ở mức người dùng và mức nhà
cung cấp dịch vụ. Y. Chawla [14] đã chia lập lịch công việc trên TTĐM thành 5 loại:
lập lịch tĩnh, lập lịch động, lập lịch heuristic, lập lịch luồng công việc và lập lịch công
việc thời gian thực.
1.4.1. Lập lịch tĩnh và động
Đối với lập lịch tĩnh, bộ lập lịch biết trước các thông tin của môi trường như thời
gian thực hiện của công việc, thông tin của các tài nguyên trên các trung tâm dữ liệu,
băng thông kết nối giữa các tài nguyên, v.v.. Ngược lại, lập lịch động không biết trước
các thông tin trên, các thông tin của tài nguyên thay đổi liên tục.
Phân bổ tài nguyên dựa vào hiệu năng về hệ thống cố gắng để đưa ra một lịch
24
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
trình nhằm tối thiểu tổng thời gian thực hiện cho hệ thống. Năm 2013, S. Nagadevi
[60] đã liệt kê các kỹ thuật lập lịch tĩnh bao gồm: OLB, MET , MCT , Min −min,Min −max, GA. Tuy nhiên các kỹ thuật này chỉ áp dụng cho các yêu cầu độc lập,
các máy ảo chỉ thực hiện tuần tự và thời gian sẵn sàng của mỗi máy ảo được cập nhật
sau khi yêu cầu được hoàn thành.
Các nghiên cứu [24], [40], [67] lập lịch tĩnh trên các yêu cầu độc lập và phụ thuộc
dữ liệu, cải tiến các thuật toán Max−Min, Min−Min nhằm đưa ra một lịch trình
tối ưu về thời gian cho hệ thống. Tuy nhiên các thuật toán này chỉ áp dụng trên các
hệ thống phân tán nhỏ, với số lượng tài nguyên ít. Nếu áp dụng trên hệ thống lớn thì
thời gian đưa ra lịch trình rất lớn.
S. Pandey [63] đã đề xuất thuật toán lập lịch động để lập lịch cho các bài toán có
khối lượng công việc lớn. Tuy nhiên các thuật toán này bỏ qua chi phí tính toán chỉ
quan tâm đến chi phí truyền dữ liệu giữa các trung tâm dữ liệu.
Tại một thời điểm, các người dùng có thể gửi hàng triệu công việc với các ràng
buộc QoS khác nhau lên các trung tâm dữ liệu, các trung tâm này bao gồm nhiều
máy chủ, mỗi máy chủ có thể cung cấp nhiều máy ảo, mỗi máy ảo có cấu hình và dịch
vụ khác nhau. Đối với lập lịch theo hướng hiệu năng về kinh tế, nhiệm vụ của bộ lập
lịch là gán các công việc của người dùng vào các máy ảo với mục tiêu đem lại chi phí
thấp nhất cho người dùng hoặc lợi nhuận cao nhất cho nhà cung cấp dịch vụ nhưng
vẫn thỏa mãn ràng buộc QoS của người dùng.
J. Deng, Lee và HanZhao [20], [86], [46] đã đưa ra mô hình lập lịch cho các yêu
cầu trên môi trường TTĐM với mục tiêu đem lại lợi nhuận cho nhà cung cấp dịch vụ
nhưng chỉ xem xét đến chi phí tính toán, chưa xem xét đến chi phí truyền thông cũng
như chưa xem xét đến thời gian gối đầu giữa các yêu cầu nên mỗi yêu cầu chỉ được
ánh xạ vào một tài nguyên.
Các nghiên cứu [56], [39] lại tập trung vào lập lịch cho các yêu cầu để tiết kiệm
điện năng trên các trung tâm dữ liệu. S. Irugurala [31] đưa ra thuật toán lập lịch với
mục tiêu đem lại lợi nhuận cao nhất cho nhà cung cấp SaaS nhưng xem xét giữa hai
loại chi phí: chi phí khởi tạo máy ảo và chi phí sử dụng máy ảo đã có để chọn tài
nguyên. Z. Lee [48] và M. Choudhary [15] đã đề xuất các thuật toán lập lịch ưu tiên
động, các thuật toán xem xét trên cả nhà cung cấp dịch vụ, nhà cung cấp tài nguyên
và khách hàng để đưa ra thuật toán nhằm đem lại thời gian và chi phí nhỏ nhất nhưng
không xem xét trên các ràng buộc thời hạn và ngân sách của các yêu cầu.
1.4.2. Lập lịch heuristic
Bài toán lập lịch tối ưu là bài toán có thời gian đưa ra lịch trình lớn. Bài toán
này có thể được giải quyết bằng phương pháp liệt kê, heuristic, nới lỏng tham số hoặc
25
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
phương pháp xấp xỉ. Khi số lượng các yêu cầu và tài nguyên lớn, phương pháp liệt
kê không khả thi cho bài toán lập lịch vì thời gian đưa ra lịch trình quá lớn. Phương
pháp heuristic tìm ra giải pháp gần tối ưu với thời gian thực hiện là nhanh nhất.
Từ năm 2010 đến 2012, giáo sư Rajkumar Buyya và các đồng sự [63], [64], [65]
đã đề xuất các thuật toán lập lịch các công việc trên TTĐM theo hướng hiệu năng
về hệ thống. Nhóm tác giả đã kết hợp với xử lý song song, heuristics động và PSO
(Particle Swarm Optimization) để xử lý các công việc với khối lượng lớn. Các nghiên
cứu này đề xuất và xây dựng mô hình phi tuyến tính để tối ưu các luồng công việc,
giảm thiểu việc lấy dữ liệu về đối với các luồng công việc đòi hỏi một khối lượng dữ
liệu lớn trên TTĐM. Các nghiên cứu này sử dụng thuật toán heuristic PSO để đưa
ra thuật toán với độ hội tụ nhanh hơn và thời gian tính toán ít hơn so với các thuật
toán đã có. Tuy nhiên các thuật toán chỉ áp dụng cho các lớp bài toán có khối lượng
lớn, thời gian truyền dữ liệu lớn hơn nhiều so với thời gian tính toán.
Các nghiên cứu [49], [85], [34] sử dụng các heuristic về bầy đàn để đưa ra lịch trình
tối ưu về thời gian thực hiện, không quan tâm đến ràng buộc QoS của người dùng.
Để tối ưu về thời gian thực hiện, các nghiên cứu trên [52], [49], [72], [8], [19], [26]
sử dụng các heuristic ACO, GA nhằm đưa ra lịch trình với mục tiêu đem lại thời gian
hoàn thành nhỏ nhất cho hệ thống nhưng vẫn thỏa mãn ràng buộc QoS của người
dùng. Các nghiên cứu này chỉ tập trung vào ràng buộc về thời gian, không quan tâm
đến chi phí của hệ thống.
1.4.3. Lập lịch luồng công việc
Luồng công việc là quá trình tự động hóa các công việc, trong đó các tập tin và
dữ liệu được truyền giữa các đối tượng theo tập luật đã định nghĩa trước đó nhằm
đạt được một mục tiêu tổng thể. Một hệ thống quản lý luồng bao gồm ba thành phần
chính [3]:
• Lập lịch luồng công việc: phát hiện ra các tài nguyên và ánh xạ các yêu cầu
vào tài nguyên hợp lý.
• Di chuyển dữ liệu: thành phần này quản lý việc truyền dữ liệu giữa các nguồn
tài nguyên.
• Quản lý lỗi: xử lý các lỗi xảy ra trong quá trình thực hiện các công việc trong
luồng.
Lập lịch luồng công việc đóng một vai trò quan trọng trong hệ thống quản lý
luồng. Một lịch trình thích hợp có thể tác động đáng kể đến hiệu suất của hệ thống.
26
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Luồng công việc áp dụng cho các công việc phụ thuộc lẫn nhau. Luồng công việc
của các ứng dụng được biểu diễn bởi đồ thị có hướng không chu trình. Mỗi nút trình
bày mỗi công việc, mỗi cạnh biểu diễn sự phụ thuộc lẫn nhau giữa các công việc trong
ứng dụng. Các nghiên cứu [82], [3], [37], [52] đề xuất các lớp bài toán, các loại lập lịch
luồng cũng như cách cài đặt các thuật toán luồng công việc trên môi trường lưới và
TTĐM.
H. Topcuoglu [76] đề xuất thuật toán lập lịch luồng công việc HEFT. Thuật toán
này tính thời gian trung bình để thực hiện các yêu cầu và tính thời gian trung bình
để chuyển dữ liệu giữa các yêu cầu. Sau đó, các yêu cầu được sắp xếp dựa trên hàm
vị thứ (rank). Yêu cầu nào có vị thứ cao sẽ được ưu tiên để lập lịch. Mục tiêu của
thuật toán là thời gian hoàn thành các công việc là nhỏ nhất không xét đến thời hạn
và ngân sách của các yêu cầu.
Z. Yu [83] đề xuất thuật toán lập lịch trên đa luồng. Thuật toán này lập lịch trên
các yêu cầu dựa trên độ ưu tiên của mỗi yêu cầu nhưng không xem xét đến ràng buộc
QoS của người dùng. Các nghiên cứu [33], [81] tập trung lập lịch trên đa luồng, dựa
vào ràng buộc QoS của người dùng. Các thuật toán này đưa ra lịch trình có thời gian
thực hiện và chi phí thấp nhưng không quan tâm đến ngân sách của các yêu cầu.
1.4.4. Lập lịch công việc thời gian thực
Hệ thống thời gian thực bao gồm các công việc thời gian thực. Mỗi công việc thời
gian thực được đặc trưng bởi ba tham số [59]:
• Thời điểm đến của yêu cầu.
• Khối lượng thực hiện và các ràng buộc.
• Thời hạn (deadline) của yêu cầu.
Các công việc thời gian thực phải hoàn thành sau thời gian đến và trước thời hạn
của nó. Mục tiêu chính của lập lịch công việc thời gian thực là tăng công suất, tận
dụng tối đa hiệu năng của hệ thống và giảm thiểu thời gian thực hiện sao cho thỏa
mãn thời hạn cho các công việc [14].
Các nghiên cứu [53], [54], [28], [87] tập trung lập lịch trên các công việc thời gian
thực thỏa mãn các ràng buộc QoS của người dùng. Các cách tiếp cận này không chỉ
đem lại thời gian hoàn thành nhỏ nhất mà còn xem xét trên số tiền phạt nhà cung cấp
phải trả khi thời gian hoàn thành công việc vượt quá thời hạn của người dùng. Tuy
nhiên, các thuật toán này chưa áp dụng kỹ thuật xử lý song song để tối ưu thời gian
đưa ra lịch trình, chưa tận dụng được khoảng thời gian gối đầu giữa các yêu cầu để
27
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
tiết kiệm chi phí. Các nghiên cứu gần đây của N. Ramkumar [69] về lập lịch trên các
yêu cầu thời gian thực đã sử dụng hàng đợi ưu tiên để ánh xạ yêu cầu vào tài nguyên
nhưng chỉ tập trung lập lịch để giải quyết công việc một cách nhanh nhất thỏa mãn
thời hạn của yêu cầu mà không quan tâm đến chi phí và ngân sách của nó.
Hiện nay các tổ chức, doanh nghiệp và các nhà cung cấp dịch vụ trên TTĐM phát
triển rất nhanh chóng. Yêu cầu chất lượng dịch vụ ngày càng cao, số lượng tài nguyên
tại mỗi trung tâm dữ liệu là rất lớn. Việc tìm kiếm tài nguyên, kiểm soát đầu vào
và lập lịch trên tập các tài nguyên của các trung tâm dữ liệu theo yêu cầu QoS của
người dùng là một thách thức lớn. Để giải quyết vấn đề này luận án tập trung nghiên
cứu trên các lý thuyết tối ưu hóa bầy đàn, tối ưu hóa đàn kiến và một số phương pháp
heuristic khác. Kết hợp với xử lý song song để giải quyết các bài toán thời gian thực
và bài toán tối ưu đa mục tiêu nhằm đem lại lợi ích cho nhà cung cấp và tối ưu thời
gian thực hiện cho người dùng.
1.5. Mục tiêu và nội dung của luận án
Sau khi nghiên cứu và phân tích các vấn đề lập lịch trên TTĐM của các nghiên
cứu trong và ngoài nước. Luận án đưa ra mục tiêu nghiên cứu chính như sau:
• Xây dựng mô hình và bài toán để lập lịch công việc thời gian thực áp dụng cho
lớp bài toán song song.
• Xây dựng mô hình và bài toán lập lịch công việc trên nhà cung cấp PaaS theo
hướng tối ưu đa mục tiêu về chi phí và thời gian.
• Đề xuất các thuật toán lập lịch công việc thời gian thực áp dụng cho lớp bài
toán song song.
• Đề xuất các thuật toán kiểm soát đầu vào và lập lịch công việc theo hướng tối
ưu đa mục tiêu.
Để đáp ứng cho các mục tiêu nghiên cứu trên, luận án tập trung nghiên cứu các
nội dung chính sau:
• Nghiên cứu các heuristic ACO [22], [49], PSO [85], EDF [10], [42], v.v.. để tìm
kiếm trên số lượng lớn các tài nguyên trên các trung tâm dữ liệu.
• Nghiên cứu các phương pháp xử lý song song, phân tích các lớp bài toán xử lý
công việc thời gian thực (real time) để có thể thực hiện song song.
• Xây dựng mô hình toán học cho các thành phần trên TTĐM như mô hình người
dùng, mô hình nhà cung cấp SaaS, PaaS và IaaS.
28
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
• Dựa trên mô hình toán học, ràng buộc QoS của người dùng và các heuristic để
xây dựng bài toán lập lịch công việc thời gian thực và bài toán lập lịch công việc
theo hướng tối ưu đa mục tiêu.
• Từ các bài toán đã được xây dựng, luận án đề xuất các thuật toán lập lịch các
công việc thời gian thực và các thuật toán vừa kiểm soát đầu vào vừa lập lịch
cho các công việc theo hướng tối ưu đa mục tiêu về chi phí và thời gian. Mục
tiêu của các thuật toán này nhằm đem lại lợi ích cho nhà cung cấp dịch vụ và
tối ưu thời gian thực hiện cho người dùng nhưng vẫn thỏa mãn ràng buộc QoS.
• Nghiên cứu các mô hình, các thành phần trong gói Cloudsim để cài đặt, so sánh,
phân tích và đánh giá kết quả của các thuật toán lập lịch đã đề xuất với các
thuật toán khác.
1.6. Tiểu kết Chương 1
Với mục tiêu nghiên cứu về các vấn đề lập lịch trên TTĐM, chương này tập trung
nghiên cứu, phân tích và đánh giá các vấn đề liên quan mật thiết đến đề tài luận án.
Đầu tiên, nghiên cứu tổng quan về các đặc điểm, kiến trúc, mô hình và các thách
thức hiện có trên TTĐM. Sau đó, nghiên cứu và phân tích các thành phần và mô hình
tổng quát của bài toán lập lịch trên TTĐM. Từ đó, trình bày các phương pháp lập
lịch và phân tích sự khác nhau giữa lập lịch trên TTĐM so với các hệ thống khác.
Khi xây dựng mô hình và các thuật toán thử nghiệm trên một đám mây thực, các
tổ chức cần đầu tư một chi phí rất lớn. Để giảm chi phí và tùy biến trong thử nghiệm,
sử dụng cộng cụ mô phỏng là một trong các giải pháp thay thế hiệu quả nhất. Trong
chương này, chúng tôi nghiên cứu công cụ mô phỏng CloudSim để mô phỏng và đánh
giá các mô hình và các thuật toán đề xuất trong luận án.
Trên TTĐM, người dùng và nhà cung cấp dịch vụ là hai đối tượng gắn bó mật
thiết với nhau. Nhà cung cấp cho thuê dịch vụ, người dùng sử dụng dịch vụ và thanh
toán phí khi sử dụng. Sự phát triển của cả hai bên cung và cầu làm cho bài toán
lập lịch trở nên rất phức tạp trên TTĐM. Trước những khó khăn đó, chương này tập
trung nghiên cứu các mô hình kinh tế cho bài toán lập lịch. Mô hình phù hợp nhất
trên TTĐM hiện nay là mô hình kinh doanh theo hướng thị trường. Chúng tôi trình
bày thuật toán tổng quát để lập lịch theo hướng thị trường, phân tích các ưu nhược
điểm của thuật toán và đưa ra các hướng khắc phục.
Mô hình ứng dụng trên TTĐM rất đa dạng và phức tạp, chương này trình bày các
loại thuật toán lập lịch. Trên từng loại, luận án tập trung nghiên cứu, phân tích và
đánh giá các công trình nghiên cứu đã được công bố gần đây, chỉ ra những vấn đề còn
tồn tại. Từ đó, xác định được mục tiêu của luận án và đề ra nội dung cần giải quyết.
29
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
CHƯƠNG 2.
LẬP LỊCH CÔNG VIỆC THỜI GIAN THỰC
TRONG TÍNH TOÁN ĐÁM MÂY
Hệ thống thời gian thực bao gồm các công việc thời gian thực. Các công việc thời
gian thực phải hoàn thành sau thời điểm đến và trước thời hạn của nó. Mục tiêu chính
của lập lịch công việc thời gian thực là tăng công suất, tận dụng tối đa hiệu năng của
hệ thống và giảm thiểu thời gian thực hiện sao cho thỏa mãn thời hạn cho các công
việc [14].
Các nghiên cứu trước đây [53], [54], [28], [87], [69] sử dụng thuật toán tham lam
và hàng đợi ưu tiên để đưa ra lịch trình nhằm giải quyết công việc một cách nhanh
nhất thỏa mãn thời hạn nhưng chưa quan tâm đến ngân sách cũng như tối ưu thời
gian thực hiện của thuật toán. Chương này, nghiên cứu các mô hình lập lịch truyền
thống; phát triển mô hình của K.H. Kim [39] và K. Kumar [44] để xây dựng mô hình
lập lịch công việc thời gian thực và mô hình tối ưu về kinh tế; áp dụng kỹ thuật xử lý
song song và mô hình đã được xây dựng để xây dựng các thuật toán lập lịch trên các
hệ thống thời gian thực.
2.1. Mô hình lập lịch truyền thống
Bài toán lập lịch là bài toán hay gặp trong thực tế như bài toán lập thời khóa biểu
trong trường học, lập lịch trong hệ điều hành, lập lịch công việc cho người dùng trong
các hệ phân tán, v.v.. Nội dung của bài toán là tìm ra một lịch trình hợp lý nhất cho
các công việc dựa trên các trạng thái hiện thời của hệ thống.
Trong các nghiên cứu trước đây, bài toán lập lịch giả thuyết rằng số lượng các
công việc và số lượng các máy tham gia tính toán là cố định [66]. Bài toán được xem
xét trên M máy tham gia tính toán và N công việc. Mỗi công việc có thể ánh xạ vào
một hoặc nhiều máy tùy theo mục tiêu của từng bài toán. M. L. Pinedo [66] và P.
Bruckner [9] đã trình bày mô hình của bài toán lập lịch bao gồm 3 thành phần:
• Mô hình các máy tham gia lập lịch.
• Mô hình công việc.
• Mục tiêu của bài toán.
30
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Mô hình của ba thành phần này được trình bày cụ thể như sau:
2.1.1. Mô hình các máy tham gia lập lịch
Các máy tham gia vào bài toán lập lịch bao gồm các loại sau:
• Mô hình máy đơn được ký hiệu là 1: đây là mô hình đơn giản nhất, nó là
trường hợp đặc biệt của các mô hình khác.
• Các máy đồng nhất thực hiện song song được ký hiệu là Pm: mô hình
này bao gồm M máy đồng nhất có thể thực hiện song song. Mỗi công việc có
thể thực hiện đồng thời trên một hoặc nhiều máy.
• Các máy không đồng nhất thực hiện song song , ký hiệu là Qm: mô hình
này bao gồm các máy không đồng nhất với tốc độ khác nhau và có thể thực hiện
song song.
• Flow shop, ký hiệu là FM : bao gồm M máy thực hiện theo dây chuyền. Đầu
tiên các công việc phải được xử lý trên máy 1, sau đó mới sang máy 2 và máy
3 ,v.v.. Sau khi hoàn thành trên một máy, các công việc được lưu vào hàng đợi
FIFO ”vào trước ra trước ” để đợi tham gia vào máy tiếp theo.
• Flexible flow shop ký hiệu là FFc: mô hình được mở rộng từ mô hình FM ,
trong đó có M máy thực hiện theo dây chuyền. Trong mỗi dây chuyền được chia
thành c giai đoạn, mỗi giai đoạn bao gồm các máy đồng nhất có thể thực hiện
song song. Mỗi công việc phải được xử lý ở giai đoạn 1 xong rồi mới sang giai
đoạn 2.
• Open shop ký hiệu Om: mô hình này bao gồm M máy. Mỗi công việc phải
được xử lý trên một máy, nếu chưa hoàn thành thì công việc cũng phải lặp lại
trên máy đó để xử lý.
2.1.2. Mô hình công việc
Mô hình các công việc trình bày các ràng buộc cũng như các giới hạn khi xử lý
các công việc. Mỗi công việc được M. L. Pinedo [66] đưa ra các ràng buộc và các giới
hạn như sau:
• Thời gian sẵn sàng: được ký hiệu là trj là thời gian mà máy j có thể bắt
đầu tính toán. Mỗi công việc phải bắt đầu sau khoảng thời gian này. Nếu trj
không xuất hiện trong mô hình của công việc có nghĩa là công việc có thể bắt
đầu tại bất kỳ thời điểm nào.
31
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
• Các công việc phụ thuộc: được ký hiệu là pmtn. Ứng dụng bao gồm tập
các công việc, các công việc này phụ thuộc với nhau. Để thực hiện công việc
i (i = 1..N) thì phải thực hiện xong các công việc trước đó. Bộ lập lịch có thể
ngắt ngang một công việc nào đó để thực hiện các công việc khác.
• Các công việc độc lập: được ký hiệu là npmtn. Ứng dụng bao gồm tập các
công việc không phụ thuộc lẫn nhau, các công việc này có thể thực hiện song
song. Bộ lập lịch có thể chọn một máy bất kỳ để xử lý cho mỗi công việc.
2.1.3. Mô tả mục tiêu của bài toán
Trong thực tế, mỗi bài toán đều có mục tiêu khác nhau. Các nghiên cứu trước
đây chủ yếu lập lịch công việc với mục tiêu thời gian hoàn thành các công việc là nhỏ
nhất. Theo P.Bruckner [9], các hàm mục tiêu chung nhất cho các bài toán lập lịch bao
gồm:
• Mục tiêu thời gian thực hiện nhỏ nhất: tìm maxi=1,...,N
{Ti} và được ký hiệu γ = Tmax
với Ti là thời gian hoàn thành công việc thứ i.
• Mục tiêu Total Flow Time:N∑i=1
Ti và được ký hiệu γ =N∑i=1
Ti
• Mục tiêu Weighted (Total) Flow time:N∑i=1
WiTi và được ký hiệu trong mô hình
là γ =N∑i=1
WiTi, với Wi là trọng số của công việc thứ i.
Nhìn chung, mô hình để lập lịch truyền thống < R, T, γ > chỉ xem xét trên số
lượng cố định của các máy tham gia và mục tiêu chung để lập lịch các công việc là
đem lại thời gian hoàn thành các công việc là nhỏ nhất. Trước khi lập lịch, bộ lập lịch
biết trước số lượng máy tham gia cũng như các tham số của các công việc nên mô
hình này chỉ thích hợp cho việc lập lịch tĩnh.
2.2. Mô hình lập lịch công việc thời gian thực
Phần này tập trung xây dựng mô hình toán học để giải quyết lớp bài toán tìm
kiếm và phân bổ tài nguyên cho các yêu cầu (công việc) thời gian thực trong các ứng
dụng song song. Các ứng dụng song song trong luận án được đặc trưng bởi 2 đặc điểm
quan trọng:
• Các yêu cầu có khả năng song song ở mức độ cao [75], mỗi yêu cầu có thể được
32
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
phân chia thành các yêu cầu nhỏ hơn và có thể thực hiện song song. Trong luận
án, chúng tôi ký hiệu p là đơn vị nhỏ nhất trong việc tính toán.
• Ràng buộc thời gian thực [68]: thời gian hoàn thành của mỗi yêu cầu phải trước
thời hạn của nó.
Ví dụ, một yêu cầu cần xử lý 1000 ảnh trong vòng d phút và ngân sách để xử lý
là c, yêu cầu này có thể chia ra thành 1000 yêu cầu con, mỗi yêu cầu con xử lý một
ảnh và các yêu cầu này có thể thực hiện song song. Chúng ta có thể sử dụng 1000 máy
ảo, mỗi máy ảo xử lý một ảnh. Nếu tất cả các máy ảo này có thể thực hiện đồng thời
và hệ thống lưu trữ có thể cung cấp đủ băng thông, thì đây là cách giải quyết nhanh
nhất nhưng sử dụng máy ảo nhiều nhất. Cách khác, chúng ta có thể sử dụng 10 máy
ảo, mỗi máy ảo xử lý 100 ảnh hoặc sử dụng một máy ảo để xử lý 1000 ảnh, các cách
này đều tốn thời gian nhiều hơn.
Tuy nhiên, việc lựa chọn máy ảo để xử lý bị ràng buộc bởi thời hạn và ngân sách
của các yêu cầu, mỗi máy ảo có chi phí và tốc độ khác nhau. Trong phần này, luận
án xây dựng bài toán lập lịch với các ràng buộc của người dùng và xem xét việc lựa
chọn máy ảo theo hai mục tiêu:
• Thời gian hoàn thành các công việc là nhỏ nhất nhưng vẫn thỏa mãn thời hạn
và ngân sách của các yêu cầu.
• Chi phí thực hiện là nhỏ nhất nhưng thỏa mãn ràng buộc QoS cho các yêu cầu.
2.2.1. Mô tả bài toán
Ứng dụng bao gồm tập các yêu cầu T , mỗi yêu cầu ti ∈ T có thời điểm đến là ai,
thời hạn là di (chỉ rõ bằng phút) và ngân sách (budget) là bi (chỉ rõ bằng $) và khối
lượng công việc là wi. Khối lượng công việc của mỗi yêu cầu được song song hóa vào
các đơn vị nhỏ hơn (yêu cầu con), kích cỡ nhỏ nhất của yêu cầu con là p. R là tập tài
nguyên có sẵn, tài nguyên này có thể thực hiện song song và có kiến trúc là SIMD
[4]. Mỗi tài nguyên rj ∈ R có tốc độ tính toán sj và tương ứng chi phí cj để thuê máy
ảo. Tốc độ sj là số chu kỳ của tài nguyên có thể hoàn thành trên phút. Người dùng trả
chi phí cj để thuê tài nguyên rj trong khoảng D phút liên tục, D là đơn vị nhỏ nhất
để thuê. Bài toán thứ nhất có thể mô tả như sau: “Tìm một ánh xạ từ tập yêu cầu T
vào một tập con của tập tài nguyên R để tối thiểu tổng thời gian thực hiện trong khi
vẫn thỏa mãn thời hạn và ngân sách của các yêu cầu trong T .”
Bài toán thứ 2 với mục tiêu tối ưu về chi phí và được mô tả như sau: “Tìm một
33
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
ánh xạ từ tập yêu cầu T vào một tập con của tập tài nguyên R để nhỏ nhất toàn bộ
chi phí trong khi vẫn thỏa mãn thời hạn và ngân sách của các yêu cầu trong T .”
Ví dụ: thời gian nhỏ nhất để thuê tài nguyên D = 60 phút. Giả sử chúng ta có 3
tài nguyên r1, r2, r3 có tốc độ và chi phí như sau:
Tài nguyên: rj Tốc độ: sj Giá: cj
r1 10 1.0
r2 15 1.5
r3 20 2
Ứng dụng có 2 yêu cầu với các tham số như sau:
ai di bi wi
t1 0 60 1.5 500
t2 30 70 2 1200
Như vậy, thời gian yêu cầu t1 có thể hoàn thành trên các tài nguyên được tính như
sau:
Tài nguyên r1 r2 r3
Thời gian(wisj
) 50010
= 50 (phút) 50015
= 33.33 (phút) 50020
= 25 (phút)
Với mục tiêu giảm chi phí nhưng vẫn thỏa mãn thời hạn và ngân sách, ta có thể
sử dụng thuật toán tham lam để yêu cầu t1 chọn tài nguyên r1 với chi phí là 1. Tiếp
theo, chúng ta xét yêu cầu t2 cần hoàn thành trước d2 − a2 = 40 phút, nếu ánh xạ t2
vào r1 cần 120010
= 120 phút, nên phải sử dụng 12040
= 3 × r1, tương tự như vậy cần sử
dụng 2× r2 và 2× r3 cho t2. Như vậy, chi phí tương ứng cho hai yêu cầu lần lượt trên
r1, r2, r3 là 1 + 3× 1 = 4, 1 + 2× 1.5 = 4, 1 + 2× 2 = 5, cả ba chi phí này không thỏa
mãn ngân sách của cả hai yêu cầu.
Bây giờ chúng ta xét cả hai yêu cầu thực hiện một cách đồng thời, cho t1 ánh
xạ vào r3 từ phút 0 đến phút 25 (50020
= 25), tận dụng từ phút 25 đến 60 của r3
cho t2 nhưng thời điểm đến của t2 là phút thứ 30 nên chúng ta tận dụng từ phút 30
đến 60, trong khoảng thời gian này t2 thực hiện được 20 × 30 = 600 chu kỳ, còn lại
1200−600 = 600 chu kỳ chưa được thực hiện, 600 chu kỳ này nếu được thực hiện trên
r1 thì cần 60010
= 60 phút và tốn chi phí 2+1=3 thỏa mãn ngân sách của hai yêu cầu
nhưng không thỏa mãn thời hạn vì thời gian hoàn thành lên đến phút 90 như Hình
2.1. Nếu 600 chu kỳ này thực hiện trên r2 cần 60015
= 40 phút và chi phí cả hai yêu cầu
là 2 + 1.5 = 3.5 thỏa mãn thời hạn và ngân sách của cả hai yêu cầu như trong Hình
2.2.
34
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Hình 2.1: Ánh xạ đồng thời t1 và t2 vào
tài nguyên r1 và r3
Hình 2.2: Ánh xạ đồng thời t1 và t2 vào
tài nguyên r1 và r2
Ví dụ trên chứng tỏ rằng thuật toán tham lam có thể không đem lại một chí phí
thấp nhất để thỏa mãn thời hạn và ngân sách của các yêu cầu. Các yêu cầu phải được
xem xét một cách đồng thời và phải tận dụng được các khoảng thời gian còn hiệu lực
trên các tài nguyên để có được tổng chi phí thấp nhất thỏa mãn yêu cầu của người
dùng.
2.2.2. Mô hình toán học cho bài toán
K.H. Kim [39] và K. Kumar [44] đưa ra mô hình cho các yêu cầu và các máy ảo để
lập lịch các yêu cầu thời gian thực. Tuy nhiên, các nghiên cứu này chỉ ưu tiên lập lịch
để tổng thời gian thực hiện của hệ thống là nhỏ nhất không quan tâm đến ngân sách
của các yêu cầu. Để mở rộng tính toán, ngoài thời hạn chúng ta phải xem xét ngân
sách của các yêu cầu, đảm bảo các yêu cầu được thực hiện trước thời hạn và không
vượt quá ngân sách của nó. Phần này, chúng tôi trình bày mô hình toán học cho các
yêu cầu thời gian thực và các máy ảo trên trung tâm dữ liệu.
Gọi R = {r1, r2, ..., rM} là tập M tài nguyên tính toán, các tài nguyên này có thể
thực hiện song song. Mỗi tài nguyên rj ∈ R là bộ <sj,cj>[44], trong đó sj là tốc độ
tính toán tính trên phút, cj là chi phí để thuê tài nguyên trong khoảng thời gian D
phút. Các tài nguyên này là nguồn tính toán cho N yêu cầu độc lập, được biểu diễn
bởi tập T = {t1, t2, . . . , tN}, mỗi yêu cầu ti ∈ T là một bộ 4 <ai,di,bi,wi> trong đó:
• ai: thời điểm đến (arrival) của yêu cầu ti.
• di: thời hạn (deadline) của ti, thời gian để hoàn thành yêu cầu phải nhỏ hơn
hoặc bằng thời hạn của nó.
• bi: ngân sách của yêu cầu ti, chi phí thực hiện yêu cầu phải nhỏ hơn hoặc bằng
ngân sách của nó.
• wi: khối lượng công việc của ti tính bằng chu kỳ.
35
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Gọi amin, dmax là thời điểm đến nhỏ nhất và thời hạn lớn nhất của tất cả các yêu
cầu. Khi đó, thời gian thực hiện các yêu cầu trong T trên tập tài nguyên R sẽ thực
hiện trong giới hạn từ amin phút đến dmax phút.
Tại mỗi thời điểm x (x = amin..dmax) các yêu cầu có thể thuê một tài nguyên nhiều
lần, ta sử dụng α(j, k, x) để thể hiện việc chọn tài nguyên:
α(j, k, x) =
1 nếu tại phút x, tài nguyên rj được sử dụng từ 1 đến k lần.
0 nếu tại phút x, tài nguyên rj không được sử dụng.(2.1)
Gọi Scost(x) là hàm tính tổng chi phí của tất cả các tài nguyên tại phút thứ
x (x = amin..dmax), Scost(x) phụ thuộc vào chi phí và số lần sử dụng tài nguyên tại
phút thứ x và được tính như sau:
Scost(x) =M∑j=1
y∑k=1
cjD× α(j, k, x) (2.2)
Trong đó, M là số tài nguyên trong R, k (k = 1..y) là số lần sử dụng tài nguyên
tại phút thứ x, chỉ số trên của y được xác định như sau:
Trong TTĐM người dùng có thể lựa chọn bất kỳ tài nguyên nào với số lượng khác
nhau, giá trị y có thể là ∞. Tuy nhiên, ta có thể suy ra chỉ số trên của y từ tập các
yêu cầu T đã có. Mỗi yêu cầu ti ∈ T có khối lượng là wi, vì vậy tổng khối lượng của
tập yêu cầu T được xác định như sau:
C =N∑i=1
wi (2.3)
Gọi p là tốc độ nhỏ nhất của các tài nguyên trong tập R.
p = minj=1..M
{sj} (2.4)
Vì vậy, số lần sử dụng tài nguyên lớn nhất tại phút thứ x là y = Cp(lần).
Gọi Scycle(x) là hàm tính tổng số chu kỳ thực hiện của tất cả các tài nguyên tại
phút thứ x (x = amin..dmax), Scycle(x) phụ thuộc vào tốc độ và số lần sử dụng tài
nguyên tại phút thứ x và được tính như sau:
Scycle(x) =M∑j=1
y∑k=1
sj × α(j, k, x) (2.5)
Trong đó,M là số lượng tài nguyên trong R và y = Cplà số lần sử dụng tài nguyên
lớn nhất tại phút thứ x.
36
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
2.2.3. Mục tiêu tối ưu về chi phí
Với mục tiêu là tìm tổng chi phí nhỏ nhất của tất cả các yêu cầu, điều này có thể
được thực hiện bằng cách tính tổng chi phí nhỏ nhất từ phút amin đến phút dmax của
tất cả các tài nguyên được chọn. Vì vậy, để đạt được mục tiêu nhỏ nhất về chi phí thì
phải tìm cực tiểu:dmax∑x=amin
Scost(x)→ min (2.6)
Để đạt mục tiêu như công thức (2.6) thì phải thỏa mãn hai ràng buộc:
• Chi phí của mỗi yêu cầu ti ∈ T phải thỏa mãn ngân sách của nó tức là:
di∑x=ai
Scost(x) ≤ bi (2.7)
• Thời gian thực hiện của mỗi yêu cầu ti ∈ T phải nhỏ hơn hoặc bằng thời hạn
của nó, tức là tổng số chu kỳ thực hiện từ phút thứ ai đến di trên tất cả các tài
nguyên được chọn phải lớn hơn hoặc bằng khối lượng công việc (wi) của ti:
di∑x=ai
Scycle(x) ≥ wi (2.8)
Trong đó, Scost(x) và Scycle(x) là hàm tính tổng chi phí và tổng số chu kỳ được
xác định ở công thức (2.2) và (2.5).
2.2.4. Mục tiêu tối ưu về thời gian
Với mục tiêu là tổng thời gian hoàn thành là nhỏ nhất, do đó tổng số chu kỳ được
thực hiện cho tất cả các yêu cầu là lớn nhất. Vì vậy, với mục tiêu tối ưu về thời gian
thực hiện cho các yêu cầu thì phải tìm cực đại:
dmax∑x=amin
Scycle(x)→ max (2.9)
Để đạt được mục tiêu như công thức (2.9) thì phải thỏa mãn hai ràng buộc ở (2.7)
và (2.8).
2.3. Mô hình tối ưu về kinh tế
Mỗi máy ảo của nhà cung cấp IaaS được thuê trong D-phút và nhà cung cấp
SaaS phải trả một chi phí cố định trong D-phút được thuê, nếu họ không sử dụng hết
37
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
D-phút thì họ cũng phải trả chi phí cho toàn bộ thời gian thuê, điều này thúc đẩy nhu
cầu tìm kiếm một định vị hiệu quả về chi phí cho tập các yêu cầu [44].
Trong phần này, luận án tận dụng khoảng thời gian còn hiệu lực trong vòng D-
phút được thuê của yêu cầu này để thực hiện cho yêu cầu khác. Mỗi nhà cung cấp
x (x = 1..Y ) có thể chấp nhận được nhiều yêu cầu. Vì vậy, chúng tôi tận dụng khoảng
thời gian còn hiệu lực trong vòng D-phút được thuê của các yêu cầu nằm trong cùng
một nhà cung cấp để đem lại lợi nhuận cao nhất cho nhà cung cấp SaaS.
Chúng tôi gọi khoảng thời gian còn hiệu lực trong vòng D-phút được thuê là thời
gian gối đầu của hai yêu cầu và định nghĩa tập Ti bao gồm các yêu cầu trong cùng
một nhà cung cấp với yêu cầu ti và gối đầu lên yêu cầu ti, các yêu cầu này có thể chia
sẻ cùng một máy ảo. Như vậy, tập Ti bao gồm tập các yêu cầu có thời hạn lớn hơn
thời hạn của ti và thời điểm đến của các yêu cầu này nhỏ hơn thời hạn của ti. Tập Ti
được định nghĩa như sau:
Ti ={tl|dl ≥ di và al < di
}(2.10)
Sau khi xác định được tập Ti, ta tiến hành tính khoảng thời gian gối đầu lên nhau.
Ta định nghĩa tiljx là thời gian còn hiệu lực để tính toán cho yêu cầu tl sau khi đã
thực hiện xong yêu cầu ti trên máy ảo vmjx. Giá trị tijlx phụ thuộc vào tốc độ của các
máy ảo, thời điểm đến, thời hạn và khối lượng công việc của ti và tl. tiljx được xây
dựng như sau:
tiljx =
min(D − Uiljx, dl − al) nếu al − ai ≥ wi
sijx
D − Uiljx nếu al − ai < wisijx
và dl − ai ≥ D
dl − (ai + Uiljx)nếu al − ai < wisijx
và dl − ai < D
(2.11)
Trong đó:
• Uiljx = wisijx
+ max(al − di, 0).
• sijx là tốc độ của máy ảo vmjx được ánh xạ vào yêu cầu ti.
Ví dụ: giả sử D=60, máy ảo vm21 của nhà cung cấp 1 có tốc độ s21 = 20 và yêu
cầu t1 có thời điểm đến: 0; thời hạn: 30 và khối lượng: 500; thực hiện trên máy ảo
vm21 với thời gian: 50020
= 25 phút.
Yêu cầu t2 có thời điểm đến: 30; thời hạn: 50 và khối lượng: 1200.
Xét trên công thức (2.11), vì al − ai ≥ w1
sijx(30 − 0 ≥ 25) nên rơi vào trường
hợp đầu tiên của công thức (2.11). Khi đó, Uiljx = 25 + max (30− 30, 0) = 25 và
min (D − Uil, dl − aj) = min (60− 25, 50− 30) = 20, như vậy thời gian còn hiệu lực
38
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
của máy ảo vm21 cho yêu cầu t2 là 60 − 25 = 35 phút, nhưng t2 chỉ sử dụng được
min(35, 20) = 20 phút. Hai trường hợp còn lại của công thức (2.11) xét tương tự.
Công thức (2.11) xét trên từng nhà cung cấp x (x = 1..Y ), nếu trong mô hình nhà
cung cấp IaaS chỉ có một cung cấp thì công thức (2.11) được xây dựng lại như sau:
tiljx =
min(D − Uilj, dl − al) nếu al − ai ≥ wi
sij
D − Uilj nếu al − ai < wisij
và dl − ai ≥ D
dl − (ai + Uilj)nếu al − ai < wisij
và dl − ai < D
(2.12)
Trong đó:
• Uilj = wisij
+ max(al − di, 0).
• sij là tốc độ của máy ảo j được ánh xạ vào yêu cầu ti.
2.4. Thuật toán lập lịch trên hệ thống thời gian thực
Dựa trên bài toán phát biểu ở phần 2.2.1, mô hình toán học ở phần 2.2.2 và 2.3,
phần này chúng tôi xây dựng các thuật toán để lập lịch cho các yêu cầu thời gian thực
áp dụng trong các ứng dụng song song.
2.4.1. Thuật toán lập lịch tối ưu về thời gian
Các thuật toán này được sử dụng để giải quyết bài toán thứ nhất:
“Tìm một ánh xạ từ tập yêu cầu T vào một tập con của tập tài nguyên R để tối
thiểu tổng thời gian thực hiện trong khi vẫn thỏa mãn thời hạn và ngân sách của tất
cả các yêu cầu trong T .”.
Mục tiêu và các ràng buộc của bài toán được thể hiện ở mô hình toán học trong
phần 2.2.2. Mục tiêu được biểu diễn ở công thức (2.9) và hai ràng buộc của bài toán
được thể hiện ở ràng buộc (2.7) và (2.8).
Để giải quyết bài toán này, đầu tiên chúng tôi đề xuất thuật toán thứ nhất (có tên
là CTO) nhằm xác định số lượng của các tài nguyên để thực hiện cho mỗi yêu cầu.
Các yêu cầu trong thuật toán này được thực hiện song song và luôn đảm bảo thời gian
thực hiện trước thời hạn. Nhưng thuật toán này chưa tận dụng hết tài nguyên để tiết
kiệm chi phí cho nhà cung cấp. Vì vậy chúng tôi xây dựng thuật toán thứ hai (có tên
là MINC) để xác định khoảng thời gian gối đầu lên nhau giữa các yêu cầu nhằm tận
dụng khoảng thời gian còn hiệu lực của mỗi yêu cầu với mục tiêu tối ưu về chi phí.
39
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
2.4.1.1. Thuật toán CTO
Đầu vào của thuật toán là tập các yêu cầu của người dùng, tập các tài nguyên của
nhà cung cấp IaaS. Đầu ra của thuật toán là một mảng kết quả chứa số lượng các tài
nguyên trên mỗi nhóm cho các yêu cầu. Các bước của thuật toán CTO được mô tả
trong Thuật toán 2.1.
Thuật toán 2.1: CTO
Đầu vào:
• T = {t1, t2, . . . , tN}, ∀ti ∈ T là một bộ 4 < ai, di, bi, wi >;
• R = {r1, r2, ..., rM}, ∀rj ∈ R là bộ <sj,cj> ; /* R và T được xác định ở
phần 2.2.2 */
Đầu ra : Mảng kết quả Result chứa số lượng các tài nguyên cho mỗi yêu cầu;
Phương pháp:
1 Chọn ngưỡng ρ ∈ N : 1 ≤ ρ ≤ p, p được xác định như công thức (2.4);
2 Sắp xếp các tài nguyên theo thứ tự giảm dần của tốc độ;
3 Dựa vào ngưỡng ρ để nhóm các tài nguyên theo tốc độ ;
4 G :=số nhóm tài nguyên nhóm được;
5 RG = {g1, g2, ..., gG}, gl ∈ G chứa các tài nguyên của nhóm;
6 Trên mỗi nhóm, sắp xếp các tài nguyên theo thứ tự tăng dần của chi phí;
7 Result:= CalculateParallel(RG,T );
Function CalculateParallel(RG,T )
1 Tạo G luồng (thread) chạy đồng thời: TH = {th1, th2, ..., thG}, thj ∈ TH tìm
kiếm tài nguyên tương ứng trên nhóm gj ∈ RG;
2 foreach thj ∈ TH do
3 foreach ti ∈ T do
4 Tính số lượng của tài nguyên đầu tiên r1 ∈ gj cho ti:
sli :=
∣∣∣∣ wi(di − ai)× s1
∣∣∣∣;5 if wi > (di − ai)× s1 và |gj| = 1 then
6 sli := sli + 1;
7 else
8 if wi > (di − ai)× s1 then9 Tính số lượng các tài nguyên còn lại của nhóm gj cho ti ;
10 Result[j, i] := Số lượng và tên tài nguyên trong gj được thực hiện cho ti;
40
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Ví dụ 2.1:
Đầu tiên chúng ta cần xác định đầu vào của thuật toán, ví dụ đầu vào của thuật
toán được xác định như sau:
• T = {t1, t2}; t1(a1, d1, b1, w1) = t1(0, 60, 2.5, 1500); t2(a2, d2, b2, w2) = t2(30, 70, 3.5
, 1800);
• R = {r1, r2, r3, r4, r5, r6, r7} với các tốc độ và chi phí như Bảng 2.1:
rj r1 r2 r3 r4 r5 r6 r7
sj 15 20 20 25 20 25 30
cj 1 1.5 2 2.5 1.7 2.7 2.5
Bảng 2.1: Chi phí và tốc độ ban đầu của các tài nguyên
Sau đó, chọn ngưỡng ρ = 5 và sắp xếp 7 tài nguyên theo thứ tự giảm dần của tốc
độ (câu lệnh 1). Dựa vào ngưỡng ρ = 5 để chia các tài nguyên thành hai nhóm theo
tốc độ (câu lệnh 2 đến 5). Như vậy, các tài nguyên đầu tiên sẽ có tốc độ cao nhất. Kết
quả của hai nhóm tài nguyên được xác định ở Bảng 2.2. Trên mỗi nhóm tiến hành
sắp xếp các tài nguyên theo thứ tự tăng dần của chi phí (câu lệnh 6), như vậy các
tài nguyên đầu tiên của mỗi nhóm sẽ có chi phí thấp hơn so với các tài nguyên còn
lại trên mỗi nhóm. Kết quả sau khi sắp xếp tăng dần theo chi phí được thể hiện như
Bảng 2.3.
rj r7 r4 r6 r2 r3 r5 r1
sj 30 25 25 20 20 20 15
cj 2.5 2.5 2.7 1.5 2 1.7 1
Nhóm 1 2
Bảng 2.2: Chi phí và tốc độ của các tài nguyên sau khi phân nhóm theo tốc độ
rj r7 r4 r6 r1 r2 r5 r3
sj 30 25 25 15 20 20 20
cj 2.5 2.5 2.7 1 1.5 1.7 2
Nhóm 1 2
Bảng 2.3: Chi phí và tốc độ của các tài nguyên sau khi sắp xếp theo chi phí
Sau khi phân nhóm, G = 2 và RG = {g1, g2}, g1 = {r7, r4, r6}, g2 = {r1, r2, r5, r3}.Tương ứng với G(G = 2) nhóm, hàm CalculateParallel sẽ tạo ra G luồng chạy đồng
41
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
thời (th1 và th2), mỗi luồng sẽ tính toán trên mỗi nhóm tài nguyên tương ứng (th1 sẽ
tính trên nhóm g1 và th2 sẽ tính trên nhóm g2), cụ thể như sau:
Luồng 1 (th1) sẽ tính toán số lượng tài nguyên trên nhóm 1 (g1) cho tất cả các
yêu cầu:
• Yêu cầu t1(0, 60, 2.5, 1500), với khối lượng công việc 1500 chu kỳ, thời gian lớn
nhất để hoàn thành là d1− a1 = 60 phút. Ưu tiên ánh xạ t1 vào tài nguyên r7 là
tài nguyên đầu tiên trên nhóm 1 có chi phí thấp và tốc độ cao so với nhóm còn lại.
Khi đó số chu kỳ được thực hiện trên r7 (ký hiệu là cn7): cn7 = (d1− a1)× s7 =
60 × 30 = 1800 chu kỳ, vì cn7 > w1 nên ta chỉ cần 1 tài nguyên r7 (ký hiệu là:
1 × r7) để thực hiện cho t1 với chi phí là 2.5, chi phí này thỏa mãn ngân sách
của t1. Lưu kết quả này vào mảng kết quả, Result [1, 1] = 1× r7.
• Yêu cầu t2(30, 70, 3.5, 1800), thời gian lớn nhất để hoàn thành là 70 − 30 = 40
phút, nếu sử dụng tài nguyên r7 thì thực hiện được cn7 = (d2 − a2) × s7 =
40×30 = 1200 chu kỳ, do đó ta chỉ cần∣∣∣ w2
cn7
∣∣∣ =∣∣18001200
∣∣ = 1×r7, còn lại w2−cn7 =
1800−1200 = 600 chu kỳ, ta đồng thời sử dụng r4 (tài nguyên thứ 2 trong nhóm
1) trong thời gian 40 phút thì thực hiện được cn4 = (d2−a2)×s4 = 40×25 = 1000
chu kỳ, vì cn4 >= w2 − cn7 nên ta chỉ cần sử dụng 1× r4. Lưu kết quả này vào
mảng kết quả, Result [1, 2] = 1× r4, 1× r7.
Khi đó cả hai yêu cầu t1 và t2 thực hiện song song trên 2 tài nguyên r7 và r4
nên vẫn đảm bảo thời hạn với chi phí c7 + c4 = 2.5 + 2.5 = 5, chi phí này vượt
quá ngân sách của yêu cầu t2.
Luồng 2 (th2) sẽ tính toán số lượng tài nguyên trên nhóm 2 (g2) cho tất cả các
yêu cầu:
• Ưu tiên ánh xạ t1 vào r1, khi đó sử dụng được cn1 = (d1−a1)×s1 = 60×15 = 900
chu kỳ, nên chỉ cần∣∣∣ w1
cn1
∣∣∣ =∣∣1500900
∣∣ = 1×r1, còn lại 600 chu kỳ nên chỉ cần sử dụng
1 × r2. Khi đó, tổng chi phí trên hai tài nguyên là 2.5 vẫn đảm bảo ngân sách
cho yêu cầu t1. Lưu kết quả này vào mảng kết quả, Result [2, 1] = 1× r1, 1× r2.
• Ưu tiên ánh xạ t2 vào r1, khi đó sử dụng được cn1 = (d2−a2)×s1 = 40×15 = 600
chu kỳ nên cần∣∣∣ w2
cn1
∣∣∣ =∣∣1800600
∣∣ = 3× r1 với chi phí 3× 1 = 3 thỏa mãn ngân sách
cho yêu cầu. Lưu kết quả này vào mảng kết quả, Result [2, 2] = 3× r1.
Sau khi các luồng thực hiện xong, chúng ta có được một bảng kết quả để xác định
số lượng của các tài nguyên cho mỗi yêu cầu như Bảng 2.4. Trên mỗi nhóm sẽ có tương
ứng một lịch trình để xác định tên tài nguyên và số lượng tài nguyên được ánh xạ vào
42
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
mỗi yêu cầu như sau:
Lịch trình trên nhóm 1:
• t1 cần sử dụng 1× r7 (ký hiệu là t1 → 1× r7) với chi phí là 2.5 thỏa mãn ngân
sách.
• t2 cần sử dụng 1× r7 và 1× r4 (ký hiệu là t2 → 1× r7, 1× r4 ) với chi phí là 5
nên không thỏa mãn ngân sách
Lịch trình trên nhóm 2:
• t1 → 1× r1, 1× r2 với chi phí là 1, thỏa mãn ngân sách.
• t2 → 3× r1 với chi phí là 3 nên thỏa mãn ngân sách.
Nhóm t1 t2 Tổng chi phí
1 1× r7 1× r7, 1× r4 2.5 + (2.5 + 2.5) = 7.5
2 1× r1, 1× r2 3× r1 1 + 1.5 + 3× 1 = 5.5
Bảng 2.4: Mảng kết quả xác định số lượng tài nguyên cho mỗi yêu cầu của CTO
Nhận xét: mặc dù thuật toán CTO tối ưu về thời gian, đảm bảo các yêu cầu hoàn
thành trước thời hạn của nó, nhưng thuật toán này còn một số hạn chế:
1. Thuật toán CTO chỉ xem xét số tài nguyên trên một nhà cung cấp, nếu xét trên
nhiều nhà cung cấp thì thời gian đưa ra lịch trình của thuật toán sẽ lớn.
2. Các yêu cầu luôn hoàn thành trước thời hạn nhưng có thể không thỏa mãn ngân
sách của nó.
3. Thời gian thuê tài nguyên là D phút nhưng có thể có nhiều yêu cầu không sử
dụng hết D phút.
2.4.1.2. Thuật toán MINC
Để khắc phục các hạn chế của thuật toán CTO, luận án sử dụng mô hình tối ưu
về kinh tế (phần 2.3) để xây dựng thuật toán MINC nhằm tận dụng khoảng thời
gian còn hiệu lực giữa các yêu cầu với mục tiêu tối ưu về chi phí.
Ý tưởng của thuật toán là dựa vào lịch trình đưa ra của thuật toán CTO, để tìm
ra yêu cầu đầu tiên thỏa mãn ngân sách và thời hạn. Sau đó, tìm ra tập các yêu cầu
gối đầu lên yêu cầu này như công thức (2.10) và tính các khoảng thời gian gối đầu
43
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
như công thức( 2.12). Sau khi tận dụng khoảng thời gian gối đầu này cho các yêu cầu,
tìm ra yêu cầu có khoảng thời gian gối đầu lớn nhất vừa thỏa mãn thời hạn và ngân
sách để làm yêu cầu lập lịch tiếp theo. Quá trình này cứ tiếp tục cho đến khi các yêu
cầu được lập lịch xong. Thuật toán MINC bao gồm các bước được mô tả ở Thuật
toán 2.2.
Thuật toán 2.2: MINC
Đầu vào:
• UST := T ; /* Tập các yêu cầu chưa lập lịch */
• Mảng Result ; /* Mảng kết quả là đầu ra của thuật toán CTO. */
Đầu ra : ST là lịch trình để ánh xạ các yêu cầu vào các tài nguyên;
Phương pháp:
1 ST := ∅;2 if tìm thấy ti ∈ UST thỏa mãn thời hạn và ngân sách trong Result then
3 k:= vị trí của dòng trên Result tìm thấy ti;
4 PUSH(ti) ; /* Lưu trữ ti vào ngăn xếp */
5 UST := UST \ {ti};6 ST := ST ∪ {ti → Result [k, i]};7 while (UST 6= ∅) do8 ti := POP () ; /* Lấy ti từ ngăn xếp */
9 Tìm Ti :={tl|dl ≥ di và al < di
};
10 Tính tilj trên tài nguyên cuối cùng được ánh xạ bởi yêu cầu ti như công
thức (2.12):
tilj :=
min (D − Uilj, dl − al) nếu al − ai ≥ wi
sij
D − Uilj nếu al − ai < wisij
và dl − ai ≥ D
dl − (ai + Uil) nếu al − ai < wisijx
và dl − ai < D
;
11 Dựa trên tilj tính được trong Ti để cập nhật lại khối lượng cho các yêu
cầu trong Ti và tìm ra yêu cầu tl ∈ Ti có khoảng thời gian gối đầu lớn
nhất vừa thỏa mãn thời hạn và ngân sách;
12 if tìm thấy tl then
13 PUSH(tl); UST := UST \ {tl};14 ST := ST ∪ {tl → Result [k, l]};15 else
16 Lặp lại từ câu lệnh 2 để tìm yêu cầu tiếp theo;
17 else
18 Thông báo các yêu cầu ti ∈ UST bị từ chối;
44
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Đầu tiên thuật toán MINC dựa vào bảng kết quả Result là đầu ra của thuật
toán CTO để tìm kiếm yêu cầu đầu tiên ti ∈ UST thỏa mãn thời hạn và ngân sách
(câu lệnh 1). Nếu không tìm thấy ti thì thông báo các yêu cầu trong UST bị từ chối
(câu lệnh 18), ngược lại lưu yêu cầu ti vào ngăn xếp và cập nhật lại trạng thái của
tập UST và ST (câu lệnh 2 và 3 ). Kiểm tra xem có còn yêu cầu nào chưa lập lịch
trong UST hay không ? (câu lệnh 7). Nếu còn thì lấy yêu cầu đã lập lịch trong ngăn
xếp ra để tìm tập các yêu cầu gối đầu lên yêu cầu này và tính thời gian gối đầu, từ
đó tìm ra yêu cầu (tl) tiếp theo cần lập lịch và cập nhật lại tập UST và ST (từ câu
lệnh 8 đến câu lệnh 14). Nếu không tìm ra tl thì lặp lại câu lệnh 2 để tìm ra yêu cầu
tiếp theo thỏa mãn thời hạn và ngân sách trong Result (câu lệnh 16).
Quá trình này cứ tiếp tục cho đến khi tất cả các yêu cầu đã được lập lịch xong.
Kết thúc thuật toán, tập ST chứa lịch trình để ánh xạ các yêu cầu được chấp nhận
vào các tài nguyên.
2.4.1.3. Phân tích thuật toán CTO và MINC
• Đầu vào của thuật toán CTO: tập tài nguyên R được xác định vì tại thời điểm
lập lịch dựa vào thông tin của hệ thống ta có thể xác định được số lượng tài
nguyên trên trung tâm dữ liệu.
• Sự hình thành của tập T và UST trong thuật toán CTO và MINC được giới
hạn vì các yêu cầu được lập lịch theo lô và theo một chu kỳ tức là ta sử dụng
hai tập yêu cầu chưa lập lịch, cứ tập yêu cầu này đang được lập lịch thì tập yêu
cầu kia tiếp tục nhận yêu cầu chưa lập lịch và lưu vào hàng đợi, khi tập yêu cầu
này lập lịch xong thì hệ thống sẽ lập lịch cho tập yêu cầu lưu ở hàng đợi và quá
trình cứ lặp lại.
• Đối với thuật toán CTO: sau khi thực hiện từ câu lệnh 1 đến câu lệnh 6, ta có
G nhóm tài nguyên độc lập, các tài nguyên đầu tiên của mỗi nhóm sẽ có chi phí
thấp nhất so với các tài nguyên còn lại của nhóm và các tài nguyên của nhóm
đầu tiên sẽ có tốc độ lớn nhất. Sau khi tạo được G nhóm tài nguyên độc lập,
ta có thể áp dụng mô hình lập trình chia xẻ bộ nhớ [4] để tạo ra G luồng chạy
đồng thời, mỗi luồng sẽ tính toán tài nguyên trên mỗi nhóm tương ứng. Trên
mỗi luồng sẽ ưu tiên ánh xạ yêu cầu vào tài nguyên đầu tiên của mỗi nhóm, điều
này sẽ làm giảm chi phí cho cả hệ thống. Vì thuật toán sử dụng G luồng chạy
đồng thời nên sẽ tối ưu thời gian đưa ra các lịch trình cho thuật toán CTO.
• Thời gian thuê tài nguyên là D-phút, do đó có thể một yêu cầu nào đó hoàn
thành công việc của mình với thời gian ít hơn D-phút nhưng phải trả chi phí
45
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
trong vòng D-phút. Thuật toán MINC tận dụng khoảng thời gian còn hiệu lực
này để thực hiện cho yêu cầu tiếp theo, điều này dẫn đến chi phí thực hiện cho
cả hệ thống giảm xuống và đem lại lợi ích cho nhà cung cấp SaaS.
• Độ phức tạp của thuật toán CTO:
– Sử dụng thuật toán Quick Sort để sắp xếp các yêu cầu theo chiều giảm dần
của tốc độ và trên từng nhóm sắp xếp tăng dần của chi phí. Do đó, độ phức
tạp của hai lần sắp xếp là O(2 ×M × logM2 ) = O(M × logM2 ) với M là số
tài nguyên.
– Tạo ra G luồng chạy đồng thời: O(G).
– Trên mỗi luồng sẽ tính toán số lượng tài nguyên trên mỗi nhóm tương ứng
cho N các yêu cầu. Khi đó, độ phức tạp để tính toán trên mỗi luồng là:
O(N × Gx) với Gx là số tài nguyên lớn nhất trong các nhóm. Trường hợp
xấu nhất là chỉ có 1 nhóm, khi đó Gx = N và độ phức tạp là: O(N ×M).
Như vậy, độ phức tạp của thuật toán CTO: O(max(M × logM2 , G,N × M)).
Nếu (N > logM2 ) thì O(max(M × logM2 , G,N ×M)) = O(N ×M), ngược lại,
O(max(M × logM2 , G,N ×M)) = O(M × logM2 )
• Độ phức tạp của thuật toán MINC:
– Tìm yêu cầu thỏa mãn thời hạn và ngân sách trong mảng Result: O(N×G),
với N là số yêu cầu và G là số nhóm tài nguyên (N,G tương ứng là số cột
và số dòng trong mảng Result )
– ∀ti ∈ T tìm tập Ti, trường hợp xấu nhất là N−1 yêu cầu gối đầu lên ti, khi
đó độ phức tạp để tìm ra tập Ti và tìm ra tl ∈ Ti là O(N×(N−1)) = O(N2).
Như vậy, độ phức tạp của thuật toánMINC là O(max(N2, N×G)), nếu N > G
thì độ phức tạp của MINC là O(N2), ngược lại thì độ phức tạp của MINC là
O(N ×G).
2.4.1.4. Mô phỏng và đánh giá thuật toán
Các thuật toán được cài đặt mô phỏng bằng ngôn ngữ Java (NetBean 7.1.1, JDK 6),
gói công cụ CloudSim 2.0 [11], [13] với các thông số như Bảng 2.5. Trong đó, mỗi máy
chủ (host) chỉ tạo tối đa 50 máy ảo (theo http://windowsitpro.com/azure/maximum-
number-virtual-machines-availability-set).
Trong cài đặt, chúng tôi sử dụng các hàm API của CloudSim 2.0, kế thừa từ lớp
DataCenterBroker để tạo ra chính sách lập lịch mới tương ứng với thuật toán CTO
46
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Loại Tham số Giá trị
Số DataCenter 1
DataCenter Số host vật lý 2
Loại lập lịch máy ảo TimeShared
Số máy ảo 50
Máy ảo (VM) Số PE (Processing Element) 4
RAM trên mỗi máy ảo 512 MB
Yêu cầu (Cloudlet) Số yêu cầu 100..250
Bảng 2.5: Các thông số mô phỏng trên CloudSim
và MINC đề xuất. Kế thừa lên lớp Vm của CloudSim 2.0 để tạo ra các máy ảo với
các thông số về tốc độ và chi phí được xác định như sau: tốc độ được lấy ngẫu nhiên
từ 5 đến 50 tương ứng với chi phí là số thực được lấy ngẫu nhiên từ 0.1 đến 1 (chi phí
này được tham khảo từ http://vcloud.vmware.com/service-offering/pricing-guide). Kế
thừa lên lớp Cloudlet để tạo ra các yêu cầu với các thông số: thời điểm đến, khối lượng
công việc, ngân sách và thời hạn được xác định như sau: thời điểm đến được lấy ngẫu
nhiên từ 1 đến 500, chúng ta phát sinh thời hạn một cách ngẫu nhiên giữa (dl, du)
phút và các giá trị khác nhau dl và du có giới hạn từ 10 đến 1500, thời hạn phải lớn
hơn thời điểm đến. Khối lượng công việc được lấy ngẫu nhiên từ 10 đến 5000 chu kỳ,
căn cứ vào khối lượng để ước lượng ngân sách cho các yêu cầu. Các thông số khác
được lấy ngầm định như trong CloudSim.
Dựa vào mảng Result, tìm ra lịch trình hợp lý nhất cho thuật toán CTO. Lịch
trình đưa ra của thuật toán CTO và MINC được so sánh với thuật toán EDF [10],
[42], [7], [29]. Thuật toán EDF là thuật toán tham lam dựa trên bài toán xếp đồ vào
thùng (Bin Packing).
Ý tưởng của thuật toán EDF :
Các yêu cầu trong thuật toán được sắp xếp giảm dần theo tỉ số sử dụng Tidi, trong
đó, Ti và di là thời gian thực hiện và thời hạn của yêu cầu ti, (i = 1..N). Các tài nguyên
được khởi tạo với hệ số sử dụng Uj = 0 (j = 1..M), khi một yêu cầu được ánh xạ vào
tài nguyên rj thì hệ số sử dụng Uj tăng lên (Uj = Uj + Tidi, j = 1..M). Các yêu cầu ưu
tiên ánh xạ vào một tài nguyên, nếu tổng hệ số sử dụng của tài nguyên U =n∑i=1
Tidi> 1
(n là số yêu cầu được ánh xạ vào tài nguyên) thì yêu cầu sẽ tìm tài nguyên khác. Ưu
điểm của thuật toán EDF là tận dụng tối đa hiệu năng của hệ thống, đảm bảo các yêu
cầu hoàn thành trước thời hạn của nó. Nhưng thuật toán này không xem xét đến chi
phí cho các yêu cầu. Độ phức tạp của thuật toán EDF là O(max(N × logN2 , N ×M))
với N là số yêu cầu, M là số máy ảo, O(N × logN2 ) là độ phức tạp của thuật toán
47
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Quick Sort.
1. Phân tích tổng thời gian và chi phí thực hiện khi thay đổi số yêu cầu
Hình 2.3 và Hình 2.4 chỉ ra tổng thời gian thực hiện và tổng chi phí của 3
thuật toán CTO, MINC và EDF khi ρ = 5, D = 60, sử dụng 50 máy ảo và
các yêu cầu thay đổi từ 100 đến 250. Các giá trị trong mô phỏng là kết quả của
5 lần chạy thử và lấy kết quả trung bình.
Hình 2.3: So sánh tổng thời gian của 3 thuật toán khi thay đổi số yêu cầu
Hình 2.4: So sánh tổng chi phí của 3 thuật toán khi thay đổi số yêu cầu
Khi số yêu cầu càng cao thì tổng thời gian thực hiện của thuật toán CTO,
48
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
MINC luôn nhỏ hơn thuật toán EDF như thể hiện ở Hình 2.3. Điều này bởi
vì thuật toán CTO luôn tìm cách ánh xạ các yêu cầu vào các tài nguyên đầu
tiên có tốc độ cao của mỗi nhóm, trong khi đó thuật toán EDF chỉ xem xét đến
tỉ số sử dụng: U =n∑i=1
Tidi≤ 1 (trong đó Ti là thời gian thực hiện và di tương
ứng với thời hạn)[10], [42], [7], [29] để ánh xạ yêu cầu vào các tài nguyên. Do đó
thuật toán EDF chỉ đảm bảo các yêu cầu hoàn thành trước thời hạn của nó chứ
không tìm kiếm các tài nguyên có tốc độ cao. Đầu ra của thuật toán CTO là
đầu vào của thuật toán MINC, nhưng thuật toán MINC căn cứ vào tài nguyên
cuối cùng được ánh xạ vào yêu cầu trước để tính thời gian gối đầu cho các yêu
cầu sau, các tài nguyên này thường có tốc độ cao hơn các tài nguyên trước đó.
Vì vậy, trong một số trường hợp tổng thời gian thực hiện của thuật toánMINC
thấp hơn thuật toán CTO như trường hợp 250 yêu cầu của Hình 2.3.
Tổng chi phí của thuật toán MINC luôn nhỏ hơn hai thuật toán CTO và
EDF như thể hiện ở Hình 2.4 vì thuật toán MINC xem xét việc chia sẻ thời
gian gối đầu của các yêu cầu lên các tài nguyên, trong khi đó thuật toán CTO
không xem xét thời gian gối đầu, còn thuật toán EDF lại không quan tâm đến
chi phí chỉ quan tâm đến việc làm sao các yêu cầu hoàn thành trước thời hạn.
2. Phân tích tổng thời gian và tổng chi phí khi thay đổi số ngưỡng ρ
Chúng tôi thay đổi ngưỡng ρ từ 1 đến 5, D = 60, sử dụng 250 yêu cầu và 50
máy ảo, kết quả được thể hiện ở Hình 2.5 và Hình 2.6.
Khi ngưỡng ρ càng nhỏ như Hình 2.5 thì trên mỗi nhóm sẽ có rất ít tài
nguyên, các tài nguyên trên các nhóm đầu sẽ tập trung các tài nguyên có tốc độ
cao. Vì vậy thuật toán TCO và MINC sẽ tập trung ánh xạ các yêu cầu vào các
tài nguyên có tốc độ cao này nên dẫn đến tổng thời gian thực hiện càng thấp.
Khi ρ càng cao thì trong nhóm sẽ có nhiều tài nguyên hơn, các tài nguyên này
sau khi đã sắp xếp giảm dần theo tốc độ thì sẽ sắp xếp tăng dần theo chi phí nên
các tài nguyên ở đầu nhóm có chi phí thấp và tốc độ thấp hơn các tài nguyên
khác trong nhóm. Vì vậy, khi ρ càng cao thì tổng thời gian thực hiện của thuật
toán TCO và MINC càng lớn, khi ρ tăng lên đến ngưỡng 4 và 5 thì tổng thời
gian thực hiện gần như không thay đổi.
Ngược lại, khi ρ càng cao thì tổng chi phí của thuật toán TCO và MINC
càng thấp vì ρ càng cao thì các tài nguyên đầu tiên của nhóm sẽ có chi phí thấp
nhất. Thuật toánMINC sẽ tập trung ánh xạ các yêu cầu vào tập các tài nguyên
này và tiến hành chia sẻ thời gian gối đầu giữa các yêu cầu. Do đó, khi ρ càng
cao thì tổng chi phí của thuật toán TCO và MINC càng thấp, khi ρ tăng đến
49
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
ngưỡng 4 và 5 thì tổng chi phí sẽ không thay đổi như thể hiện ở Hình 2.6.
Hình 2.5: So sánh tổng thời gian thực hiện của 3 thuật toán khi thay đổi ρ
Hình 2.6: So sánh tổng chi phí của 3 thuật toán khi thay đổi ρ
2.4.2. Thuật toán lập lịch tối ưu về chi phí
Phần này trình bày thuật toán để giải quyết bài toán thứ hai với mục tiêu tối ưu
về chi phí. Mục tiêu và các ràng buộc của bài toán được thể hiện ở mô hình toán học
trong phần 2.2.2. Mục tiêu được biểu diễn ở công thức (2.6) và điều kiện của bài toán
được thể hiện ở hai ràng buộc (2.7) và (2.8).
50
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Để giải quyết bài toán này, chúng tôi đề xuất thuật toán TCO để xây dựng mảng
kết quả nhằm xác định số lượng tài nguyên cho mỗi yêu cầu theo mục tiêu tối ưu về
chi phí. Các yêu cầu trong thuật toán này được thực hiện song song và luôn đảm bảo
hoàn thành trước thời hạn.
Giống như thuật toán CTO, chúng tôi áp dụng lại thuật toán MINC để tối ưu về
chi phí thực hiện. Sau đó, đưa ra lịch trình để ánh xạ các yêu cầu vào các tài nguyên.
2.4.2.1. Thuật toán TCO
Các bước của thuật toán TCO được mô tả trong Thuật toán 2.3.
Thuật toán 2.3: TCO
Đầu vào:
• T = {t1, t2, . . . , tN}, ∀ti ∈ T là một bộ 4 < ai, di, bi, wi >;
• R = {r1, r2, ..., rM}, ∀rj ∈ R là bộ <sj,cj> ; /* R và T được xác định ở
phần 2.2.2 */
Đầu ra : Mảng Result để xác định số lượng các tài nguyên cho mỗi yêu cầu;
Phương pháp:
1 Chọn ngưỡng ρ ∈ (0, 1] ;
2 Sắp xếp các tài nguyên theo thứ tự tăng dần của chi phí;
3 Dựa vào ngưỡng ρ để nhóm các tài nguyên theo chi phí ;
4 G := số nhóm tài nguyên nhóm được;
5 RG = {g1, g2, ..., gG}, gl ∈ G chứa các tài nguyên của nhóm;
6 Trên mỗi nhóm, sắp sếp các tài nguyên theo thứ tự giảm dần của tốc độ;
7 Result:= CalculateParallel(RG,T ); /* Hàm CalculateParallel được xây
dựng ở phần 2.4.1.1 */
Ví dụ 2.2
Đầu tiên chúng ta cần xác định đầu vào của thuật toán, ví dụ đầu vào của thuật
toán được xác định như sau:
• Ngưỡng ρ = 5;
• T = {t1, t2}; t1(a1, d1, b1, w1) = t1(0, 60, 1.5, 500); t2(a2, d2, b2, w2) = t2(30, 70, 2,
1200);
• R = {r1, r2, r3, r4, r5, r6, r7} với các tốc độ và chi phí như Bảng 2.6:
Sau khi thực hiện từ câu lệnh 2 đến câu lệnh 5, các tài nguyên đã được sắp xếp theo
chi phí và phân nhóm như Bảng 2.7, trên mỗi nhóm các tài nguyên được sắp xếp giảm
51
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
dần theo tốc độ như Bảng 2.8 (câu lệnh 6). Sử dụng lại hàm CalculateParallel(RG, T )
được xây dựng ở phần 2.4.1.1 để tính số lượng các tài nguyên cho các yêu cầu. Trong
đó, RG = {g1, g2}, g1 = {r2, r1, r5}, g2 = {r7, r4, r6, r3}. Hàm CalculateParallel tạo
ra 2 luồng chạy đồng thời: th1 và th2.
r1 r2 r3 r4 r5 r6 r7
sj 15 20 20 25 10 25 30
cj 1 1.5 2 2.5 1 2.7 2.5
Bảng 2.6: Chi phí và tốc độ ban đầu của các tài nguyên
r1 r5 r2 r3 r4 r7 r6
sj 15 10 20 20 25 30 25
cj 1 1 1.5 2 2.5 2.5 2.7
Nhóm 1 2
Bảng 2.7: Chi phí và tốc độ của các tài nguyên khi phân nhóm theo chi phí
r2 r1 r5 r7 r4 r6 r3
sj 20 15 10 30 25 25 20
cj 1.5 1 1 2.5 2.5 2.7 2
Nhóm 1 2
Bảng 2.8: Chi phí và tốc độ của các tài nguyên sau khi sắp xếp theo tốc độ
Luồng 1 (th1) sẽ tính số lượng tài nguyên trên nhóm 1 (g1) cho tất cả các yêu cầu
trong T :
Yêu cầu t1(0, 60, 1.5, 500), với khối lượng công việc 500 chu kỳ, thời gian lớn nhất
để hoàn thành là d1 − a1 = 60 phút, dựa trên Bảng 2.8 để ưu tiên ánh xạ vào tài
nguyên r2 có tốc độ lớn nhất trên nhóm, khi đó số chu kỳ có thể thực hiện trên r2 là
cn2 = (d1 − a1)× s2 = 60× 20 = 1200, vì cn2 > w1 nên ta chỉ cần 1× r2 để thực hiện
cho t1, với chi phí là 1.5. Lưu kết quả này vào mảng kết quả, Result [1, 1] = 1× r2.Yêu cầu t2(30, 70, 2, 1200), thời gian lớn nhất để hoàn thành là 70− 30 = 40 phút,
nếu sử dụng tài nguyên r2 thì thực hiện được cn2 = (d2−a2)×s2 = 40×20 = 800 chu
kỳ, do đó ta chỉ cần∣∣∣ w2
cn2
∣∣∣ =∣∣1200800
∣∣ = 1× r2 , còn lại w2 − cn2 = 1200− 800 = 400 chu
kỳ, ta đồng thời sử dụng r1 trong thời gian 40 phút thì thực hiện được cn1=(d2-a2)
× s1 = 40 × 15 = 600 chu kỳ, vì cn1 ≥ w2 − cn2 nên ta chỉ cần sử dụng 1 × r1.
Khi đó, cả hai t1 và t2 thực hiện song song trên 2 tài nguyên r2 và r1 nên vẫn đảm
bảo thời hạn với chi phí c2+ c1 = 1.5 + 1 = 2.5. Lưu kết quả này vào mảng kết quả,
52
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Result [1, 2] = 1× r2, 1× r1.Tương tự như vậy, luồng 2 (th2) sẽ tính số lượng tài nguyên trên nhóm 2 (g2). Kết
thúc thuật toán TCO ta xây dựng được mảng kết quả như Bảng 2.9. Trên mỗi nhóm
sẽ có tương ứng một lịch trình để xác định tên tài nguyên và số lượng tài nguyên được
ánh xạ vào mỗi yêu cầu:
Nhóm t1 t2 Tổng chi phí
1 1× r2 1× r2, 1× r1 1.5+(1.5+1)=4
2 1× r7 1× r7 2.5+2.5=5
Bảng 2.9: Mảng kết quả được đưa ra bởi thuật toán TCO
Nhận xét:
1. Đối với thuật toán TCO, t1 sử dụng 1× r2, t2 sử dụng 1× r2 và 1× r1 với tổng
chi phí 4, thỏa mãn thời hạn nhưng không thỏa mãn tổng ngân sách của 2 yêu
cầu. Nhưng nếu chúng ta xét đến khoảng thời gian gối đầu lên nhau của cả hai
yêu cầu trên r2 có nghĩa là t1 sử dụng 1 × r2 với thời gian w1
s2=500
20= 25 phút,
như vậy ta có thể tận dụng 60− 25 = 35 phút cho t2, vì thời điểm đến của t2 là
phút thứ 30 nên có thể tận dụng được 30 phút và có thể tính được 30×20 = 600
chu kỳ cho t2, còn lại 1200 − 600 = 600 chu kỳ, ta chỉ cần sử dụng 1 × r1 với
thời gian w1−600s1
=60015
= 40 phút với chi phí là 1 và trên r1 ta có thể tận dụng
60− 40 = 20 phút cho các yêu cầu tiếp theo. Như vậy, nếu sử dụng các khoảng
thời gian gối đầu lên nhau cho cả 2 yêu cầu, ta đạt được chi phí 1.5 + 1 = 2.5
vừa thỏa mãn thời hạn, vừa đạt được chi phí nhỏ nhất thỏa mãn ngân sách của
cả hai yêu cầu. Vì vậy, phần này chúng tôi áp dụng lại thuật toán MINC để
xác định khoảng thời gian gối đầu lên nhau giữa các yêu cầu nhằm tận dụng
khoảng thời gian còn hiệu lực của mỗi yêu cầu với mục tiêu tối ưu về chi phí.
2. Về phân tích thuật toán TCO giống như thuật toán CTO. Thuật toán CTO sắp
xếp giảm dần theo tốc độ, sau đó sắp xếp tăng dần theo chi phí trên từng nhóm.
Ngược lại, thuật toán TCO sắp xếp tăng dần theo chi phí, sau đó sắp xếp giảm
dần theo tốc độ trên từng nhóm nhằm thỏa mãn mục tiêu về chi phí.
2.4.2.2. Mô phỏng và đánh giá thuật toán
Các thuật toán được cài đặt mô phỏng bằng ngôn ngữ Java (NetBean 7.1.1, JDK
6), gói công cụ CloudSim 2.0 [11], [13] với các thông số như Bảng 2.5, các thông số
53
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
của các yêu cầu người dùng và các máy ảo của nhà cung cấp được xác định giống như
thuật toán CTO trong phần 2.4.1.4.
Hình 2.7: So sánh tổng chi phí của 3 thuật toán khi thay đổi số yêu cầu
Hình 2.8: So sánh tổng thời gian của 3 thuật toán khi thay đổi số yêu cầu
1. Phân tích tổng chi phí và thời gian thực hiện khi thay đổi số yêu cầu
Hình 2.7 và Hình 2.8 chỉ ra tổng chi phí và tổng thời gian thực hiện (makespan)
của 3 thuật toán TCO, MINC và EDF khi ρ=0.5, D=60, sử dụng 50 máy ảo
và các yêu cầu thay đổi từ 100 đến 250.
54
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Khi số yêu cầu càng cao thì tổng chi phí của thuật toán MINC luôn nhỏ hơn
thuật toán TCO và EDF như Hình 2.7 vì thuật toán MINC xem xét việc chia
sẻ thời gian gối đầu của các yêu cầu lên các tài nguyên, trong khi đó thuật toán
TCO không xem xét thời gian gối đầu, còn thuật toán EDF không quan tâm
đến chi phí cho các yêu cầu cũng như tìm kiếm các tài nguyên có tốc độ cao, nó
chỉ đảm bảo các yêu cầu hoàn thành trước thời hạn.
Ngược lại khi số yêu cầu càng cao thì thuật toán MINC có thời gian thực
hiện cao hơn TCO. Thuật toán MINC căn cứ vào tài nguyên cuối cùng được
ánh xạ vào yêu cầu trước để tính thời gian gối đầu cho các yêu cầu sau, các tài
nguyên cuối cùng này có tốc độ thấp hơn so với các tài nguyên trước đó trong
mỗi nhóm. Vì vậy, tổng thời gian thực hiện của thuật toánMINC cao hơn thuật
toán CTO như thể hiện ở Hình 2.8.
2. Phân tích tổng chi phí và tổng thời gian khi thay đổi ngưỡng ρ
Hình 2.9: So sánh tổng chi phí của 3 thuật toán khi thay đổi ρ
Chúng tôi thay đổi ngưỡng ρ từ 0.1 đến 0.5, D = 60, sử dụng 200 yêu cầu và
50 máy ảo, kết quả được thể hiện ở Hình 2.9 và Hình 2.10. Khi ngưỡng ρ càng
nhỏ thì các tài nguyên có chi phí thấp sẽ nằm ở nhóm đầu tiên và MINC sẽ tập
trung ánh xạ các yêu cầu vào tập các tài nguyên này và tiến hành chia sẻ thời
gian gối đầu giữa các yêu cầu, do đó khi ngưỡng ρ càng nhỏ thì tổng chi phí của
MINC sẽ nhỏ hơn TCO và EDF . Trong Hình 2.10 khi ngưỡng càng nhỏ thì cả
hai thuật toán MINC và TCO đều có tổng thời gian hoàn thành các yêu cầu
cao vì khi các tài nguyên có chi phí thấp nên tốc độ của nó sẽ thấp, điều này
55
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
dẫn đến tổng thời gian thực hiện cao lên.
Hình 2.10: So sánh tổng thời gian thực hiện của 3 thuật toán khi thay đổi ρ
2.5. Tiểu kết Chương 2
Chương này tổng quát lại các mô hình lập lịch trước đây bao gồm mô hình của
các máy tham gia, mô hình các công việc và mô tả các mục tiêu của bài toán lập lịch.
Các nghiên cứu trước đây chủ yếu xây dựng mô hình để lập lịch tĩnh vì trước khi lập
lịch bộ lập lịch phải biết trước các thông tin về các máy tham gia cũng như các công
việc. Mô hình ứng dụng trên TTĐM rất đa dạng và phong phú, chương này tập trung
mô tả và xây dựng mô hình cho bài toán lập lịch thời gian thực trong các ứng dụng
song song. Từ mô hình được xây dựng, luận án đưa ra 3 thuật toán để giải quyết 2
bài toán:
1. Bài toán lập lịch trên các hệ thống thời gian thực theo hướng tối ưu về thời
gian. Bài toán này được giải quyết trên hai thuật toán CTO và MINC. Cả hai
thuật toán này đều tìm kiếm và phân bổ tài nguyên cho các yêu cầu thời gian
thực trong các ứng dụng song song. Thuật toán CTO được xây dựng dựa trên
việc sắp xếp giảm dần theo tốc độ, phân nhóm và kết hợp với xử lý song song
để giảm thời gian thực hiện của thuật toán. Thuật toán CTO tìm kiếm và xác
định số lượng tài nguyên cần dùng cho mỗi yêu cầu, thuật toán này luôn đảm
bảo các yêu cầu hoàn thành trước thời hạn. Để tiết kiệm chi phí cho nhà cung
cấp, thuật toán MINC tận dụng khoảng thời gian còn hiệu lực của yêu cầu này
sử dụng cho yêu cầu khác nhằm đem lại chi phí thấp nhất cho hệ thống. Thông
56
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
qua việc phân tích, mô phỏng và đánh giá kết quả mô phỏng của các thuật toán
cho thấy thuật toán CTO và MINC tối ưu về thời gian hơn thuật toán tham
lam EDF .
2. Bài toán lập lịch trên các hệ thống thời gian thực theo hướng tối ưu về chi phí.
Bài toán này được giải quyết bởi thuật toán TCO và áp dụng lại thuật toán
MINC để tối ưu về chi phí. Giống như thuật toán CTO, thuật toán TCO kết
hợp với xử lý song song để tìm kiếm và định vị tài nguyên cho các yêu cầu thời
gian thực trên các hệ thống song song. Thuật toán CTO sắp xếp các tài nguyên
theo thứ tự tăng dần theo chi phí và tiến hành phân nhóm theo thời gian và chi
phí để đảm bảo các tài nguyên đầu tiên của mỗi nhóm sẽ có tốc độ cao và chi
phí thấp. Thuật toán tập trung ánh xạ các yêu cầu vào các tài nguyên đầu tiên
của mỗi nhóm và sử dụng lại thuật toán MINC nhằm đem lại chi phí thấp nhất
cho hệ thống và luôn đảm bảo thời hạn cho các yêu cầu. Thuật toán TCO được
mô phỏng và so sánh với thuật toán EDF . Kết quả mô phỏng cho thấy thuật
toán TCO tối ưu về chi phí hơn so với thuật toán EDF còn thuật toán EDF
tận dụng được tối đa hiệu năng của hệ thống.
57
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
CHƯƠNG 3.
LẬP LỊCH CÔNG VIỆC THEO HƯỚNG TỐI ƯU
ĐA MỤC TIÊU TRONG TÍNH TOÁN ĐÁM MÂY
3.1. Mô hình lập lịch theo hướng tối ưu đa mục tiêu
Trong TTĐM, các tác nhân chính tham gia vào hệ thống lập lịch bao gồm [13],
[79]: người dùng, nhà cung cấp SaaS, PaaS và IaaS. Mỗi tác nhân đều có yêu cầu dịch
vụ hoặc cung cấp dịch vụ với các mục tiêu khác nhau:
• Nhà cung cấp SaaS: mục tiêu của các nhà cung cấp SaaS là đem lại lợi ích
lớn nhất cho mình bằng cách thuê các tài nguyên có giá rẻ từ nhà cung cấp IaaS
và làm sao để mở rộng thị trường tiêu thụ dịch vụ.
Để thu hút nhiều khách hàng thì nhà cung cấp phải nâng cao uy tín của
mình trên thị trường bằng cách chấp nhận nhiều yêu cầu và phải thỏa mãn các
ràng buộc QoS của các khách hàng [21].
Để tối đa hóa lợi nhuận, các nhà cung cấp SaaS cần phải đáp ứng một số
lượng lớn các yêu cầu người dùng đồng thời phải giảm thiểu chi phí của nó. Vì
vậy, các nhà cung cấp SaaS phải thuê và tìm kiếm dịch vụ trên nhiều máy ảo.
Tuy nhiên, hiện nay các nhà cung cấp IaaS chỉ cho thuê một số lượng cố định
các máy ảo, ví dụ Amazon và GoGrid chỉ cho thuê tối đa 200 máy ảo. Nếu nhà
cung cấp SaaS chỉ thuê một nhà cung cấp IaaS thì sẽ khó đáp ứng được một số
lượng lớn các yêu cầu người dùng. Vì vậy, tại một thời điểm nhà cung cấp SaaS
phải thuê và tìm kiếm dịch vụ trên nhiều nhà cung cấp IaaS để đáp ứng một số
lượng lớn các yêu cầu người dùng.
• Nhà cung cấp PaaS: để đáp ứng mục tiêu của nhà cung cấp SaaS, nhà cung
cấp PaaS sử dụng thành phần kiểm soát đầu vào và thành phần lập lịch để tận
dụng tài nguyên một cách hiệu quả nhằm giải quyết các yêu cầu khác nhau của
người dùng trên các tài nguyên không đồng nhất của nhiều nhà cung cấp IaaS.
• Người dùng: tùy theo lớp bài toán mà mục tiêu của người dùng sẽ khác nhau.
Mục tiêu của người dùng có thể là tối ưu thời gian hoặc tối ưu chi phí. Nhưng
tất cả mục tiêu này đều phải thỏa mãn ràng buộc QoS của người dùng.
58
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Người dùng gửi các yêu cầu sử dụng dịch vụ kèm theo yêu cầu QoS của họ lên
nhà cung cấp SaaS. Tại đây, nhà cung cấp PaaS sử dụng thành phần kiểm soát đầu
vào để phân tích các tham số QoS và dựa vào khả năng, tính sẵn sàng và giá của các
máy ảo khác nhau của nhà cung cấp IaaS để quyết định chấp nhận hoặc từ chối các
yêu cầu của người dùng. Nếu yêu cầu được chấp nhận thì thành phần lập lịch chịu
trách nhiệm để định vị các tài nguyên cho các yêu cầu của người dùng như mô hình
trình bày ở Hình 3.1.
Hình 3.1: Mô hình tổng quát của các thành phần trong TTĐM.
Mô hình tổng quát này bao gồm 4 mô hình thành phần: mô hình người dùng, nhà
cung cấp SaaS, IaaS và PaaS. Dựa trên mô hình người dùng, nhà cung cấp SaaS và
IaaS đã nghiên cứu trên TTĐM, chúng tôi xây dựng lại cho phù hợp với bài toán lập
lịch. Từ đó, luận án này tập trung vào xây dựng mô hình cho nhà cung cấp PaaS, sử
dụng lại mô hình tối ưu về chi phí ở phần 2.3 và tiến hành xây dựng các bài toán lập
lịch trên mô hình đã đề xuất.
3.1.1. Mô hình người dùng
Nhóm nghiên cứu của R. Buyya [79] nghiên cứu mô hình của người dùng. Các
nghiên cứu này phân tích các chiến lược như chiến lược đợi, chiến lược chèn thêm hoặc
chiến lược khởi tạo máy ảo. Đối với mỗi yêu cầu của người dùng, các chiến lược này
xem xét nên đợi các máy ảo thực hiện xong rồi mới thực hiện tiếp yêu cầu hoặc tìm
kiếm thêm các máy ảo hoặc khởi tạo mới một máy ảo để thực hiện. Sau khi phân tích
59
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
ba chiến lược trên mới ra quyết định chọn chiến lược nào để tìm ra máy ảo thích hợp
cho người dùng. Từ đó chấp nhận hoặc từ chối yêu cầu của người dùng. Trong mô
hình này, chúng tôi sử dụng lại chiến lược khởi tạo máy ảo và sử dụng các heuristic
về bầy đàn để lập lịch theo hướng hiệu năng về kinh tế. Do đó, đối với mỗi yêu cầu
cần phải xác định xem yêu cầu đó đến ở thời điểm nào, đến thời điểm nào là hết hạn
thực hiện, ngân sách tối đa của mỗi yêu cầu là bao nhiêu, v.v.
Chúng tôi xét trên N yêu cầu dịch vụ, được biểu diễn bởi tập T = {t1, t2, . . . , tN},mỗi yêu cầu ti ∈ T là một bộ 7 < ai, di, bi, αi, wi, ini, outi >, các yêu cầu này được gửi
lên nhà cung cấp SaaS bao gồm các thuộc tính và các ràng buộc QoS như sau:
• ai: thời điểm đến của yêu cầu.
• Thời hạn di (deadline): thời gian lớn nhất người dùng cần để đợi kết quả.
• Ngân sách bi (budget): chi phí lớn nhất người dùng sẽ trả cho nhà cung cấp.
• Tỉ lệ lãi suất phạt αi: một tỷ lệ bồi thường cho người dùng nếu nhà cung cấp
SaaS không cung cấp đúng thời hạn.
• Khối lượng wi: số MI (triệu chỉ thị) để thực hiện yêu cầu.
• Kích cỡ file đầu vào và đầu ra của yêu cầu: ini và outi.
3.1.2. Mô hình nhà cung cấp IaaS
Trên mô hình này, chúng tôi xem xét trên Y nhà cung cấp tài nguyên IaaS, được
biểu diễn bởi tập X = {1, 2, .., Y }. Mỗi nhà cung cấp x ∈ X cung cấp Mx máy ảo
cho các nhà cung cấp SaaS, được biểu diễn bởi tập VMx = {vm1x, vm2x, . . . , vmMxx}.Theo mô hình IaaS của R. Buyya [79], mỗi máy ảo vmjx ∈ VMx là một bộ 5 <
tjx, pjx, sjx, dtpjx, dtsjx >, trong đó:
• Thời gian khởi tạo tjx: thời gian cần thiết để triển khai một máy ảo.
• Giá pjx: giá tính theo giờ mà nhà cung cấp SaaS phải trả cho nhà cung cấp IaaS
khi sử dụng máy ảo.
• sjx: tốc độ xử lý của máy ảo tính theo MIPS (triệu chỉ thị trên giây)
• dtpjx: giá tính theo dung lượng truyền của nhà cung cấp SaaS phải trả để chuyển
dữ liệu từ nhà cung cấp tài nguyên đến máy người dùng.
• dtsjx: tốc độ chuyển dữ liệu, phụ thuộc vào khoảng cách và hiệu năng mạng.
60
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
3.1.3. Mô hình nhà cung cấp SaaS
Nhà cung cấp SaaS thuê các tài nguyên từ các nhà cung cấp IaaS và nó cho thuê
phần mềm như là các dịch vụ cho người dùng [79]. Nhà cung cấp SaaS sử dụng thành
phần kiểm soát đầu vào và lập lịch của nhà cung cấp PaaS để ra quyết định chấp
nhận hoặc từ chối yêu cầu, sau đó tìm kiếm các tài nguyên hợp lý cho yêu cầu người
dùng. Mục tiêu của các nhà cung cấp SaaS là làm sao để giảm thiểu chi phí sử dụng
tài nguyên từ các nhà cung cấp IaaS để đem lại lợi nhuận cao nhất cho mình.
3.1.4. Mô hình nhà cung cấp PaaS
Luận án nghiên cứu trên các nhà cung cấp IaaS độc lập và tài nguyên trong các
nhà cung cấp có thể thực hiện song song. Các nhà cung cấp này được ký hiệu là R.
Chúng tôi lập lịch cho N yêu cầu độc lập không theo thứ tự ưu tiên (non-preemptive)
trên Y nhà cung cấp, các ràng buộc của yêu cầu được ký hiệu là npmtn. Mục đích
của chúng tôi là lập lịch cho các yêu cầu người dùng trên tập tài nguyên của các nhà
cung cấp IaaS theo hướng tối ưu về chi phí và tối ưu về thời gian nghĩa là phải tìm
ra Cmin và Tmin. Lịch trình đưa ra phải đáp ứng được mục tiêu của người dùng và
nhà cung cấp. Vì vậy mô hình nhà cung cấp PaaS của chúng tôi đề xuất là bộ ba
< R, npmtn,Cmin > và < R, npmtn, Tmin >.
Gọi Cijx là chi phí để xử lý yêu cầu ti ∈ T trên máy ảo vmjx ∈ VMx. Theo mô
hình của người dùng và mô hình của nhà cung cấp IaaS, khi đó chi phí Cijx bao gồm
các loại chi phí sau:
• Chi phí xử lý yêu cầu (CPijx) phụ thuộc vào giá (pjx), tốc độ (sjx) trên máy ảo
vmjx ∈ VMx và khối lượng xử lý của yêu cầu (wi). CPijx được tính như sau:
CPijx = pjx ×wisjx
(3.1)
• Chi phí truyền tải dữ liệu (CTDijx) bao gồm chi phí gửi dữ liệu lên và lấy dữ liệu
về từ nhà cung cấp tài nguyên. CTDijx phụ thuộc vào kích cỡ file đầu vào (ini)
và kích cỡ file đầu ra (outi) của yêu cầu ti ∈ T , tốc độ chuyển dữ liệu (dtsjx) và
giá để chuyển dữ liệu (dtpjx) từ máy ảo vmjx ∈ VMx đến máy yêu cầu dịch vụ.
CTDijx được tính như sau:
CTDijx = dtpjx ×ini + outidtsjx
(3.2)
• Chi phí khởi tạo máy ảo (CIijx) phụ thuộc vào thời gian khởi tạo (tijx), giá (pijx)
của yêu cầu ti ∈ T trên máy ảo vmjx ∈ VMx và được tính:
CIijx = tijx × pijx (3.3)
61
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
• Chi phí nhà cung cấp SaaS phải trả lại cho người dùng nếu không cung cấp yêu
cầu đúng thời hạn (CRijx), phụ thuộc vào tỉ lệ lãi suất phạt (αi) và khoảng thời
gian vượt thời hạn βijx. CRijx được tính như sau:
CRijx = αi × βijx (3.4)
Gọi Tijx là thời gian để xử lý yêu cầu ti ∈ T trên máy ảo vmjx ∈ VMx. Tijx bao
gồm các loại thời gian:
Tijx = CTijx +DTijx + TIijx + βijx (3.5)
Trong đó:
• CTijx: thời gian để xử lý yêu cầu phụ thuộc vào khối lượng (wi) của yêu cầu ti,
tốc độ sjx của máy ảo vmjx và được tính như sau:
CTijx =wisjx
(3.6)
• DTijx: thời gian để chuyển tải dữ liệu bao gồm thời gian gửi dữ liệu lên và lấy
dữ liệu về từ nhà cung cấp tài nguyên. DTijx phụ thuộc vào kích cỡ file đầu vào
(ini) và kích cỡ file đầu ra (outi) của yêu cầu ti, tốc độ chuyển dữ liệu dtsjx của
máy ảo vmjx và được tính như sau:
DTijx =ini + outidtsjx
(3.7)
• TIijx: thời gian khởi tạo máy ảo đã có.
• βijx: thời gian vượt thời hạn của yêu cầu ti trên máy ảo vmjx.
Mục tiêu của các nhà cung cấp SaaS là đem lại lợi nhuận cao nhất, do đó ta phải
tìm chi phí nhỏ nhất cho tất cả các yêu cầu. Đối với mỗi yêu cầu, chúng ta phải tìm
ra máy ảo trong các nhà cung cấp để thực hiện với chi phí thấp nhất. Vì vậy, hàm
mục tiêu cho yêu cầu ti ∈ T được biểu diễn như sau:
fcost(ti) = minx=1..Y, j=1..Mx
{Cijx} (3.8)
và mục tiêu của nhà cung cấp SaaS là tìm cực đại của tổng lợi nhuận:
N∑i=1
(bi − fcost(ti))→ max (3.9)
Để đạt được mục tiêu của nhà cung cấp SaaS như công thức (3.9) thì phải thỏa
mãn ràng buộc của người dùng và nhà cung cấp như sau:
62
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
• Chi phí của yêu cầu ti ∈ T phải thỏa mãn ngân sách của nó tức là:
Cijx < bi (3.10)
• Thời gian xử lý yêu cầu ti ∈ T phải thỏa mãn ràng buộc:
Tijx ≤ di + βijx (3.11)
Mục tiêu đặt ra của người dùng là thời gian hoàn thành của các yêu cầu là nhỏ
nhất. Đối với mỗi yêu cầu, chúng ta phải tìm ra máy ảo có thời gian hoàn thành công
việc nhanh nhất. Vì vậy, hàm mục tiêu cho yêu cầu ti ∈ T được biểu diễn như sau:
ftime(ti) = minx=1..Y, j=1..Mx
{Tijx} (3.12)
và mục tiêu của người dùng là tìm cực tiểu tổng thời gian thực hiện:
N∑i=1
(ftime(ti))→ min (3.13)
Giống như mục tiêu của nhà cung cấp SaaS, để đạt được mục tiêu đề ra của người
dùng như công thức (3.13) thì phải thỏa mãn các điều kiện của người dùng và nhà
cung cấp như ràng buộc (3.10) và (3.11).
3.2. Xây dựng bài toán theo hướng tối ưu đa mục tiêu
Trong môi trường TTĐM, mô hình ứng dụng đa dạng hơn rất nhiều so với các mô
hình tính toán truyền thống. Vì vậy, các nhà nghiên cứu thường nghiên cứu những mô
hình cụ thể nhằm đáp ứng nhu cầu cho những dạng bài toán cụ thể của người dùng.
Trong phần này, chúng tôi dựa trên 3 mô hình: mô hình người dùng, mô hình nhà
cung cấp PaaS và mô hình nhà cung cấp IaaS như trình bày ở phần 3.1 để xây dựng
bài toán lập lịch theo hướng tối ưu đa mục tiêu. Bài toán được xây dựng nhằm thỏa
mãn mục tiêu của người dùng và nhà cung cấp SaaS như sau:
• Đối với nhà cung cấp SaaS: sử dụng nhà cung cấp PaaS để phân tích các tham
số của người dùng và các tham số của nhà cung cấp IaaS nhằm đem lại lợi ích
cho nhà cung cấp SaaS như công thức (3.9) và thỏa mãn ràng buộc (3.10) và
(3.11)
• Đối với người dùng: tối ưu thời gian thực hiện cho các yêu cầu như công thức
(3.13) và thỏa mãn ràng buộc (3.10), (3.11 ).
63
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Như phân tích ở phần 1.3.4, thời gian đưa ra một lịch trình tối ưu cho bài toán lập
lịch công việc trên TTĐM là rất lớn. Do đó, trong phần này chúng tôi nghiên cứu các
phương pháp heuristic ACO [22], [49] và PSO [35], [77], [36], [85], [27] để xây dựng
bài toán nhằm đưa ra một lịch trình gần tối ưu nhưng vẫn thỏa mãn mục tiêu của
người dùng và nhà cung cấp SaaS.
3.2.1. Tối ưu hóa đàn kiến (ACO)
Thuật toán ACO dựa trên hành vi của đàn kiến trong tự nhiên được Marco Dorigo
giới thiệu vào năm 1996. Đến năm 2002, Thomas Stutzle and Marco Dorigo [73], [22]
đã chứng minh tính hội tụ của thuật toán ACO. Các nghiên cứu gần đây đã sử dụng
thuật toán ACO để giải các bài toán có độ phức tạp lớn như bài toán TSP [30], bài
toán lập lịch các yêu cầu người dùng theo hướng hiệu năng về hệ thống trên tính toán
lưới và TTĐM [41], [5], v.v..
ACO là một thuật toán sử dụng heuristic và là giải pháp cho các bài toán tối ưu
tổ hợp. ACO mô phỏng hành vi của đàn kiến trong tự nhiên nhằm tìm kiếm đường
đi ngắn nhất giữa tổ kiến và nguồn thức ăn dựa trên mật độ mùi mà các con kiến để
lại trên đường đi. Khi một con kiến tìm kiếm thức ăn, nó sẽ để lại một số lượng mùi
trên đường đi. Nếu một con kiến khác cố gắng để di chuyển từ nơi này sang nơi khác,
nó sẽ gặp một dấu vết trước đó đã đặt, kiến có thể phát hiện các dấu vết mùi và nó
quyết định chọn đường có mật độ mùi cao để đi. Sau khi đi qua con kiến này cũng để
lại mùi trên đường và mùi này sẽ giảm dần theo thời gian. Do đó, mùi trên con đường
ngắn hơn sẽ được tăng lên một cách nhanh chóng. Số lượng mùi trên mỗi con đường
sẽ ảnh hưởng đến khả năng con kiến khác để lựa chọn đường đi. Cuối cùng, tất cả
những con kiến sẽ chọn con đường ngắn nhất. Thuật toán ACO bao gồm 5 bước như
thể hiện ở Hình 3.2 [22].
• Bước 1: khởi tạo các điều kiện ban đầu như số lượng kiến, giá trị mùi ban đầu,
giá trị bay hơi cũng như các tham số đầu vào của mỗi thuật toán.
• Bước 2: xây dựng phương án. Mỗi con kiến dựa vào mùi hiện tại, thông tin
heuristic và xác suất để chọn nguồn thức ăn phù hợp nhằm xây dựng phương án
tối ưu riêng cho mình.
• Bước 3: cập nhật lại mùi; sau khi tìm ra phương án của mình mỗi con kiến cập
nhật lại mùi trên đường đi để lôi cuốn các con kiến khác.
• Bước 4: kiểm tra điều kiện dừng; điều kiện dừng phụ thuộc từng loại bài toán,
mỗi bài toán có điều kiện dừng riêng của nó.
64
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
• Bước 5: tìm ra phương án tốt nhất; kết thúc vòng lặp, mỗi con kiến có thể có
phương án tối ưu riêng. Bước này tìm ra phương án tối ưu nhất trong các phương
án tối ưu của mỗi con kiến.
Hình 3.2: Mô hình tổng quát của thuật toán ACO
ACO là khung thuật toán chung để giải quyết các bài toán tối ưu tổ hợp. Vì vậy,
để áp dụng ACO vào bài toán cụ thể cần phải xây dựng các thông tin [73], [22]: hàm
cực tiểu F , thông tin heuristic η, cập nhật lại mùi và xác suất P . Luận án xây dựng
các công thức để xác định các thông tin này dựa trên mô hình của người dùng và mô
hình của các nhà cung cấp IaaS, SaaS và PaaS đã xây dựng ở phần 3.1.
• Hàm cực tiểu F và thông tin heuristic η với mục tiêu tối ưu về chi phí.
Hàm cực tiểu F của yêu cầu ti ∈ T được sử dụng để tìm ra máy ảo nào của
nhà cung cấp x ∈ X có chi phí thấp nhất và được xác định như sau:
F (ti) = minx=1..Y, j=1..Mx
{Cijx} (3.14)
Thông tin heuristic để yêu cầu ti ∈ T chọn máy ảo vmjx ∈ VMx:
ηijx =1
Cijx(3.15)
65
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Trong đó: Cijx chi phí thực hiện của yêu cầu ti trên máy ảo vmjx được tính
ở công thức (3.1), (3.2), (3.3) và (3.4).
Sử dụng ηijx để tìm ra máy ảo vmjx ∈ VMx có độ ưu tiên cao nhất vì khi
chi phí Cijx càng nhỏ thì thông tin heuristic càng cao nên xác suất để yêu cầu
ti chọn máy ảo vmjx càng lớn.
• Hàm cực tiểu F và heuristic ηi với mục tiêu tối ưu về thời gian.
Hàm cực tiểu F của yêu cầu ti ∈ T được sử dụng để tìm ra máy ảo vmjx ∈VMx có thời gian thực hiện nhanh nhất, được xác định như sau:
F (ti) = minx=1..Y, j=1..Mx
{Tijx} (3.16)
Thông tin heuristic để yêu cầu ti ∈ T chọn máy ảo vmjx ∈ VMx:
ηijx =1
Tijx(3.17)
Trong đó: Tijx là thời gian thực hiện của yêu cầu ti trên máy ảo vmjx được
tính như công thức (3.5).
Khi tốc độ thực hiện của máy ảo vmjx càng lớn thì thời gian thực hiện Tijx
càng thấp. Khi đó, thông tin heuristic càng cao nên xác suất để yêu cầu ti chọn
máy ảo vmjx càng lớn.
• Cập nhật lại mùi.
Mỗi con kiến bắt đầu ngẫu nhiên từ một nhà cung cấp tài nguyên IaaS. Tại
mỗi bước lặp, sau khi đã tìm được máy ảo phù hợp, các con kiến tính hàm cực
tiểu F như công thức (3.14), (3.16) và cập nhật lại mùi (pheromone). Mùi để
lại sẽ bằng mùi mới cộng thêm mùi cũ sau khi đã trừ đi mùi đã bị bay hơi [57],
công thức cập nhật lại mùi được xác định như sau [22]:
τijx = (1− ρ)τijx + ∆τijx (3.18)
Trong đó:
– τijx: là mật độ mùi của yêu cầu ti ∈ T trên máy ảo vmjx ∈ VMx.
– ρ: là giá trị bay hơi được xác định trong nửa khoảng (0,1]
– ∆τijx = 1−ρF (ti)
: là giá trị được thêm vào mật độ mùi, F (ti) là hàm cực tiểu
của yêu cầu ti, khi F (ti) càng nhỏ thì mật độ mùi để lại càng cao.
• Tính xác suất.
66
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Đứng trước nhiều đường đi, các con kiến dựa vào mùi hiện tại và thông tin
heuristic để tính xác suất. Từ đó, quyết định sẽ đi đường nào là hợp lý. Các
thuật toán kiểm soát đầu vào và lập lịch được duy trì hai tập yêu cầu. Một tập
các yêu cầu đang xử lý và tập khác đi đến và chưa được xử lý. Thuật toán được
bắt đầu một cách tự động khi tập các yêu cầu đã xử lý xong và đã chuyển vào
thành phần lập lịch. Yêu cầu đầu tiên được thực hiện và nó chọn máy ảo một
cách ngẫu nhiên. Các yêu cầu tiếp theo (ti) thực hiện và nó chọn máy ảo tiếp
theo (vmj) với xác suất [41]:
Pij =τijηij∑Mj=1 τijηij
(3.19)
Trong đó:
– Pij là xác suất để yêu cầu ti chọn máy ảo j.
– M là số máy ảo của một nhà cung cấp.
– ηij: thông tin heuristic để yêu cầu i chọn máy ảo j.
– τij: mật độ mùi để lại khi di chuyển.
M.Kousalya [41] đã tính xác suất để yêu cầu ti chọn máy ảo vmj như công
thức (3.19) nhưng nghiên cứu này chỉ xem xét trên một nhà cung cấp. Để mở
rộng tính toán, trong phần này chúng tôi xem xét trên nhiều nhà cung cấp, mỗi
nhà cung cấp dịch vụ cung cấp nhiều máy ảo, vì vậy xác suất để yêu cầu ti ∈ Tchọn máy ảo vmjx ∈ VMx được xây dựng lại như sau:
Pijx =τijxηijx∑Y
x=1
∑Mx
j=1 τijxηijx(3.20)
Trong đó:
– ηijx: thông tin heuristic để yêu cầu ti chọn máy ảo vmjx.
– τijx: mật độ mùi để lại khi di chuyển.
Với mục tiêu tối ưu về chi phí, chúng tôi áp dụng công thức (3.14), (3.18)
và (3.15) để tính hàm cực tiểu, cập nhật lại mùi và thông tin heuristic. Khi đó,
xác suất để yêu cầu ti ∈ T chọn máy ảo vmjx ∈ VMx được tính như sau:
Pijx =
((1− ρ)τijx + 1−ρ
F (ti)
)1
Cijx∑Yx=1
∑Mx
j=1
((1− ρ)τijx + 1−ρ
F (ti)
)1
Cijx
(3.21)
Với mục tiêu tối ưu về thời gian, chúng tôi áp dụng công thức (3.16), (3.18)
và (3.17) để tính hàm cực tiểu, cập nhật lại mùi và tính thông tin heuristic. Khi
67
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
đó, xác suất để yêu cầu ti ∈ T chọn máy ảo vmjx ∈ VMx được tính như sau:
Pijx =
((1− ρ)τijx + 1−ρ
F (ti)
)1
Tijx∑Yx=1
∑Mx
j=1
((1− ρ)τijx + 1−ρ
F (ti)
)1
Tijx
(3.22)
Như vậy, sau khi áp dụng các mô hình của người dùng, nhà cung cấp IaaS, SaaS
và PaaS được xây dựng ở phần 3.1. Luận án đã xây dựng được bài toán lập lịch theo
mục tiêu của người dùng và của nhà cung cấp SaaS. Về thuật toán để đưa ra lịch trình
tối ưu chúng tôi sẽ trình bày chi tiết ở phần 3.3.
3.2.2. Tối ưu hóa bầy đàn (PSO)
Thuật toán PSO dựa trên kinh nghiệm của bầy đàn được đề xuất bởi Eberhart
và Kennedy [35], [6]. Nó là một thuật toán thông minh dựa trên bầy đàn, mô phỏng
lại hành vi xã hội của bầy chim hay đàn cá khi đi tìm kiếm nguồn thức ăn. Ví dụ một
đàn chim đi tìm thức ăn trong không gian tìm kiếm ba chiều của nó. Ban đầu cả bầy
xuất phát ngẫu nhiên theo một hướng nào đó, sau một khoảng thời gian một số cá
thể của đàn tìm kiếm được nơi chứa thức ăn. Tùy theo số lượng thức ăn tìm được, cá
thể này truyền tín hiệu đến các cá thể khác đang tìm kiếm thức ăn ở vùng lân cận,
sau đó tín hiệu này sẽ lan truyền đến toàn bộ các cá thể trong đàn.
Một cá thể (particle) được thể hiện trong PSO tương tự như một con chim hoặc
một con cá tìm kiếm thức ăn trong không gian tìm kiếm của nó. Sự di chuyển của mỗi
cá thể là sự kết hợp giữa vận tốc và hướng di chuyển. Vị trí của mỗi cá thể tại bất kỳ
thời điểm nào cũng bị ảnh hưởng bởi vị trí tốt nhất của nó và vị trí tốt nhất của cả
bầy đàn. Hiệu quả đạt được của một cá thể được xác định bởi một giá trị thích nghi,
giá trị này được xác định phụ thuộc vào từng bài toán.
PSO tương tự như giải thuật di truyền [38] nhưng PSO không có giai đoạn lai
ghép giữa các cá thể trong quần thể. Trong PSO, quần thể bao gồm các cá thể trong
không gian của bài toán. Các cá thể được khởi tạo một cách ngẫu nhiên. Mỗi cá thể
sẽ có một giá trị thích nghi, giá trị này được xác định bởi một hàm thích nghi để tối
ưu trong mỗi thế hệ. Trong mỗi thế hệ, mỗi cá thể thay đổi vận tốc và thay đổi vị
trí của nó theo thời gian như công thức (3.23) [6]. Dựa vào giá trị thích nghi, mỗi cá
thể tìm ra giải pháp tối ưu cục bộ Pbest trong không gian tìm kiếm D chiều. Sau đó,
Pbest được so sánh với giải pháp tối ưu toàn cục Gbest của cả bầy đàn để cập nhật
lại giá trị cho Gbest. Dựa vào Gbest để tìm ra giải pháp tối ưu nhất. PSO được minh
họa như Hình 3.3.
Mỗi cá thể dựa vào vận tốc hiện tại và khoảng cách từ Pbest đến Gbest để thay
68
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
đổi vị trí và điều chỉnh tốc độ của nó như sau [6]:
vj+1x = vjx + c1z1(Pbestx − posjx) + c2z2(Gbest− posjx) (3.23)
posj+1x = posjx + vj+1
x (3.24)
Trong đó:
• posjx: vị trí hiện tại của cá thể thứ x tại chiều j; c1,c2: hệ số gia tốc.
• z1,z2: là số ngẫu nhiên giữa 0 và 1; vjx: vận tốc của cá thể x tại chiều j.
• Pbestx và Gbest: vị trí cục bộ và toàn cục tốt nhất của cá thể x và cả bầy đàn.
Hình 3.3: Minh họa PSO
Thành phần thứ nhất của công thức (3.23) đại diện cho vận tốc trước đó. Thành
phần thứ 2 nhằm hướng cho các cá thể di chuyển đến vị trí cục bộ tốt nhất của nó.
Thành phần thứ 3 được xem là thành phần “xã hội” của các cá thể trong quá trình
tìm kiếm lời giải tối ưu toàn cục, chính thành phần này sẽ lôi kéo các cá thể hướng
đến giá trị tối ưu toàn cục [6].
Gọi Y là số cá thể trong quần thể và F (posx) là hàm thích nghi của cá thể
x (x = 1..Y ). Thuật toán PSO được mô tả như Hình 3.4 [6], trong đó:.
• Khởi tạo các cá thể trong quần thể bao gồm:
– Vị trí của các cá thể x (x = 1..Y ) tại mỗi chiều trong không gian tìm kiếm
được khởi tạo là số ngẫu nhiên trong khoảng [−posmax, posmax] [6].
– Vận tốc của mỗi cá thể x tại mỗi chiều trong không gian tìm kiếm được khởi
tạo là số ngẫu nhiên trong khoảng [−vmax, vmax]. Trong đó, vmax = k×xmaxvới 0.1 ≤ k ≤ 1.0 [17].
69
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Hình 3.4: Thuật toán PSO
– Vị trí cục bộ tốt nhất Pbest của cá thể x: Pbestx = posx
• Tính giá trị thích nghi cho cá thể x: giá trị này được tính thông qua hàm thích
nghi F (posx). Hàm F (posx) được xây dựng tùy theo mục tiêu của từng bài toán.
• Tính tốc độ và cập nhật lại vị trí cho mỗi cá thể: sau khi tất cả các cá thể tìm
được vị trí Pbest và cập nhật lại Gbest, các cá thể tiến hành cập nhật lại vận
tốc và vị trí như công thức (3.23) và (3.24). Tuy nhiên, để tăng tốc độ hội tụ của
thuật toán, R. Eberhart and Y. Shi [23] đã cải tiến thuật toán PSO bằng cách
70
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
đưa vào hệ số quán tính ω để cân đối việc tìm kiếm toàn cục và cục bộ của các
cá thể. Tham số này đưa vào để giảm số lần lặp nhằm tìm ra lời giải tối ưu. R.
Eberhart and Y. Shi [23] đề xuất khởi tạo ω=0.9 và giá trị này giảm dần tuyến
tính xuống 0.4 trong quá trình tìm kiếm.
Để đảm bảo tính hội tụ của thuật toán, M.Clerc [16] đưa thêm hệ số hội tụ
K vào để cập nhật lại vận tốc cho các cá thể. Công thức cập nhật lại vận tốc
được xây dựng lại như sau:
vj+1x = K(ωvjx + c1z1(Pbestx − posjx) + c2z2(Gbest− posjx)) (3.25)
Trong đó: K = 2∣∣∣2−ϕ−√ϕ2−4ϕ∣∣∣ , ϕ = c1z1 + c2z2 với ϕ > 4.
Theo kết quả thực nghiệm của M.Clerc khi ϕ =4.1 và K=0.729 thì tốc độ hội
tụ của thuật PSO giảm xuống rất nhanh.
• Điều kiện dừng: phù thuộc vào từng bài toán.
Để áp dụng thuật toán PSO vào bài toán cụ thể chúng ta phải xác định được
vị trí, vận tốc, hàm thích nghi, vị trí tối ưu cục bộ của từng cá thể và vị trí tối ưu
toàn cục của cả bầy đàn [35],[6],[27]. Luận án xây dựng các công thức để xác định các
thông tin này dựa trên mô hình của người dùng, nhà cung cấp IaaS, SaaS và PaaS đã
xây dựng ở phần 3.1.
Chúng tôi xét quần thể gồm Y cá thể, mỗi cá thể x lặp N lần để tìm kiếm thức
ăn trong không gian Mx chiều. Như vậy, tại vòng lặp thứ i (i = 1..N) mỗi cá thể
x (x = 1..Y ) sẽ có Mx vị trí, Mx vận tốc và được biểu diễn:
POSix ={pos1ix, ..., posMx
ix
}(3.26)
Vix ={v1ix, ..., v
Mxix
}(3.27)
Trong đó:
• posjix là vị trí của cá thể x ở vòng lặp i tại chiều j (j = 1...Mx).
• vjix là vận tốc của các thể thứ x ở vòng lặp i tại chiều j (j = 1. . .Mx).
Trong mô hình ở phần 3.1, chúng tôi có N yêu cầu của người dùng và Y nhà cung
cấp IaaS, mỗi nhà cung cấp IaaS cung cấp nhiều máy ảo. Mỗi cá thể x(x = 1..Y )
tìm kiếm tài nguyên trên không gian Mx chiều để tìm tài nguyên hợp lý cho yêu cầu
ti ∈ T , mỗi cá thể tương ứng với mỗi nhà cung cấp và Mx chính số máy ảo của nhà
cung cấp. Giá trị của posjix chính là máy ảo vmjx ∈ VMx được ánh xạ vào yêu cầu
71
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
ti. Giá trị này được lấy ngẫu nhiên từ 1. . .Mx, và giá trị vjix được lấy ngẫu nhiên từ
−Mx. . .Mx, với Mx là số máy ảo trong mỗi nhà cung cấp x.
Để đạt được mục tiêu của nhà cung cấp SaaS như công thức (3.9 ) chúng ta phải
tìm chi phí nhỏ nhất của tất cả các yêu cầu. Chúng tôi xây dựng hàm thích nghi để
cá thể x chọn máy ảo vmjx ∈ VMx cho yêu cầu ti ∈ T như sau:
Fcost(posjix) =
1
Cijx(3.28)
Trong đó, Cijx và posjix là chi phí và vị trí của yêu cầu ti thực hiện trên vmjx.
Sau khi áp dụng các công thức (3.1), (3.2), (3.3) và (3.4) để tính chi phí Cijx, hàm
thích nghi được tính như sau:
Fcost(posjix) =
1
CPijx + CTDijx + CIijx + CRijx
(3.29)
Khi chi phí Cijx càng cao thì giá trị của hàm thích nghi càng thấp. Ngược lại, khi
chi phí Cijx càng thấp thì giá trị của hàm thích nghi càng cao nên xác suất để yêu cầu
ti chọn máy ảo vmjx càng lớn.
Để đạt được mục tiêu của người dùng là thời gian hoàn thành của các yêu cầu là
nhỏ nhất như công thức (3.13). Chúng tôi xây dựng hàm thích nghi để cá thể x chọn
máy ảo vmjx ∈ VMx cho yêu cầu ti ∈ T như sau:
Ftime(posjix) =
1
Tijx(3.30)
Trong đó, posjix và Tijx, là vị trí và thời gian để xử lý yêu cầu ti trên máy ảo vmjx.
Sau khi áp dụng các công thức (3.5), (3.6), (3.7) để tính thời gian Tijx, hàm thích
nghi theo mục tiêu tối ưu về thời gian được triển khai ra như sau:
Ftime(posjix) =
1
CTijx +DTijx + TIijx + βijx(3.31)
Tương tự như tối ưu về chi phí, khi Tijx càng cao thì giá trị của hàm thích nghi
càng thấp. Ngược lại, khi Tijx càng thấp thì giá trị của hàm thích nghi càng cao nên
xác suất để yêu cầu ti chọn máy ảo vmjx càng lớn.
Từ hàm thích nghi ở công thức (3.29), chúng tôi tiến hành xây dựng công thức để
tìm vị trí tối ưu cục bộ về chi phí của cá thể x tại chiều j + 1 cho yêu cầu ti như sau:
pbj+1ix =
pbj+1ix nếu Fcost(pos
j+1ix ) ≥ Fcost(pos
jix) và Cijx ≤ bi và Tijx ≤ di + βijx
pbjix ngược lại
(3.32)
72
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Trong đó, Cijx ≤ bi và Tijx ≤ di + βijx là các điều kiện ở ràng buộc (3.10) và
(3.11). Vị trí tối ưu cục bộ về chi phí tại vị trí j + 1 được cập nhật nếu giá trị của
hàm thích nghi về chi phí tại vị trí j+1 lớn hơn giá trị của hàm thích nghi tại vị trí
trước nó và thỏa mãn các ràng buộc về ngân sách và thời hạn, ngược lại nó vẫn giữ
lại giá trị của hàm thích nghi trước đó.
Với mục tiêu tối ưu về thời gian, áp dụng hàm thích nghi ở công thức (3.31) để
tiến hành xây dựng công thức để tìm vị trí tối ưu cục bộ về thời gian của cá thể x tại
chiều j + 1 cho yêu cầu ti như sau:
pbj+1ix =
pbj+1ix nếu Ftime(pos
j+1ix ) ≥ Ftime(pos
jix) và Cijx ≤ bi và Tijx ≤ di + βijx
pbjix ngược lại
(3.33)
Sau khi xác định được vị trí tối ưu cục bộ của từng các thể, chúng tôi tiến hành
xác định vị trí tối ưu cục bộ lớn nhất của các cá thể (Pbest) và vị trí tối ưu toàn cục
của cả đàn (Gbest) như sau:
• Sau khi mỗi cá thể x (x = 1..Y ) tìm kiếm tài nguyên cho yêu cầu ti ∈ T trên
không gian Mx chiều, mỗi cá thể tìm được vị trí tối ưu nhất (Pbestx) bằng cách
phân tích các vị trí tối ưu trên mỗi chiều và được xác định:
Pbestx = maxx=1..Y, j=1..Mx
{pbjix} (3.34)
• Vị trí tối ưu toàn cục của cả đàn (Gbest) phụ thuộc vào vị trí tối ưu cục bộ lớn
nhất của từng cá thể và được xác định như sau:
Gbest = maxx=1..Y
{Pbestx} (3.35)
Như vậy, sau khi áp dụng các mô hình của người dùng, nhà cung cấp IaaS, SaaS
và PaaS được xây dựng ở phần 3.1. Luận án đã áp dụng thuật toán PSO để xây dựng
được bài toán lập lịch theo mục tiêu của người dùng và của nhà cung cấp SaaS. Về
thuật toán để đưa ra lịch trình tối ưu chúng tôi sẽ trình bày chi tiết ở phần 3.4.
3.3. Thuật toán lập lịch tối ưu đa mục tiêu dựa trên ACO
3.3.1. Phát biểu bài toán
Người dùng gửi N yêu cầu dịch vụ, được biểu diễn bởi tập T = {t1, t2, . . . , tN}, mỗi
yêu cầu ti ∈ T là một bộ 7 < ai, di, bi, αi,wi, ini, outi > được gửi lên nhà cung cấp SaaS
bao gồm các thuộc tính và các ràng buộc QoS như thể hiện ở phần 3.1.1. Nhà cung
cấp SaaS thuê các tài nguyên từ Y nhà cung cấp IaaS. Mỗi nhà cung cấp x ∈ X cung
cấp Mx máy ảo, mỗi máy ảo vmjx ∈ VMx là một bộ 5 < tjx, pjx, sjx, dtpjx, dtsjx >
73
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
như thể hiện ở phần 3.1.2. Khi nhận được tập các yêu cầu của người dùng, nhà cung
cấp PaaS tiến hành tính toán chi phí và thời gian thực hiện như mô hình ở phần 3.1.4.
Từ đó, ra quyết định từ chối hay chấp nhận yêu cầu người dùng. Nếu yêu cầu nào
được chấp nhận thì bộ lập lịch sẽ ánh xạ vào tài nguyên hợp lý.
Việc chấp nhận hay từ chối yêu cầu phụ thuộc vào mục tiêu và các ràng buộc của
bài toán. Phần này tập trung xây dựng các thuật toán để giải quyết hai mục tiêu:
1. Kiểm soát đầu vào và lập lịch cho các yêu cầu người dùng để đem lại lợi ích cho
nhà cung cấp SaaS như công thức (3.9) nhưng phải thỏa mãn ràng buộc (3.10)
và (3.11).
2. Kiểm soát đầu vào và lập lịch cho các yêu cầu người dùng để tối ưu thời gian
thực hiện cho người dùng như công thức (3.13) nhưng phải thỏa mãn ràng buộc
(3.10) và (3.11).
3.3.2. Thuật toán lập lịch tối ưu đa mục tiêu về chi phí
Trong phần này chúng tôi xây dựng các thuật toán nhằm đem lại lợi ích lớn nhất
cho nhà cung cấp SaaS (mục tiêu 1) dựa trên bài toán được xây dựng ở phần 3.2.1.
Đầu tiên chúng tôi sử dụng heuristic ACO để xây dựng thuật toán ACACO, thuật
toán này vừa kiểm soát đầu vào để chấp nhận hay từ chối các yêu cầu người dùng, vừa
đưa lịch trình tối ưu về chi phí. Để áp dụng heuristic ACO vào bài toán lập lịch chúng
tôi sử dụng các công thức (3.14), (3.15), (3.18) và (3.21) để xác định thông tin hàm
cực tiểu F , thông tin heuristic ηi, cập nhật lại mùi và xác suất P . Sau đó, dựa vào
lịch trình được đưa ra ở thuật toán ACACO, chúng tôi xây dựng thuật toán Mprofit
nhằm tận dụng khoảng thời gian còn hiệu lực giữa các yêu cầu trong từng nhà cung
cấp IaaS. Mục tiêu của thuật toán Mprofit là đem lại lợi ích lớn nhất cho nhà cung
cấp SaaS như thể hiện ở công thức (2.10) và (2.11).
3.3.2.1. Thuật toán ACACO
Cứ mỗi yêu cầu của người dùng, chúng tôi sử dụng k con kiến để tìm kiếm
tài nguyên trên Y nhà cung cấp. Mỗi con kiến dựa vào thông tin heuristic và mùi
hiện tại về chi phí để tính xác suất. Từ đó, xác định phương án tối ưu riêng của
mình. Nếu tất cả các con kiến đều không có phương án thì yêu cầu của người
dùng sẽ bị từ chối, ngược lại tìm phương án tối ưu nhất từ các phương án của
mỗi con kiến. Các bước của thuật toán ACACO được mô tả ở Thuật toán 3.4.
74
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Thuật toán 3.4: ACACO
Đầu vào:
• T = {t1, t2, . . . , tN}, ∀ti ∈ T là một bộ 7 < ai, di, bi, αi,wi, ini, outi > ;
• X = {1, 2, ..., Y }. ∀x ∈ X, VMx = {vm1x, vm2x, . . . , vm(Mx)x}, ∀vmjx ∈ VMx là
một bộ 5 < tjx, pjx, sjx, dtpjx, dtsjx > ;
Đầu ra : Một lịch trình S = {ti → vmjx, ti ∈ T, vmjx ∈ VMx};Phương pháp:
1 S := ∅;2 foreach ti ∈ T do
3 si := Test(ti, X, V Mx);
4 if si = ∅ then5 Thông báo cho người dùng yêu cầu đã bị từ chối ;
6 else
7 S := S ∪ {si};
8 return S;
9 Function Test(ti ∈ T,X, VMx)
10 ST := ∅;11 foreach con kiến thứ l (l = 1..k) do
12 foreach nhà cung cấp x ∈ X do
13 Tính thông tin heuristic cho yêu cầu ti trên các máy ảo vmjx:
ηijx := 1CPijx+CTDijx+CIijx+CRijx
;
14 Tìm ra giá trị của mùi hiện tại: τijx;
15 Tính thời gian thực hiện của ti như công thức (3.5);
16 Cập nhật lại mùi như công thức (3.18): τijx := (1− ρ)τijx + 1−ρF (ti)
;
17 Tính xác suất để yêu cầu ti ánh xạ vào các máy ảo vmjx như công thức
(3.21): Pijx :=
((1−ρ)τijx+ 1−ρ
F (ti)
). 1ηijx∑Y
x=1
∑Mxj=1
((1−ρ)τijx+ 1−ρ
F (ti)
). 1ηijx
;
18 Dựa vào Pijx để tìm ra máy ảo vmjx có xác suất lớn nhất và thỏa mãn
các ràng buộc (3.10) và (3.11);
19 if tìm thấy vmjx then
20 ST := ST ∪ {ti → vmjx} ;
21 if ti /∈ ST then
22 return ∅;23 else
24 Tìm ra giải pháp tối ưu nhất si ∈ ST ; return si;
75
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
3.3.2.2. Thuật toán Mprofit
Thuật toán 3.5: Mprofit
Đầu vào: UST := S ;
Đầu ra : Một lịch trình tối ưu ST để ánh xạ các yêu cầu vào các máy ảo;
Phương pháp:
1 ST:= ∅ ;2 Sắp xếp các ánh xạ trong UST theo nhà cung cấp;
3 G := {g1, .., gY }, gx ∈ G là nhóm các ánh xạ trên nhà cung cấp x;
4 Tạo ra Y luồng chạy đồng thời TH := {th1, .., thY }, thx ∈ TH tìm kiếm tài
nguyên tương ứng trên nhóm gx ∈ G;
5 foreach thx ∈ TH do
6 PUSH(ti) ; /* ti là ánh xạ đầu tiên trong nhóm gx ∈ G */
7 ST := ST ∪ {ti}; gx := gx \ {ti};8 while gx 6= ∅ do9 ti := POP () ; /* Lấy ti từ ngăn xếp */
10 Tìm Ti :={tl|dl ≥ di và al < di và tl nằm cùng nhóm với ti
};
11 Tính tiljx của các yêu cầu trong Ti như công thức (2.11):
tiljx :=
min (D − Uiljx, dl − al) nếu al − ai ≥ wi
sijx
D − Uiljx nếu al − ai < wisijx
và dl − ai ≥ D
dl − (ai + Uil) nếu al − ai < wisijx
và dl − ai < D
;
12 Dựa vào max(tiljx) để tìm ra tl;
13 if tl thỏa mãn ràng buộc (3.11) then
14 Tính lại wl và cập nhật lại các trạng thái cho tl;
15 else
16 if |gx| > 0 then
17 tl := ti+1 ; /* ti+1 là ánh xạ chưa xét đến trong nhóm gx */
18 else
19 break ;
20 PUSH(tl); ST := ST ∪ {tl}; gx := gx \ {ti};
21 Dựa vào ST để đưa ra lịch trình ánh xạ các yêu cầu vào các tài nguyên;
Thuật toán ACACO đưa ra lịch trình S chứa các ánh xạ của các yêu cầu được
chấp nhận vào các máy ảo nhưng thuật toán này chưa tận dụng hết khoảng thời gian
còn hiệu lực giữa các yêu cầu. Phần này, xây dựng thuật toán Mprofit nhằm tối ưu
76
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
về chi phí và đem lại lợi ích cho nhà cung cấp SaaS. Đầu tiên, thuật toán Mprofit sử
dụng kỹ thuật xử lý song song [4] và mô hình kinh tế được xây dựng trong phần 2.3
để tạo ra các luồng (thread) chạy đồng thời, tìm ra tập các yêu cầu gối đầu lên nhau
và tính khoảng thời gian gối đầu như công thức (2.10) và (2.11). Sau đó, đưa ra lịch
trình tối ưu về chi phí.
Mỗi nhà cung cấp có thể chấp nhận được nhiều yêu cầu, thuật toán Mprofit tận
dụng khoảng thời gian còn hiệu lực trong vòng D phút được thuê của các yêu cầu
nằm trong cùng một nhà cung cấp để đem lại lợi nhuận cho nhà cung cấp SaaS. Các
bước của thuật toán Mprofit được mô tả ở Thuật toán 3.5. Đầu vào của thuật toán
là UST := S, trong đó S là lịch trình được tạo ra bởi thuật toán ACACO. Mỗi phần
tử trong S là một ánh xạ: ti → vmjx, do đó trong thuật toán này chúng tôi gọi ánh
xạ ti thay vì gọi yêu cầu ti.
3.3.2.3. Phân tích thuật toán ACACO và Mprofit
• Thomas Stutzle, Marco Dorigo [73] đã chứng minh tính hội tụ của thuật toán
ACO điều này đảm bảo tính hội tụ của thuật toán ACACO đề xuất.
• Trong môi trường TTĐM đã có sẵn các trung tâm dữ liệu, mỗi trung tâm dữ
liệu có sẵn các máy chủ, mỗi máy chủ tạo ra nhiều máy ảo. Vì vậy, tại thời điểm
lập lịch tập dữ liệu đầu vào X và VMx hoàn toàn được xác định.
• Sự hình thành của tập T sẽ giới hạn vì các yêu cầu được lập lịch theo lô và theo
một chu kỳ tức là ta sử dụng hai tập yêu cầu chưa lập lịch, cứ tập yêu cầu này
đang được lập lịch thì tập yêu cầu kia tiếp tục nhận yêu cầu chưa lập lịch và lưu
vào hàng đợi, khi tập yêu cầu này lập lịch xong thì hệ thống sẽ lập lịch cho tập
yêu cầu lưu ở hàng đợi và quá trình cứ lặp lại.
• Thuật toán ACACO ánh xạ yêu cầu ti ∈ T vào máy ảo vmjx ∈ VMx dựa vào
xác suất Pijx như công thức (3.21). Vì vậy, khi chi phí của máy ảo vmjx càng bé
thì thông tin heuristic càng lớn, điều này dẫn đến mùi để lại và xác suất chọn
máy ảo vmjx càng lớn. Do đó, khi ánh xạ yêu cầu vào máy ảo có chi phí thấp sẽ
làm cho tổng chi phí của toàn bộ hệ thống giảm xuống.
• Đối với thuật toán Mprofit.
Sau khi sắp xếp các yêu cầu theo nhà cung cấp sẽ tạo ra G nhóm, mỗi nhóm
sẽ chứa các yêu cầu được chấp nhận trên từng nhà cung cấp. Vì vậy, ta có thể
áp dụng mô hình lập trình chia xẻ bộ nhớ [4] để tạo ra G luồng chạy đồng thời,
điều này sẽ tối ưu thời gian đưa ra lịch trình cho thuật toán.
77
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Để đảm bảo cho lợi ích của nhà cung cấp dịch vụ SaaS, thuật toán ACACO
chấp nhận hoặc từ chối các yêu cầu của khách hàng. Trong các yêu cầu đã chấp
nhận thì có thể có nhiều yêu cầu thực hiện không hết thời gian thuê, do đó thuật
toán Mprofit xét trên từng nhà cung cấp IaaS để tận dụng khoảng thời gian
còn hiệu lực này nhằm thực hiện cho yêu cầu tiếp theo. Điều này sẽ giảm chi
phí và đem lại lợi ích cho nhà cung cấp SaaS như mục tiêu ở công thức (3.9).
• Độ phức tạp của thuật toán ACACO: đối với mỗi yêu cầu ti ∈ T , mỗi con kiến
k sẽ duyệt qua Y nhà cung cấp để tính thông tin heuristic, hàm cực tiểu và cập
nhật lại mùi.
Trường hợp xấu nhất thường rơi vào con kiến đầu tiên, con kiến này sẽ chọn
máy ảo một cách ngẫu nhiễn, nếu máy ảo này không thỏa mãn ràng buộc của
yêu cầu thì sẽ tiếp tục chọn ngẫu nhiên máy ảo tiếp theo. Như vậy, trường hợp
xấu nhất thì kiến sẽ duyệt qua tất cả các máy ảo trên các nhà cung cấp, khi đó
độ phức tạp trong trường hợp xấu nhất là: O(N × Y ×Mx).
Các kiến tiếp theo cũng chọn máy ảo một cách ngẫu nhiên, sau đó dựa vào
mùi để lại của các con kiến trước để tính xác suất và thông tin heuristic nhằm
chọn máy ảo phù hợp. Khi đó, độ phức tạp của thuật toán trong trường hợp này
là O(k ×N × Y ).
• Độ phức tạp của thuật toán Mprofit
Đầu tiên sử dụng thuật toán Quick Sort để sắp xếp các yêu cầu theo nhà
cung cấp, nên độ phức tạp của thuật toán sắp xếp là: O(N × logN2 ).
Trường hợp xấu nhất là tất cả các nhà cung cấp đều chứa các ánh xạ, khi
đó độ phức tạp để tạo ra Y luồng và Y nhóm đều là: O(Y ).
Trên mỗi luồng, mỗi ánh xạ ti tìm ra tập ánh xạ Ti, trường hợp xấu nhất là
tất cả các ánh xạ gối đầu lên nhau đều nằm trên một nhà cung cấp, khi đó độ
phức tạp để tạo ra tập Ti cho N ánh xạ là O(N × (N − 1)).
Do đó, độ phức tạp của thuật toán Mprofit là O(max(N × logN2 , N × (N −1))) = O(N2) với N là số yêu cầu và N × logN2 là độ phức tạp của thuật toán
Quick Sort.
3.3.2.4. Mô phỏng và đánh giá thuật toán
Các thuật toán được cài đặt mô phỏng bằng ngôn ngữ Java (NetBean 7.1.1, JDK
6), gói công cụ CloudSim 2.0 [11], [13] với các thông số sau: sử dụng 4 Datacenter, 10
host vật lý, số máy ảo thay đổi từ 100 đến 500, 4 PE và 512 RAM trên một máy ảo
78
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
và số yêu cầu thay đổi từ 1000 đến 5000. Các tham số về người dùng và nhà cung cấp
tài nguyên được xác định như sau:
• Về phía người dùng.
Kế thừa lên lớp Cloudlet để tạo ra các yêu cầu người dùng với các thông
số: thời điểm đến, khối lượng công việc, ngân sách, tỉ lệ lãi suất phạt và thời
hạn (deadline). Các thông số này được xác định như sau: thời điểm đến được
lấy ngẫu nhiên từ 1 đến 500, chúng ta phát sinh thời hạn một cách ngẫu nhiên
giữa (dl, du) phút, các giá trị khác nhau dl và du có giới hạn từ 10 đến 1500, thời
hạn phải lớn hơn thời điểm đến. Khối lượng công việc được lấy ngẫu nhiên từ
8 ∗ 104MI đến 105MI, căn cứ vào khối lượng để ước lượng ngân sách cho các
yêu cầu, các thông số còn lại được lấy ngầm định như trong CloudSim.
• Về phía nhà cung cấp tài nguyên.
Chúng tôi mô phỏng trên 4 nhà cung cấp tài nguyên. Mỗi nhà cung cấp tài
nguyên có số máy ảo, chi phí và tốc độ khác nhau. Trong cài đặt, chúng tôi kế
thừa lên lớp Vm của CloudSim 2.0 để tạo ra các máy ảo với các thông số tốc
độ và chi phí được xác định như sau: tốc độ được lấy ngẫu nhiên từ 103 đến
5 ∗ 103MIPS tương ứng với chi phí là số thực được lấy ngẫu nhiên từ 0.001 đến
0.01, các thông số khác của máy ảo như thời gian khởi tạo máy ảo, băng thông,
v.v. được lấy ngầm định như trong CloudSim.
Trong cài đặt, chúng tôi sử dụng k = 10, ρ = 0.05, khởi tạo mùi ban đầu τijx = 0.01.
Các giá trị trong mô phỏng là kết quả của 5 lần chạy thử và lấy kết quả trung bình.
Kết quả của các thuật toán được so sánh với thuật toán tham lam EDF [10], [42], [7],
[29] và thuật toán tuần tự. Đối với thuật toán tuần tự, luận án sử dụng phương pháp
vét cạn để duyệt qua tất cả các phương án nhằm tìm ra phương án tối ưu nhất. Vì
vậy, nếu tham số đầu vào của thuật toán lớn thì tốn một khoảng thời gian rất lớn để
đưa ra lịch trình.
1. Phân tích tổng chi phí thực hiện khi cố định số yêu cầu.
Hình 3.5 chỉ ra tổng chi phí của bốn thuật toán EDF , ACACO, Mprofit
và tuần tự khi sử dụng 100 máy ảo và 1000 yêu cầu.
Kết quả mô phỏng cho thấy tổng chi phí của thuật toán Mprofit luôn nhỏ
hơn thuật toán EDF , ACACO và tuần tự. Vì thuật toán ACACO có nhiệm vụ
kiểm soát đầu vào, chấp nhận hay từ chối yêu cầu người dùng, nếu yêu cầu được
chấp nhận sẽ ánh xạ vào máy ảo có chi phí thấp. Sau khi thuật toán ACACO
79
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Hình 3.5: Tổng chi phí của các thuật toán khi cố định số lượng yêu cầu
thực hiện xong chúng ta có được một tập các yêu cầu được chấp nhận với chi
phí thấp, tập yêu cầu này là dữ liệu đầu vào của thuật toán lập lịch Mprofit.
Mprofit tiếp tục tận dụng khoảng thời gian gối đầu của các yêu cầu lên các tài
nguyên trong cùng một nhà cung cấp IaaS , điều này dẫn đến tổng chi phí thực
hiện của thuật toán Mprofit giảm xuống.
Thuật toán tuần tự không xem xét khoảng thời gian gối đầu giữa các yêu
cầu chỉ dùng phương pháp vét cạn để tìm tài nguyên. Do đó, sẽ có nhiều trường
hợp các yêu cầu sử dụng không hết khoảng thời gian được thuê, điều này sẽ làm
cho chi phí của thuật toán tuần tự tăng lên và mất một khoảng thời gian rất lớn
để đưa ra lịch trình.
Thuật toán EDF chỉ xem xét đến tỉ số sử dụng: U =n∑i=1
Tidi≤ 1 (trong đó
Ti là thời gian thực hiện và di tương ứng với thời hạn)[10], [42], [7], [29] để ánh
xạ các yêu cầu vào các tài nguyên, do đó thuật toán EDF chỉ đảm bảo các yêu
cầu hoàn thành trước thời hạn của nó chứ không quan tâm đến ngân sách cho
các yêu cầu.
2. Phân tích tổng số yêu cầu mà nhà cung cấp SaaS chịu phạt.
Các yêu cầu trong thuật toán EDF hầu như không bị phạt, vì thuật toán
chọn các tài nguyên để hoàn thành trước thời hạn của các yêu cầu, còn thuật
toán tuần tự, ACACO và Mprofit xem xét nếu cộng thêm chi phí bị phạt mà
vẫn có lợi cho nhà cung cấp SaaS thì yêu cầu đó vẫn được chấp nhận. Hình 3.6
trình bày tổng số yêu cầu mà nhà cung cấp bị phạt khi số yêu cầu cố định là
1000 và sử dụng 100 máy ảo.
80
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Hình 3.6: Tổng số yêu cầu bị phạt của các thuật toán khi cố định số lượng yêu cầu
3. Phân tích tổng chi phí và tổng số yêu cầu mà nhà cung cấp SaaS chịu
phạt khi cố định số máy ảo và thay đổi số yêu cầu.
Phần này trình bày kết quả về tổng số yêu cầu bị phạt và tổng chi phí và
của các thuật toán khi thay đổi số lượng yêu cầu từ 1000 yêu cầu đến 5000 và
cố định số máy ảo là 100 như thể hiện ở Hình 3.7 và Hình 3.8.
Hình 3.7: Tổng yêu cầu bị phạt của các thuật toán khi thay đổi số lượng yêu cầu.
Thuật toán tuần tự sử dụng phương pháp vét cạn để tìm tài nguyên, do đó
khi số yêu cầu lớn thì thời gian để đưa ra lịch trình rất lớn. Vì vậy, trong phần
này chúng tôi không xét đến thuật toán tuần tự.
Khi số yêu cầu càng lớn thì tổng chi phí của thuật toán Mprofit nhỏ hơn
81
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
thuật toán EDF và ACACO. Tuy nhiên trong một số trường hợp khi số lượng
yêu cầu bị phạt lớn như trong trường hợp 3000 yêu cầu của Hình 3.7 thì chi phí
phạt mà nhà cung cấp phải trả lớn, điều này dẫn đến tổng chi phí của thuật toán
Mprofit sẽ lớn hơn thuật toán ACACO như trường hợp 3000 yêu cầu ở Hình
3.8. Do đó, trong cài đặt ta so sánh tổng chi phí của hai thuật toán ACACO và
Mprofit để quyết định chọn thuật toán nào để tối ưu.
Hình 3.8: Tổng chi phí của các thuật toán khi thay đổi số lượng yêu cầu.
4. Phân tích tổng chi phí và thời gian khi thay đổi số máy ảo.
Hình 3.9: Tổng chi phí của các thuật toán khi thay đổi số lượng máy ảo.
Hình 3.9 và 3.10 trình bày kết quả mô phỏng khi cố định số yêu cầu là 1000
và thay đổi số máy ảo từ 100 đến 500.
82
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Khi tăng số lượng máy ảo thì xác suất để chọn máy ảo có chi phí thấp sẽ cao
lên. Do đó, khi tăng số lượng máy ảo thì tổng chi phí của thuật toán Mprofit
và ACACO sẽ thấp như Hình 3.9. Ngược lại, các máy ảo có chi phí thấp thì
thường có tốc độ thực hiện thấp. Vì vậy, khi số máy ảo càng lớn thì tổng thời
gian thực hiện của các yêu cầu trong hai thuật toán Mprofit và ACACO càng
cao như Hình 3.10.
Hình 3.10: Tổng thời gian của các thuật toán khi thay đổi số lượng máy ảo.
3.3.3. Thuật toán lập lịch tối ưu đa mục tiêu về thời gian
Trong phần này, chúng tôi xây dựng các thuật toán nhằm mục tiêu tối ưu thời
gian thực hiện cho người dùng (mục tiêu 2) dựa trên bài toán được xây dựng ở phần
3.2.1. Giống như thuật toán ACACO, đầu tiên chúng tôi sử dụng heuristic ACO để
đề xuất thuật toán ACTACO, thuật toán này vừa kiểm soát đầu vào để chấp nhận
hay từ chối các yêu cầu người dùng, vừa đưa lịch trình tối ưu về tổng thời gian thực
hiện. Để áp dụng heuristic ACO vào thuật toán ACTACO chúng tôi sử dụng các công
thức (3.16), (3.17), (3.18) và (3.22) để xác định thông tin hàm cực tiểu F , thông tin
heuristic, cập nhật lại mùi và xác suất P . Sau đó, dựa vào lịch trình được đưa ra ở
thuật toán ACTACO, chúng tôi sử dụng lại thuật toán Mprofit để tận dụng khoảng
thời gian còn hiệu lực giữa các yêu cầu trong từng nhà cung cấp IaaS nhằm đem lại
lợi ích lớn nhất cho nhà cung cấp SaaS.
3.3.3.1. Thuật toán ACTACO
Các bước của thuật toán ACTACO được mô tả ở Thuật toán 3.6. Phân tích
thuật toán ACTACO giống như thuật toán ACACO như trình bày ở phần 3.3.2.3
83
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Thuật toán 3.6: ACTACO
Đầu vào:
• T = {t1, t2, . . . , tN}, ∀ti ∈ T là một bộ 7 < ai, di, bi, αi,wi, ini, outi > ;
• X = {1, 2, ..., Y }. ∀x ∈ X, VMx = {vm1x, vm2x, . . . , vm(Mx)x}, ∀vmjx ∈ VMx là
một bộ 5 < tjx, pjx, sjx, dtpjx, dtsjx > ;
Đầu ra : Một lịch trình S = {ti → vmjx, ti ∈ T, vmjx ∈ VMx};Phương pháp:
1 S := ∅;2 foreach ti ∈ T do
3 si := AdmissionControl(ti, X, V Mx);
4 if si = ∅ then5 Thông báo cho người dùng yêu cầu đã bị từ chối ;
6 else
7 S := S ∪ {si};
8 return S;
9 Function AdmissionControl(ti ∈ T,X, VMx)
10 ST := ∅;11 foreach con kiến thứ k do
12 foreach nhà cung cấp x ∈ X do
13 Tính thông tin heuristic cho yêu cầu ti trên các máy ảo vmjx:
ηijx := 1CTijx+DTijx+TIijx+βijx
;
14 Tìm ra giá trị của mùi hiện tại: τijx;
15 Cập nhật lại mùi như công thức (3.18): τijx := (1− ρ)τijx + 1−ρFk
;
16 Tính xác suất để yêu cầu ti ánh xạ vào các máy ảo vmjx như công thức
(3.22): Pijx :=
((1−ρ)τijx+ 1−ρ
Fk
). 1ηijx∑Y
x=1
∑Mxj=1
((1−ρ)τijx+ 1−ρ
Fk
). 1ηijx
;
17 Dựa vào xác suất tính được để tìm ra máy ảo vmjx có xác suất lớn nhất
và thỏa mãn các ràng buộc (3.10) và (3.11);
18 if tìm thấy vmjx then
19 ST := ST ∪ {ti → vmjx} ;
20 if ti /∈ ST then
21 return ∅;22 else
23 Tìm ra giải pháp có thể tối ưu nhất si ∈ ST ; return si;
84
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
3.3.3.2. Áp dụng thuật toán Mprofit
Phần này chúng tôi áp dụng lại thuật toán Mprofit để đem lại lợi ích lớn nhất
cho nhà cung cấp SaaS. Lịch trình đưa ra của thuật toán ACTACO là đầu vào của
thuật toán Mprofit.
3.3.3.3. Mô phỏng và đánh giá thuật toán
Các thuật toán được cài đặt mô phỏng trên CloudSim 2.0 [11], [13], các thông số
về CloudSim và phía người dùng được xác định như trong phần 3.3.2.4.
Về phía nhà cung cấp tài nguyên: chúng tôi mô phỏng trên 4 nhà cung cấp
tài nguyên. Mỗi nhà cung cấp tài nguyên có số máy ảo, chi phí và tốc độ khác nhau.
Trong cài đặt, chúng tôi kế thừa lên lớp Vm của CloudSim 2.0 để tạo ra các máy ảo
với các thông số tốc độ và chi phí được xác định như sau: tốc độ được lấy ngẫu nhiên
từ 103 đến 5 ∗ 103MIPS tương ứng với chi phí là số thực được lấy ngẫu nhiên từ 0.01
đến 0.1, các thông số khác của máy ảo như thời gian khởi tạo máy ảo, băng thông,
v.v. được lấy ngầm định như trong CloudSim.
Trong cài đặt, chúng tôi sử dụng k = 10, ρ = 0.05, khởi tạo mùi ban đầu τijx = 0.01.
Các giá trị trong mô phỏng là kết quả của 5 lần chạy thử và lấy kết quả trung bình.
Kết quả của các thuật toán được so sánh với thuật toán tuần tự và thuật toán tham
lam EDF [10], [42], [7], [29].
1. Phân tích tổng chi phí và thời gian thực hiện khi cố định số yêu cầu.
Hình 3.11 và 3.12 chỉ ra tổng thời gian và chi phí thực hiện của 4 thuật toán
EDF , ACTACO, Mprofit và tuần tự khi sử dụng 100 máy ảo và 1000 yêu cầu.
Kết quả mô phỏng cho thấy tổng thời gian thực hiện của thuật toánACTACO
gần bằng thuật toán tuần tự nhưng chi phí của Mprofit luôn nhỏ hơn thuật
toán EDF , ACTACO và tuần tự. Bởi vì thuật toán ACTACO có nhiệm vụ
kiểm soát đầu vào, chấp nhận các yêu cầu thỏa mãn thời hạn và ngân sách của
nó. Vì vậy, sau khi thuật toán ACTACO thực hiện xong chúng ta có được một
tập các yêu cầu được chấp nhận với thời gian thực hiện thấp, tập yêu cầu này
là dữ liệu đầu vào của thuật toán lập lịch Mprofit. Mprofit tiếp tục tận dụng
khoảng thời gian gối đầu của các yêu cầu lên các tài nguyên trong cùng một nhà
cung cấp IaaS, điều này dẫn đến tổng chi phí thực hiện của thuật toán giảm
xuống như Hình 3.12.
Thuật toán tuần tự không xem xét khoảng thời gian gối đầu giữa các yêu
cầu chỉ dùng phương pháp vét cạn để tìm tài nguyên. Do đó sẽ có nhiều trường
hợp các yêu cầu sử dụng không hết khoảng thời gian được thuê, điều này sẽ làm
85
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
cho chi phí của thuật toán tuần tự tăng lên và mất một khoảng thời gian rất lớn
để đưa ra lịch trình. Còn thuật toán EDF chỉ đảm bảo các yêu cầu hoàn thành
trước thời hạn của nó chứ không quan tâm đến ngân sách cho các yêu cầu.
Hình 3.11: So sánh tổng thời gian của 4 thuật toán khi cố định số yêu cầu.
Hình 3.12: So sánh tổng chi phí của 4 thuật toán khi cố định số yêu cầu.
2. Phân tích tổng số yêu cầu mà nhà cung cấp SaaS chịu phạt.
Các yêu cầu trong thuật toán EDF hầu như không bị phạt, vì thuật toán
chọn các tài nguyên để hoàn thành trước thời hạn của các yêu cầu, còn thuật
toán tuần tự, ACTACO và Mprofit xem xét nếu cộng thêm chi phí bị phạt mà
vẫn có lợi cho nhà cung cấp SaaS thì yêu cầu đó vẫn được chấp nhận. Hình 3.13
86
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
trình bày tổng số yêu cầu mà nhà cung cấp bị phạt khi số yêu cầu cố định là
1000 và sử dụng 100 máy ảo.
Hình 3.13: So sánh tổng số yêu cầu bị phạt của 3 thuật toán khi cố định số yêu cầu.
3. Phân tích tổng thời gian, tổng chi phí thực hiện và tổng số yêu cầu
mà nhà cung cấp SaaS chịu phạt khi thay đổi số yêu cầu.
Phần này trình bày kết quả về tổng thời gian, tổng chi phí và tổng số yêu
cầu bị phạt của các thuật toán khi thay đổi số lượng yêu cầu từ 1000 yêu cầu
đến 5000 và cố định số máy ảo là 100 như thể hiện ở Hình 3.14, 3.15 và 3.16.
Thuật toán tuần tự sử dụng phương pháp vét cạn để tìm tài nguyên. Vì vậy,
khi số yêu cầu lớn thì thời gian để đưa ra lịch trình rất lớn, do đó trong phần
này không xét thuật toán tuần tự.
Khi số lượng yêu cầu càng lớn thì sẽ có nhiều yêu cầu không sử dụng hết
khoảng thời gian đã thuê, nên thuật toán Mprofit sẽ tận dụng hết các khoảng
thời gian này, điều này dẫn đến tổng chi phí của thuật toán Mprofit nhỏ hơn
thuật toán EDF và ACTACO như Hình 3.15. Tuy nhiên trong một số trường
hợp khi số yêu cầu bị phạt lớn như trong trường hợp 5000 yêu cầu của Hình 3.16
thì chi phí phạt mà nhà cung cấp phải trả lớn, điều này dẫn đến tổng chi phí
của hệ thống sẽ lớn như trường hợp 5000 yêu cầu ở Hình 3.15. Do đó trong cài
đặt ta so sánh tổng chi phí của hai thuật toán ACTACO và Mprofit để quyết
định chọn thuật toán nào để tối ưu.
Như thể hiện ở Hình 3.14 khi số yêu cầu càng lớn thì tổng thời gian thực
hiện của các thuật toán sẽ tăng lên. Tổng thời gian thực hiện của hai thuật toán
ACTACO và Mprofit gần bằng nhau. Trong khi đó thuật toán EDF chỉ xét
87
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
đến tỉ số sử dụng để tìm tài nguyên, không xem xét đến việc tìm ra các tài
nguyên tốt nhất, do đó tổng thời gian thực hiện của EDF thường lớn hơn tổng
thời gian thực hiện của ACTACO và Mprofit.
Hình 3.14: So sánh tổng thời gian của các thuật toán khi thay đổi số yêu cầu
Hình 3.15: Tổng chi phí của các thuật toán khi thay đổi số yêu cầu.
3.4. Thuật toán lập lịch tối ưu đa mục tiêu dựa trên PSO
Các thuật toán ACACO và ACTACO sử dụng heuristic ACO đưa ra lịch trình
gần tối ưu, nhưng các thuật toán này ít cân bằng tải cho hệ thống vì khi tìm ra tài
nguyên các kiến để lại mùi và các kiến khác theo dấu vết để lại sẽ tập trung trên các
tài nguyên tìm được. Vì vậy, trong một số trường hợp có quá nhiều yêu cầu cùng chọn
88
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
Hình 3.16: So sánh tổng số yêu cầu bị phạt khi thay đổi số yêu cầu
một tài nguyên nên dễ gây ra hiện tượng tắt nghẽn mạng. Để cân bằng tải hơn cho hệ
thống, chúng tôi nghiên cứu heuristic PSO, PSO được xây dựng dựa trên khái niệm
trí tuệ bầy đàn để tìm kiếm lời giải cho các bài toán tối ưu tổ hợp trên không gian tìm
kiếm của mỗi cá thể. Mỗi cá thể dựa vào vận tốc, vị trí di chuyển và giá trị thích nghi
của mình để tìm ra tài nguyên tốt nhất. Trong phần này, chúng tôi sử dụng heuristic
PSO dựa trên kinh nghiệm bầy đàn để tìm kiếm tài nguyên cho các yêu cầu người
dùng và đề xuất các thuật toán dựa trên bài toán được xây dựng ở phần 3.2.2.
3.4.1. Phát biểu bài toán
Trong phần này chúng tôi sử dụng heuristic PSO và bài toán được mô tả như
trong phần 3.3.1 để đề xuất thuật toán kiểm soát đầu vào và lập lịch cho các yêu cầu
người dùng nhằm đem lại lợi ích lớn nhất cho nhà cung cấp SaaS nhưng vẫn thỏa mãn
về ràng buộc ngân sách và thời hạn cho các yêu cầu người dùng.
Thuật toán ACPSO sử dụng heuristic PSO để vừa kiểm soát đầu vào để chấp
nhận hay từ chối các yêu cầu người dùng, vừa đưa lịch trình tối ưu về chi phí. Để áp
dụng heuristic PSO vào thuật toán lập lịch chúng tôi sử dụng các công thức: (3.24),
(3.25), (3.29), (3.34) và (3.35) để xác định được vị trí, vận tốc, hàm thích nghi, vị trí
tối ưu cục bộ của từng cá thể và vị trí tối ưu toàn cục của cả bầy đàn. Sau đó, luận
án sử dụng lại thuật toán Mprofit để tận dụng khoảng thời gian còn hiệu lực giữa
các yêu cầu trong từng nhà cung cấp IaaS nhằm đem lại lợi ích lớn nhất cho nhà cung
cấp SaaS như thể hiện ở công thức (2.10) và (2.11).
3.4.2. Thuật toán tối ưu ACPSO
89
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
3.4.2.1. Thuật toán ACPSO
Thuật toán 3.7: ACPSO
Đầu vào:
• T = {t1, t2, . . . , tN}, ∀ti ∈ T là một bộ 7 < ai, di, bi, αi,wi, ini, outi > ;
• X = {1, 2, ..., Y }. ∀x ∈ X, VMx = {vm1x, vm2x, . . . , vm(Mx)x},∀vmjx ∈ VMx là
một bộ 5 < tjx, pjx, sjx, dtpjx, dtsjx > ;
Đầu ra : Một lịch trình S = {ti → vmjx, ti ∈ T, vmjx ∈ VMx} ;Phương pháp:
1 Khởi tạo: vị trí, vận tốc của mỗi cá thể, S, Pbestx, Gbest, hệ số K và ϕ;
2 Tạo ra Y luồng chạy đồng thời TH := {th1, .., thY }, mỗi luồng thx ∈ TH tìm
kiếm tài nguyên trên mỗi nhà cung cấp x ∈ X;
3 foreach ti ∈ T do
4 foreach thx ∈ TH do
5 Tính hàm thích nghi như công thức (3.29):
Fcost(posjix) := 1
CPijx+CTDijx+CIijx+CRijx;
6 Tìm vị trí tối ưu cục bộ của cá thể x tại chiều j + 1 cho yêu cầu ti như
công thức (3.32):
pbj+1ix =
pbj+1ix nếu Fcost(pos
j+1ix ) ≥ Fcost(pos
jix) và Cijx ≤ bi và Tijx ≤ di + βijx
pbjix ngược lại
7 Tính Pbestj như công thức (3.34); Tính Gbesti như công thức (3.35);
8 Dựa vào Gbesti, tìm ra máy ảo vmjx thỏa mãn các ràng buộc (3.10) và
(3.11);
9 if tìm thấy vmjx then
10 S := S ∪ {ti → vmjx} ;11 else
12 Thông báo cho người dùng yêu cầu đã bị từ chối;
13 foreach thx ∈ TH do
14 for j:=1 to Mx do
15 vj+1x := K (ωvjx + c1z1(Pbestx − posjx) + c2z2(Gbest− posjx));
16 posj+1x := posjx + vj+1
x
Đầu tiên, thuật toán khởi tạo vị trí và vận tốc cho các cá thể. Vị trí và vận tốc
90
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
của mỗi cá thể là mảng một chiều. Vị trí của cá thể được lấy ngẫu nhiên từ 1..Mx và
vận tốc lấy ngẫu nhiên từ −Mx..Mx, trong đó Mx là số máy ảo của nhà cung cấp x.
Đối với mỗi yêu cầu ti ∈ T , mỗi cá thể x (x = 1..Y ) tính hàm thích nghi, xác định
lại vị trí cục bộ mới, cập nhật lại vị trí toàn cục (Gbest) trên trung tâm dữ liệu mà nó
quản lý. Dựa vào vị trí toàn cục để ra quyết định chấp nhận hoặc từ chối yêu cầu, nếu
yêu cầu được chấp nhận sẽ được ánh xạ vào máy ảo tại vị trí toàn cục. Sau đó, mỗi
cá thể cập nhật lại vị trí và vận tốc mới cho mình. Các bước của thuật toán ACPSO
được mô tả ở Thuật toán 3.7.
3.4.2.2. Áp dụng thuật toán Mprofit
Phần này chúng tôi áp dụng lại thuật toán Mprofit như trong phần 3.3.2.2 để
đem lại lợi ích lớn nhất cho nhà cung cấp SaaS. Lịch trình đưa ra bởi thuật toán
ACPSO là đầu vào của thuật toán Mprofit.
3.4.2.3. Phân tích thuật toán ACPSO
• M.Clerc [16] đưa thêm hệ số hội tụ K vào để cập nhật lại vận tốc cho các cá thể
và đã chứng minh tính hội tụ của thuật toán PSO. Điều này đảm bảo tính hội
tụ của thuật toán ACPSO.
• Giống như thuật toán ACACO, đầu vào của thuật toán ACPSO tại thời điểm
lập lịch có thể xác định được tập T,X, VMx.
• Thuật toán ACPSO: đầu vào của thuật toán là Y nhà cung cấp độc lập với
nhau, vì vậy ta có thể tạo ra Y luồng chạy đồng thời, mỗi luồng thx ∈ TH là
một cá thể tìm kiếm trên tập máy ảo của nhà cung cấp tương ứng. Điều này sẽ
giảm độ phức tạp của thuật toán và thời gian đưa ra lịch trình sẽ nhanh hơn.
Mỗi cá thể (luồng) tập trung ánh xạ yêu cầu ti ∈ T vào máy ảo vmjx ∈ VMx
dựa vào hàm thích nghi như công thức (3.28) và (3.29). Vì vậy, khi chi phí Cijx
càng bé thì hàm thích nghi càng cao, nên xác suất để yêu cầu ti chọn máy ảo
vmjx càng lớn. Do đó, khi ánh xạ yêu cầu vào máy ảo có chi phí thấp sẽ làm cho
tổng chi phí của toàn bộ hệ thống giảm xuống.
• Lịch trình đưa ra của thuật toán ACPSO là dữ liệu đầu vào của thuật toán
Mprofit. Để đảm bảo cho lợi ích của nhà cung cấp dịch vụ SaaS, thuật toán
ACPSO chấp nhận hoặc từ chối các yêu cầu của người dùng. Trên mỗi trung
tâm dữ liệu sẽ có nhiều yêu cầu được chấp nhận. Các yêu cầu này có thể thực
hiện không hết thời gian thuê. Vì vậy, thuật toánMprofit tận dụng khoảng thời
gian còn hiệu lực này để thực hiện cho yêu cầu tiếp theo, điều này dẫn đến chi
91
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
phí thực hiện cho cả hệ thống giảm xuống theo đúng mục tiêu đặt ra ở công
thức (3.9).
• Độ phức tạp của thuật toán ACPSO: ∀ti ∈ T sử dụng Y luồng chạy đồng thời
để tìm kiếm tài nguyên. Mỗi luồng sẽ tính giá trị của hàm thích nghi, tìm vị trí
cục bộ mới và tìm vị trí toàn cục. Sau khi luồng thực hiện xong sẽ cập nhật lại
vị trí và vận tốc của các cá thể để sử dụng cho thế hệ sau. Khi đó, độ phức tạp
của từng giai đoạn được tính như sau:
– Tính giá trị của hàm thích nghi: O(N ×Mx)
– Tìm vị trí cục bộ mới: O(N ×Mx)
– Tìm vị trí toàn cục: O(N)
– Cập nhật lại vận tốc và vị trí sau mỗi thế hệ: O(N ×Mx)
Khi đó, độ phức tạp của của thuật toán ACPSO là: O(N ×Mx).
3.4.2.4. Mô phỏng và đánh giá thuật toán
Thuật toán được cài đặt mô phỏng trên CloudSim 2.0 [11], [13], các thông số về
CloudSim, phía người dùng và phía nhà cung cấp được xác định như trong phần 3.3.2.4
Các giá trị trong mô phỏng là kết quả của 5 lần thử nghiệm và lấy kết quả trung
bình. Mỗi thuật toán chấp nhận các yêu cầu khác nhau, vì vậy khi đánh giá về tổng
chi phí chúng tôi đánh giá trên tập các yêu cầu là giao của các yêu cầu được chấp
nhận của mỗi thuật toán. Ngược lại, khi đánh giá về tổng lợi ích của nhà cung cấp
SaaS chúng tôi đánh giá trên tất cả các yêu cầu được chấp nhận bởi mỗi thuật toán.
Trong mô phỏng này, thuật toán Mprofit được áp dụng cho cả hai thuật toán
ACACO và ACPSO nên chúng tôi gọi MprofitforACACO là thuật toán Mprofit
áp dụng cho thuật toán ACACO và ngược lại MprofitforACPSO là thuật toán
Mprofit áp dụng cho thuật toán ACPSO.
Kết quả mô phỏng:
1. Phân tích tổng chi phí thực hiện và lợi nhuận của nhà cung cấp khi
cố định số yêu cầu
Hình 3.17 và 3.18 chỉ ra tổng chi phí và tổng lợi nhuận của các thuật toán
EDF , ACPSO, Mprofit và tuần tự khi sử dụng 150 máy ảo và 1000 yêu cầu.
Kết quả mô phỏng cho thấy tổng chi phí của thuật toán Mprofit luôn nhỏ
hơn và tổng lợi thuận khi áp dụng thuật toánMprofit thường cao hơn các thuật
92
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
toán còn lại. Sau khi thuật toán ACACO và ACPSO thực hiện xong chúng ta
có được một tập các yêu cầu được chấp nhận với chi phí thấp, tập yêu cầu này
là dữ liệu đầu vào của thuật toán lập lịch Mprofit, Mprofit tiếp tục tận dụng
khoảng thời gian gối đầu của các yêu cầu lên các tài nguyên trong cùng một
nhà cung cấp IaaS, điều này dẫn đến tổng chi phí thực hiện của thuật toán
Mprofit giảm xuống và tổng lợi nhuận của các thuật toánMprofitforACPSO
và MprofitforACACO tăng lên.
Hình 3.17: Tổng chi phí của các thuật toán khi cố định số yêu cầu.
Hình 3.18: Tổng lợi nhuận của các thuật toán khi cố định số yêu cầu.
Thuật toán ACACO sẽ tập trung ánh xạ các yêu cầu vào các tài nguyên có
chi phí thấp, vì vậy sẽ có nhiều yêu cầu cùng chọn một nguồn tài nguyên nên
93
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
thuật toán này mặc dù có tổng chi phí thấp hơn thuật toán ACPSO nhưng lại ít
cân bằng tải cho hệ thống. Thuật toán tuần tự không xem xét khoảng thời gian
gối đầu giữa các yêu cầu, nó chỉ dùng phương pháp vét cạn để tìm tài nguyên.
Do đó sẽ có nhiều trường hợp các yêu cầu sử dụng không hết khoảng thời gian
được thuê, điều này sẽ làm cho chi phí của thuật toán tuần tự tăng lên và tốn
một khoảng thời gian rất lớn để đưa ra lịch trình.
Khi xét đến lợi nhuận cho nhà cung cấp SaaS, chúng tôi không xét đến thuật
toán EDF vì thuật toán này không quan tâm đến chi phí chỉ chọn các tài nguyên
để hoàn thành trước thời hạn của các yêu cầu. Ngược lại, các thuật toán còn lại
xem xét nếu cộng thêm chi phí bị phạt mà vẫn có lợi cho nhà cung cấp SaaS và
thỏa mãn ràng buộc của người dùng thì yêu cầu đó vẫn được chấp nhận. Kết quả
ở Hình 3.18 cho thấy tổng lợi nhuận đem lại cho nhà cung cấp SaaS của thuật
toán tuần tự và các thuật toán áp dụng thuật toán Mprofit gần bằng nhau vì
thuật toán tuần tự dùng phương pháp vét cạn để tìm tài nguyên tốt nhất trong
khi đó các thuật toán áp dụng thuật toán Mprofit tận dụng khoảng thời gian
sử dụng chưa hết của yêu cầu này để thực hiện cho yêu cầu tiếp theo.
2. Phân tích tổng chi phí và tổng lợi nhuận khi cố định số máy ảo và
thay đổi số yêu cầu.
Hình 3.19: Tổng chi phí của các thuật toán khi thay đổi số yêu cầu.
Phần này trình bày kết quả về tổng chi phí và tổng lợi nhuận cho nhà cung
94
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
cấp của các thuật toán khi thay đổi số lượng yêu cầu từ 1000 yêu cầu đến 5000
và cố định số máy ảo là 150 như thể hiện ở Hình 3.19 và Hình 3.20.
Hình 3.20: Tổng lợi nhuận của các thuật toán khi thay đổi số yêu cầu.
Thuật toán tuần tự sử dụng phương pháp vét cạn để tìm tài nguyên, do đó
khi số yêu cầu lớn thì thời gian để đưa ra lịch trình rất lớn. Vì vậy, trong phần
này không xét thuật toán tuần tự.
Khi số yêu cầu càng lớn thì tổng chi phí của thuật toán Mprofit luôn nhỏ
hơn thuật toán EDF , ACACO và ACPSO như thể hiện ở Hình 3.19. Khi số
yêu cầu càng lớn thì khả năng gối đầu của các yêu cầu trong cùng một nhà cung
cấp càng cao. Vì vậy, các thuật toán áp dụng thuật toánMprofit tận dụng được
nhiều khoảng thời gian gối đầu này, điều này dẫn đến tổng lợi nhuận đem lại
cho nhà cung cấp càng lớn như thể hiện ở Hình 3.20.
3.5. Tiểu kết Chương 3
Chương này tập trung xây dựng mô hình của các thành phần trên TTĐM. Luận
án này sử dụng lại mô hình nhà cung cấp IaaS của R. Buyya, sau đó mở rộng mô hình
người dùng bằng các phát triển thêm các thuộc tính để phù hợp với bài toán đề xuất.
Từ đó, chúng tôi xây dựng mô hình của nhà cung cấp PaaS nhằm đáp ứng mục tiêu
của người dùng và nhà cung cấp SaaS.
Luận án dựa trên hai heuristic ACO và PSO để xây dựng bài toán tối ưu đa mục
tiêu. Đối với heuristic ACO, chúng tôi xây dựng các công thức để xác định các thông
95
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
tin: hàm cực tiểu F , thông tin heuristic ηi, cập nhật lại mùi và tính xác suất P để tìm
kiếm tài nguyên. Đối với heuristic PSO, chúng tôi tiến hành phân tích và xây dựng
các công thức để tìm ra vị trí, vận tốc, hàm thích nghi, vị trí tối ưu cục bộ của từng
cá thể và vị trí tối ưu toàn cục của cả bầy đàn để áp dụng vào bài toán.
Để giải quyết bài toán lập lịch cho các yêu cầu người dùng theo hướng đa mục tiêu
về chi phí. Luận án đề xuất 3 thuật toán ACACO, ACPSO và Mprofit. Ba thuật
toán này được cài đặt và mô phỏng trên CloudSim và được so sánh với thuật toán
tuần tự và EDF .
Luận án đề xuất thuật toán ACTACO và kết hợp với thuật toán Mprofit để giải
quyết bài toán lập lịch cho các yêu cầu người dùng theo hướng đa mục tiêu về thời
gian. Thông qua việc phân tích, đánh giá các kết quả mô phỏng, đối sách trên cùng
một bộ mẫu và sử dụng cùng một công cụ mô phỏng CloudSim cho thấy kết quả của
thuật toán ACTACO và Mprofit có sự cải tiến đáng kể về thời gian và chi phí so với
thuật toán tuần tự và EDF hiện có.
96
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
KẾT LUẬN
Kết luận
Trong thời gian thực hiện luận án, với sự nỗ lực của bản thân và sự giúp đỡ tận
tình của 2 cán bộ hướng dẫn, luận án đã hoàn thành so với mục tiêu đặt ra ban đầu.
Đầu tiên luận án nghiên cứu, phân tích và đánh giá các ưu nhược điểm của các
kết quả đã được nghiên cứu về các vấn đề lập lịch trên TTĐM. Trên cơ sở đó xác định
mục tiêu của luận án. Kết quả chính của luận án là xây dựng mô hình toán học cho
các thành phần trên TTĐM và đề xuất các thuật toán lập lịch theo hướng tối ưu về
thời gian và chi phí. Bám sát mục tiêu đề ra, các nội dung chính của luận án đạt được
như sau:
1. Đề xuất mô hình và các thuật toán lập lịch các công việc thời gian thực áp dụng
cho các lớp bài toán song song theo hướng tối ưu về thời gian và chi phí. Chúng
tôi kết hợp giữa xử lý song song, phân nhóm tài nguyên theo chi phí và thời gian,
cũng như tận dụng khoảng thời gian gối đầu giữa các yêu cầu để đề xuất ba
thuật toán CTO, TCO và MINC. Các thuật toán này được cài đặt mô phỏng
trên CloudSim. Thông qua việc mô phỏng, phân tích và đánh giá, kết quả của
ba thuật toán tối ưu về chi phí và thời gian hơn thuật toán EDF hiện có.
2. Xây dựng mô hình toán học cho các thành phần trong môi trường TTĐM. Luận
án áp dụng lại mô hình toán học của nhà cung cấp IaaS và phát triển thêm các
thuộc tính của người dùng do Rajkumar Buyya và các đồng nghiệp đề xuất. Từ
đó, luận án tập trung xây dựng mô hình toán học cho nhà cung cấp PaaS và mô
hình tối ưu về chi phí cho người dùng và nhà cung cấp SaaS.
3. Đề xuất các thuật toán lập lịch theo hướng tối ưu đa mục tiêu về chi phí dựa
trên xử lý song song, heurictis ACO và PSO. Đối với heurictis ACO, chúng tôi
xây dựng hàm cực tiểu, thông tin heuristic và xác suất để lựa chọn tài nguyên
có chi phí thấp. Dựa trên khung chung của heurictis PSO luận án đưa ra hàm
thích nghi để tối ưu về chi phí và đưa ra công thức tính vị trí cục bộ mới thỏa
mãn ràng buộc QoS của người dùng. Từ đó, đề xuất ba thuật toán ACACO,
ACPSO và Mprofit. Cả ba thuật toán này đều đem lại lợi ích lớn nhất cho
nhà cung cấp SaaS, chi phí thấp cho người dùng nhưng vẫn thỏa mãn ràng buộc
QoS cho các yêu cầu. Cả ba thuật toán được cài đặt và mô phỏng trên công cụ
97
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
CloudSim và được so sánh với thuật toán tuần tự và EDF hiện có. Theo phân
tích và đánh giá kết quả mô phỏng cho thấy khi áp dụng thuật toán Mprofit
cho ACACO luôn cho chi phí thấp nhất. Mặc dù kết quả thuật toán ACPSO
có chi phí cao hơn ACACO nhưng thuật toán ACPSO chạy nhanh hơn và cân
bằng tải hơn so thuật toán ACACO.
4. Đề xuất các thuật toán lập lịch theo hướng tối ưu đa mục tiêu về thời gian dựa
trên heurictis ACO. Dựa trên khung chung của heurictis ACO, luận án đã đưa
ra hàm cực tiểu, thông tin heuristic và xác suất để lựa chọn tài nguyên có tốc
độ cao nhất. Từ đó, đề xuất thuật toán ACTACO và kết hợp với thuật toán
Mprofit nhằm tối ưu thời gian thực hiện cho người dùng và đem lại lợi ích cho
nhà cung cấp SaaS nhưng vẫn thỏa mãn ràng buộc QoS của các yêu cầu. Thông
qua việc phân tích, đánh giá các kết quả mô phỏng trên công cụ CloudSim cho
thấy khi kết hợp hai thuật toán Mprofit và ACTACO lại với nhau thì kết quả
có sự cải tiến đáng kể về thời gian và chi phí so với các thuật toán tuần tự và
EDF hiện có.
Các kết quả của luận án đã công bố trong 8 công trình khoa học được đăng tải
trên các tạp chí và hội nghị chuyên ngành trong và ngoài nước. Trong đó có 2 bài
đăng trong kỷ yếu hội nghị quốc gia chuyên ngành, 01 đăng ở hội thảo quốc tế, 02 bài
đăng ở tạp chí Khoa học và Công nghệ và 03 bài đăng trong các tạp chí chuyên ngành
trong nước.
Mặc dù vậy, luận án chưa nghiên cứu khả năng lập lịch lại nếu một yêu cầu bị
thất bại khi thực hiện lịch trình. Trong mô phỏng, luận án chỉ áp dụng chính sách lập
lịch máy ảo của CloudSim, chưa nghiên cứu các thuật toán lập lịch tối ưu để cung cấp
máy ảo trên các trung tâm dữ liệu và chưa nghiên cứu các thuật toán lập lịch trên các
ứng dụng để đảm bảo độ tin cậy và tính bảo mật. Đây là các thiếu sót của luận án và
là hướng phát triển của luận án trong thời gian tới.
98
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC
CỦA TÁC GIẢ LIÊN QUAN ĐẾN LUẬN ÁN
1. Nguyễn Hoàng Hà, Lê Văn Sơn, Nguyễn Mậu Hân, Thuật toán lập lịch động trong môi
trường điện toán đám mây dựa trên Heuristic và cây Steiner, kỷ yếu hội thảo quốc gia
lần thứ 15 "Một số vấn đề chọn lọc của Công nghệ thông tin và truyền thông", trang
436 - 442, 2013.
2. Nguyễn Hoàng Hà, Lê Văn Sơn, Nguyễn Mậu Hân, Một thuật toán lập lịch trong môi
trường tính toán đám mây dựa trên thuật toán ACO, kỷ yếu hội nghị khoa học công
nghệ quốc gia lần thứ 6, FAIR "Nghiên cứu cơ bản và ứng dụng Công nghệ Thông tin",
trang 331 -340, 2013.
3. Nguyễn Hoàng Hà, Lê Văn Sơn, Nguyễn Mậu Hân, Nguyễn Thanh Bình, Định vị tài
nguyên cho các yêu cầu trên tính toán đám mây dựa trên ràng buộc thời hạn và ngân
sách, tạp chí Khoa học và Công nghệ, tạp chí Đại học Đà Nẵng, số 7(80), trang 107
-110, 2014.
4. Nguyễn Hoàng Hà, Lê Văn Sơn, Nguyễn Mậu Hân, Định vị tài nguyên cho các yêu
cầu trong tính toán đám mây dựa trên ràng buộc QoS, chuyên san Công nghệ Thông
tin và truyền thông, tạp chí Khoa học và Kỹ thuật, học viện Kỹ thuật Quân sự, số 5,
trang 58 - 71, 2014.
5. Nguyễn Hoàng Hà, Lê Văn Sơn, Nguyễn Mậu Hân, Kiểm soát đầu vào để lập lịch cho
các yêu cầu người dùng trên tính toán đám mây dựa vào ràng buộc QoS, các công
trình nghiên cứu, phát triển và ứng dụng Công nghệ thông tin và Truyền thông", tạp
chí Công nghệ thông tin và truyền thông, số 13 (33), trang 16-25, 2015.
6. Nguyễn Hoàng Hà, Lê Văn Sơn, Nguyễn Mậu Hân, Thuật toán lập lịch cho các yêu
cầu người dùng trên tính toán đám mây dựa trên heuristic PSO, tạp chí Khoa học,
Đại học Huế, số 7(106), trang 83-96, 2014.
7. Nguyễn Hoàng Hà, Nguyễn Thanh Bình, Scheduling algorithm for user requirements
on cloud computing base on deadline and budget constraints, Journal of Computer
Science and Cybernetics, no. 3 (31), pages 231-243, 2015.
8. Ha Nguyen Hoang, Son Le Van, Han Nguyen Mau, Cuong Phan Nhat Bien, Admission
Control and Scheduling Algorithms Based on ACO and PSO Heuristic for Optimiz-
ing Cost in Cloud Computing, 8th Asian Conference on Intelligent Information and
Database Systems (ACIIDS) 2016, volume 642 of Studies in Computational Intelli-
gence, pages 15-28, Springer, 2016.
99
TÀI LIỆU THAM KHẢO
[1] M. Armbrust and I. Sto. Above the Clouds: A Berkeley View of Cloud Computing.
University of California, Berkeley, 2009.
[2] X. Bai, M. Li, B. Chen, Tsai, and Gao. Cloud testing tools. In Proceedings of the 6th
IEEE International Symposium on Service Oriented System Engineering, pages 1–12.
IEEE, 2011.
[3] A. Bala and D. Chana. A survey of various workflow scheduling algorithms in cloud
environment. IJCA Proceedings on 2nd National Conference on Information and Com-
munication Technology, NCICT(4):26–30, 2011.
[4] D. V. Ban and N. M. Han. Xử lý song song và phân tán. Nhà xuất bản Khoa học và
Kỹ thuật, 2006.
[5] S. Banerjee, I. Mukherjee, and P. K. Mahanti. Cloud computing initiative using mod-
ified ant colony framework. World Academy of Science, Engineering and Technology,
56(32):221 – 224, 2009.
[6] F. Bergh. An analysis of particle swarm optimizers. PhD thesis, University of Pretoria
Pretoria, South Africa, South Africa, 2002.
[7] L. F. Bittencourt, R. Sakellariou, and E. M. Madeira. DAG scheduling using a lookahead
variant of the heterogeneous earlist time algorithm. In Proceedings of the 2010 18th
Euromicro Conference on Parallel, Distributed and Network-based Processing, pages
27–34. IEEE Computer Society, 2010.
[8] Z. Bo, G. Ji, and A. Jieqing. Cloud loading balance algorithm. In Information Sci-
ence and Engineering (ICISE), 2010 2nd International Conference on, pages 5001–5004.
IEEE, 2011.
[9] P. Bruckner. Scheduling algorithms 5th edition. Springer, 2007.
[10] A. Burns, R. Davis, P. Wang, and F. Zhang. Partitioned EDF scheduling for multipro-
cessors using a C=D scheme. Real-Time Systems, 48(1):3–33, 2012.
[11] R. Buyya, R. Ranjan, and Calheiros. Modeling and simulation of scalable cloud comput-
ing environments and the cloudsim toolkit: Challenges and opportunities. In Proceedings
of the 7th High Performance Computing and Simulation, pages 1 –11. IEEE, 2009.
100
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
[12] R. Buyya, C. S. Yeo, and S. Venugopal. Market-oriented cloud and atmospheric com-
puting: Hype, reality, and vision. In 10th IEEE International Conference on High Per-
formance Computing and Communications, pages 5–13. IEEE, 2008.
[13] R. Calheiros, R. Ranjan, A. Beloglazov, C. Esar, A. F. D. Rose, and R. Buyya. Cloudsim:
a toolkit for modeling and simulation of cloud computing environments and evaluation
of resource provisioning algorithms. Software: Practice and Experience, 41(1):23–50,
2011.
[14] Y. Chawla and M. Bhonsle. A study on scheduling methods in cloud computing. Inter-
national Journal of Emerging Trends & Technology in Computer Science, 1(3):12 – 17,
2012.
[15] M. Choudhary and S. K. Peddoju. A dynamic optimization algorithm for task scheduling
in cloud environment. International Journal of Engineering Research and Applications,
2(3):2564–2568, 2012.
[16] M. Clerc. The swarm and the queen: Towards a deterministic and adaptive particle
swarm. In Evolutionary Computation, 1999. CEC 99. Proceedings of the 1999 Congress
on, pages 1951–1957. IEEE, 1999.
[17] D. Corne, M.Dorigo, and F.Glover. New Ideas in Optimization. chapter 2, pages
217–279. McGraw, 1999.
[18] K. Das. Cloud computing simulation. Master’s thesis, Indian Institute of Technology,
Bombay, Mumbai, 2010.
[19] V. den Bossche, Vanmechelen, and K. Broeckhove. Cost-efficient scheduling heuristics
for deadline constrained workloads on hybrid clouds. In Cloud Computing Technology
and Science (CloudCom), 2011 IEEE Third International Conference on, pages 320 –
327. IEEE, 2012.
[20] J. Deng, Y. Zhao, and H. Yuan. A service revenue-oriented task scheduling model
of cloud computing. Journal of Information and Computational Science, 10(10):3153
–3161, 2013.
[21] V. Dinesh. Supporting Service Level Agreements on IP Networks. Macmillan Technical
Publishing, 1999.
[22] M. Dorigo and T. Stutzle. Ant Colony Optimization. The MIT Press Cambridge,
Massachusetts, London, England, 2004.
[23] R. Eberhart and Y. Shi. Comparing inertia weights and constriction factors in parti-
cle swarm optimization. In Evolutionary Computation, 2000. Proceedings of the 2000
Congress on, pages 84 – 88. IEEE, 2000.
101
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
[24] O. M. Elzeki, M. Z. Reshad, and M. A. Elsoud. Improved max-min algorithm in cloud
computing. International Journal of Advanced Research in Computer Science and Soft-
ware Engineering, 50(12):22 – 27, 2012.
[25] I. Foster, Y. Zhao, I. Raicu, and S. Lu. Cloud computing and grid computing 360-degree
compared. In Proc. IEEE Grid Computing Environments Workshop, pages 1–10. IEEE,
2008.
[26] M. Frincu and C. Craciun. Multi-objective metaheuristics for scheduling applications
with high availability requirements and cost constraints in multicloud environments. In
Proceedings of the 2011 Fourth IEEE International Conference on Utility and Cloud
Computing, pages 267–274. IEEE Computer Society, 2011.
[27] B. Gomathi and K. Krishnasamy. Task scheduling algorithm based on hybrid parti-
cle swarm optimization in cloud computing environment. Journal of Theoretical and
Applied Information Technology, 55(1):33–38, 2013.
[28] Y. Gu and Y. Ge. A real-time workload driven approach for the cloud. InModeling, Sim-
ulation and Visualization Methods (WMSVM), 2010 Second International Conference
on, pages 128 – 130. IEEE, 2011.
[29] G. Gupta, V. Kr.Kumawat, P. R. Laxmi, D. Singh, V. Jain, and R. Singh. A simula-
tion of priority based earliest deadline first scheduling for cloud computing system. In
Networks & Soft Computing (ICNSC), 2014 First International Conference on, pages
35 – 39. IEEE, 2014.
[30] Z. C. S. S. Hlaing and M. A. Khine. Solving traveling salesman problem by using
improved ant colony optimization algorithm. International Journal of Information and
Education Technology, 1(5):404–409, 2011.
[31] S. Irugurala and D. Chatrapati. Various scheduling algorithms for resource allocation
in cloud computing. The International Journal Of Engineering And Science, 5(2):16 –
24, 2013.
[32] Y. Jararweh, Z. Alshara, M. Jarrah, M. Kharbutli, and M. Alsaleh. Teachcloud: a cloud
computing educational toolkit. International Journal of Cloud Computing, 2(2-3):237
– 257, 2013.
[33] S. K. Jayadivya and S. M. S. Bhanu. QoS based scheduling of workflows in cloud com-
puting. International Journal of Computer Science and Electrical Engineering, 1(1):15
–21, 2012.
[34] JiayinLi, MeikangQiu, ZhongMing, GangQuan, XiaoQin, and ZonghuaGu. Online op-
timization for scheduling preemptable tasks on iaas cloud systems. J. Parallel Distrib.
Comput., 72(5):666–677, 2012.
102
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
[35] J.Kennedy and R.Eberhart. Particle swarm optimization. In Proceedings of IEEE
International Conference on Neural Networks, pages 1942 – 1948. IEEE, 1995.
[36] G. John, Vlachogiannis, and Y. L. Kwang. A comparative study on particle swarm
optimization for optimal steady-state performance of power systems. Power Systems,
IEEE Transactions on, 21(4):1718 – 1728, 2006.
[37] N. Kaur, T. S. Aulakh, and R. S. Cheema. Comparison of workflow scheduling algo-
rithms in cloud computing. International Journal of Advanced Computer Science and
Applications, 2(10):81 – 86, 2011.
[38] R. Kaur and S. Kinger. Enhanced genetic algorithm based task scheduling in cloud
computing. International Journal of Computer Applications, 101(14):1 – 6, 2014.
[39] K. H. Kim, A. Beloglazov, and R. Buyya. Power-aware provisioning of cloud resources
for real-time services. In Proceedings of the 7th International Workshop on Middleware
for Grids, Clouds and e-Science, pages 1 – 6. ACM, 2009.
[40] T. Kokilavani and D. G. Amalarethinam. Load balanced min-min algorithm for static
meta-task scheduling in grid computing. International Journal of Computer Applica-
tions, 20(3):42 – 48, 2011.
[41] K. Kousalya and P.Balasubramanie. An enhanced ant algorithm for grid scheduling
problem. IJCSNS International Journal of Computer Science and Network Security,
8(4):262 – 271, 2008.
[42] L. Kruk, J. Lehoczky, K. Ramanan, and S. Shreve. Heavy traffic analysis for EDF
queues with reneging. The Annals of Applied Probability, 21(2):484–545, 2011.
[43] S. Kuma and K. Dutta. Resource scheduling in grid computing networks to maximize
business value. In 15th Annual Workshop On Information Technolgies & Systems, pages
15 – 20. University of Arizona, 2006.
[44] K. Kumar, K. Feng, Y. Nimmagadda, and Y. H. Lu. Resource allocation for real-time
tasks using cloud computing. In Computer Communications and Networks (ICCCN),
2011 Proceedings of 20th International Conference on, pages 1 – 7. IEEE, 2011.
[45] P. Kumar and A. K. Rai. An overview and survey of various cloud simulation tools.
Journal of Global Research in Computer Science, 5(1):24 – 26, 2014.
[46] Lee, Y. Choon, Wang, Chen, Zomaya, Y.Albert, and B. Bing. Profit-driven service
request scheduling in clouds. In Proceedings of the 2010 10th IEEE/ACM International
Conference on Cluster, Cloud and Grid Computing, pages 15–24. IEEE Computer So-
ciety, 2010.
103
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
[47] W. Lee. Energy-saving DVFS scheduling of multiple periodic realtime tasks on multi-
core processors. In Proceedings of the 2009 13th IEEE/ACM International Symposium
on Distributed Simulation and Real Time Applications, pages 216 – 223. IEEE Computer
Society, 2009.
[48] Z. Lee, Y. Wang, and W. Zhou. A dynamic priority scheduling algorithm on ser-
vice request scheduling in cloud computing. In Electronic and Mechanical Engineering
and Information Technology (EMEIT), 2011 International Conference on, pages 4665
– 4669. IEEE, 2011.
[49] K. Li, G. Xu, G. Zhao, Y. Dong, and D. Wang. Cloud task scheduling based on load
balancing ant colony optimization. In Chinagrid Conference (ChinaGrid), 2011 Sixth
Annual, pages 3–9. IEEE, 2011.
[50] Z. K. Li, G. Xu, G. Zhao, and Y. Dong. Cloud task scheduling based on load balancing
ant colony optimization. IEEE, 2011.
[51] J. S. Lin and S. H. Wu. Fuzzy artificial bee colony system with cooling schedule for
the segmentation of medical images by using of spatial information. Research Journal
of Applied Sciences, Engineering and Technology, 4(17):2973–2980, 2012.
[52] K. Liu. Scheduling algorithms for instanceintensive cloud workflows. Technical report,
University of Technology, 2009.
[53] S. Liu, G. Quan, and S. Ren. On-line scheduling of real-time services for cloud comput-
ing. In Services (SERVICES-1), 2010 6th World Congress on, pages 459 – 464. IEEE,
2010.
[54] S. Liu, G. Quan, and S. Ren. On-line preemptive scheduling of real-time services with
profit and penalty. In Southeastcon, 2011 Proceedings of IEEE, pages 287–292. IEEE,
2011.
[55] R. Malhotra and P. Jain. Study and comparison of various cloud simulators available in
the cloud computing. International Journal of Advanced Research in Computer Science
and Software Engineering, 3(9):347 – 350, 2013.
[56] L. Mao, Ming, Li, Jie, Humphrey, and Marty. Cloud auto-scaling with deadline and
budget constraints, grid computing (grid). In 11th IEEE/ACM International Conference
on, pages 41–48. IEEE, 2010.
[57] P. Mathiyalagan, S. Suriya, and S. N. Sivanandam. Modified ant colony algorithm for
grid scheduling. International Journal on Computer Science and Engineering, 2(2):132
– 139, 2010.
104
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
[58] P. Mell and Timothy. The NIST Definition of Cloud Computing (Draft). National
Institute of Standards and Technology, U.S. Department of Commerce, 2011.
[59] A. Mohammadi and G.Akl.Selim. Scheduling algorithms for real-time systems. Technical
report, Queen’s University, 2005.
[60] S. Nagadev, K. Satyapriya, and D.Malathy. A survey on economic cloud schedulers for
optimized task scheduling. International Journal of Advanced Engineering Technology,
4(1):58–62, 2013.
[61] A. Nunez, J. L. Vazquez-Poletti, A. C. Caminero, G. G. Castane, J. Carretero, and
I. M. Llorente. icancloud: a flexible and scalable cloud infrastructure simulators. J.
Grid Comput., 10(1):185–209, 2012.
[62] S. Ostermann, K. Plankensteiner, R. Prodan, and T. Fahringe. Groudsim: An event-
based simulation framework for computational grids and clouds. In Proceedings of the
2010 Conference on Parallel Processing, pages 305–313. Springer-Verlag, 2011.
[63] S. Pandey. Scheduling and management of data intensive applicationworkflows in grid
and cloud computing environments. Technical report, The University of Melbourne,
Australia, 2010.
[64] S. Pandey and R. Buyya. Scheduling workflow applications based on multi-source par-
allel data retrieval in distributed computing networks. Comput. J., 55(11):1288 – 1308,
2012.
[65] S. Pandey, L. Wu, S. M. Guru, and R. Buyya. A particle swarm optimization-based
heuristic for scheduling workflow applications in cloud computing environments. In
Proceedings of the 2010 24th IEEE International Conference on Advanced Information
Networking and Applications, pages 400–407. IEEE Computer Society, 2010.
[66] M. L. Pinedo. Scheduling: Theory, Algorithms, and Systems. Springer, 2008.
[67] R. J. Priyadarsini and L. Arockiam. Performance evaluation of min-min and max-min
algorithms for job scheduling in federated cloud. International Journal of Computer
Applications, 99(18):47 –54, 2014.
[68] K. M. Pua, J. M. Gauch, S. E. Gauch, and J. Z. Miadowicz. Real time repeated video
sequence identification. Computer Vision and Image Understanding, 93(3):310–327,
2004.
[69] N. Ramkumar and S. Nivethitha. Efficient resource utilization algorithm (ERUA) for
service request scheduling in cloud. International Journal of Engineering and Technol-
ogy, 5(2):1321–1327, 2013.
105
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
[70] M. Sajid and Z. Raza. Cloud computing: Issues and challenges. In International Con-
ference on Cloud, Big Data and Trust, pages 35 –41. IEEE, 2013.
[71] P. Salot. A survey of various scheduling algorithm in cloud computing environment.
International Journal of Research in Engineering and Technology, 2(2):131 – 135, 2013.
[72] X. Song, L. Gao, and J. Wang. Job scheduling based on ant colony optimization in
cloud computing. In Computer Science and Service System (CSSS), 2011 International
Conference on, pages 3309 – 3312. IEEE, 2011.
[73] T. Stutzle and M. Dorigo. A short convergence proof for a class of ant colony optimiza-
tion algorithms. Trans. Evol. Comp, 6(4):358–365, 2002.
[74] Y. Sun, S. Tilak, R. K. Thulasiram, and K. Chiu. Markets, Mechanisms, Games, and
Their Implications in Grids. chapter 2, pages 29–48. John Wiley & Sons, 2009.
[75] T. Takpe, U. Nancy, F. Suter, and H. Casanova. A comparison of scheduling approaches
for mixed-parallel applications on heterogeneous platforms. In Proceedings of the Sixth
International Symposium on Parallel and Distributed Computing, pages 35–. IEEE Com-
puter Society, 2007.
[76] H. Topcuoglu, S. Hariri, and M. Y. Wu. Task scheduling algorithms for heterogeneous
processors. In Proceedings of the Eighth Heterogeneous Computing Workshop, pages
3–14. IEEE Computer Society, 1999.
[77] F. van den Bergh. An Analysis of Particle Swarm Optimizers. PhD thesis, University
of Pretoria, 2001.
[78] K. Vijayvargia. Security and scheduling challenges in cloud computing. Indian Journal
of Applied Research, 5(6):155 – 157, 2015.
[79] L. Wu, S. K. Garg, and R. Buyya. SLA-based admission control for a software-as-a-
service provider in cloud computing environments. Journal of Computer and System
Sciences, 78(5):1280 – 1299, 2012.
[80] Z. Wu, X. L. Z. Ni, and D. Y. Y. Yang. A market-oriented hierarchical scheduling
strategy in cloud workflow systems. The Journal of Supercomputing, 63(1):256—-293,
2013.
[81] M. Xu, L. Cui, H. Wang, and Y. Bi. A multiple QoS constrained scheduling strategy
of multiple workflows for cloud computing. In Parallel and Distributed Processing with
Applications, 2009 IEEE International Symposium on, pages 629 – 634. IEEE, 2009.
[82] J. Yu and R. Buyya. Workflow scheduling algorithms for grid computing. Technical
report, University of Melbourne, Australia, 2008.
106
Nghiên cứu một số vấn đề lập lịch trên môi trường tính toán đám mây
[83] Z. Yu and W. Shi. A planner-guided scheduling strategy for multiple workflow applica-
tions. In Parallel Processing - Workshops, 2008. ICPP-W ’08. International Conference
on, pages 1–8. IEEE, 2008.
[84] G. Zeng, T. Yokoyama, H. Tomiyama, and H. Takad. Practical energy-aware scheduling
for real-time multiprocessor systems. In Embedded and Real-Time Computing Systems
and Applications, 2009. RTCSA ’09. 15th IEEE International Conference on, pages 383
– 392. IEEE, 2009.
[85] S. Zhan and H. Huo. Improved PSO-based task scheduling algorithm in cloud comput-
ing. Journal of Information & Computational Science, 9(13):3821–3829, 2012.
[86] H. Zhao and X. Li. Auctionnet: Market oriented task scheduling in heterogeneous
distributed environments. In Parallel & Distributed Processing, Workshops and Phd
Forum (IPDPSW), 2010 IEEE International Symposium on, pages 1–4. IEEE, 2010.
[87] Zhu, Xiaomin, Jianghan, M. Manhao, and Dishan. SAQA: A self-adaptive QoS-aware
scheduling algorithm for real-time tasks on heterogeneous clusters. In Proceedings of the
2010 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing,
pages 224–232. IEEE, 2010.
107