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

Báo cáo nghiên cứu khoa học " PHƯƠNG PHÁP XỬ LÝ LOGIC VỊ TỪ BẰNG NHỮNG THUẬT TOÁN SONG SONG " pdf

22 547 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 22
Dung lượng 217,42 KB

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

Nội dung

Trong chương trình logic và datalog người ta đã đưa ra những phương pháp và thuật toán xử lý như phương pháp xử lý từ dưới lên bottom up, phương pháp xử lý từ trên xuống top down, phương

Trang 1

PHƯƠNG PHÁP XỬ LÝ LOGIC VỊ TỪ

BẰNG NHỮNG THUẬT TOÁN SONG SONG

Nguyễn Mậu Hân, Phạm Xuân Thiện

Trường Đại học Khoa học, Đại họcHuế

1 Giới thiệu:

Ngày nay, những thành công trong việc áp dụng logic vào hệ thống cơ sở

dữ liệu để xử lý thông tin đang được nhiều nhà tin học quan tâm, đặc biệt là vấn

đề tìm lời giải tối ưu của chương trình logic nói chung và datalog nói riêng Ở lĩnh vực này, các ứng dụng về dự báo thời tiết, chẩn đoán bệnh đang ngày một đặt ra nhiều yêu cầu mới như tốc độ xử lý, khối lượng công việc thực hiện Trong chương trình logic và datalog người ta đã đưa ra những phương pháp và thuật toán xử lý như phương pháp xử lý từ dưới lên (bottom up), phương pháp xử lý từ trên xuống (top down), phương pháp ma tập, tối ưu hóa các câu vấn tin hội, các

đệ qui tuyến tính nhưng các thuật toán này chỉ thực hiện trong môi trường xử lý tuần tự mà chưa chú ý đến môi trường xử lý song song

Trong thực tế, chưa có một máy tính song song nào cũng như cách phân chia công việc cho các bộ xử lý nào có thể áp dụng có hiệu quả cho mọi bài toán

Trang 2

Do đó, việc chọn lựa mô hình máy tính và cách phân chia công việc để thực hiện song song bài toán đóng một vai trò quan trọng Trong phạm vi bài báo này chúng tôi xin giới thiệu một vài thuật toán song song thực hiện nhóm các quy tắc

đệ quy có quan hệ bao đóng bắc cầu nhằm rút ngắn thời gian thực hiện cũng như chi phí kết nối

2 Một số kiến trúc song song:

- Kiến trúc SIMD (Single

instruction multiple data)

Trong một máy SIMD, nhiều

thành phần xử lí được giám sát bởi

một đơn vị điều khiển Tất cả

những thành phần xử lí đều nhận

cùng mệnh lệnh từ đơn vị điều

khiển nhưng lại thực hiện trên

những tập dữ liệu khác nhau và đến

từ những luồng dữ liệu khác nhau

Một máy SIMD biểu diễn ở hình 1

với những đặc điểm sau: xử lí phân

tán trên một số lượng lớn phần

cứng, thực hiện đồng thời trên

nhiều thành phần dữ liệu khác nhau

và thực hiện cùng một câu lệnh trên

Arithmetic Processor2

Arithmetic Processorn

Control Unit

Memory

Contr

ol Signa

Data Stream 1 Data Stream 2

Data Stream 3

Trang 3

Memory Modulem Processorm

Những máy tính MIMD gồm các bộ kết nối chặt và các bộ kết nối rời tùy thuộc vào cách thức mà các bộ xử lí truy cập vào bộ nhớ của các bộ xử lí khác Những bộ xử lí kết nối chặt được chia sẻ từ một hệ thống bộ nhớ chung được hiểu là hệ thống phân chia bộ nhớ Đối với hệ thống MIMD kết nối rời chia sẻ từ

bộ nhớ hệ thống nhưng mỗi bộ xử lí có một bộ nhớ riêng được hiểu như hệ thống truyền thông điệp Những máy tính truyền thông điệp gởi đến nhiều máy tính trong đó mỗi bộ xử lí có bộ nhớ

riêng của nó và chỉ truy cập đến

Trang 4

xử lí N nào cũng có thể truy cập đến bất kỳ bộ xử lí M nào thông qua mạng kết nối Một hệ thống MIMD chia xẻ bộ nhớ còn được gọi là một hệ thống truy cập

bộ nhớ đều (UMA) Hình 3 chỉ ra cấu trúc của một hệ thống truyền thông điệp

3 Nguyên tắc thiết kế thuật toán song song: Để đưa vào khái niệm thực

hiện song song cho một ngôn ngữ tuần tự, chúng ta dùng những qui ước sau cho tính toán song song:

- Câu lệnh Parbegin và Parend: Những khối được đóng ngoặc bằng những

ký hiệu như Parbegin & Parend hoặc Cobegin và Coend Mô hình parbegin và parend cho phép chúng ta giới thiệu những tiến trình đồng qui Mỗi câu lệnh trong khối là một tiến trình tách rời

- Câu lệnh Forall: Câu lệnh này có thể sử dụng để giả thực hiện song song

cho những đoạn mã khi có một câu lệnh đơn được thực hiện dị bộ hoặc đồng bộ trong song song Cú pháp cơ bản là: Forall định danh: Dạng vùng IN {Parall / Syn}

Trang 5

bộ nghĩa là xử lí song song MIMD Dạng SYNC xác định những tiến trình đồng

bộ, nghĩa là xử lí song song SIMD

- Câu lệnh In Parallel: Một câu lệnh In Parallel cho phép những phép toán

thực hiện nhiều hơn một câu lệnh đồng thời, có nhiều thành phần của một mảng

Trang 6

End In Parallel

- Câu lệnh In Parallel Processor: Định nghĩa giả mã này tương tự như

trong câu lệnh song song, ngoại trừ "vòng lặp" chứa một chỉ số bộ xử lí thay vì một chỉ số mảng Cú pháp tổng quát có dạng sau:

For <bộ xử lí P>, <biểu thức boolean liên quan chỉ số bộ xử lí> do in parallel

Trang 7

4 Những thuật toán song song: Những thuật toán song song được giới

thiệu gồm: thuật toán đồ thị song song và thuật toán tính toán song song được áp dụng để tính toán bao đóng bắc cầu của đồ thị

a Những thuật toán tính toán song song: để thực hiện, người ta thường

phân chia bài toán thành những bài toán con có kích thước nhỏ hơn, gồm 2 dạng:

+ Phân chia khối: Ma trận được phân chia thành từng nhóm gồm một số

dòng hoặc cột và gán cho các bộ xử lí riêng Mỗi nhóm chứa một số dòng (cột) bằng nhau, hoặc có thể phân chia những dòng (cột) cho các bộ xử lí theo một chu trình

+ Phân chia bảng ô vuông: Ma trận được phân thành những ma trận con nhỏ

hơn phân bố giữa các bộ xử lí và tất cả những ma trận con có cùng kích thước và

Trang 8

được phân chia cho cả hai dòng và cột và không có bộ xử lí nào được gán cho dòng hoặc cột đầy đủ Tóm lại, sự phân chia bảng ô vuông ánh xạ ma trận thành một ma trận vuông những bộ xử lí 2 chiều

Xét phép nhân ma trận A cấp n x n, A = [aij]nxn và ma trận B = [bij]nxn là

một ma trận C cấp n x n, C = [cij]nxn, và được định nghĩa là: cij = 

 1

- Mô hình mảng SIMD 2 chiều:

Pha 1, bộ xử lí Pij lưu trữ A[i,j] và B[i,j] Sau đó gửi các thành phần để tạo

ra tích C = A*B bằng cách quay lên thành phần của B và quay trái với thành phần A Pha 2, tính tích vô hướng trong mỗi bộ xử lí Pha 3, kết quả của 2 pha được gửi đến các bộ xử lí kề nhau hướng trái và lên trên của ma trận A và B Sau

3 pha, c[i,j] của tích được thể hiện trong bộ xử lí Pij

Procedure Paralel_Matrix_Matrix(A,B,C)

For Pij where 0 i,j n-1 do in parallel

If i > k then A[i,j-1]  A[i,j] Endif

Trang 9

If j > k then B[i-1,j]  B[i,j] Endif

Endfor Pij

Endfor

C[i,j] = A[i,j] * B[i,j]

Trang 10

Endfor

End Parallel_Matrix_Matrix

Mô hình mảng 3 chiều SIMD cũng có thể áp dụng để nhân ma trận A và B

song song như: thuật toán Warshall, thuật toán chèn cạnh (Insert Edge), thuật toán Nhân ma trận đơn vị, trong đó đặc biệt thuật toán nhân ma trận boolean, độ

- Thuật toán Nhân ma trận Boolean(Boolean matrix multiplication)

Những thành phần của ma trận cũng như tích ma trận là nhị phân, nghĩa là mỗi thành phần của chúng là 0 hoặc 1

Thuật toán: parallel matrix_matrix(A,B,C)

For j =0 to n-1 do in parallel ( 0  i n-1)

A(0,i,j) = 1

Endfor

For j = 0 to n-1 do in paralllel

Trang 11

For k= 0 to n-1 do in parallel B(0,j,k) =A(0,j,k)

Trang 12

begin v[i] := Name(i); v[j]:= Name(j);

writeln("tên quan hệ IDB(",v[i],v[j], D[i,j],")");

Trang 13

và tập sự kiện: parrent(1,2), parrent(2,3), parrent(3,4), parrent(4,5), parrent(5,6):

Trang 15

0 0 0 0 0 1

được những cặp cạnh kết nối sau: (1,2),(1,3), (1,4), (1,5), (1,6), (2,3), (2,4), (2,5), (2,6), (3,4), (3,5), (3,6), (4,5), (4,6), (5,6)

b Thuật toán đồ thị song song:

* Thuật toán Floyd: Thuật toán bao gồm n bước Bước đầu tiên, cạnh i, j

(1 i,j n) được thay với đường dẫn có giá trị nhỏ nhất từ i đến j cho phép thông

dẫn từ i đến j được tính toán từ bước đầu tiên được thay bằng đường dẫn có giá

Min {w(1)ij, w(1)i2+w(1)2j}, trong đó ma trận kết quả là W(2)ij Để tính toán W(k)ij, là giá trị nhỏ nhất của một đường dẫn từ i đến j:

W(k)ij = Min(W(k-1)ij, (W(k-1)ik+ W(k-1)kj) 0  k  n-1

Trang 16

Thuật toán minh họa như sau:

gian Do đó, toàn bộ thời gian thực hiện của thuật toán tất cả cặp đường dẫn ngắn

W(i,i) = 0

Trang 17

W(i,j)  0 nếu i  j

W(i,j) =  nếu cạnh (k,j) không tồn tại

Bộ xử lí Pij tính toán giá trị W(k)ij trong đó k = 1,2, n Thuật toán thể hiện

logn phép lặp và đường dẫn ngắn nhất giữa các cặp đỉnh, mỗi phép lặp k, bộ

For all i,j= (1,2 n) in parallel do

D[i,j]  min (D[i,x], T[i,1,j],T[i,1,j], T[i,n,j])

Trang 18

Với các khoảng cách: Distance(1,1,1), Distance(1,2,10), Distance(1,3,5),

Distance(4,5,4), Distance(5,4,6)

Trang 20

5 Kết luận: Xử lý song song đang là phương tiện thực hiện có hiệu quả các

bài toán có thời gian tính toán lớn, dù chúng có độ phức tạp đa thức Việc đưa các bài toán được thực hiện trong môi trường xử lý tuần tự trước đây về môi trường xử lý song song là một vấn đề có ý nghĩa thực tiễn Ở đây, tận dụng ưu điểm cuả mô hình mảng SIMD hai chiều chúng tôi đề xuất phương pháp xử lý song song cho lớp các bài toán có liên quan đến tính toán ma trận và các bài toán

về đồ thị

TÀI LIỆU THAM KHẢO

Trang 21

1 Jeffrey D Ullman Nguyên lý các hệ cơ sở dữ liệu và cơ sở tri thức (3

tập), Nhà xuất bản thống kê (1996)

2 Barry Wilkinson, Michael Allen Parallel Programming, techniques

and applications using networked workstations and parallel computers, Prentice Hall, Upper Saddle River, New Jersey 07458

3 Seyed H.Roosta Parallel Processing and Parallel Algorithms theory

and computation, Springer, Oswego, New York (1999)

4 Clement T.Yu, Weiyi Meng Principles of Database Query Processing for Advanced Applications, Morgan Kaufman Inc (1998)

Multiproseccors and Disk Arrays, Univesity of California, Berkeley, August (1992)

TÓM TẮT

Bài báo đề xuất phương pháp xử lý song song cho các thuật toán của chương trình logic nói chung và datalog nói riêng nhằm tăng tốc độ và khối lượng công việc xử lý

Trang 22

A PARALLEL METHOD TO PROCESS LOGIC AND DATALOG FIELD

Pham Xuan Thien, Nguyen Mau Han

College of Sciences, Hue University

SUMMARY

This paper suggests a parallel processing method to increase speed up and work processing in logic and datalog field

Ngày đăng: 19/06/2014, 09:20

HÌNH ẢNH LIÊN QUAN

Hình 1: Mô hình của một kiến trúc SIMD - Báo cáo nghiên cứu khoa học " PHƯƠNG PHÁP XỬ LÝ LOGIC VỊ TỪ BẰNG NHỮNG THUẬT TOÁN SONG SONG " pdf
Hình 1 Mô hình của một kiến trúc SIMD (Trang 2)
Hình 3: Mô hình MIMD rời, truyền thông điệp, bộ - Báo cáo nghiên cứu khoa học " PHƯƠNG PHÁP XỬ LÝ LOGIC VỊ TỪ BẰNG NHỮNG THUẬT TOÁN SONG SONG " pdf
Hình 3 Mô hình MIMD rời, truyền thông điệp, bộ (Trang 3)

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