Bài giảng Tính toán song song và phân toán - Chương 6: Đánh giá thuật giải song song cung cấp cho các bạn những kiến thức về độ phức tạp thời gian, Speedup, Efficiency, định luật Amdahl, chi phí thời gian.
11/16/12 Đánh giá thuật giải song song Tính tốn song song và phân tán PGS.TS Trần Văn Lăng 1. 2. 3. 4. 5. tvlang@vast-‐hcm.ac.vn lang@lhu.edu.vn Độ phức tạp thời gian Speedup Efficiency Định luật Amdahl Chi phí thời gian 6.1 Độ phức tạp thời gian • Để đánh gía thuật giải song song thường căn cứ vào: – Thời gian Ynh toán (hay Time Complexity) – Yêu cầu số bộ xử lý (hay Processor Complexity) • T(n) = O(f(n)) nếu có số dương C và n0 sao cho T(n) < Cf(n), với các n > n0 • T(n) = Ω(f(n)) nếu có số dương C và n0 sao cho T(n) > Cf(n), với các n > n0 11/16/12 Ngoài ra, • T(n) = θ(f(n)) nếu có các số dương C1, C2, n1, n2 sao cho T(n) < C1f(n), với tất cả các n > n1 và T(n) > C2f(n), với tất cả các n > n2 • Khi đó T(n) = θ(f(n)) nếu và chỉ nếu T(n) = O(f(n)) T(n) = Ω(f(n)) • Và, T(n) = O(f(n)) tương đương f(n) = Ω(T(n)) • T(n) = o(f(n)) nếu với mọi số dương C, tồn tại n0 cho T(n) < Cf(n), với các n > n0 • T(n) = ω(f(n)) nếu với mọi số dương C, tồn tại n0 cho T(n) > Cf(n), với các n > n0 Khi đó, • T(n)=o(f(n)) tương đương f(n)= ω(T(n)) • T(n)=o(f(n)) suy ra T(n)=O(g(n)) • T(n)= ω(f(n)) suy ra T(n)= Ω(f(n)) • Một thuật giải bao gồm 2 phần, phần thứ nhất có độ phức tạp là O(f1(n)), phần thứ hai là O(f2(n)) • Khi đó, thuật giải sẽ có độ phức tạp là O(Max{f1(n),f2(n)}) 11/16/12 • Một thuật giải là sự lồng nhau của 2 phần, phần thứ nhất có độ phức tạp là O(f1(n)), phần thứ hai O(f2(n)) • Khi đó, thuật giải sẽ có độ phức tạp là O(f1(n)xf2(n)) • Xét L = lim n →∞ T ( n) f ( n) • Nếu L = 0, điều đó có nghĩa f(n) tăng nhanh hơn T(n), nên T(n) = o(g(n)) • Nếu L = ∞, thì T(n) = ω(f(n)) • Lếu L khác không và hữu hạn, i.e T(n) và f(n) tăng cấp độ, nên T(n) = θ(f(n)) 10 • Xét • Khi đó • Hoặc T(n) = n100, f(n) = 2n, thì T(n) = o(2n) và f(n) = ω(n100) • Ta có thể chứng minh điều này bằng lấy giới hạn tỷ số T(n) và f(n), sau đó dùng khai triển L'Hopital đến số hạng thứ 100, với T ( n) n + n lim = = n →∞ f ( n) 2n 2 T ( n) = n(n + 1) , f ( n) = n 2 • Vậy T(n) = θ(n2) • Tương tự, P(n) là đa thức bậc m, thì P(n) = θ(nm) f (x) = f (0) + x x2 x100 (100) f "(0) + f " (0) + + f (0) 1! 2! 100! d f ( x) e = e f ( x ) f ʹ′( x) dx 11 € 12 11/16/12 6.2 Speedup • Thuật giải tuần tự với độ phức tạp theo thời gian Ts(n) • Thuật giải song song trên P bộ xử lý có độ phức tạp là Tp(n) • Khi đó, speedup Sp(n) được định nghĩa Sp(n) = Ts(n)/Tp(n) • Speedup của hệ thống song song không phải là số cố định Mà phụ thuộc vào kích thước bài toán và số bộ xử lý Thực chất là hàm của (n,P) • Người ta thường phân Ych để đánh giá định Ynh thuật giải song song bằng cách cố định n hoặc cố định P để vẽ các đường cong tương ứng là giá trị của speedup 6.3 Efficiency • Cố định n, vẽ đồ thị đường cong speedup theo P -‐ trục là P, trục cịn lại là speedup Qua đó có thể phân Ych hiệu năng của thuật giải khi số bộ xử lý tăng lên • Cố định P, vẽ đồ thị đường cong speedup theo n Qua đó có thể nghiên cứu dáng điệu của thuật giải kích thước bài tốn tăng lên • Efficiency (hiệu suất) có giá trị tối đa là 1 • Efficiency cung cấp dấu hiệu về sự tận dụng có hiệu quả của các bộ xử lý • Chính vì vậy, efficiency Ep(n): Ep(n) = Ts(n)/pTp(n) = Sp(n)/p 11/16/12 Ví dụ: Thuật giải sàn Eratosthenses • Mục ‘êu ’m các số nguyên tố nhỏ hơn hay bằng số nguyên dương N cho trước – Lấy số ‘ếp theo còn trên sàn (là số 3) – Quay trở lại bước thứ hai cho đến t2 > N – Các số còn lại trên sàn là số nguyên tố – Bắt đầu tứ số nguyên tố thứ nhất t (số 2) – Sàn bỏ các bội của số t này kể tứ t2 cho đến N 17 Thuật giải tuần tự • Minh họa, với N = 1000, các số nguyên tố nhỏ hơn N là 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31 • Thuật giải để sàn một số nguyên tố t nào đó được minh họa như sau: i = t2 While i 1 và khi đó nếu N> ⇔ N > 100 + P −1 ⇔ P N2 N2 N +N > + 100 + ⇔ N + N P > N + N P + 100 P P P ( ) • Thì thuật giải T2p tốt hơn T1p 11/16/12 6.4 Định luật Amdahl • Trong một vài chương trình có nhiều đoạn khác nhau, có thể có những đoạn dễ dàng song song hóa, nhưng có những đoạn chỉ thực hiện tuần tự • Khi đó, đoạn tuần tự khơng thể song song được, gọi là ’nh trạng boŸle-‐neck (thắt cổ chai) • Định luật: Một chương trình bao gồm hai đoạn, đoạn chỉ có thể thực hiện tuần tự và một đoạn hoàn tồn có thể song song hóa Nếu đoạn tuần tự ‘êu phí phần f của tổng thời gian thi hành chương trình, thì speedup của thuật giải song song khơng vượt q 1/f • Để hình dung, chia thời gian thi hành Ts(n) của thuật giải tuần tự (ban đầu) thành f phần • Khi đó có thể viết • Nếu thuật giải luôn luôn cần 1/f tuần tự, phần cịn lại có thể song song, thì thời gian thi hành thuật giải song song Tp(n) của cùng bài toán trên p bộ xử lý là: TS (n) = fTS (n) + (1 − f )TS (n) Tp (n) = fTS (n) + 35 (1 − f )TS (n) p 36 11/16/12 • Từ đây, độ tăng tốc speedup là S p ( n) = • Khi p khá lớn, Speedup bị chặn trên bởi 1/f TS (n) TS (n) = = ( − f ) T ( n ) 1− f Tp (n) fT (n) + S f + S p p S p ( n) = 1 ≤ , ∀p f + (1 − f ) p f 37 38 6.5 Chi phí thời gian • Chẳng hạn, phần tuần tự là 10% thì speedup tối đa 10 • Chi phí thời gian của thuật giải song song thông thường bao gồm: – Thời gian thi hành (execu,on ,me) – Thời gian Ynh toán (computa,on ,me) – Thời gian giao ‘ếp (communica,on ,me) – Thời gian chờ/nhàn rỗi (idle ,me) 1/f 39 10 11/16/12 Thời gian thi hành Tuy nhiên, đơi khi • Thời gian thi hành T của thuật giải song song bao gồm: • Cịn lấy tổng thời gian Ynh toán, thời gian giao ‘ếp thời gian chờ đợi của một ‘ến trình thứ i bất kỳ đó – Thời gian Ynh tốn – Thời gian giao ‘ếp – Thời gian chờ i i i T = Tcomp + Tcomm + Tidle • Thời gian của ‘ến trình thực hiện chậm nhất i i i T = max{Tcomp + Tcomm + Tidle i } € 41 42 Thời gian Ynh tốn • Hoặc trung bình của tổng thời gian Ynh toán, giao ‘ếp và chờ trên tất cả các process (task) (Tcomp + Tcomm + Tidle ) P P−1 P−1 & # P−1 i i i = % ∑Tcomp + ∑Tcomm + ∑Tidle ( P $ i=0 ' i=0 i=0 T= • Thời gian Ynh toán của thuật giải Tcomp là thời gian sử dụng cho những thao tác Ynh toán • Thời gian Ynh tốn thường phụ thuộc vào kích thước bài tốn 43 11 11/16/12 Thời gian giao ‘ếp • Kích thước được biểu diễn bằng một tham số N, được biểu diễn bằng một tập hợp các tham số N1, N2, , Nm • Nếu thuật giải song song lặp lại việc Ynh tốn, thì thời gian Ynh tốn cũng sẽ phụ thuộc vào số task hay số process • Thời gian giao ‘ếp Tcomm là thời gian mà những task sử dụng cho việc truyền các thông điệp giữa task với nhau • Chi phí cuả việc gởi thơng điệp giữa hai task được định vị trên những processor khác nhau có thể biểu diễn bằng hai tham số: Thời gian chờ • Một processor thường rãnh rỗi do việc thiếu công việc Ynh tốn hoặc thiếu dữ liệu • Trong trường hợp thứ nhất, thời gian rãnh rỗi này có thể ngăn chặn bằng cách sử dụng kỹ thuật load balancing – Thời gian khởi động việc truyền thông điệp ts, – Và thời gian truyền L dữ liệu twL (trong đó tw là thời gian truyền 1 dữ liệu • Vậy Tcomm = ts + twL 47 12 11/16/12 • Trường hợp thứ hai, processor ở ’nh trạng nhàn rỗi do việc Ynh toán và truyền thơng điệp địi hỏi dữ liệu từ xa • Thời gian này có thể tránh được bằng cách cho processor thực hiện những Ynh toán và giao ‘ếp khác • Kỹ thuật này được biết như là overlapping computa,on and communica,on, • Khi đó một Ynh toán địa phương được thực hiện đồng thời với những Ynh toán và giao ‘ếp tứ xa Ví dụ: Minh họa thời gian • Hoặc tạo ra nhiều task trên một processor Khi task làm trở ngại việc đợi dữ liệu tứ xa, nó có thể chuyển sang một task khác mà dữ liệu đã sẵn sàng thực hiện • Cách này ‘ện lợi vì đơn giản, nhưng chỉ có hiệu qủa nếu như chi phí thực hiện một task mới ít chi phí thời gian nhàn rỗi • Chúng ta xem xét một miền gồm N x N x Z điểm lưới, trong đó Z là số điểm theo phương thẳng đứng, N là số điểm theo hai phương ngang • Một task tương ứng một miền con gồm N x (N/P) x Z điểm lưới, với P là số bộ xử lý (chia miền theo phương ngang) 13 11/16/12 • Giả sử ở mỗi bước thời gian, mỗi task thực hiện một Ynh tốn tại mỗi điểm lưới • Khi đó thời gian Ynh tốn là Tcomp = tcN2Z Trong đó tc là thời gian Ynh tốn trung bình cho điểm lưới • Đối với thời gian truyền dữ liệu, mỗi task sẽ giao ‘ếp với hai task lân cận (hai mặt), trong đó mỗi mặt gồm NZ phần tử, nên mỗi task trao đổi 2NZ liệu • Khi đó tổng chi phí truyền ‘n (gửi và nhận) trên P xử lý sẽ là Tcomm = 2P(ts + tw2NZ) • Giả sử P chia hết N,số lượng Ynh toán trên mỗi điểm lưới là hằng, thời gian chờ khơng đáng kể • Chi phí thời gian: • Efficiency của thuật giải như sau: T= Tcomp + Tcomm P = tc N Z tc N Z E= = PT N Ztc + P 2ts + P NZt w N 2Z tc + 2ts + NZt w P 55 56 14 11/16/12 • Với thuật giải có chi phí thời gian và hiệu năng như trên, nhận xét rằng: – Hiệu suất sẽ giảm đi khi tăng P, ts và tw – Hiệu suất sẽ tăng lên khi tăng N, Z và tc – Thời gian thi hành giảm khi tăng P nhưng bị chặn bởi chi phí chuyển đổi giữa hai miếng dữ liệu – Thời gian thi hành tăng khi tăng N, Z, tc, ts và tw 57 15 ... ? ?song ? ?song khơng phải là số cố định Mà phụ thuộc vào kích thước ? ?bài tốn ? ?và số bộ xử lý Thực chất là hàm của (n,P) • Người ta thường ? ?phân Ych để ? ?đánh ? ?giá. .. 0,5655 • Xét ? ?bài tốn có kích thước N trên máy P bộ xử lý Thuật ? ?giải tuần tự có thời gian thực hiện là N + N2 • Giả sử có 3 ? ?thuật ? ?giải ? ?song ? ?song: – T1p(N)... đoạn hồn tồn có thể ? ?song ? ?song hóa Nếu đoạn tuần tự ‘êu phí phần f của tổng thời gian thi hành chương trình, thì speedup của ? ?thuật ? ?giải ? ?song ? ?song không vượt quá