Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới

25 387 0
Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trư ờ ng Đ ạ i h ọ c Công Ngh ệ Thông Tin – Thành ph ố H ồ Chí Minh Gi ả i thu ậ t ACO và bài toán lập lịch công việc trên môi trường lưới Lớp: Cao học khóa 06 – 2011 Môn học: Điện toán lưới Hướng dẫn: PGS. TS. Nguyễn Phi Khứ Thực hiện: Nguyễn Hữu Việt Long Mã số: CH1101101 07-2013 1 Mục lục 1. Tổng quan 2 2. Bài toán lập lịch trên môi trường lưới 7 2.1 Công việc và ứng dụng 7 2.2 Lập lịch, đặt chỗ và quét dọn 8 3. Giải thuật tối ưu hóa đàn kiến 9 3.1 Giới thiệu chung 9 3.2 Đàn kiến tự nhiên 10 3.3 Đàn kiến nhân tạo 10 3.4 Thuật toán Ant System (AS) 10 4. Tích hợp ACO vào bài toán lập lịch trên môi trường lưới 12 4.1 Tìm kiếm cục bộ 12 4.2 Mô tả vấn đề 12 4.3 Thuật toán lập lịch 15 4.4 Kết quả thực nghiệm 17 5. Kết luận và hướng phát triển. 21 Tài liệu tham khảo 22 2 1. Tổng quan Cũng như các công nghệ tính toán khác, tính toán lưới (grid computing) ra đời xuất phát từ nhu cầu tính toán của con người. Thực tế, ngày càng có nhiều bài toán phức tạp hơn được đặt ra và do đó các tổ chức cũng cần phải có những năng lực tính toán mạnh mẽ hơn. Có thể giải quyết vấn đề này bằng hai cách: Thứ nhất: Đầu tư thêm trang thiết bị, cơ sở hạ tầng tính toán (mua thêm máy chủ, máy trạm, siêu máy tính, cluster ). Rõ ràng là cách làm này hết sức tốn kém. Thứ hai: Một cách thực hiện hiệu quả hơn là phân bố lại hợp lý các nguồn tài nguyên trong tổ chức hoặc thuê thêm các nguồn tài nguyên từ bên ngoài (dĩ nhiên là với chi phí rẻ hơn nhiều so với việc đầu tư cho cơ sở hạ tầng tính toán). Thực tế cho thấy có một phần lớn các nguồn tài nguyên của chúng ta đang bị sử dụng lãng phí: các máy để bàn công sở thường chỉ hoạt động khoảng 5% công suất, ngay cả các máy chủ cũng có thể chỉ phải hoạt động với 20% công suất. Việc tận dụng hiệu quả các nguồn tài nguyên này có thể mang lại một sức mạnh tính toán khổng lồ. Cách giải quyết thứ hai này chính là mục tiêu của tính toán lưới. Tính toán lưới hướng đến việc chia sẻ và sử dụng hiệu quả các nguồn tài nguyên thuộc về nhiều tổ chức trên một quy mô rộng lớn (thậm chí là quy mô toàn cầu). 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 đã biến những khả năng này dần trở thành hiện thực. Các nghiên cứu về tính toán lưới đã và đang được tiến hành nhằm tạo ra một cơ sở hạ tầng lưới cho phép dễ dàng chia sẻ và quản lý các tài nguyên đa dạng và phân tán trong môi trường lưới. Các thách thức mà công nghệ tính toán lưới đang phải giải quyết bao gồm: - Các tài nguyên hết sức đa dạng, không đồng nhất. Tài nguyên ở đây được hiểu theo nghĩa hết sức tổng quát. Đó có thể là các tài nguyên phần cứng: tài nguyên tính toán, tài nguyên lưu trữ, các thiết bị đặc biệt khác ; các tài nguyên phần mềm: các CSDL, các phần mềm đặc biệt và đắt giá ; các đường truyền mạng Các tài nguyên này có thể rất khác nhau về mặt kiến trúc, giao diện, khả năng xử lý Việc tạo ra một giao diện thống nhất cho phép khai thác và sử dụng hiệu quả các nguồn tài nguyên này hoàn toàn không 3 dễ dàng. Ban đầu tính toán lưới được đặt ra chủ yếu là để tận dụng các nguồn tài nguyên tính toán nhưng hiện nay mục tiêu của nó đã được mở rộng sang rất nhiều nguồn tài nguyên khác như đã kể trên. - Các tài nguyên không chỉ thuộc về một tổ chức mà thuộc về rất nhiều tổ chức tham gia lưới. Các tổ chức phải tuân thủ một số quy định chung khi tham gia vào lưới còn nhìn chung là hoạt động độc lập tức là các tài nguyên này đều có quyền tự trị. Các tổ chức khác nhau thường có chính sách sử dụng hay cho thuê tài nguyên của họ khác nhau và do vậy cũng gây khó khăn cho việc quản lý. - Các tài nguyên phân tán rộng khắp về mặt địa lý do vậy phải có các cơ chế quản lý phân tán. - Đảm bảo an toàn thông tin cho một môi trường phức tạp như môi trường lưới là rất khó khăn trong khi đây là một trong những điểm ưu tiên hàng đầu. Hình 1.1: Điện toán lưới Khái niệm Tính toán lưới đã bắt đầu xuất hiện vào đầu thập niên 90 với nghĩa ẩn dụ là làm cho việc sử dụng sức mạnh của máy tính dễ dàng như là việc sử dụng điện năng. Ngày nay có rất nhiều định nghĩa về tính toán lưới. Một định nghĩa về Grid khá hoàn chỉnh được đưa ra bởi tiến sỹ Ian Foster như sau : 4 “Grid là một loại hệ thống song song, phân tán cho phép chia sẻ, lựa chọn, kết hợp các tài nguyên phân tán theo địa lý, thuộc nhiều tổ chức khác nhau dựa trên tính sẵn sàng, khả năng, chi phí của chúng và yêu cầu về chất lượng dịch vụ (QoS) của người dùng để giải quyết các bài toán, ứng dụng có quy mô lớn trong khoa học, kỹ thuật và thương mại. Từ đó hình thành nên các “tổ chức ảo” (Virtual Organization (VO)), các liên minh tạm thời giữa các tổ chức và tập đoàn, liên kết với nhau để chia sẻ tài nguyên và/hoặc kỹ năng nhằm đáp ứng tốt hơn các cơ hội kinh doanh hoặc các dự án có nhu cầu lớn về tính toán và dữ liệu, toàn bộ việc liên minh này dựa trên các mạng máy tính”. Một hệ thống Grid có 3 đặc điểm chính:  Có sự kết hợp, chia sẻ các tài nguyên không được quản lý tập trung.  Sử dụng các giao diện và giao thức chuẩn, mang tính mở, đa dụng.  Đáp ứng yêu cầu cao về chất lượng dịch vụ. Bài toán lập lịch hay lập kế hoạch là một bài toán ta rất hay gặp trong thực tế. Có thể kể ra như lập thời khóa biểu, lập kế hoạch quản lý dự án đều là các bài toán lập lịch tiêu biểu và rất kinh điển. Nội dung của bài toán là tìm ra một bản kế hoạch thực hiện các công việc một cách tối ưu nhất dựa vào tất cả các thông tin đầu vào có được từ tình trạng hiện tại của hệ thống, 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 các bài toán này rất khác nhau. Buyya đề nghị một phương pháp lập lịch cho các ứng dụng nghiên cứu tham số (bao gồm một tập lớn các công việc độc lập trên tập các dữ liệu độc lập). Mô hình này cũng giống như mô hình lập trình đơn chương trình đa dữ liệu (Single Program Multiple Data). Việc lập lịch và điều phối hoạt động của các ứng dụng dạng này trên môi trường tính toán phân tán trên diện rộng tưởng chừng khá đơn giản tuy nhiên các vấn đề phức tạp sẽ nảy sinh khi người dùng đặt ra một số các tham số về chất lượng dịch vụ như thời hạn kết thúc ứng dụng và giới hạn về kinh phí. Những đảm bảo như thế về chất lượng dịch vụ là rất khó thực hiện trong một môi trường như môi trường lưới khi mà các tài nguyên lưới phân tán, không đồng nhất, được sở hữu bởi nhiều tổ chức khác nhau với những chính sách và cơ chế tính giá khác nhau. Thêm vào đó các thuật toán lập lịch phải 5 được thiết kế để thích ứng được với sự thay đổi tải và sự sẵn dùng của tài nguyên cùng lúc với việc phải đảm bảo được thời hạn và kinh phí. Tư tưởng chủ đạo của việc thiết kế các thuật toán lập lịch cho lưới là: không sử dụng các thuật toán tối ưu truyền thống vẫn hay thường được sử dụng trong các bài toán lập lịch mà chủ yếu sử dụng các heuristic [18] (Wikipedia) Hình 1.2: Tối ưu hóa bầy đàn Một trong những giải thuật heuristic đang được nhiều nghiên cứu gần đây áp dụng là giải thuật dựa trên tối ưu hóa bầy đàn (Swarm Optimization). Giải thuật mô hình hóa việc đàn chim hay đàn kiến, đàn ong tìm đến nguồn thức ăn. Tại thời điểm bắt đầu tìm kiếm cả đàn bay (đi) theo một hướng nào đó, có thể là rất ngẫu nhiên. Tuy nhiên sau một thời gian tìm kiếm một số cá thể trong đàn bắt đầu tìm ra được nơi có chứa thức ăn. Tùy theo số lượng thức ăn vừa tìm kiếm, mà cá thể gửi tín hiệu đến các các cá thể khác đang 6 tìm kiếm ở vùng lân cận. Tín hiệu này lan truyền trên toàn quần thể. Dựa vào thông tin nhận được mỗi cá thể sẽ điều chỉnh hướng bay (đi) và vận tốc theo hướng về nơi có nhiều thức ăn nhất. Cơ chế truyền tin như vậy thường được xem như là một kiểu hình của trí tuệ bầy đàn. Cơ chế này giúp cả đàn tìm ra nơi có nhiều thức ăn nhất trên không gian tìm kiếm vô cùng rộng lớn. Kỹ thuật tối ưu hóa bầy đàn được áp dụng trong một số nghiên cứu gần đây [9][10][12]. Giải thuật tối ưu hóa đàn kiến (Ant Colony Optimization – ACO) – do Dorigo đề xuất vào năm 1992 trong luận văn tiến sĩ của ông [17] – là một tiêu biểu cho kỹ thuật loại này. Giải thuật được nghiên cứu áp dụng trong bài toán lập lịch trên môi trường lưới kết hợp kỹ thuật tìm kiếm cục bộ (Local Search) [1][3]. Giải thuật MACO dựa trên ACO được giới thiệu và chứng minh được hiệu quả của nó khi so sánh với các giải thuật khác [4]. ACO được cải tiến nhiều để ngày một hiệu quả hơn. Khi cải tiến kỹ thuật rải pheromone so với phương pháp truyền thống, ACO chạy hiệu quả hơn trong bài toán lập lịch trên lưới [11]. Một nghiên cứu năm 2013 đã thêm vào giá trị Trust Factor để xây dựng nên Trust Ant Colony Optimization (TACO) [5]. ACO còn được đem lai với kỹ thuật Cuckoo Search để nâng cao tính hiệu quả [7]. Chất lượng dịch vụ (QoS) luôn đóng vai trò quan trọng trong bài toán lập lịch các công việc trên môi trường lưới. Nhiều nghiên cứu đã tích hợp thêm các tham số chi phí [6] vào giải thuật ACO để nhằm cải tiến chất lượng dịch vụ trên lưới [8][16]. Cân bằng tải (load balancing) cũng được xem xét và áp dụng giải thuật ACO để nâng cao hiệu quả [13]. Bên cạnh ACO, những giải thuật về đàn cá nhân tạo (Artificial Fish Swarm) [2], giải thuật tối ưu hóa bầy ong (artificial bee colony optimization) [15] cũng được nghiên cứu và áp dụng thành công trong bài toán lập lịch. Mỗi kỹ thuật đều có ưu nhược điểm riêng, ACO cũng được trình bày và so sánh với các giải thuật bầy đàn khác [14]. Báo cáo này tập trung trình bày về giải thuật tối ưu hóa đàn kiến và bài toán lập lịch trên lưới. Đồng thời, khảo sát một số công trình nghiên cứu gần đây có tích hợp kỹ thuật tối ưu hóa đàn kiến vào giải quyết bài toán lập lịch trên lưới. 7 2. Bài toán lập lịch trên môi trường lưới 2.1 Công việc và ứng dụng Dù rất nhiều loại tài nguyên của lưới được chia sẻ và sử dụng, chúng luôn luôn được truy cập thông qua ứng dụng hay công việc. Chúng ta dùng định nghĩa “ứng dụng” như là cấp cao nhất của công việc trên lưới. Tuy nhiên từ “công việc” cũng được dùng với nghĩa tương đương. Ứng dụng có thể được chia thành nhiều công vỉệc. Các công việc, có thể được chia tiếp thành các công việc nhỏ hơn. Lưới còn dùng các thuật ngữ giao dịch, đơn vị công việc để chỉ công việc. Hình 2.1: Một ứng dụng có thể là một hay nhiều công việc được lập lịch chạy trên lưới 8 Công việc là những chương trình được thưc thi trên một điểm của lưới. Chúng có thể là thực hiện tính toán, thi hành một câu lệnh, di chuyển dữ liệu. Một ứng dụng trên lưới được tổ chức như tập hợp các công việc được thiết kế để chạy Song Song trên các máy khác nhau. Các công việc có thể bị phụ thuộc lẫn nhau nên không phải lúc nào cũng có thể cùng một lúc chạy song song. Ví dụ, ta có một công việc yêu cầu dữ liệu đầu vào phải được copy đến một máy. Một vài công việc khác đòi hỏi dữ liệu đầu ra, nhưng chúng không thể thực thi nếu công việc trước chưa được hoàn thành. Một công việc có thể sinh ra nhiều công việc con khác nhau. Sau đó, dữ liệu của tất cả các công việc con được tập hợp để tạo nên kết quả cuối cùng của ứng dụng. 2.2 Lập lịch, đặt chỗ và quét dọn Hệ thống lưới có nhiệm vụ gửi các công việc đến các máy cần thiết để thực thi. Với hệ thống lươí đơn giản nhất, người sử dụng sẽ chọn máy thích hợp cho công việc của anh ta, sau đó thực hiện dòng lệnh để đưa công việc đó đến máy đã chọn. Các hệ thống lưới hiện đại hơn bao gồm một bộ lập lịch có tác dụng tự động tìm kiếm những máy tính thích hợp cho công việc đang chợ đợi thực thi. Trong các hệ thống lưới quét dọn, mỗi máy tính nhàn rỗi sẽ gửi thông báo tình trạng của mình đến điểm quản lý của lưới. Điểm quản lý này sẽ chỉ định cho máy này thực hiện công việc tiếp theo mà máy có thể thực thi được. Việc này được thực hiện một cách kín đáo đối với những người sử dụng bình thường. Nếu máy tính bận với những công việc riêng của máy, thì công việc trên lương sẽ tạm ngưng. Điều này khiến cho khó có thể tính được thời gian hoàn thành công việc trên lưới. Ứng dụng chạy ở chế độ quét dọn sẽ đặt nó vào trong hệ thống với độ ưu tiên thấp nhất. Vì thế, nó sẽ chỉ được chạy khi không có bất cứ chương trình nào khác đang chạy. Với những bộ xử lý tốc độ cao ngày nay, ứng dụng lưới có thể chạy trong vài phần trăm giây, thậm chí là giữa các lần bấm phím của người dùng. 9 Để chó thể dự đoán dễ dàng hơn, các máy tính trên lưới thường được thiết kế riêng cho lưới và không bị chi phối bởi các công việc khác. Điều này cho phép bộ lập lịch có thể tính toán thời gian trung bình để hoàn thành các công việc. Các tài nguyên trên lưới có thể được đặt chỗ trước với một tập hợp công việc. Sự đặt chỗ này giống như hệ thống sắp xếp đặt phòng. Nó bảo đảm sự hoàn thành đúng hạn và chất lượng dịch vụ. Khi quyền hạn được thông qua, tài nguyên đặt chỗ có thể được quét dọn để chạy những công việc có độ ưu tiên thấp trong khi chờ những công việc đã đặt trước nó. Với sự kết hợp của lập lịch, đặt chỗ, quét dọn có thể tạo ra một lưới hoàn hảo. Lập lịch và đặt chỗ có thể tiến hành dễ dàng nếu chỉ cố một tài nguyên tham gia như CPU. Tuy nhiên việc tối ưu trên grid sẽ dùng nhiều tài nguyên cho việc đặt chỗ và lập lịch. Ví dụ, ta luôn muốn công việc được phân công cho máy gần dữ liệu mà công việc dùng nhất. Điều đó làm giaim3 lưu lượng băng thông và tăng khả năng mở rộng. Chính vì vậy, bộ lập lịch sẽ sử dụng đến kinh nghiệm. Kinh nghiệm sẽ giúp tìm ra sự kết hợp tốt nhất cho lập lịch và đặt chỗ để đạt hiệu quả cao nhất. Nhiều thuật toán lập lịch có sử dụng yếu tố kinh nghiệm và heuristic vào để quá trình lập lịch thêm hiệu quả. Một trong những phương pháp được quan tâm sử dụng gần đây là kỹ thuật tối ưu hóa đàn kiếm (Ant Colony Optimization) 3. Giải thuật tối ưu hóa đàn kiến 3.1 Giới thiệu chung Tối ưu hóa thuật toán đàn kiến (Ant Colony Optimization - ACO) là một trong các thuật toán MetaHeuristic được thiết kế để giải quyết các bài toán tối ưu tổ hợp, sử dụng phương pháp tính xác suất để tìm đường đi ngắn nhất của đồ thị. Hệ thống ACO lần đầu tiên được Marco Dorigo giới thiệu trong luận văn của mình vào năm 1992, và được gọi là Hệ thống kiến (Ant System, hay AS). [...]... giới thiệu kỹ thuật xếp lịch dựa trên thuật toán tối ưu hóa đàn kiến và kỹ thuật tìm kiếm cục bộ Hệ thống lưới cung cấp một môi trường thời gian thực phân tán không có bộ điều khiển toàn cục để lập lịch Trong nghiên cứu đó, thuật toán được thiết kế và đem so sánh trên các môi trường lưới khác nhau Việc sử dụng ACO giúp cho khối lượng công việc trên lưới cân bằng hơn Thuật toán AC+LS và AE+LS cải tiến... đích [17] 4 Tích hợp ACO vào bài toán lập lịch trên môi trường lưới Kousalya.K và Balasubramanie.P trong một nghiên cứu năm 2008 đã giới thiệu kỹ thuật lập lịch trên lưới dựa trên giải thuật ACO kết hợp với Tìm kiếm cục bộ (Local Search) [1] 4.1 Tìm kiếm cục bộ Kỹ thuật tìm kiếm cục bộ (local search) hay còn gọi là tìm kiếm địa phương thường được áp dụng để giải các bài toán tìm lời giải tối ưu Phương... ants(k) sử dụng trong thuật toán là 2 Giá trị biến free là một ma trận 1 chiêu cho kích thước m và giá trị 0 trên mỗ ô vì thuật toán giả sử rằng tất cả tài nguyên là sẵn dùng chỉ để cho lập lịch trên lưới Chi tiết mã giả của thuật toán lập lịch 15 Dữ liệu đầu ra của thuật toán trên sẽ được gửi tới thuật toán thứ 2 Thuật toán này sử dụng kỹ thuật tìm kiếm cục bộ (local search) và giảm thiểu makespan... tác vụ 14 và một tài nguyên, chúng thêm vào danh sách Ở mỗi vòng lặp, kiến tính toán hàm cực tiểu Fk (của con kiến thứ k) và mật độ pheromone Trong thuật toán kiến, 2 tập các tác vụ được lưu giữ: tập các tác vụ đã lập lịch và tập các tác vụ vừa được đưa vào, chưa lập lịch Thuật toán bắt đầu khi tập các tác vụ đã lập lịch là trống 4.3 Thuật toán lập lịch Định nghĩa 4: Công thức lựa chọn công việc tiếp... chuyển tới bộ xếp lịch, nó ngay lập tức được cấp phát cho tài nguyên được yêu cầu bởi công việc đó Mỗi công việc được xem xét 1 lần cho việc sắp xếp lịch Ở trạng thái batch mode, các công việc và tài nguyên được thu thập đầy đủ trước khi lập lịch Trạng thái này giúp cho việc ra quyết định tốt hơn vì bộ xếp lịch nắm rõ những tài nguyên sẵn có cũng như công việc cần xử lý Giải thuật ACO được trình bày... trình bày cũng triển khai trên batch mode Kết quả của thuật toán sẽ có 4 giá trị: công việc, máy, thời gian bắt đầu và thời gian dự kiến hoàn thành Số lượng công việc cần để lập lịch thường luôn lớn hơn số lượng máy sẵn dùng trên lưới Thời gian rảnh của máy Mj được ký hiệu là hàm free(j) Định nghĩa 2: Thời gian bắt đầu của công việc ti trên tài nguyên Mj là Bi = free(j) + 1 Và giá trị free(j) mới được... bộ lập lịch là cấp phát các công việc tới các nút đang rảnh Sự sắp xếp phù hợp nhất phải được tìm ra từ danh sách các công việc và danh sách các tài nguyên đang rảnh Sự chọn lựa dựa trên việc dự đoán khả năng tính toán của tài nguyên Vì vậy, rất nhiều vấn đề cần được giải quyết trong lĩnh vực này Bộ lập lịch phải cấp phát các công việc tới các tài nguyên một cách hiệu quả Mức độ hiệu quả phụ thuộc vào... makespan cho các thuật toán (đơn vị thời gian tùy ý): 4.4 Kết quả thực nghiệm Các kết quả thực nghiệm được so sánh giữa Max-Min, Min-Min, giải thuật kiến không có thời gian xử lý và thời gian hoàn thành (AWOEC), giải thuật kiến với thời gian xử lý (AE), giải thuật AE kết hợp tìm kiếm cục bộ (AE+LS) được đề xuất và giải thuật kiến với tìm kiếm cục bộ (AC) Tất cả các thực thể bao gồm 512 công việc và 16 máy... AC và AE bằng cách kết hợp chúng với kỹ thuật tìm kiếm cục bộ Chúng tìm ra những giải pháp tốt hơn khi đem so sánh với các kỹ thuật khác 21 Trong môi trường grid, thuật toán AC+LS và AE+LS đạt thong lượng cao khi đem so sánh với AE, AWOEC và AC Trong những thuật toán này, thời gian hoàn thành tác vụ là một trong những tham số chính Trong tương lai, việc xem xét các nhân tố khác như khối lượng công việc. .. lượng các máy là m Trước khi lập lịch, thời gian xử lý mong muốn cho mỗi tác vụ trên mỗi máy phải được ước lượng và trình bày trên một ma trận ET Mỗi hàng của ma trận gồm các thời gian mong muốn cho một công việc trên từng tài nguyên Mỗi cột của ma trận gồm các thời gian xử lý mong muốn của một tài khuyên khi xử lý các công việc ETij là thời gian xử lý mong muốn của công việc ti và máy mj Ta giả sử không . Tích hợp ACO vào bài toán lập lịch trên môi trường lưới Kousalya.K và Balasubramanie.P trong một nghiên cứu năm 2008 đã giới thiệu kỹ thuật lập lịch trên lưới dựa trên giải thuật ACO kết hợp. kiến và bài toán lập lịch trên lưới. Đồng thời, khảo sát một số công trình nghiên cứu gần đây có tích hợp kỹ thuật tối ưu hóa đàn kiến vào giải quyết bài toán lập lịch trên lưới. 7 2. Bài. 07-2013 1 Mục lục 1. Tổng quan 2 2. Bài toán lập lịch trên môi trường lưới 7 2.1 Công việc và ứng dụng 7 2.2 Lập lịch, đặt chỗ và quét dọn 8 3. Giải thuật tối ưu hóa đàn kiến 9 3.1 Giới

Ngày đăng: 09/04/2015, 16:03

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan