Cỏc phương phỏp song song húa cỏc cõu vấn tin dựa vào

Một phần của tài liệu Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng (Trang 66 - 69)

luồng vào chức năng và vào dữ liệu

2.3.1. Cỏc phương phỏp song song húa cỏc cõu vấn tin dựa vào tiến trỡnh-luồng luồng

Từ mục 2.1. (hỡnh 2.1-1. Tiến trỡnh và luồng song song) chỳng ta thấy rằng để song song húa và thực hiện cỏc cõu vấn tin thỡ cỏc cõu vấn tin phải được đặt trong cỏc Sub1, Sub2, ... và sẽ được thực hiện tại cỏc luồng tương ứng T1, T2, ... Cỏc Sub này phải cú cấu trỳc của một chương trỡnh (xem mục 2.1.1). Nếu là cỏc vấn tin khiểu rỳt gọn cỏc cõu vấn tin trờn cỏc mảnh thỡ cỏc cõu vấn tin và vị từ phõn mảnh cũn phải thỏa món cỏc quy tắc.

Qui tắc 1. Cho phõn mảnh ngang (Mục 2.2)

 Pi(RHj) =  nếu x  R: (pi(x)  pj(x))

Trong đú pi(x) là vị từ chọn và pj(x) là vị từ phõn mảnh cũn x biểu thị một bộ (bản ghi), khi viết p(x) cú nghĩa là “vị từ p đỳng với x”.

Qui tắc 2. Cho phộp nối (Mục 2.2)

Ri Rj =  nếu x  Ri, y r Rj: (pi(x)  pj(y))

Qui tắc 3. Cho phõn mảnh dọc (Mục 2.2)

Cho trước quan hệ R(A) | A = {A1, …, An}và được phõn mảnh thành cỏc mảnh dọc thành

Ri = A’(R) | A’  A. Qui tắc phỏt biểu như sau:

D,K(Ri) là vụ dụng nếu tập cỏc thuộc tớnh chiếu D hoặc K hoặc DK khụng thuộc A’

Khi đó cú cỏc tiến trỡnh, bước tiếp theo là tạo cỏc tiến trỡnh song song (chẳng hạn T1, T2, ...mục 2.1.2) để thực hiện cỏc tiến trỡnh đó được tạo ra.

2.3.2. Cỏc phương phỏp song song húa cỏc cõu vấn tin dựa vào chức năng

Cỏc phương phỏp song song húa cỏc cõu vấn tin dựa vào chức năng là gộp cỏc cụng việc cú cựng một chức năng nào đú để đưa vào cựng một luồng và cú thể xử lớ chỳng trờn cựng một bộ xử lớ. Cỏch tiếp cận này tập trung vào việc xử lớ cú thể thực hiện được hay khụng chứ khụng phải núi về dữ liệu được chế tỏc. Vấn đề được phõn chia theo cụng việc mà nú phải được thực hiện. Mỗi tỏc vụ (gồm một số chức năng) thực hiện một phần của cụng việc chung.

task 0

task 1 task 2 task 3

Problem Instruction SetProblem Instruction Set

Hỡnh 2.3-1. Phõn hoạch theo chức năng

Chớnh cỏc chức năng sẽ cho biết chỳng cú thể được chia thành cỏc tỏc vụ song song hay khụng.

Với cỏc module (task 0, task 1, ..., task n) chỳng ta cú thể dựng cỏc cấu trỳc song song Parbegin... parend, Cobegin ... Coend, forall (i = 0; i < n; i++){...} hoặc for (i = 0; i < n; i++) {...} (xem mục 2.1.1) để thực hiện.

2.3.3. Cỏc phương phỏp song song húa cỏc cõu vấn tin dựa vào dữ liệu

Cho một tập dữ liệu được tổ chức thành một cấu trỳc chung, như là bảng, mảng hoặc khối.

- Một tập cỏc tỏc vụ cựng làm cụng việc trờn cựng một cấu trỳc dữ liệu giống nhau, tuy nhiờn, mỗi tỏc vụ hoạt động trờn một phõn vựng khỏc nhau của cựng một cấu trỳc dữ liệu.

- Cỏc tỏc vụ thực hiện cỏc thao tỏc giống nhau trờn cựng một phõn vựng cụng việc của chỳng, vớ dụ, "cộng thờm 4 đến mọi phần tử mảng".

- Trờn cỏc kiến trỳc bộ nhớ chia s , tất cả cỏc tỏc vụ cú thể cú quyền truy cập vào cấu trỳc dữ liệu thụng qua bộ nhớ toàn cục. Trờn cỏc kiến trỳc bộ nhớ phõn phối cấu trỳc dữ liệu được phõn ra và tồn tại như một "khối" trong bộ nhớ cục bộ của từng tỏc vụ. … … do i = m, n A(i) = B(i)*delta end do … ... array A

task 1 task 2 … task n … … do i = 26, 50 A(i) = B(i)*delta end do … ... … … do i = 1, 25 A(i) = B(i)*delta end do … ...

Hỡnh 2.3-2. Mụ hỡnh dữ liệu song song Chỳ ý:

Lập trỡnh với cỏc dữ liệu mụ hỡnh song song thường được thực hiện bằng cỏch viết một chương trỡnh với dữ liệu cú cấu trỳc song song. Cỏc cấu trỳc cú thể gọi đến một thư viện chương trỡnh con dữ liệu song song với hoặc, cỏc chỉ thị trỡnh biờn dịch được cụng nhận bởi một trỡnh biờn dịch dữ liệu song song.

Với cỏc module (task 0, task 1, ..., task n) chỳng ta cú thể dựng cỏc cấu trỳc song song Parbegin... parend, Cobegin ... Coend, forall (i = 0; i < n; i++){...} hoặc for (i = 0; i < n; i++) {...} (xem mục 2.1.1) để thực hiện.

Một phần của tài liệu Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng (Trang 66 - 69)

Tải bản đầy đủ (PDF)

(100 trang)