1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khảo sát các giải thuật định thời trong hệ thống bất đồng nhất và xây dựng một giải thuật định thời hướng đến chất lượng dịch vụ

66 32 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 66
Dung lượng 0,96 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Việc áp dụng các giải thuật định thời này lên một hệ thống cụ thể cho một ứng dụng cụ thể nào đó thường sẽ không đạt được kết quả tốt so với những giải thuật được thiết kế để dành riêng

Trang 3

ĐẠI HỌC QUỐC GIA TP HCM CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM

- -oOo -

Tp HCM, ngày 05 tháng 11 năm 2007

NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ và tên học viên : Trần Ngọc Minh Giới tính : Nam ;/ Nữ … Ngày, tháng, năm sinh : 15/12/1982 Nơi sinh : Đồng Nai

Chuyên ngành : Khoa học Máy tính

Khóa : 2005

1- TÊN ĐỀ TÀI :

KHẢO SÁT CÁC GIẢI THUẬT ĐỊNH THỜI TRONG HỆ THỐNG BẤT ĐỒNG NHẤT VÀ XÂY DỰNG MỘT GIẢI THUẬT ĐỊNH THỜI HƯỚNG ĐẾN CHẤT LƯỢNG DỊCH VỤ

2- NHIỆM VỤ LUẬN VĂN :

3- NGÀY GIAO NHIỆM VỤ :

4- NGÀY HOÀN THÀNH NHIỆM VỤ :

5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : TS Nguyễn Tuấn Anh

Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua

CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN

(Họ tên và chữ ký)

Trang 4

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

Cán bộ hướng dẫn khoa học : TS Nguyễn Tuấn Anh

Cán bộ chấm nhận xét 1 :

Cán bộ chấm nhận xét 2 :

Luận văn thạc sĩ được bảo vệ tại

HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ

TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày tháng năm 2007

Trang 5

LỜI CAM ĐOAN

Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi

rõ trong luận văn, các công việc trình bày trong luận văn này là do chính tôi thực hiện

và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác

Ngày 05 tháng 11 năm 2007

Trần Ngọc Minh

Trang 6

LỜI CẢM ƠN

Tôi xin gởi lời cảm ơn chân thành và sâu sắc nhất đến TS Nguyễn Tuấn Anh, người thầy, người anh đã tận tình hướng dẫn tôi trong suốt quá trình làm luận văn và tạo mọi điều kiện để tôi có thể hoàn thành luận văn này

Tôi cũng xin cảm ơn GS Hans Georg Bock và viện Interdisciplinary Center for Scientific Computing, trường đại học Heidelberg đã tạo điều kiện cho tôi nghiên cứu một tháng tại Đức để đầu tư cho luận văn

Tôi vô cùng biết ơn gia đình đã động viên và tạo mọi điều kiện tốt nhất để tôi có thể tiếp tục theo đuổi việc học tập nghiên cứu Tôi trân trọng dành tặng thành quả của luận văn này cho Cha Mẹ Nhờ công lao dưỡng dục của Người mà chúng con mới có được thành quả như ngày hôm nay Con xin hứa sẽ tiếp tục cố gắng phấn đấu để vươn cao hơn nữa

Trang 7

TÓM TẮT LUẬN VĂN

Tính toán song song hiệu năng cao là một chủ đề nghiên cứu thiết thực trong suốt hơn nhiều thập kỷ qua Nhiều ứng dụng lớn không thể được thực thi tuần tự trên một máy đơn mà đòi hỏi phải có nhiều tài nguyên tính toán song song phục vụ như các ứng dụng về thiết kế vi mạch, dự báo thời tiết, khai phá dữ liệu hoặc các ứng dụng có ràng buộc thời gian thực thi Hiệu quả của việc thực thi một chương trình ứng dụng trên một hệ thống song song phụ thuộc rất nhiều vào quyết định của bộ định thời Xây dựng một giải thuật định thời là một công việc quan trọng Hầu hết các giải thuật định thời được đưa ra một cách tổng quát để áp dụng cho một hệ thống nói chung, đồng nhất hay không đồng nhất Việc áp dụng các giải thuật định thời này lên một hệ thống

cụ thể cho một ứng dụng cụ thể nào đó thường sẽ không đạt được kết quả tốt so với những giải thuật được thiết kế để dành riêng cho hệ thống và loại ứng dụng đó

Trong phạm vi của đề tài này, chúng tôi sẽ trình bày một loại ứng dụng có đòi hỏi chặt chẽ về chất lượng dịch vụ từ người sử dụng Đó là một lớp bài toán có ràng buộc thời gian thực thi [23] Chúng tôi cũng đặt ra vấn đề định thời đối với loại bài toán này trên các hệ thống song song bất đồng nhất Vấn đề chúng tôi nêu ra tương đối mới theo như khảo sát của mình Không gian giải pháp của vấn đề là tương đối lớn Chúng tôi cũng

đề nghị một khung giải thuật định thời để giải quyết vấn đề Bản thân khung giải thuật định thời không phải là giải pháp cuối cùng của vấn đề mà chỉ nhằm mục tiêu thu nhỏ không gian giải pháp để giúp cho các giải thuật tìm kiếm có thể hội tụ nhanh hơn Ngoài ra, chúng tôi cũng xây dựng các giải thuật định thời dựa trên khung giải thuật định thời để giải quyết vấn đề này Chúng tôi cũng đã đánh giá kết quả các giải thuật này Dựa vào kết quả đánh giá, chúng tôi chọn ra được một giải thuật tương đối tốt cả

về kết quả lẫn thời gian chạy giải thuật

Trang 8

ABSTRACT

High Performance Computing (HPC) is the key to fulfill the high demands on computational resources in scientific computing Several big applications such as data mining, electronic design, weather forecast, or time constrained problems could not be executed sequentially, but need more resources to be run in parallel It is very important to build an effective scheduler because it decides the utilization of parallel systems Most scheduling algorithms are designed in general without concerning the characteristics of the system as well as the application These general algorithms are usually not as good as specific algorithms which take application characteristics into account when applied for a specific application

In this document, we will present a class of time constrained problems [23] and bring

up a scheduling problem for it on heterogeneous systems The solution space for this scheduling problem is rather big We also propose a scheduling algorithm framework

to solve the problem The framework by itself is not the final solution It only aimes to simplify the solution space so that search algorithms could converge quickly In addition, we also build scheduling algorithms based on the proposed framework to solve the scheduling problem After evaluating these algorithms, we select one which

is good in consideration of both result and performance

Trang 9

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

TÓM TẮT LUẬN VĂN iii

ABSTRACT iv

DANH MỤC HÌNH vii

DANH MỤC BẢNG viii

Chương 1 Giới thiệu đề tài 1

1.1 Giới thiệu và mục tiêu của đề tài 1

1.2 Động lực của đề tài 2

1.3 Cấu trúc luận văn 2

Chương 2 Các công trình khoa học liên quan 5

2.1 Phần mềm quản lý tài nguyên Portable Batch System và bộ định thời Maui5 2.2 Phần mềm quản lý tài nguyên và định thời Computing Center Software 6

2.3 Các phương pháp định thời cổ điển 7

2.3.1 Phương pháp định thời Space-sharing 7

2.3.2 Phương pháp định thời Time-sharing 8

2.3.3 Phương pháp định thời Hybrid 9

2.4 Các giải thuật định thời hướng đến chất lượng dịch vụ 9

2.4.1 QoS Guided Min-Min Heuristic 9

2.4.2 Giải thuật định thời thỏa mãn ngân sách và hạn cuối 10

Chương 3 Cơ sở lý thuyết định thời 12

3.1 Các hệ thống cần sử dụng bài toán định thời 12

3.1.1 Cluster và vấn đề định thời trong cluster 12

3.1.2 Grid và vấn đề định thời trong Grid 13

3.2 Các lớp ứng dụng song song 17

3.2.1 Embarrassingly Parallel Computations 17

3.2.2 Lớp ứng dụng Divide and Conquer 18

3.2.3 Lớp bài toán số học 19

3.3 Một số heuristic sử dụng cho bài toán định thời 20

3.3.1 Simulated Annealing 20

3.3.2 Genetic Algorithm 21

3.3.3 Clustering và Scheduling 22

3.3.4 Best First Search 23

Chương 4 Vấn đề định thời cho bài toán có ràng buộc thời gian 24

4.1 Miêu tả hệ thống 24

4.2 Bài toán có ràng buộc thời gian 25

4.2.1 Cây phân rã (DT) 25

4.2.2 Đồ thị phụ thuộc phân rã (DDG) 26

Trang 10

4.2.3 Lát cắt phân rã (Decomposition Cut – DC) 26

4.2.4 Giải quyết bài toán có ràng buộc thời gian 27

4.3 Phát biểu vấn đề định thời cho lớp bài toán có ràng buộc thời gian 29

Chương 5 Xây dựng khung giải thuật định thời 30

5.1 Không gian giải pháp (Solution Space) 30

5.1.1 Không gian bên ngoài (outer space) 31

5.1.2 Không gian bên trong (inner space) 33

5.2 Khung giải thuật định thời 34

Chương 6 Các giải thuật định thời cho bài toán có ràng buộc thời gian 36

6.1 Xây dựng không gian tìm kiếm ngoài 36

6.1.1 Simulated Annealing (SA) 36

6.1.2 Best First Search 38

6.2 Xây dựng không gian tìm kiếm trong 39

6.2.1 Genetic Algorithm (GA) 39

6.2.2 Approximately Equal (AE) 41

6.2.3 Dredge (D) 41

Chương 7 Đánh giá các giải thuật định thời 43

7.1 Phương pháp đánh giá 43

7.2 So sánh kết quả giữa các giải thuật 44

7.3 Đánh giá hiệu quả của các giải thuật 48

Chương 8 Tổng kết 51

8.1 Những công việc đã được thực hiện trong luận văn 51

8.2 Hướng phát triển của luận văn 51

TÀI LIỆU THAM KHẢO 53

Trang 11

DANH MỤC HÌNH

Hình 1 Framework QoS Guided Min-Min Heuristic 10

Hình 2 Quản lý tài nguyên và định thời trong Cluster 13

Hình 3 Kiến trúc quản lý tài nguyên trong Grid 14

Hình 4 Bộ khung định thời trong Grid 16

Hình 5 Bài toán nhân ma trận 19

Hình 6 Tổng quát giải thuật Simulated Annealing .21

Hình 7 Tổng quát giải thuật di truyền 22

Hình 8 Miêu tả hệ thống .24

Hình 9 Decomposition Tree .26

Hình 10 Decomposition Dependency Graph 26

Hình 11 Decomposition Cuts .27

Hình 12 Giải thuật giải quyết bài toán có ràng buộc thời gian 28

Hình 13 Số lượng giải pháp của một cây phân rã 30

Hình 14 Các thể hiện của không gian bên ngoài .32

Hình 15 Thủ tục TraverseOuterSpace 32

Hình 16 Mối quan hệ giữa không gian bên ngoài và không gian bên trong 33

Hình 17 Thủ tục SearchOuterSpace .35

Hình 18 Mô tả neighbor trong giải thuật SA .37

Hình 19 Giải thuật tính Neighbor của giải pháp S 38

Hình 20 Cây tìm kiếm ở không gian bên ngoài 38

Hình 21 Mô tả sự đột biến và lai ghép gen trong giải thuật GA 40

Hình 22 Giải thuật Dredge 41

Hình 23 So sánh thời gian khi chạy trên hệ thống gồm 5 tài nguyên .44

Hình 24 So sánh thời gian khi chạy trên hệ thống gồm 6 tài nguyên .45

Hình 25 So sánh thời gian khi chạy trên hệ thống gồm 7 tài nguyên .46

Hình 26 So sánh thời gian khi chạy trên hệ thống gồm 8 tài nguyên .47

Hình 27 So sánh thời gian khi chạy trên hệ thống gồm 9 tài nguyên .47

Hình 28 Hiệu quả của các giải thuật khi số lượng tài nguyên thay đổi .49

Hình 29 Hiệu quả của các giải thuật khi số lượng bài toán thay đổi .50

Trang 12

DANH MỤC BẢNG

Bảng 1 Số liệu về thời gian kết quả trên hệ thống gồm 5 tài nguyên 44

Bảng 2 Số liệu về thời gian kết quả trên hệ thống gồm 6 tài nguyên 45

Bảng 3 Số liệu về thời gian kết quả trên hệ thống gồm 7 tài nguyên 46

Bảng 4 Số liệu về thời gian kết quả trên hệ thống gồm 8 tài nguyên 46

Bảng 5 Số liệu về thời gian kết quả trên hệ thống gồm 9 tài nguyên 47

Bảng 6 Hiệu quả của các giải thuật khi số lượng tài nguyên thay đổi .49

Bảng 7 Hiệu quả của các giải thuật khi số lượng bài toán thay đổi .49

Trang 13

Chương 1 Giới thiệu đề tài

Chương này giới thiệu chung về bối cảnh, mục tiêu và kết quả thu được của đề tài Cấu trúc nội dung của quyển thuyết minh được trình bày ở cuối chương

1.1 Giới thiệu và mục tiêu của đề tài

Xử lý song song là một lĩnh vực tính toán quan trọng và phổ biến, đã và đang được phát triển để đáp ứng yêu cầu của các ứng dụng tính toán đòi hỏi hiệu suất cao (high-performance) hay thỏa mãn chất lượng dịch vụ (quality of service) Hiệu quả của việc thực thi một chương trình ứng dụng trên một hệ thống song song phụ thuộc vào nhiều yếu tố như bản chất của ứng dụng, khả năng của các tài nguyên hệ thống, các yêu cầu dịch vụ của người sử dụng,…

Đứng ở góc độ hệ thống (system view), chúng ta luôn mong muốn hệ thống hoạt động với khả năng tốt nhất, có nghĩa là hệ thống thực thi được càng nhiều ứng dụng càng tốt Để làm được điều này đòi hỏi phải có một cách nào đó để quản lý các tài nguyên

hệ thống một cách hiệu quả Và động cơ này đã dẫn đến sự ra đời của các phần mềm quản lý tài nguyên, trong đó thành phần quan trọng nhất của một phần mềm quản lý tài nguyên là bộ định thời (scheduler) Chính bộ định thời sẽ quyết định thời điểm cũng như tài nguyên mà trên đó các công việc sẽ được thực thi Điều này sẽ quyết định đến hiệu suất của hệ thống Vì vậy, xây dựng một giải thuật định thời là một công việc rất quan trọng Bài toán định thời là bài toán cổ điển và đã có rất nhiều giải thuật định thời được đề nghị Tuy nhiên, hầu hết các giải thuật được đưa ra một cách tổng quát để áp dụng cho một hệ thống nói chung, đồng nhất hay không đồng nhất Do đó, việc áp dụng các giải thuật định thời này lên một hệ thống cụ thể cho một ứng dụng cụ thể nào

đó thường sẽ không đạt được kết quả tốt so với những giải thuật được thiết kế để dành riêng cho một hệ thống và loại ứng dụng cụ thể do các giải thuật tổng quát thường không sử dụng hiệu quả các thông tin cụ thể về hệ thống và ứng dụng

Trong phạm vi của đề tài này, chúng tôi sẽ trình bày một loại ứng dụng có đòi hỏi chặt chẽ chất lượng dịch vụ từ người dùng Loại ứng dụng này là một lớp bài toán có ràng buộc về thời gian thực thi [23], có nghĩa là ứng dụng cần phải được thực thi và hoàn

Trang 14

thành trong một khoảng thời gian nào đó do người sử dụng yêu cầu Một ví dụ cho ứng dụng loại này chính là những ứng dụng thời gian thực (real-time applications) Lớp bài toán có ràng buộc về thời gian thực thi mà chúng tôi muốn giới thiệu được biểu diễn bởi một cơ chế song song hóa động (dynamic parallelism scheme) [23] và thời gian ràng buộc T Cơ chế song song hóa động cho phép các ứng dụng tự động được phân rã song song dựa trên các tài nguyên có sẵn

Chúng tôi cũng đặt ra vấn đề định thời đối với loại bài toán này trên các hệ thống song song bất đồng nhất (heterogeneous system) Vấn đề chúng tôi nêu ra tương đối mới theo như khảo sát của mình Không gian giải pháp của vấn đề là tương đối lớn Chúng tôi cũng đề nghị một khung giải thuật định thời để giải quyết vấn đề Bản thân khung giải thuật định thời không phải là giải pháp cuối cùng của vấn đề mà chỉ nhằm mục tiêu thu nhỏ không gian giải pháp để giúp cho các giải thuật tìm kiếm có thể hội tụ nhanh hơn Ngoài ra, chúng tôi cũng xây dựng các giải thuật định thời dựa trên khung giải thuật định thời để giải quyết vấn đề này Chúng tôi cũng đã đánh giá kết quả các giải thuật này Dựa vào kết quả đánh giá, chúng tôi chọn ra được một giải thuật tương đối tốt cả về kết quả lẫn thời gian chạy giải thuật

1.2 Động lực của đề tài

Các bài toán có ràng buộc thời gian thực thi, đặc biệt là các bài toán đòi hỏi có đáp ứng thời gian thực là những bài toán rất phổ biến trong thực tế Thông thường thì các ứng dụng có ràng buộc thời gian sẽ được thực thi song song để có thể thỏa mãn thời gian ràng buộc dễ dàng hơn Hầu hết mọi người thường quan tâm đến việc làm sao có thể giải quyết bài toán mà vẫn thỏa mãn ràng buộc thời gian và ít khi quan tâm đến hiệu suất của hệ thống Trong đề tài này, chúng tôi giới thiệu một lớp bài toán có ràng buộc thời gian và đặt ra vấn đề làm sao để giải quyết các bài toán này sao cho thỏa mãn các ràng buộc mà vẫn đảm bảo tận dụng tốt hiệu suất của hệ thống

1.3 Cấu trúc luận văn

Nội dung của luận văn được chia thành 3 khối kiến thức chính:

Trang 15

¾ Khảo sát các vấn đề liên quan đến đề tài cũng như là giới thiệu các cơ sở lý thuyết của đề tài Phần kiến thức này được trình bày trong các Chương 2 và Chương 3

¾ Chương 4 trình bày bài toán có ràng buộc thời gian và miêu tả vấn đề định thời cho bài toán này

¾ Chương 5 và Chương 6 sẽ trình bày cách giải quyết cho vấn đề mà chúng tôi đặt ra trong Chương 4 Chương 7 sẽ trình bày phần thực nghiệm và đánh giá các giải thuật

Sau đây chúng tôi sẽ trình bày tóm tắt nội dung của các chương trong luận văn:

Chương 1 Giới thiệu đề tài

Chương 1 giới thiệu chung về bối cảnh, mục tiêu và kết quả thu được của đề tài Cấu trúc nội dung của quyển thuyết minh được trình bày ở cuối chương

Chương 2 Các công trình khoa học liên quan

Trong Chương 2, chúng tôi sẽ giới thiệu qua một số phần mềm quản lý tài nguyên đang được sử dụng khá phổ biến trên thế giới và cách giải quyết vấn đề định thời trên các phần mềm này Ngoài ra, chúng tôi cũng khảo sát các phương pháp định thời hiện đang được sử dụng rộng rãi Về mặt giải thuật, chúng tôi sẽ trình bày 2 loại: giải thuật định thời hiệu năng cao (High-Performance) và giải thuật định thời hướng đến chất lượng dịch vụ (Quality of Service hay QoS)

Chương 3 Cơ sở lý thuyết

Chúng tôi sẽ trình bày ở Chương 3 vấn đề định thời trong hai loại hệ thống song song

và phân bố khá phổ biến hiện nay là Cluster và Grid cùng với một vài heuristic thường được sử dụng cho bài toán định thời Ngoài ra, chúng tôi cũng giới thiệu một số lớp ứng dụng song song phổ biến hiện nay như Embarrassingly Parallel Computations, Divide and Conquer, lớp bài toán số học

Chương 4 Vấn đề định thời cho bài toán có ràng buộc thời gian

Trong Chương 4, trước hết chúng tôi sẽ trình bày một lớp bài toán có ràng buộc thời gian và giả thiết về hệ thống sẽ thực thi loại bài toán này Sau đó, chúng tôi sẽ phát

Trang 16

biểu vấn đề định thời cho lớp bài toán có ràng buộc thời gian trên hệ thống đã được miêu tả

Chương 5 Xây dựng khung giải thuật định thời

Trong Chương 5, chúng tôi sẽ trình bày một khung giải thuật định thời do chúng tôi đề nghị để giải quyết vấn đề được đặt ra trong phần 4.3 Bản thân khung giải thuật định thời này không phải là một giải pháp cuối cùng cho vấn đề định thời được đặt ra trong phần 4.3 mà chỉ nhằm mục đích làm giảm không gian giải pháp để giúp cho các giải

thuật tìm kiếm hội tụ nhanh hơn

Chương 6 Các giải thuật định thời cho bài toán có ràng buộc thời gian

Trong Chương 6 chúng tôi sẽ trình bày một số giải thuật định thời do chúng tôi đề nghị

để giải quyết vấn đề định thời được đặt ra trong phần 4.3 dựa trên khung giải thuật định thời đã được xây dựng trong Chương 5

Chương 7 Đánh giá các giải thuật định thời

Chương 7 trình bày kết quả thực nghiệm và so sánh đánh giá các giải thuật định thời

do chúng tôi đề nghị dựa trên việc kết hợp các giải thuật đã được xây dựng trong Chương 6

Chương 8 Tổng kết

Chương 8 tổng kết lại những công việc đã làm được, sau đó nêu ra những đóng góp và hướng phát triển của luận văn

Trang 17

Chương 2 Các công trình khoa học liên quan

Trong phần này, chúng tôi sẽ giới thiệu qua một số phần mềm quản lý tài nguyên được

sử dụng khá phổ biến trên thế giới và cách giải quyết vấn đề định thời trên các phần mềm này Ngoài ra, chúng tôi cũng khảo sát các phương pháp định thời hiện đang được sử dụng rộng rãi Về mặt giải thuật, chúng tôi sẽ trình bày 2 loại: giải thuật định thời hiệu năng cao (High-Performance) và giải thuật định thời hướng đến chất lượng dịch vụ (Quality of Service hay QoS)

2.1 Phần mềm quản lý tài nguyên Portable Batch System và bộ

định thời Maui

Portable Batch System (PBS) [1][2][3] là một hệ thống quản lý tài nguyên, hoạt động trên môi trường mạng bao gồm các cluster bất đồng nhất Mục đích của PBS là để cung cấp các điều khiển khởi tạo hay định thời (scheduling) việc thực thi các công việc

bó, và cho phép việc tìm đường của các công việc này giữa các máy khác nhau Hiện tại, bộ định thời mặc định trong PBS sử dụng giải thuật First In First Out (FIFO) thường hoạt động không hiệu quả Bộ định thời này sẽ duyệt qua danh sách hàng đợi công việc và sẽ khởi động bất kỳ công việc nào phù hợp với các tài nguyên đã sẵn sàng Ngoài ra, PBS cũng cho phép tích hợp bộ định thời khác vào để thay thế bộ định thời hiện tại một cách dễ dàng Xu hướng mà cộng đồng trên thế giới thường làm khi

sử dụng PBS là dùng giải thuật định thời phù hợp với chính sách định sẵn để thay thế giải thuật FIFO Maui [21] là một bộ định thời như vậy, thích hợp cho các môi trường tính toán hiệu năng cao Maui sử dụng các chính sách định thời tổng hợp để tối ưu việc tận dụng tài nguyên và thời gian hoàn thành công việc Maui cung cấp các điều khiển

về tài nguyên và tải công việc, cho phép cấu hình trong các lĩnh vực như sắp xếp độ ưu tiên, định thời, cấp phát, sự công bằng, và các chính sách đặt chỗ trước cho công việc Maui cũng cho phép việc đặt chỗ trước để điều khiển chính xác khi nào tài nguyên được sử dụng

Trang 18

2.2 Phần mềm quản lý tài nguyên và định thời Computing

Center Software

Computing Center Software (CCS) [19][20] là một hệ thống quản lý tài nguyên và định thời được sử dụng trong nhiều hệ thống cluster trên thế giới hiện nay (Siemens hpcLine [17], Beowulf [4]), hỗ trợ cho nhiều nền UNIX như AIX, IRIX, Linux và Solaris

CCS hỗ trợ đồng thời nhiều chiến thuật định thời như First-Come-First-Serve (FCFS), Shortest-Job-First (SJF) và Longest-Job-First (LJF) Việc lựa chọn chiến thuật định thời nào phụ thuộc tình trạng hiện tại của hệ thống và đặc tính của các công việc đang chờ trong các queue Các chiến thuật định thời mới sẽ được tích hợp vào CCS dễ dàng thông qua API được cung cấp bởi CCS DynPvà Implicit Voting System (IVS)là các cách định thời động đã được tích hợp vào CCS

Chiến thuật định thời DynP [27] là sự kết hợp của 3 chiến thuật định thời: First-Serve (FCFS), Shortest-Job-First (SJF) và Longest-Job-First (LJF) Nó tự động chuyển đổi giữa 3 chiến thuật này trong khi hệ thống đang hoạt động Sự lựa chọn chiến thuật định thời nào phụ thuộc vào đặc điểm của các công việc mà hệ thống đang

First-Come-có tại thời điểm đó (các công việc đang nằm trong queue chờ để được định thời) Vì vậy, vấn đề cần giải quyết khi sử dụng DynP là quyết định sử dụng chiến thuật định thời nào tại từng thời điểm định thời SJF sẽ hiệu quả nếu trong queue có nhiều công việc với thời gian thực thi nhỏ, điều này được thể hiện qua thời gian thực thi trung bình của tất cả các công việc trong queue LJF sẽ hiệu quả nếu trong queue có nhiều công việc với thời gian thực thi lớn Thời gian thực thi trung bình của tất cả các công việc là nhỏ hay lớn phụ thuộc vào 2 giới hạn do hệ thống qui ước (lower_bound và upper_bound) Nếu thời gian thực thi trung bình của tất cả các công việc nằm giữa lower_bound và upper_bound thì chiến thuật FCFS sẽ được sử dụng Như vậy, DynP

đã tận dụng được ưu điểm và loại bỏ được khuyết điểm của 3 chiến thuật định thời này

Chiến thuật định thời IVS [16] cũng có ý tưởng tương tự như DynP Nhưng IVS dựa vào độ lợi của hệ thống và tỉ số giữa số lượng công việc xử lý bó và công việc tương

Trang 19

tác để quyết định chiến thuật định thời nào được lựa chọn Mục tiêu của IVS là: cung cấp một cơ chế phân loại người dùng và công việc của họ thông qua độ ưu tiên; bảo đảm được tính công bằng giữa các người dùng; thời gian chờ trung bình cho các công việc tương tác phải nhỏ vì thời gian chờ là độ đo quan trọng nhất đối với những người dùng cần tương tác với ứng dụng; độ lợi của toàn bộ hệ thống phải cao Khi có nhiều công việc tương tác thì IVS chọn SJF để giảm thời gian chờ trung bình của các công việc Khi có nhiều công việc xử lý bó, IVS chọn LJF để tăng độ lợi của hệ thống

2.3 Các phương pháp định thời cổ điển

Hầu hết những phương pháp định thời cổ điển rơi vào một trong hai loại là sharing và space-sharing Time-sharing tỏ ra có ưu thế hơn khi có sự khác biệt nhiều

time-về thời gian thực thi giữa những process của cùng một công việc, hoặc khi thời gian thực thi của các công việc khác biệt lớn Ngược lại, space-sharing không bị phí tổn do chuyển đổi ngữ cảnh [8] và thích hợp cho các ứng dụng có đòi hỏi chất lượng dịch vụ

vì tài nguyên không bị đoạt lại khi đã cấp cho một công việc nên giúp cho việc dự đoán chính xác hơn Hybrid là một phương pháp khác kết hợp ưu điểm của time-sharing và space-sharing và đã đạt được những kết quả khả quan trên thực tế [8][28]

2.3.1 Phương pháp định thời Space-sharing

Space-sharing được hiện thực bằng cách chia những tài nguyên tính toán thành những phân vùng (partition) và mỗi công việc sẽ được thực hiện trên một partition riêng biệt Space-sharing giảm thiểu tối đa phí tổn do việc chuyển đổi ngữ cảnh (context switching) giữa các công việc Ngoài ra trong những hệ thống mà bộ nhớ bị giới hạn thì việc space-sharing dành toàn bộ bộ nhớ của cả partition cho riêng một công việc sẽ giảm thiểu chi phí page-fault, giúp hệ thống hoạt động hiệu quả hơn

Có nhiều cách phân chia tài nguyên tính toán thành các partition Các partition về nguyên tắc có thể khác nhau về kích thước (số lượng node) và thậm chí có những partition thay đổi kích thước một cách động Việc phân chia partition cũng phụ thuộc vào kiến trúc kết nối của các node (hardware topology) Còn đối với những hệ thống

có kiến trúc bus chung (luôn tồn tại đường nối giữa 2 node bất kỳ và các đường nối này là như nhau) thì việc phân chia partition là rất dễ dàng Chúng ta có thể phân chia

Trang 20

partition bằng các cách sau: Fixed partitioning, Variable partitioning, Adaptive partitioning và Dynamic partitioning

2.3.2 Phương pháp định thời Time-sharing

Time-sharing sử dụng preemption để xoay vòng node giữa các công việc Hai cách cơ bản khi sử dụng preemption để định thời cho các công việc song song là coordinated

và uncoordinated Trong cách định thời coordinated (còn gọi là coscheduling), các process của cùng một công việc song song được thực thi tại cùng một thời điểm trong một quantum và cùng được đưa vào trạng thái tạm dừng tại cùng một thời điểm để nhường node cho công việc khác Trong cách định thời uncoordinated thì ngược lại, mỗi process của một công việc trên mỗi node được định thời một cách độc lập mà không phụ thuộc vào các process khác của cùng công việc đó Như vậy, có một số process của công việc đang thực thi trong khi một số process khác của chính công việc này ở trạng thái tạm dừng Gang scheduling [13][14][15] là một ví dụ của cách định thời coordinated Cách định thời coordinated chỉ hoạt động tốt đối với những ứng dụng

có mức độ đồng bộ giữa các process cao, ngược lại thì nó hoạt động không hiệu quả Một nhược điểm khác của cách định thời coordinated là việc hiện thực rất khó khăn, đặc biệt trên những hệ thống lớn có bộ nhớ phân tán (distributed memory)

Trong cách định thời uncoordinated, định thời theo kiểu round-robin cho các hệ thống một node (ví dụ PC) không còn phù hợp cho hệ thống song song vì các công việc có số lượng process khác nhau cần được cấp phát tài nguyên khác nhau Có hai cách để giải quyết vấn đề này: thứ nhất, số lượng quantum cấp cho mỗi công việc nên tỉ lệ với số lượng process của công việc đó; thứ hai, thời gian chiếm node của mỗi công việc tỉ lệ với số lượng process của công việc đó Proportional-Share Scheduling [10] là một ví

dụ (Proportional-Share Scheduling cũng có thể được hiện thực theo cách định thời coordinated) Tuy nhiên, định thời uncoordinated sẽ không hiệu quả khi sự giao tiếp giữa các process của cùng một công việc có nhiều thay đổi

Cách định thời time-sharing luôn gây ra phí tổn lớn do chi phí của việc chuyển đổi ngữ cảnh Một khó khăn gặp phải khi sử dụng time-sharing là khó tính toán chính xác thời gian hoàn thành của các công việc khác nhau khi chúng chạy time-sharing trên cùng các node vì chúng ta không thể biết được đặc điểm giao tiếp giữa các process của cùng

Trang 21

một công việc cũng như đặc điểm sử dụng I/O của chúng Điều này gây khó khăn để

định thời cho các công việc có thời hạn cuối

2.3.3 Phương pháp định thời Hybrid

Hybrid là phương pháp định thời kết hợp giữa space-sharing và time-sharing Đây là phương pháp kết hợp được những điểm mạnh cũng như tránh được những điểm yếu của hai phương pháp trên Ý tưởng cơ bản của hybrid là chia hệ thống thành những partition giống như space-sharing, tuy nhiên thay vì trên mỗi partion tại một thời điểm chỉ cho phép một công việc thực thi thì hybrid cho phép nhiều công việc cùng thực thi Các công việc được phân bố trên cùng một partition sẽ thực thi theo kiểu xoay vòng (round-robin) như trong time-sharing Một vài hiện thực theo phương pháp hybrid như hierarchical scheduling cho thấy hiệu quả đạt được tốt hơn so với space-sharing và time-sharing[8][28]

2.4 Các giải thuật định thời hướng đến chất lượng dịch vụ

Các ứng dụng được thực thi trên hệ thống song song ngoài việc đòi hỏi hiệu năng cao đôi khi còn có những yêu cầu khác Những yêu cầu này thường xuất phát từ người sử dụng như đòi hỏi số lượng bộ xử lý hoặc độ rộng băng thông mạng cấp cho ứng dụng, hoặc đối với những ứng dụng thời gian thực sẽ đòi hỏi hạn cuối đối với thời gian thực thi của ứng dụng,… Những ứng dụng như vậy được gọi là các ứng dụng có yêu cầu chất lượng dịch vụ (Quality of Service hay QoS) Trong phần này chúng tôi sẽ trình bày một số giải thuật định thời hướng đến chất lượng dịch vụ hiện có

2.4.1 QoS Guided Min-Min Heuristic

Ý tưởng của QoS Guided Min-Min Heuristic [30] xuất phát từ việc các giải thuật định thời hiện tại đối xử với các ứng dụng có đòi hỏi chất lượng dịch vụ và các ứng dụng không đòi hỏi chất lượng dịch vụ như nhau Các ứng dụng không QoS được cấp cho các tài nguyên đáp ứng được QoS làm cho những ứng dụng có QoS không có tài nguyên thỏa QoS để thực thi và làm giảm hiệu suất của hệ thống Ví dụ như khi những ứng dụng thiên về tính toán được cấp cho các tài nguyên giao tiếp mạnh, trong khi những ứng dụng đòi hỏi giao tiếp nhiều thì lại không có tài nguyên đáp ứng để thực thi

vì những tài nguyên giao tiếp mạnh đã được cấp cho các ứng dụng khác QoS Guided

Trang 22

Min-Min Heuristic sẽ ưu tiên định thời cho các ứng dụng có đòi hỏi QoS trước, sau đó mới xem xét định thời cho các ứng dụng không đòi hỏi QoS

while (true)

Step 1:

do until all tasks with QoS are mapped

Apply Min-Min Heuristic to map tasks to resources

enddo

Step 2:

do until all tasks without QoS are mapped

Apply Min-Min Heuristic to map tasks to resources

enddo

endwhile

Hình 1 Framework QoS Guided Min-Min Heuristic

Nhìn từ Framework QoS Guided Min-Min Heuristic trong Hình 1, chúng ta có thể dễ dàng thấy được hiệu quả của giải thuật sẽ phụ thuộc rất nhiều vào chiến lược lựa chọn giải thuật thích hợp để áp dụng cho Step 1 và Step 2

2.4.2 Giải thuật định thời thỏa mãn ngân sách và hạn cuối

Bộ định thời của hệ thống Libra [26] có đáp ứng chất lượng dịch vụ là ngân sách (Budget) và hạn cuối (Deadline) Trong đó, Budget là ngân sách mà người sử dụng đồng ý chi trả để thực thi ứng dụng của mình trên hệ thống, còn Deadline là khoảng thời gian mà người sử dụng mong muốn ứng dụng của mình sẽ được hoàn thành Hai thông số Budget và Deadline sẽ do người sử dụng nhập vào cho bộ định thời Bộ định thời của Libra sẽ dựa trên hai thông số này để tiến hành phân tích và định thời để thỏa mãn yêu cầu của người sử dụng Giải thuật được mô tả như sau:

¾ Người dùng nhập thông tin của công việc bao gồm: số lượng process, thời gian thực thi E, hạn cuối D, số tiền đồng ý trả để sử dụng tài nguyên B Các thông số

Trang 23

này được chuyển sang thành một đại lượng thể hiện chi phí phải trả của người dùng, người dùng chỉ được chấp nhận khi chi phí này thỏa mãn dựa trên hàm tính giá sau:

D E E

Cost =α× +β× / (α và β là hai hệ số)

¾ Biểu thức đầu tiên (α×E) nói rằng người dùng phải trả chi phí cho công việc dài nhiều hơn cho công việc ngắn Biểu thức thứ hai (β×E / D) đo độ trung thực của người dùng: đối với một công việc có thời gian thực thi E, nếu người dùng tăng deadline D thì hệ thống có nhiều thời gian hơn để định thời công việc này, tức là công việc có thời điểm deadline càng sớm thì người dùng phải trả nhiều chi phí hơn để được thực thi sớm Hạn chế của công thức này là không quan tâm đến số lượng process của công việc

¾ Một khi công việc đã được chấp nhận, bộ định thời sẽ tìm tập các node thỏa mãn hạn cuối của công việc Nếu có nhiều node thỏa mãn thì bộ định thời sẽ chọn tập các node có tải thấp nhất Công việc chạy trên các node theo phương pháp định thời Proportional-Share Scheduling [10]

¾ Nếu không tìm được một tập các node thực thi thỏa mãn ngân sách và hạn cuối,

hệ thống sẽ thông báo cho người dùng rằng hạn cuối không thể được thỏa mãn

và yêu cầu người dùng quay lại lần sau hoặc tăng hạn cuối cho công việc của

họ

Trang 24

Chương 3 Cơ sở lý thuyết định thời

Chúng tôi sẽ trình bày ở Chương 3 vấn đề định thời trong hai loại hệ thống song song

và phân bố khá phổ biến hiện nay là Cluster và Grid cùng với một vài heuristic thường được sử dụng cho bài toán định thời Ngoài ra, chúng tôi cũng giới thiệu một số lớp ứng dụng song song phổ biến hiện nay như Embarrassingly Parallel Computations, Divide and Conquer, lớp bài toán số học

3.1 Các hệ thống cần sử dụng bài toán định thời

3.1.1 Cluster và vấn đề định thời trong cluster

Khái niệm

Cluster là một hệ thống tính toán đa xử lý gồm một tập các máy tính kết nối với nhau qua môi trường mạng nhằm tạo ra một môi trường tính toán hỗ trợ cả công việc tuần tự lẫn những công việc song song Cluster khi nhìn từ bên ngoài mang hình ảnh của một

hệ thống đơn (Single System Image), và do đó cluster có thể được xem là một siêu máy tính ảo (virtual supercomputer) Những năm gần đây, xu hướng sử dụng cluster đang có chiều hướng tăng dần do những ưu điểm so với những hệ thống siêu máy tính khác: hệ số giá/hiệu suất (cost/performance) thấp, tính mở rộng cao (high scalability)

và dễ dàng tích hợp vào những hệ thống lớn hơn

Quản lý tài nguyên và định thời trong cluster [19][20]

Hệ thống quản lý tài nguyên và định thời cho cluster gồm hai phần chính: bộ định thời

và bộ quản lý tài nguyên Bộ định thời có nhiệm vụ chính là quyết định thời điểm và thứ tự xử lý các công việc của người dùng chứa trong hàng đợi cộng với xác định tài nguyên nào được dùng để thực thi các công việc đó Trong quá trình định thời, bộ định thời lấy thông tin tài nguyên từ bộ quản lý tài nguyên Bộ quản lý tài nguyên có nhiệm

vụ quản lý tất cả tài nguyên tính toán, bao gồm CPU, bộ nhớ, đĩa cứng…, cho phép tài nguyên mới gia nhập, tài nguyên hiện hành rời khỏi hệ thống, phát hiện những sự cố

hư hỏng tài nguyên và cung cấp thông tin tài nguyên cho bộ định thời

Trang 25

Hình 2 Quản lý tài nguyên và định thời trong Cluster

3.1.2 Grid và vấn đề định thời trong Grid

Khái niệm

Có nhiều định nghĩa khác nhau cho tính toán lưới (Grid) Trong tài liệu này, chúng tôi

dựa trên định nghĩa chuẩn của tác giả Ian Foster [22]: “A computational grid is a

hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities”

Quản lý tài nguyên trong Grid [6]

Hệ thống tính toán lưới (Grid) cho phép các ứng dụng gom góp và sử dụng tập các tài nguyên tính toán mà không cần quan tâm đến vị trí địa lý của các tài nguyên đó Tuy nhiên, các tài nguyên này nằm ở các site khác nhau và thuộc quyền sở hữu của các cá nhân, tổ chức khác nhau Hơn nữa, sẽ xảy ra sự tranh chấp khi có nhiều ứng dụng cùng cần tới một tài nguyên chung nào đó Như vậy, trong hệ thống Grid cần phải có một bộ phận quản lý tài nguyên

Quản lý tài nguyên liên quan đến những vấn đề như định vị và cấp phát tài nguyên tính toán để đáp ứng các yêu cầu về tài nguyên của ứng dụng, chứng thực, tạo quá trình, và các hoạt động cần thiết khác để chuẩn bị cho việc sử dụng một tài nguyên

Hình 3 [6] sẽ trình bày kiến trúc quản lý tài nguyên trong Grid Trong kiến trúc này, một ngôn ngữ đặc tả tài nguyên (RSL – Resource Specification Language) sẽ được sử

Trang 26

dụng trong giao tiếp yêu cầu tài nguyên giữa các thành phần: từ applications đến resource brokers, resource co-allocators và resource managers Thông tin yêu cầu tài nguyên được mã hóa bằng ngôn ngữ RSL bởi ứng dụng, resource broker hay co-allocator, thông tin về tài nguyên được cung cấp bởi dịch vụ thông tin

Queries Broker

Local

resource

managers

RSL specialization

Ground RSL

Co-allocator

& Info

Hình 3 Kiến trúc quản lý tài nguyên trong Grid

Resource brokers chịu trách nhiệm chuyển đặc tả ngôn ngữ RSL cấp cao thành một đặc tả cấp thấp hơn thông qua quá trình gọi là specialization Resource broker dịch các yêu cầu tài nguyên của ứng dụng thành những yêu cầu tài nguyên cụ thể hơn Nhiều resource broker có thể được sử dụng để định vị các tài nguyên có giá trị đáp ứng được các yêu cầu của ứng dụng

Co-allocator chịu trách nhiệm sắp xếp việc cấp phát và quản lý các tài nguyên ở nhiều site Resource co-allocator sẽ chia các đa yêu cầu – các yêu cầu gồm nhiều tài nguyên

ở các site khác nhau thành những đơn yêu cầu và chuyển các đơn yêu cầu đó đến các resource manager

Information service chịu trách nhiệm cung cấp hiệu quả các thông tin hiện tại về tài nguyên Thông tin này sẽ được sử dụng để định vị tài nguyên, xác định những đặc trưng của tài nguyên đó, xác định resource manager kết hợp với một tài nguyên và các mục đích khác

Trang 27

Định thời trong Grid

Một hệ thống Grid có khả năng đáp ứng hiệu quả cùng lúc nhiều ứng dụng và nhiều người dùng Muốn vậy grid phải có bộ định thời thật tốt Bộ định thời của grid phân công các tác vụ lên những tài nguyên tốt nhất có thể được theo những yêu cầu nào đó,

ví dụ như thời gian hoàn thành công việc Đây là bài toán khá phức tạp Vì các thông tin của Grid thường hay thay đổi, những thông tin này là số lượng và số loại tài nguyên, tài nguyên rảnh, tình trạng tải bộ xử lý, dung lượng đĩa, cấu hình phần cứng,

bộ nhớ còn lại, tình trạng tải của mạng vật lý Nếu định thời mà không quan tâm đến các thông tin động trên thì kết quả của việc định thời sẽ không có giá trị

Một bộ định thời của Grid sẽ làm các công việc sau [5]:

¾ Select (resource selection, resource location, resource discovery) : chọn lựa các tài nguyên sẽ định thời, các tác vụ của ứng dụng sẽ chạy trên chúng

¾ Assign (mapping, partitioning, placement) : phân công các tác vụ của ứng dụng lên các tài nguyên

¾ Distribute data / co-locate data : định kế hoạch phân bố dữ liệu, và kế hoạch kết hợp lại dữ liệu trên các tài nguyên đã phân công

¾ Order task : sắp xếp thứ tự thực hiện các tác vụ trên tài nguyên

¾ Order communication : sắp thứ tự mối giao tiếp giữa các tác vụ

Năng lực của bộ định thời bị ảnh hưởng bởi lượng thông tin về hệ thống và thông tin

về ứng dụng nhập vào cho nó Càng nhiều thông tin thì bảng định thời được sinh ra càng tốt Tuy nhiên, có những thông tin của ứng dụng hoặc của hệ thống mà chúng ta không thể hoặc quá mất công để có được nó Hơn nữa, xử lý càng nhiều thông tin thì thời gian sinh bảng định thời càng lâu Vì vậy, bộ định thời tốt phải cân bằng phí tổn tìm kiếm thông tin và xử lý thông tin để tạo bảng định thời với khả năng định thời của

nó để quyết định lượng thông tin cung cấp cho bộ định thời bao nhiêu là “vừa đủ” Chúng ta thường quan tâm đến những chương trình song song về dữ liệu Chương trình song song về dữ liệu gồm nhiều tác vụ tính toán song song trên các phần riêng rẽ của tập dữ liệu Thường thì chương trình song song hoá dữ liệu đòi hỏi rất nhiều tài nguyên và có nhiều mô hình lập trình cho nó, từ những mô hình giao tiếp rất chặt chẽ

Trang 28

cho đến mô hình không có hoặc có rất ít giao tiếp Vì vậy sẽ rất khó để có được một bộ định thời cố định (tương ứng với một giải thuật định thời) làm tốt việc định thời cho chương trình song song hóa dữ liệu; trong khi một bộ khung định thời dễ mở rộng sẽ rất thích hợp, bộ định thời xây dựng trên khung định thời sẽ thay đổi (tăng thêm lượng thông tin đầu vào) để thích nghi với ứng dụng cần chạy

Bộ khung định thời (Scheduling Framework) [29]

Bảng định thời

Số lượng các tác vụ Kiến trúc chạy tác vụ

Tỉ số giao tiếp-tính toán Tương quan giữa hiệu quả

Vị trí trong grid

Bộ nhớ

Thiết bị lưu trữ Đặc tính của mạng

Thông tin NWS

Scheduling Policy

Performance Model

Application Model

Hình 4 Bộ khung định thời trong Grid

Chúng ta sẽ xem xét việc định thời với giả thiết cho rằng thông tin về tài nguyên đã được cung cấp đầy đủ Bộ khung định thời gồm 4 phần: mô hình grid (grid model), mô hình ứng dụng (application model), mô hình hiệu quả (performance model) và chính sách định thời (scheduling policy) Chúng ta giả sử ứng dụng đã được chia ra thành các công việc và hệ thống grid có thể thực hiện các công việc đó Nhiệm vụ của bộ

Trang 29

định thời là tìm ra cách phân bổ các công việc này lên các tài nguyên Grid một cách hợp lý sao cho tối ưu được thời gian chạy ứng dụng

Grid model là mô hình biểu diễn cho các tài nguyên của grid Nó chứa đựng thông tin

về đặc tính và số lượng còn lại của tài nguyên, cũng như thông tin kết nối của mạng vật lý bên dưới Vì tập các đặc tính của tài nguyên rất lớn nên grid model chỉ cần chứa một tập thông tin tối thiểu nhất gồm hệ điều hành và kiểu kiến trúc của tài nguyên, và khả năng cập nhật một đặc tính bất kì là có thể đáp ứng đủ thông tin cho bộ định thời Application model cung cấp một biểu diễn cho hành vi của ứng dụng Thông thường người dùng hoặc người phát triển ứng dụng cung cấp thông tin cho mô hình này Phần lớn các giải thuật định thời cần các thông tin sau: số lượng các công việc N, kiến trúc

để thực thi các công việc, cấu trúc kết nối trong giao tiếp giữa các công việc, tỉ số giữa giao tiếp và tính toán cho mỗi tài nguyên Đây là tập tối thiểu mà ta có thể mở rộng thêm để đáp ứng được yêu cầu mới của ứng dụng

Performance model dùng để dự đoán hiệu quả của các công việc từ những thông tin của grid model và application model theo một chuẩn mực đã đặt ra Thông tin cung cấp càng chi tiết thì kết quả dự đoán càng chính xác Nhưng những thông tin tổng quát lại dễ có hơn, mất ít thời gian hơn Chuẩn mực để dự đoán có thể thay đổi để phù hợp với nhu cầu định thời

Scheduling policy là một giải thuật dùng các dự đoán của performance model để xếp thứ hạng cho các tài nguyên tham gia định thời Mỗi công việc tương ứng với thứ hạng nào thì dùng tài nguyên có thứ hạng đó Kết quả cuối cùng này chính là bảng định thời cho ứng dụng cần chạy Khi chọn một giải thuật cho scheduling policy ta phải xem xét

sự cân bằng giữa độ phức tạp của giải thuật với độ tối ưu của bảng định thời

3.2 Các lớp ứng dụng song song

3.2.1 Embarrassingly Parallel Computations

Đây là lớp bài toán song song lý tưởng, còn được gọi là pleasantly parallel Lập trình song song bao gồm việc chia một ứng dụng thành nhiều phần, mỗi phần sẽ được thực hiện trên các bộ xử lý khác nhau Bài toán song song lý tưởng là bài toán có thể được

Trang 30

chia thành các phần hoàn toàn độc lập nhau có thể được thực thi đồng thời Việc song song trong những bài toán này rất rõ ràng và không cần các giải thuật hay kỹ thuật đặc biệt Các bài toán ứng dụng thuộc lớp này khi song song hóa được coi như không có giao tiếp giữa các process Mỗi process cần dữ liệu khác hay giống nhau và cho ra kết quả ứng với dữ liệu đó mà không cần kết quả của process khác Đối với lớp bài toán này, độ lợi sẽ là cực đại nếu tất cả các bộ xử lý đều được phân công process trong suốt thời gian thực thi Việc duy nhất cần phải xây dựng là phân bố dữ liệu và khởi tạo các process Mô hình SPMD (single program multiple data) là thích hợp cho các bài toán ứng dụng thuộc lớp này

Nearly embarrassingly parallel computations là lớp bài toán ứng dụng cần kết quả được phân bố, tập hợp và kết nối lại bằng cách nào đó Điều này có nghĩa là cần phải

có một process hoạt động vào lúc khởi tạo và kết thúc Như vậy, mô hình lập trình master-slave là thích hợp trong trường hợp này

Bài toán xử lý ảnh là một ví dụ của lớp bài toán song song lý tưởng Ảnh thường được lưu trong máy tính để có thể xử lý bằng cách nào đó Cách cơ bản nhất để lưu một bức ảnh 2 chiều là dùng pixmap, trong đó mỗi điểm được lưu bằng một số nhị phân trong một array 2 chiều Với ảnh trắng đen, chỉ cần 1 bit cho mỗi điểm ảnh Ta gọi đó là bitmap Ảnh 256 màu có thể dùng 8 bit cho mỗi điểm ảnh Bài toán xử lý ảnh cần các tác vụ thực hiện trên toạ độ của mỗi điểm ảnh để thay đổi vị trí của điểm ảnh mà không làm thay đổi giá trị của điểm ảnh Khi tất cả các điểm ảnh trong bức ảnh đã được xử lý, kết quả là ta có được một bức ảnh đã chuyển dạng

Dữ liệu đầu vào sẽ là một bức ảnh bitmap/pixmap được lưu trong một file và sẽ được copy vào trong một array Nội dung của array này có thể được xử lý dễ dàng Chương trình song song chính sẽ chia bức ảnh thành các nhóm pixel cho các bộ xử lý Có thể chia theo vùng (hình chữ nhật hay hình vuông) hoặc chia theo hàng/cột Mỗi bộ xử lý

sẽ chịu trách nhiệm xử lý và hiển thị một vùng của bức ảnh

3.2.2 Lớp ứng dụng Divide and Conquer

Phương pháp Divide and Conquer được đặc tả bằng việc chia bài toán thành những bài toán con nhỏ hơn có cùng dạng với bài toán ban đầu Việc chia bài toán sẽ được áp dụng một cách đệ quy, một phương pháp phổ biến trong lập trình tuần tự Phương

Trang 31

pháp đệ quy sẽ tiếp tục chia bài toán cho đến khi các task không thể được chia nhỏ hơn nữa Cuối cùng, các task đơn giản nhất sẽ được thực thi, các kết quả sẽ được kết nối lại thành các task lớn hơn

Bài toán N-body là một ví dụ của lớp bài toán Divide and Conquer Mục tiêu của bài toán N-body là tìm kiếm các vị trí và vận tốc của các vật thể trong không gian, chịu ảnh hưởng bởi lực hút trọng trường Chiến lược divide and conquer cho bài toán này bắt đầu bằng không gian lớn nhất chứa tất cả các vật thể Đầu tiên, không gian này được chia thành 4 không gian con Nếu một không gian con không chứa vật thể nào thì

nó không được xem xét nữa Nếu một không gian con chứa hơn một vật thể, nó lại tiếp tục được chia đệ quy đến khi nào tất cả các không gian con đều chỉ chứa một vật thể duy nhất Các quá trình sẽ xử lý trên các không gian con này

3.2.3 Lớp bài toán số học

Hình 5 Bài toán nhân ma trận

Bài toán nhân ma trận là một bài toán tiêu biểu trong lớp bài toán số học Mục tiêu của bài toán này là nhân ma trận P kích thước n×n với ma trận Q kích thước Thông thường nếu số bộ xử lý lớn hơn hay bằng n, chúng ta có thể phân công mỗi bộ xử lý chịu trách nhiệm nhân một hàng của ma trận P với ma trận Q để được một hàng của

ma trận kết quả Tuy nhiên, trên thực tế số lượng bộ xử lý p có được là nhỏ hơn rất nhiều so với kích thước n của ma trận Chính vì vậy, việc phân công mỗi bộ xử lý chịu

n

n×

Trang 32

trách nhiệm tính toán một hàng của ma trận kết quả sẽ không thể thực hiện được Thay vào đó, ta sẽ phân công cho mỗi bộ xử lý chịu trách nhiệm tính toán một số hàng của

n /

3.3 Một số heuristic sử dụng cho bài toán định thời

Trong phần này chúng tôi khảo sát một số heuristic được sử dụng phổ biến cho bài toán định thời

Để hiện thực giải thuật Simulated Annealing, chúng ta cần phải biểu diễn bài toán theo khung sườn của tìm kiếm cục bộ bằng cách định nghĩa:

¾ Một không gian giải pháp

¾ Một cách để tìm các neighbor

¾ Một hàm mục tiêu

Các bước chuyển tiềm năng được sinh một cách ngẫu nhiên và tất cả các bước chuyển cải tiến được chi phí sẽ được chấp nhận Những bước chuyển khác không cải tiến được chi phí sẽ được chấp nhận với một xác suất exp(-δ/t), trong đó δ là sự thay đổi hàm chi phí còn t là tham số điều khiển Chất lượng của một giải pháp sẽ phụ thuộc rất nhiều vào cách điều chỉnh tham số nhiệt độ Điều này được định nghĩa bởi: nhiệt độ bắt đầu, điều kiện kết thúc, hàm giảm nhiệt độ α(t) và số lần lặp tại mỗi nhiệt độ

Trang 33

Những giá trị này được chọn lựa dựa theo tính chất của từng bài toán cụ thể Các bài toán khác nhau chúng ta sẽ chọn các giá trị khác nhau

Select an initial solution s0;

Select an initial temperature t0 > 0;

Select a temperature reduction function α;

repeat

repeat

Randomly select s which is a neighbor solution of s0;

δ = f(s) – f(s0) /* compute changes in cost function */

until stopping condition = true

/* s0 is the approximation to the optimal solution */

Hình 6 Tổng quát giải thuật Simulated Annealing

3.3.2 Genetic Algorithm

Giải thuật di truyền (Genetic Algorithm – GA) [12] là giải thuật mô phỏng quá trình tiến hóa của một quần thể để thích nghi với môi trường xung quanh Quá trình tiến hóa bao gồm quá trình đột biến và quá trình lai ghép Sau mỗi bước tiến hóa, một quần thể con được tạo ra, mang những đặc điểm của bố mẹ nhờ quá trình lai ghép và những đặc điểm mới nhờ quá trình đột biến, các cá thể con không đạt yêu cầu bị loại bỏ để quần thể con tốt hơn quần thể bố mẹ Giải thuật lặp qua từng bước tiến hoá của quần thể để đạt được quần thể mới tốt hơn và dừng lại khi quần thể đạt được một chất lượng nhất

Ngày đăng: 11/02/2021, 23:09

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w