Ý tưởng của thuật toán Random là gán một cách ngẫu nhiên các tài nguyên (host) đang có sãn cho các tác v (task). Thuật toán không cân nhắc đến trạng thái của tài nguyên là đang bận hay không, vì vậy kết quả của việc lựa chọn một tài nguyên nào đó đang bận hay năng lực xử lý thấp và các công việc đòi hỏi thời gian chờ đợi lâu trước khi được thực thi. Thuật toán có độ phức tạp khá thấp vì nó không đòi hỏi bất kỳ thao tác chu n bị trước khi xử lý nào.
Hình 20 thể hiện quá trình gán các tác v cho các tài nguyên của một lu ng công việc g m 7 tác v (T1 đến T7) cho 4 tài nguyên (H1 đến H4) theo thuật toán Random. Thuật toán thực hiện công việc gán tác v bằng cách lần lượt duyệt qua tất cả các tác v từ T1 đến T7. Với mỗi tác v Ti chọn ngẫu nhiên 1 tài nguyên trong tập tài nguyên Hj từ H1 đến H4 và gán tác v Ti cho tài nguyên Hj. Khi lặp qua tác v T1 thuật toán chọn ngẫu nhiên được tài nguyên H1 trong tập các tài nguyên và gán tác v T1 cho tài nguyên H1. Khi duyệt qua tác v T2 thuật toán chọn ngẫu
nhiên trong tập tác v được tài nguyên H2 và gán tác v T2 cho tài nguyên H2. Tương tự như vậy đối với các tác v T3 được gán cho tài nguyên H1, tác v T4 được gán cho tài nguyên H3, tác v T5 được gán cho tài nguyên H4, tác v T6 được gán cho tài nguyên H2 và tác v T7 được gán cho tài nguyên H4.
Thuật toán Random có các bước chi tiết thực hiện như sau:
Input: tasks : danh sách các tác v ,
hosts: danh sách các tài nguyên sẵn có.
Output: Phương án lập lịch các tác v cho các tài nguyên C c ƣớc thực hiện: 1. Notask ← tasks.size(); 2. Nohost ←hosts.size(); 3. index ← 0; 4. For j ← 0 to Notask do 5. task ← tasks.get(j);
6. index ← random() x (Nohost -1); 7. host← hosts.get(index);
8. stagein ← TransferTime(task,host,in); 9. stageout ← TransferTime(task,host,out); 10. exec ← ExecuteTime(task, host);
11.if (task.AT + stagein + exec +stageout +host.RT ≤ task.DL) then
12. sendjob(task,host); 13. update(host);
T1 T2 T3 T4 T5 T6 T7
H1 H2 H3 H4
Đầu vào g m 2 tập : tập các tác v (tasks) và tập các tài nguyên (hosts). Hai tập này được đánh giá dựa tên kích thước và được sử d ng bởi hai biến tính toán ở bước 1 và bước 2 trong thuật toán với tên tương ứng là Notask và Nohost. Các tài nguyên được khởi tạo với giá trị là 0. Quá trình mô phỏng được thực hiện để xử lý sự xuất hiện của các tác v động. Chỉ số của các tài nguyên được chọn cho tác v hiện thời là ngẫu nhiên bằng cách sử d ng phương trình sau:
index = random() * (Nohost-1),
trong đó:
o index là chỉ số tài nguyên được chọn
o random() : hàm trả về giá trị ngẫu nhiên từ 0 đến 1 o Nohost: Tổng số tài nguyên đang sẵn có.