23
MULTITHREADED ALGORITHMS TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN Lê Chí Chung Vũ Đình Thuấn Bùi Đắc Tú K25 – 2015 Phân tích và thiết kế thuật toán 1

Multithreaded algorithms

Embed Size (px)

Citation preview

Page 1: Multithreaded algorithms

MULTITHREADED ALGORITHMS

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘIKHOA CÔNG NGHỆ THÔNG TIN

Lê Chí ChungVũ Đình Thuấn

Bùi Đắc TúK25 – 2015

Phân tích và thiết kế thuật toán 1

Page 2: Multithreaded algorithms

Nội dung

2

Ý tưởng

Cơ sở của xử lí đa luồng

Minh họa thuật toán

Phân tích và thiết kế thuật toán

Page 3: Multithreaded algorithms

Bài toán Fibonaci (TT 1)

Thuật toán 1:• Int Fib(n)• Begin

If N = 0 then return 1;If N = 1 then return 1;If N >1 then Begin

x = Fib(n-1);y = Fib(n-2);return x+y;

End;• end;

3Phân tích và thiết kế thuật toán

Page 4: Multithreaded algorithms

Mô hình xử lí tuần tự

4Phân tích và thiết kế thuật toán

Page 5: Multithreaded algorithms

Bài toán Fibonaci (TT 2)

• Int Fib(n)• Begin

F = F1 = F2 = 1;For i := 2 to n do

Begin F = F1+F2;F1 = F2;F2 = F;

End;Return F;

• end;

5Phân tích và thiết kế thuật toán

Page 6: Multithreaded algorithms

Bài toán Fibonaci (TT 3)

• P-FIB(n)• if n ≤ 1 return n• else x = spawn P-FIB(n – 1)• y = P-FIB(n – 2)• sync• return x + y

6Phân tích và thiết kế thuật toán

Page 7: Multithreaded algorithms

Mô hình xử lí song song

7Phân tích và thiết kế thuật toán

Page 8: Multithreaded algorithms

Đánh giá

• T1 là thời gian thực hiện thuật toán theo phương pháp tuần tự ( work)

• T∞ : thời gian thực hiện thuật toán theo phương pháp song song (span)

• Tp : thời gian thực hiện thuật toán trên một bộ xử lí P

TP T1/P TP

8Phân tích và thiết kế thuật toán

Page 9: Multithreaded algorithms

Mô hình đánh giá

9Phân tích và thiết kế thuật toán

Page 10: Multithreaded algorithms

Multithreaded matrix multiplication

10

SQUARE-MATRIX-MULTIPLY nhân hai ma trận A và B cỡ nxn, kết quả đưa vào ma trận C nxn

Page 11: Multithreaded algorithms

Multithreaded matrix multiplication

11

Page 12: Multithreaded algorithms

Multithreaded matrix multiplication

12

Như vậy thời gian song song của P-MATRIX-MULTIPLY-RECURSIVE

Page 13: Multithreaded algorithms

Multithreaded merge sort

13

MERGE-SORT’ sắp xếp các mảng con A[p..r]. Sau khi hai chương trình con đệ quy trong dòng 3 và 4 đã hoàn thành, được đảm bảo bởi tuyên bố đồng bộ trong dòng 5, MERGE-SORT’ gọi đến thủ tục MERGE

Page 14: Multithreaded algorithms

Multithreaded merge sort

14

Bởi vì MERGE là tuần tự, cả work và span của nó là Θ(n). Như vậy, sự tái phát sau đặc trưng cho work MS1' và spancủa MERGE-SORT’ trên n các yếu tố

Như vậy thời gian song song của MERGE-SORT’ là / =

Page 15: Multithreaded algorithms

Multithreaded merge sort

15

Ý tưởng sáp nhập đa luồng của hai mảng con đã sắp xếp T[p1..r1] và T[p2..r2] vào mảng con A[p3..r3].

Page 16: Multithreaded algorithms

Multithreaded merge sort

16

Đầu tiên tìm các yếu tố giữa x = T[q1] của

mảng con T[p1..r1] , với q1=.

Mọi phần tử trong T[p1.. q1-1] là không lớn hơn

x, và mọi phần tử trong T[q1+1.. r1] là không nhỏ

hơn x. Sau đó sử dụng TT tìm kiếm nhị phân để tìm

chỉ số q2 trong mảng con T[p2..r2] để các mảng

con sẽ vẫn được sắp xếp nếu chúng ta chèn x

giữa T[q2-1] và T[q2]

Page 17: Multithreaded algorithms

Multithreaded merge sort

17

Tiếp theo chúng ta trộn các subarrays gốc T[p1..r1]

và T[p2..r2]vào A[p3..r3] như sau:

1. Đặt q3 = p3 + (q1 -p1) +(q2 - p2).

2. Copy x vào A[q3]

3. Đệ quy sáp nhập T[p1.. q1-1] và T[p2.. q2-1] và

đặt kết quả vào mảng con A[p3.. q3-1] .

4. Đệ quy sáp nhập T[q1+1.. r1] và T[q2.. r2] và đặt

kết quả vào mảng con A[q3+1.. r3].

Page 18: Multithreaded algorithms

Multithreaded merge sort

18

Page 19: Multithreaded algorithms

Multithreaded merge sort

19

Thời gian xử lý song song của P-MERGE là

/ =

=

=

Page 20: Multithreaded algorithms

Multithreaded merge sort

20

Xét một thủ tục sáp nhập đa luồng song song độc

đáo, chúng ta có thể kết hợp nó vào một sắp xếp

trộn đa luồng. P-MERGE-SORT(A, p, r, B, s) sắp

xếp các yếu tố trong A[p .. r] và lưu trữ chúng trong

B[s .. s+r-p].

Page 21: Multithreaded algorithms

Multithreaded merge sort

21

Page 22: Multithreaded algorithms

Multithreaded merge sort

22

Thời gian xử lý song song của P-MERGE-SORT là

Page 23: Multithreaded algorithms

23

Nhóm 5 trân trọng cảm ơn thầy và các bạn đã lắng nghe!

Phân tích và thiết kế thuật toán