ĐỂ PHÂN PHỐI TÀI NGUYÊN TRONG HỆ THỐNG ĐIỆN TOÁN LƯỚI
3.1 Giới thiệu bài toán lập lịch trong môi trường lưới
Bài toán lập lịch là một trong những vấn đề quan trọng được nghiên cứu trong các môi trường tính toán, đặc biệt là các môi trường tính toán phân tán như môi trường điện toán lưới.
Quá trình lập lịch là quá trình quyết định sẽ thực thi công việc tại một nguồn tài nguyên cụ thể nào và vào thời điểm nào là thích hợp nhất do đó sẽ ảnh hưởng rất lớn đến hiệu năng hoạt động của hệ thống.
Khi lập lịch trên luồng công việc thì việc lựa chọn các nút tính toán và nút lưu trữ dựa trên vị trí của chúng là rất quan trọng cho nhiều hệ thống phân tán, đặc biệt trong các hệ thống xử lý dữ liệu lớn. Bộ lập lịch trong các hệ thống này có thể chọn các nguồn dữ liệu từ các vị trí khác nhau và song song hóa việc chuyển tải dữ liệu đến một máy chủ tính toán nhằm tối ưu thời gian chuyển tải.
3.2 Các hướng nghiên cứu trong bài toán lập lịch
Dựa vào mục tiêu của người dùng mà bài toán lập lịch được chia thành hai hướng nghiên cứu: dựa vào hiệu năng khai thác hệ thống và hiệu năng kinh tế.
GVPT: PGS.TS Nguyễn Phi Khứ 2013
3.2.1Hướng nghiên cứu hướng đến hiệu năng hệ thống
Mục đích của hướng nghiên cứu này là giảm tối đa thời gian hệ thống cần thiết để hoàn tất các ứng dụng, thời gian này được gọi là makespan của hệ thống. Một số thuật toán lập lịch dựa vào các tiếp cận này như: OLB (Opportunistic Load Balancing), MET (Minimun Execution Time), MTC (Minimun Completion Time), Min-Min, Max-Min, Suffrage và XSuffrage. 3.2.1.1 Thuật toán OLB (Opportunistic Load Balancing)
Đây là chiến lược rất đơn giản, phân phối công việc cho tài nguyên có thời điểm sẵn sàng sớm nhất mà không quan tâm đến thời gian thực thi của công việc trên tài nguyên đó.
3.2.1.2 Thuật toán MET (Minimun Execution Time)
Thuật toán này phân phối công việc vào các tài nguyên có khả năng thực thi công việc nhanh nhất, không quan tâm đến thời điểm bắt đầu và kết thúc của công việc trên tài nguyên đó.
Thuật giải này thường có nhược điểm là không cân bằng tải vì hầu như các công việc đều được tập trung thực thi trên các tài nguyên có năng lực cao nhất
Giả sử có 2 tác vụ độc lập cần thực thi là T1,T2. Các tác vụ lần lượt có kích thước T1=60, T2=120. Hệ thống có 2 máy tính cụm, mỗi máy tính cụm có 2 máy tính (host), năng lực lần lượt là:
Cụm 1: H1=30, H2=60; Cụm 2: H3=45, H4=50
Gọi Eij = Ti/Hj là thời gian thực thi của tác vụ i trên host j, ta có:
E11 = T1/H1 = 2 E21 = T2/H1 = 4 E12 = T1/H2= 1 (min) E22 = T2/H2 = 2 (min) E12 = T1/H2= 1 (min) E22 = T2/H2 = 2 (min)
E13 = T1 /H3 = 1.3 E23 = T2/H3 = 2.6
E14 = T1/H4 = 1.2 E24 = T2/H4 = 2.4
Như vậy cả 2 tác vụ đều thực thi trên host H2, makespan của hệ thống = 1 + 2 = 3
3.2.1.3 Thuật toán MTC (Minimun Completion Time)
Dựa trên khái niệm thời gian hoàn thành nhỏ nhất của tác vụ. Thời gian hoàn thành được tính bằng thời gian thực thi của tác vụ cộng với thời gian sẵn sàng của tài nguyên.
Việc dựa trên thời gian hoàn thành nhỏ nhất sẽ giúp hệ thống cân bằng tải tốt hơn. Áp dụng với các số liệu tương tự như mục 3.2.1.3, ta định nghĩa Cij = Bj + Eij với Cij là thời gian hoàn thành của tác vụ i trên host j, Bj là thời gian sớm nhất host j có thể thực thi tác vụ (thời gian sẵn sàng). C11 = E11 + B1 = 2 + 0 = 2 C21 = E21 + B1 = 4 + 0 = 4 C12 = E12 + B2= 1 + 0 = 1 C22 = E22 + B2 = 2 + 0 = 2 C13 = E13 + B3 = 1.3 + 0 = 1.3 C23 = E23 + B3 = 2.6 + 0 = 2.6 C14 = E14 = B4 = 1.2 + 0 = 1.2 C24 = E24 + B4 = 2.4 + 0 = 2.4 HVTH: CH1101098 Nguyễn Ngọc Lâm 32
Tác vụ T1 theo thứ tự được chọn tài nguyên trước, sẽ chọn thực thi trên host H2 (thời gian hoàn thành thấp nhất). Thời gian bắt đầu B2 được cập nhật thành 1, vì chỉ sau thời điểm này H2 mới có thể thực thi các tác vụ khác. Giá trị E22 thay đổi: B2 = 1; C22 = B2 + E22 = 1 + 2 = 3 > 2.4.
Như vậy tác vụ T2 sẽ thực thi trên Host H4 vì có C24 nhỏ nhất. Thời gian thực thi toàn hệ thống makespan = 2.4 vì T1, T2 chạy song song trên 2 host khác nhau.
Chúng ta có thể thấy, dựa vào giá trị MCT (thời gian hoàn thành nhỏ nhất) hệ thống sẽ cân bằng hơn dựa vào giá trị MET.
3.2.1.4 Thuật toán Min – Min
Dựa trên khái niệm thời gian hoàn thành nhỏ nhất (MCT) của tác vụ. Thời gian hoàn thành được tính bằng thời gian thực thi của tác vụ cộng với thời gian sẵn sàng của tài nguyên. Việc dựa trên thời gian hoàn thành nhỏ nhất sẽ giúp hệ thống cân bằng tải tốt hơn.
Thuật giải Min – Min sẽ tính toán thời gian hoàn thành của tất cả các tác vụ trên tất cả các tài nguyên hiện có. Tác vụ nào có giá trị MCT nhỏ nhất sẽ được phép chọn tài nguyên trước. Sau đó cập nhật thời gian sẵn sàng cho tài nguyên được chọn, tính toán lại thông số với tất cả các tác vụ chưa được điều phối. Quá trình lặp lại cho đến khi tất cả các tác vụ đều đã chọn được tài nguyên thực thi.
Áp dụng với các số liệu tương tự như mục 3.2.1.3, ta định nghĩa Cij
= Bj + Eij với Cij là thời gian hoàn thành của tác vụ i trên host j, Bj là thời gian sớm nhất host j có thể thực thi tác vụ (thời gian sẵn sàng).
C11 = E11 + B1 = 2 + 0 = 2 C21 = E21 + B1 = 4 + 0 = 4C12 = E12 + B2= 1 + 0 = 1 (min) C22 = E22 + B2 = 2 + 0 = 2 (min) C12 = E12 + B2= 1 + 0 = 1 (min) C22 = E22 + B2 = 2 + 0 = 2 (min)
C13 = E13 + B3 = 1.3 + 0 = 1.3 C23 = E23 + B3 = 2.6 + 0 = 2.6
C14 = E14 = B4 = 1.2 + 0 = 1.2 C24 = E24 + B4 = 2.4 + 0 = 2.4
Giá trị MCT(T1) = C12 = 1 , MCT(T2) = C22 = 2 MCT(T1) nhỏ hơn, do đó tác vụ T1 được chọn host H1 để thực thi trước.
Giá trị E22 thay đổi: B2=1, C22 = B2 + E22= 1 + 2 = 3 > 2.4
Như vậy tác vụ T2 sẽ thực thi trên Host H4 vì có C24 nhỏ nhất. Thời gian thực thi toàn hệ thống makespan = 2.4 vì T1, T2 chạy song song trên 2 host khác nhau.
3.2.1.5 Thuật toán Max – Min
Tương tự như giải thuật Min-Min, tuy nhiên giải thuật Max-Min cho phép các tác vụ có MCT lớn hơn được ưu tiên chọn host để thực thi trước. Giải thuật này được đánh giá tốt và cân bằng hơn Min-Min vì trong khi các tác vụ dài hơn được ưu tiên chọn thiết bị tốt để thực thi trước, các tác vụ ngắn có thể luân phiên thực thi ở các thiết bị có năng lực yếu hơn. Các tác vụ dài không phải mất thời tác vụ ngắn hơn như ở giải thuật Min-Min.
C11 = E11 + B1 = 2 + 0 = 2 C21 = E21 + B1 = 4 + 0 = 4C12 = E12 + B2= 1 + 0 = 1 (min) C22 = E22 + B2 = 2 + 0 = 2 (min) C12 = E12 + B2= 1 + 0 = 1 (min) C22 = E22 + B2 = 2 + 0 = 2 (min)
GVPT: PGS.TS Nguyễn Phi Khứ 2013
C13 = E13 + B3 = 1.3 + 0 = 1.3 C23 = E23 + B3 = 2.6 + 0 = 2.6
C14 = E14 = B4 = 1.2 + 0 = 1.2 C24 = E24 + B4 = 2.4 + 0 = 2.4
Giá trị MCT(T1)= C12 =1. MCT(T2) = C22 = 2 Lúc này tác vụ T2 có MCT lớn hơn nên được phép chọn host thực thi trước. T2 sẽ thực thi trên host H2.
Giá trị B2 = 2. C12= B2 + E12 = 2 + 1 =3 > 1.2. Như vậy, sau đó tác vụ T1 sẽ thực thi trên host H4 vì lúc này C14 = 1.2 là nhỏ nhất
Thời gian hoàn thành của hệ thống makespan = 2 vì T1, T2 chạy song song (nhỏ hơn với trường hợp Min-Min).
3.2.1.6 Thuật toán Suffrage
Suffrage lấy ý tưởng từ thuật giải Min-Min và Max-Min đã đề ra trước đó. Thuật giải Suffrage tính toán giá trị MCT thấp nhất và thấp nhì đối với từng tác vụ trong hệ thống. Giá trị này được gọi là độ “thiệt hại” của một tác vụ khi nó không được thực thi trên tài nguyên tốt nhất. Tác vụ có độ thiệt hại lớn nhất sẽ được ưu tiên chọn tài nguyên để thực thi trước.
Thuật giải này đặc biệt hiệu quả nếu tính đến vấn đề vận chuyển dữ liệu đến nơi thực thi tác vụ. Nếu một tài nguyên đã có sẵn dữ liệu của một tác vụ, tác vụ nếu thực thi trên tài nguyên này sẽ tiết kiệm được thời gian rất nhiều so với khi thực thi trên một tài nguyên khác. Tác vụ trong trường hợp này sẽ có giá trị Suffrage cao nên được ưu tiên thực thi trước.
C11 = E11 + B1 = 2 + 0 = 2 C21 = E21 + B1 = 4 + 0 = 4C12 = E12 + B2= 1 + 0 = 1 C22 = E22 + B2 = 2 + 0 = 2 C12 = E12 + B2= 1 + 0 = 1 C22 = E22 + B2 = 2 + 0 = 2
C13 = E13 + B3 = 1.3 + 0 = 1.3 C23 = E23 + B3 = 2.6 + 0 = 2.6
C14 = E14 = B4 = 1.2 + 0 = 1.2 C24 = E24 + B4 = 2.4 + 0 = 2.4
Giá trị Suff(T1)= C14 – C12 = 0.2 ; Giá trị Suff(T2)= C24 – C22 = 0.4 ; vì suff(T2) cao hơn nên tác vụ T2 được phép chọn host H2 để thực thi trước.
Giá trị B2 = 2; C12 = B2 + E12 = 2 + 1 = 3 > 1.2. Như vậy, sau đó tác vụ T1 sẽ thực thi trên host H4 vì lúc này C14 = 1.2 là nhỏ nhất
Thời gian hoàn thành của hệ thống makespan = 2 vì T1, T2 chạy song song.
3.2.1.7 Thuật toán Xsuffrage
Do nhóm nghiên cứu Casanova đề ra, phát triển từ thuật toán Sufferage. Các máy tính trong một cụm máy tính thường có năng lực như nhau, do đó giá trị sufferage thường dần về 0. Điều này khiến một tác vụ Ti, khi rất cần chạy trên máy tính cụm j (ví dụ dữ liệu input của Ti đã nằm sẵn trên máy tính cụm j), nhưng trong trường hợp máy tính cụm này lại có 2 máy năng lực tương đương nhau khiến Suff(Ti) ≈ 0 nên Ti sẽ không có cơ hội chạy trên máy tính cụm j. Cải tiến ở đây là khái niệm Suff sẽ được tính ở mức cụm, không phải ở mức host.
3.2.2Hướng nghiên cứu hướng đến hiệu năng kinh tế
Chiến lược này sử dụng mô hình thị trường để quản lý phân phối các nguồn tài nguyên để xử lý các tác vụ của luồng công việc. Chúng áp dụng nguyên tắc tính toán kinh tế giữa các hệ thống quản lý luồng công việc và các nhà cung cấp tài nguyên. Bộ lập lịch luồng 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 tác vụ trong luồng công việc. Những tác vụ trong luồng 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, chất lượng dịch vụ, để đạt được mức mong muốn về chất lượng cho thời hạn (deadline) và ngân sách (budget).
Không giống như các chiến lược hướng đến hiệu năng về hệ thống, lập lịch hướng đến kinh tế có thể lựa chọn một nguồn tài nguyên có giá rẻ hơn nhưng đúng theo thời hạn người dùng đặt ra. Việc nghiên cứu về bài toán lập lịch dạng này nhìn chung phức tạp hơn ở trường hợp chỉ chú trọng đến thời gian thực thi, vì bây giờ mỗi tác vụ cần thỏa mãn cùng lúc 2 ràng buộc.
Cũng đã có khá nhiều nghiên cứu về các thuật toán lập lịch chú trọng đến hiệu năng kinh tế của hệ thống như các thuật toán: Time Minimization, Cost Minimization, DBC (Deadline and Budget constrained scheduling).
KẾT LUẬN
Công nghệ điện toán lưới ra đời đánh dấu một bước phát triển mới trong lĩnh vực tính toán hiệu năng cao. Bài thu hoạch đã trình bày khá chi tiết và đầy đủ về điện toán lưới từ khái niệm, các lợi ích và giới thiệu các hướng ứng dụng đã được triển khai khi sử dụng công nghệ này.
Ngoài ra, để triển khai các ứng dụng trên môi trường mạng lưới. Bài thu hoạch đã giới thiệu 3 bộ công cụ tiêu biểu hỗ trợ cho việc xây dựng và phát triển mạng lưới ở nhiều mức độ khác nhau bao gồm: bộ công cụ Globus, gLite và dự án Unicore.
Để nâng cao hiệu năng tính toán, bài thu hoạch có khảo sát một số thuật toán lập lịch để phân phối tài nguyên trong hệ thống điện toán lưới.
Do hạn chế về mặt thời gian nên bài thu hoạch chưa triển khai cài đặt các ứng dụng thử nghiệm trên các bộ công cụ hỗ trợ cho việc xây dựng mạng lưới như đã giới thiệu ở trên.
Hướng phát triển của bài thu hoạch:
Cài đặt bộ công cụ Globus để triển khai các ứng dụng trên môi trường điện toán lưới.
Áp dụng các thuật toán lập lịch đã được giới thiệu trên bộ công cụ Globus. Cải tiến các thuật toán lập lịch để nâng cao hiệu năng xử lý của hệ thống.
GVPT: PGS.TS Nguyễn Phi Khứ 2013
TÀI LIỆU THAM KHẢO
SÁCH TIẾNG VIỆT
[1] Nguyễn Phi Khứ (2013), Slide bài giảng môn Tính toán lưới, trường Đại học Công nghệ thông tin TP. HCM.
[2] Đàm Quang Hồng Thái (2012), Slide bài giảng môn Tính toán lưới.
[3] Hoàng Lê Minh. Báo cáo tổng quan về tính toán mạng lưới và tính toán hiệu năng cao, Hội thảo toàn quốc về tính toán mạng lưới và tính toán hiệu năng cao, Feb 2004.
SÁCH TIẾNG ANH
[4] Daniel Minoli - A Networking Approach to Grid Computing.
[5] Fangpeng Dong and Selim G. Akl, January 2006, Scheduling Algorithms for Grid Computing:State of the Art and Open Problems, Technical Report No. 2006-504.
[6] Rajkumar Buyya, Manzur Murshed, Scheduling Parameter Sweep Applications On Global Grid: A Deadline And Budget Constrained Cost – Time Optimization Algorithm, In Software-Practice & Experience Volume 35, issue 5, pp. 491-512, John Wiley & Sons Inc, 2005.
[7] Fran Berman, Anthony J.G.Hey, Geoffrey C.Fox – Grid computing: Makethe Global Infrastructure a Reality.
[8] Jarek Nabryski, Jenifer M.Schopf, Jan Weglars - Grid Resource Management.
TRANG WEB
[9] Diễn đàn khoa Toán tin Trường ĐH Khoa học tự nhiên TP. HCM http://www.toantin.org/forums/index.php
[10] IBM Grid Computing: http://www-03.ibm.com/grid/index.shtml [11] Globus website: www.globus.org
[12] Glite website: http://glite.cern.ch/
[13] Unicore website: http://www.unicore.eu/