USE(S2) ∩ USE(S1) ∅

Một phần của tài liệu slide bài giảng kiến trúc máy tính và hệ điều hành chương 4 một số kiến trúc hiện đại (Trang 43 - 65)

- USE(S) = {A, C}

USE(S2) ∩ USE(S1) ∅

- Sự thực hiện của lệnh này phụ thuộc vào giá trị của các biến được tính ở lệnh kia

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.1. L p trình song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:

+ Loại bỏ phản phụ thuộc:

- Có thể loại bỏ phản phụ thuộc dữ liệu và phụ thuộc dữ liệu ra bằng cách đặt lại tên các biến

+ Ví dụ: A = B + C A = C * X A = B + C A1 = C * X Loại bỏ phụ thuộc dữ liệu ra

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.1. L p trình song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:

+ Ví dụ: A = B + C B = C * X A = B + C B1 = C * X Loại bỏ phản phụ thuộc dữ liệu For i=1,n,1 X = A[i] + B[i] Y[i] = 2 * X X= C[i] * D[i] P = X + 15 Endfor Loại bỏ phản phụ thuộc dữ liệu For i=1,n,1 X = A[i] + B[i] Y[i] = 2 * X XX= C[i] * D[i] P = XX + 15 Endfor

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.1. L p trình song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:

+ Ví dụ: Xét dãy câu lệnh sau S1: A = B + C S2: B = A * 3 S3: A = 2 * C S4: P = B >= 0 if (P is true) S5: then D = 1 S6: else D = 2 endif S1 S2 S3 S4 S6 S5

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.1. L p trình song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:

+ Ví dụ: Các câu lệnh sau khi biến đổi S2’: B = (B + C) * 3 S3: A = 2 * C S4: P = B >= 0 if (P is true) S5: then D = 1 S6: else D = 2 endif S2’ S3 S4 S6 S5

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.1. L p trình song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Biến đổi chương trình:

+ Các biến quy nạp m = 0; DO i = 1 to N m = m + k; x[m] = a[i]; END DO i = 1 to N x[i * k] = a[i]; END

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.1. L p trình song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Biến đổi chương trình:

+ Sự phụ thuộc tiến DO i = 1 to N x[i] = x[i+1]; END DO i = 1 to N x1[i] = x[i]; END DO i = 1 to N x[i] = x1[i+1]; END

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.1. L p trình song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Biến đổi chương trình:

+ Sự phụ thuộc lùi

DO i = 1 to N

x[i] = x[i-1] + y[i]; END

DO i = 1 to N

x[i] = x[0] + y[1] + y[2] + … + y[i]; END

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.1. L p trình song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Biến đổi chương trình:

+ Sự phân tách chu trình

DO i = 1 to N

a[i] = b[i] + c[i]; c[i] = a[i -1]; END

DO i = 1 to N

a[i] = b[i] + c[i]; END

DO i = 1 to N

c[i] = a[i -1]; END

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.1. L p trình song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Biến đổi chương trình:

+ Sự phân tách chu trình

DO i = 1 to N

a[i] = b[i] + c[i]; c[i] = a[i +1]; END DO i = 1 to N x[i] = c[i]; c[i] = a[i+1]; END DO i = 1 to N

a[i] = b[i] + x[i]; END

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.2. Thu t toán song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Nguyên lý thiết kế thuật toán song song:

+ Xử lý song song Kiến trúc máy tính

Thuật toán song song + Chương trình song song

Thuật toán song song Cấu trúc dữ liệu

+ Thuật toán song song: tập các tiến trình (hay tác vụ) - Có thể trao đổi dữ liệu với nhau

- Có thể thực hiện đồng thời

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.2. Thu t toán song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Nguyên lý thiết kế thuật toán song song:

+ Cần trả lời các câu hỏi:

- Việc phân chia dữ liệu cho các tác vụ như thế nào? - Dữ liệu được truy cập như thế nào?

- Những dữ liệu nào cần chia sẻ?

- Phân các tác vụ cho các bộ xử lý như thế nào? - Các tiến trình được đồng bộ ra sao?

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.2. Thu t toán song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Nguyên lý thiết kế thuật toán song song:

+ Năm nguyên lý chính trong thiết kế thuật toán song song: - Các nguyên lý lập lịch (độ phức tạp thuật toán)

- Nguyên lý hình ống - Nguyên lý chia để trị

- Nguyên lý đồ thị phụ thuộc dữ liệu - Nguyên lý điều kiện tranh đua

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.2. Thu t toán song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Nguyên lý thiết kế thuật toán song song:

+ Một số điểm cần quan tâm:

- Yếu tố quan trọng nhất ảnh hưởng đến độ phức tạp tính toán là cấu hình tôpô liên kết mạng

- Thuật toán song song phải được thiết kế dựa trên:

 Kiến thức về kiến trúc máy tính

 Ngôn ngữ lập trình song song

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.2. Thu t toán song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Các thuật toán sắp xếp song song:

+ Thuật toán sắp xếp theo hạng:

- Số những số nhỏ hơn một số đã chọn sẽ được đếm - Số đếm được sẽ xác định vị trí của phần tử đã được chọn trong danh sách cần sắp xếp

- Ví dụ: Cho mảng các phần tử 5, 3, 7, 6, 9, 10, 8, 12

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.2. Thu t toán song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Các thuật toán sắp xếp song song:

+ Thuật toán sắp xếp theo hạng:

- Thuật toán tuần tự được viết như sau: for (i = 0; i < n; i ++) { x = 0; for (j = 0; j < n; j ++) if (a[i] > a[j]) x++; b[x] = a[i]; } for i := 0 to n do begin x := 0; for j := 0 to n do if (a[i] > a[j]) then

x := x + 1; b[x] := a[i];

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.2. Thu t toán song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Các thuật toán sắp xếp song song:

+ Thuật toán sắp xếp theo hạng:

- Thuật toán song song được viết cho n bộ xử lý:

forall (i = 0; i < n; i ++) //n bộ xử lý thực hiện song song

{ x = 0;

for (j = 0; j < n; j ++) //đếm số phần tử nhỏ hơn if (a[i] > a[j]) x++;

b[x] = a[i]; //Sao sang bảng được sắp xếp }

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.2. Thu t toán song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Các thuật toán sắp xếp song song:

+ Thuật toán sắp xếp so sánh và đổi chỗ: - Thuật toán tuần tự được viết như sau: for (i = n-1; i > 0; i --) for (j = 0; j < i; j ++) { k = j + 1; if (a[j] > a[k]) { temp = a[j]; a[j] = a[k]; a[k] = temp; } }

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.2. Thu t toán song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Các thuật toán sắp xếp song song:

+ Thuật toán sắp xếp so sánh và đổi chỗ:

- Thuật toán song song sử dụng n tiến trình kết hợp theo nguyên lý hình ống, chia làm 2 pha: chẵn và lẻ

 Pha chẵn: các tiến trình được đánh số chẵn so sánh với những tiến trình tiếp theo (tiến trình có số lẻ)

 Pha lẻ: các tiến trình có số lẻ hoạt động tương tự như trên

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.2. Thu t toán song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Các thuật toán sắp xếp song song:

- Ví dụ: n= 8 và dãy số ban đầu: 4, 2, 7, 8, 5, 1, 3, 6

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.2. Thu t toán song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Các thuật toán sắp xếp song song:

+ Thuật toán sắp xếp MergeSort:

- Sử dụng cách tiếp cận “chia để trị”

 Danh sách ban đầu được chia thành 2 phần

 Mỗi phần lại chia đôi tiếp

 Mỗi phần nhỏ chỉ còn là một phần tử

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.2. Thu t toán song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Các thuật toán sắp xếp song song:

4 2 7 8 5 1 3 6 4 2 7 8 5 1 3 6 4 2 7 8 4 2 7 8 5 1 3 6 5 1 3 6 2 4 7 8 1 5 3 6 2 4 7 8 1 3 5 6 1 2 3 4 5 6 7 8

4.4. L p trình song song và các thu t toán song songậ ậ

4.4.2. Thu t toán song songậ

CHƯƠNG 4: M T S KI N TRÚC HI N Đ I

* Các thuật toán sắp xếp song song:

P0P0 P4

Một phần của tài liệu slide bài giảng kiến trúc máy tính và hệ điều hành chương 4 một số kiến trúc hiện đại (Trang 43 - 65)

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

(69 trang)