Chúng ta sẽ trình bày một mở rộng của thuật toán tìm POM dựa trên
thuật toán nhát cắt cục bộ (LocalCuts). Mở rộng này có thể giải quyết trong trường hơp số nhóm sinh ra bởi thuật toán LocalCuts nhiều hơn số bộ xử lý cho phép, đồng thời bảo đảm yếu tố cân bằng tải giữa các bộ xử lý.
Thuật toán nhát cắt cục bộ
Thuật toán nhát cắt cục bộ tiến hành thực hiện việc gộp các toán tử dựa trên việc quan sát các dữ liệu cục bộ, đó là thông tin về hàng – cột trong bảng Ip. Sử dụng toán tử cut() khi α > 1 và sử dụng toán tử collapse() trong trường hợp α < 1, với α là hằng số.
Thuật toán LocalCuts
Vào: Ip tiền xử lý, tham số > l .
Ra:Phân hoạch liên thông (Tl, ..., Tk).
Nhận xét:
+ Thuật toán có độ phức tạp O(n), n là số đỉnh của cây toán tử đã qua tiền xử lý.
+ Kết quả thuật toán là một phân hoạch liên thông không thể đoán trước được nên thông thường thuật toán này cùng đi đôi với thuật toán cân bằng tải.
+ Thuật toán Localcut chỉ xem xét sử dụng toán tử collapse() hay cut() cho một đỉnh lá và đỉnh cha của nó.
Hình 3.3. Thuật toán nhát cắt cục bộ
Thực hiện thuật toán với cây toán tử hình 3.5 tương ứng với Ip ở bảng 3.5
Hình 3.4. Cây toán tử gốc Thể hiện dưới dạng Ip truy vấn
Ip C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 R ti 5 5 5 10 4 2 12 2 7 10 3 2 7 7 10 2 1 5 0 5 6 2 5 5 0 4 2 3 3 5 6 0 5 3 4 10 4 0 6 5 4 2 0 6 6 2 3 0 2 1 3 7 12 5 0 8 2 3 0 1 9 7 6 0 10 10 6 0 11 3 2 0 12 2 1 0 13 7 3 0 14 7 1 0 1 1 15 10 1 0 16 2 1 0
Bảng 3.5. Ip truy vấn tương ứng cây toán tử gốc
Với = (3 + sqrt(17) )/2 3.56
Ta có kết quả là phân hoạch liên thông - cây toán tử có các tập được cắt bởi phép toán cut().
F1 = {1,2}, cost(F1, L1)=10; F2= {4,9}, cost(F2, L2)= 17; F3= {5, 10}, cost(F3, L3)=14; F4 = { 6, 11, 12, 13 } , cost(F4, L4 )= 14; F5 = { 3,7,8 }, cost(F5, L5)=19; F6 = {14,15, 16 }, cost(F6, L6)=19;
Vậy thời gian trả lời tải của cây truy vấn đã cho với 6 bộ xử lý là L5=19 và L6 = 19.
F1 C 1 2 Tải R ti 5 5 10 1 5 5 2 5 5 Tải 10 Bảng 3.6. Bảng phân hoạch F1 F2 C 4 9 Tải R ti 10 7 17 4 10 6 9 7 6 Tải 17 Bảng 3.7. Bảng phân hoạch F2
F3 C 5 10 Tải R ti 4 10 14 5 4 6 10 10 6 Tải 14 Bảng 3.8. Bảng phân hoạch F3 F4 C 6 11 12 13 Tải R ti 2 3 2 7 14 6 2 2 1 3 11 3 2 12 2 1 13 7 3 Tải 10 Bảng 3.9. Bảng phân hoạch F4 F5 C 3 7 8 Tải R ti 5 12 2 19 3 5 5 3 7 12 5 8 2 3 Tải 19 Bảng 3.10. Bảng phân hoạch F5
F6 C 14 15 16 Tải R ti 7 10 2 19 14 7 1 1 15 10 1 16 2 1 Tải 19 Bảng 3.11. Bảng phân hoạch F6
Chú ý: Chúng ta có thể cho các giá trị α > 1 khác nhau để được các phân hoạch khác nhau.
3.5. Kết luận chương 3
Cho T= (V, E) với V là tập các đỉnh, E là tập các cạnh, ti là trọng số của đỉnh i, ci,j là trọng số cạnh (i,j) và p là bộ xử lý.
Ip là ma trận liền kề với đỉnh là tiêu đề cột - hàng kèm với trọng số ti của nó và Cell, giao của cột và dòng là trọng số cạnh ci,j.
Tính tải trên các hàng – cột của Ip sao cho đảm bảo cân bằng tải, nhằm phân chia công việc một cách hợp lý cho các bộ vi xử lý bằng cách tính tải trên các mảnh (Xem thuật toán tính tải trên mảnh Fk).
Phân hoạch bảng vấn tin thành các mảnh nhỏ hơn nhằm mục đích đơn giản hóa các vị từ, dễ dàng áp dụng các câu vấn tin đại số quan hệ.
Bảng vấn tin tiền xử lý là bảng có các cột dùng các phép toán đơn ngôi trên cùng một quan hệ có thể được gộp lại với mục đích giản lược câu vấn tin và thu nhỏ bảng.
KẾT LUẬN
Chuyển câu vấn tin (cây toán tử) sang ma trận đặc trưng (bảng) mà ta gọi là bảng câu vấn tin, từ đó tiến hành các phép tách gộp các hàng (cột), tính tải và một số xử lý khác, … đã được trình bày trong luận văn là mục tiêu chính của đề tài. Để chuyển được cây toán tử sang ma trận đặc trưng của nó thì phải thực hiện một số thao tác nhằm tạo ra sự tương ứng 1-1 giữa cây toán tử và bảng, khi đã làm được điều đó thì mọi việc xử lý ở trên cây toán tử đều có thể thực hiện một cách đơn giản trên ma trận. Việc phân bố các toán tử cho các bộ xử lý được thực hiện thông qua thuật toán phân chia công việc. Vấn đề sẽ phức tạp hơn khi các bộ xử lý lại được phân phối trên các bảng khác nhau, vì khi đó các ci,j không đơn thuần chỉ là truyền dữ liệu giữa các bộ xử lý mà còn các thông tin phụ trợ khác.
Thể hiện các câu vấn tin bằng bảng tạo ra khả năng xử lý nó tốt hơn. Khi đã có bảng thể hiện câu vấn tin, chúng dễ dàng dùng các thuật toán xử lý bảng để xử lý câu vấn tin. Duyệt bảng vấn tin được thực hiện trên các trọng số hàng và nội dung các Cell là cách làm quen thuộc và dễ dàng cho các lập trình viên. Các thuật giải Heuristic để lập lịch tối ưu, cân bằng tải tối ưu,… cũng hoàn toàn được xử lý trên bảng câu truy vấn.
Luận văn cũng đề cập đến một số ứng dụng thông qua các ví dụ minh họa ở chương 3.
Tóm lại luận văn đã đề cập và hoàn thành đầy đủ, có chất lượng các nhiệm vụ đã được đặt ra trong đề cương.
HƯỚNG PHÁT TRIỂN
Lập trình tự động tìm và rút trích các xâu con để tìm ra các câu truy vấn SQL trong chương trình nguồn và chuyển sang câu truy vấn dạng đại số quan hệ, từ đó xây dựng thành ma trận đặc trưng và có thể xử lý mọi phép toán trên cây truy vấn được thực hiện chỉ trên ma trân đặc trưng, hơn nữa chúng ta có thể dựa vào câu truy vấn đại số để xây dựng lại cây truy vấn tương ứng.
Việc chuyển đổi câu vấn tin SQL sang câu vấn tin đại số quan hệ AQL, sử dụng các thuật toán xử lý song song để thực hiện và thủ tục hóa các thuật toán trên nhằm nâng cao hiệu quả nghiên cứu, giảng dạy và ứng dụng trong thực tế.
TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt
[1] Lê Tiến Vương. Nhập môn cơ sở dữ liệu quan hệ. NXB Thống Kê, 2000. [2] Đoàn Văn Ban, Nguyễn Mậu Hân (2006), Xử lý song song và phân tán,
NXB Khoa học và kỹ thuật.
[3] Đỗ Xuân Lôi (1996), Cấu trúc dữ liệu và giải thuật, NXB Khoa học và kỹ thuật. [4] Lê Huy Thập (2008), Giáo trình Kỹ thuật lập trình, Tập 1, NXB Khoa học tự nhiên và công nghệ.
[5] Lê Huy Thập, Phân mảnh trên giá trị lặp của các thuộc tính trong CSDL quan hệ, Tạp chí tin học và điều khiển tối ưu, Tập 23 số 1 (2007) 86 - 98. [6] Lê Huy Thập, Cơ sở lý thuyết song song, NXB Thông tin và Truyền thông, 12-2011, Tái bản lần 1.
[7] Lê Huy Thập, Bài giảng về CSDL quan hệ, Dùng giảng dạy tại học viện công nghệ bưu chính viễn thông, 2010.
[8] Lê Huy Thập, Bài giảng về CSDL phân tán, Dùng giảng dạy tại học viện công nghệ bưu chính viễn thông và Đại học sư phạm Hà Nội 2, 2007.
[9] Lê Huy Thập, Giải các bài toán trên cây toán tử đường ống bằng ma trận đặc trưng, Tạp chí tin học và điều khiển học, tập 27 số 2 trang 107-118, tháng 6 năm 2011.
[10] Lê Huy Thập, Báo cáo động và các mệnh đề lọc dữ liệu, Kỷ yếu hội thảo Quốc gia Biên Hòa, năm 2009, trang 19-36, NXB Khoa học và kỹ thuật, 2010. [11] Lê Huy Thập, Bảng câu vấn tin trên các quan hệ và xử lý câu vấn tin trên bảng, Kỷ yếu Hội thảo Quốc gia lần thứ XIII, Hưng Yên, 19-20 tháng 8 năm 2010, “Một số vấn đề chọn lọc của CNTT và truyến thông”,Chủ đề: “Các công nghệ tính toán hiện đại”, Báo cáo toàn văn, NXB Khoa học và kỹ thuật, 2011, 29-40.
Tài liệu tiếng Anh
[12] Barry Wilkingson, Michael Allen (1999), Parallel Programming, Technique and Applications Using Networked Workstations and Parallel Computers, Prentice Hall New Jersey.
[13] M. Tamner Ozsu, Patrick Valduriez, Nguyên lý các hệ cơ sở dữ liệu phân tán, Trần Đức Quang biên dịch, NXB Thống kê, 1999.
[14] Seyed H. Roo, Parallel processing and Parallel Algorithms, Theory and Coputation, Springer 1999.
[15] Japan Information Processing Development Corporation, Central Academy of Information Technology, Internal Design And Programming, 1978.
[16] Behrooz Parhami (1999), Introduction to Parallel Processing: Algorithms and Architectures, Springer.
[17] Michael J. Quinn. (2000), Parallel Computing: theory and practice, 2nd edition. Oregon State University, USA. McGraw Hill Inc.
[18] Dimitri P. Bertsekas and John N. Tsitsiklis.( 2001), Parallel and Distributed Computation: Numerical Methods. Massachusets Institute of Technology. Prentice Hall Press.
[19] Michel Cosnard & Denis Trystram, Parallel Algorithms and Architectures. International Thomson Computer Press. 1995.