1. Trang chủ
  2. » Công Nghệ Thông Tin

Phân tích & Thiết kế Giải thuật nâng cao Tính toán song song Parallel computing

59 950 0

Đ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 59
Dung lượng 752,5 KB

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

Nội dung

Giới thiệu – Mục đích: dùng một số processors thực hiện tính toán nhanh hơn một processor đơn  Giải nhanh  Giải các bài toán lớn: dự báo thời tiết, mô phỏng, xử lí ảnh,… – Nhân tố:

Trang 1

Tính toán song song Parallel computing

TS Trần Cao Đệ Năm 2008

Trang 3

Giới thiệu

– Mục đích: dùng một số processors thực hiện tính toán nhanh hơn một

processor đơn

 Giải nhanh

 Giải các bài toán lớn:

dự báo thời tiết, mô phỏng, xử lí ảnh,…

– Nhân tố:

 giá phần cứng rẻ, dễ tích hợp,

 giới hạn của kiến trúc Von Newmann

 Máy tính song song là một tập hợp các processors, thông thường là cùng một kiểu, nối kết

nhau theo một kiểu nào đó để phối

hợp hoạt động và trao đổi dữ liệu

– Khoảng cách giữa các processors là nhỏ

– Phối hợp nhau giải một bài toán

 Máy tính song song # hệ thống phân tán

– Hệ thống phân tán: khoảng cách xa, processors khác kiểu.

– Chia sẻ tài nguyên

Trang 4

– Kỹ thuật, mô hình, phương pháp tính toán song song

– Không đi vào chi tiết giải thuật của các ứng dụng

 Đánh giá hiệu quả giải thuật

– Máy tính tuần tự: thời gian, bộ nhớ & tính lập trình được

– Máy song song: số processors, dung lượng bộ nhớ cục bộ, lược

đồ giao tiếp, giao thức đồng bộ hóa.

Trang 5

Đánh giá hiệu quả GT

 Cho bài toán P có kích

thước input n

– Kí hiệu độ phức tạp thời gian tuần tự T*(n) Tức là, tồn tại một giải thuật tuần tự giải P với thời gian T*(n) và không có một giải thuật tuần tự nào nhanh hơn

– Giả sử A là một gt song song giải P với thời gian

T p (n) trên p processors.

 Sự tăng tốc

Sp(n)=T*(n)/Tp(n)– Trên thực tế S p (n)≤p

– Cố gắng thiết kế Sp(n)p

 Một vài tác tố ảnh hưởng

– Cạnh tranh trong tính toán

– Chậm trể trong giao tiếp

– Gánh nặng đồng bộ hóa hoạt động các processors, điều khiển hệ thống

Trang 6

Đánh giá (TT)

 Kí hiệu T1(n) là thời gian

thực hiện gt A với p=1 processor T1(n) không nhất thiết là T*(n)

 Thông thường người ta thay

T*(n) bởi cận thời gian của một gt tuần tự tốt nhất đã biết (nếu không biết độ phức tạp của bài toán)

 Efficiency:

Ep(n)=T1(n)/(pTp(n))– Nếu E p (n) ~ 1 thì giải thuật

A chạy nhanh xấp xỉ p lần khi dùng p processors.

 Giới hạn thời gian T∞(n), giải thuật không thể chạy nhanh hơn dù cho có dùng bao nhiêu processors đi nữa:

Tp(n)≥T∞(n) với mọi p

 Suy ra: Ep(n)≤T1(n)/(pT∞(n))

 Vậy hiệu quả giải thuật sẽ giảm đi nếu p ≥ T1(n)/T∞(n)

Trang 7

 If (cond) then statement

else statement

 For variable=value to value do statement

 While (cond) do statement

 Exit

Trang 8

Mô hình song song

Mô tả dễ,

Phân tích được hiệu quả giải thuật

Không phụ thuộc kiến trúc song song

Độc lập phần cứng

Có thể cài trên máy tính song song

Trang 9

Kiến trúc song song

phân loại của Flynn

được thực hiện song song bởi nhiều processors với các dữ liệu khác nhau

– Vector Machines Ex : Cray

(pipeline)

processors thực hiện các tính toán song song với dữ liệu khác nhau.

Trang 11

– Khi một phần chương trình có thể song song hóa

Trang 13

Speedup

Trang 14

Mô hình song song

Đồ thị không có chu trình (DAG)

 Đồ thị có hướng, không có chu trình

– Input: nút không có cung vào

– Phép toán: nút có cung vào và số cung

vào tối thiểu là 2 Giả sử mỗi phép toán thực hiện được trong 1 đơn vị thời gian (unit cost)

– Output: nút không có cung ra

 Một DAG có n inputs biểu diễn cho một

tính toán không có rẽ nhánh với kích thước

đầu vào là n

 Nếu bài toán có rẽ nhánh, vẽ mỗi nhánh

một DAG

 Một DAG xác định các phép toán phải thực

hiện bởi giải thuật

Ví dụ : DAG tính tổng dãy có n=2 k phần tử

A1 A2

A3 A4 A5 A6

+ +

+ + + A7+ A8+

Trang 16

 Tuy nhiên việc đọc dữ liệu

phải ở thời điểm hợp lí Vậy các processor phải có “lịch”

(schedule) hợp lí để thực hiện công việc của mình

 Giả sử có p processors, gọi (ji,ti)

là một cặp kết hợp với nút i (là nút trong của DAG) Với ji là chỉ

số của processor và t i là thời điểm mà processor này thực hiện công việc 2 điều kiện sau phải thỏa:

– Một processor chỉ thực hiện

1 việc tại một thời điểm Tức

là nếu ti=tk với i≠k thì ji ≠ jk

– Nếu nút i trước nút k, tức là (i,k) là một cung trong DAG thì thời điểm mà processor thứ i thực hiện phải trước cái của k, tức là tk ≥ti + 1

– Nếu i là nút input thì ti=0

Trang 17

Schedule

 Schedule của p processors là tập {(ji,ti)/i=1 n} với n

là số nút trong của DAG

một schedule:

– thời gian thực hiện giải thuật sẽ là max({ti}), i=1 n

– Parallel complexity được định nghĩa là

Tp(n) = min(max({ti})), với min lấy trên mọi Schedule Nói cách khác đó là thời gian thực hiện lịch “tốt nhất” cho p processors

Ta có: cận dưới của T p (n) là độ dài đường đi dài nhất trong DAG

Trang 18

+ +

+ + + A7+ A8+

Trang 19

thuật là O(log2n)

DAG tính cij với n processors (nhân ma trận 4x4)

Trang 20

Mô hình song song

Mô hình bộ nhớ chung (shared memory)

– Mỗi processor có một id

– Mỗi processor có một bộ nhớ cục bộ

– Đồng bộ: tất cả processor có một đồng hồ chung

Parallel random access machine (PRAM)

– Bất đồng bộ: mỗi processor có đồng hồ riêng Người lập trình phải tạo sự đồng bộ hóa

Shared Memory

P1 P2 Pn

Trang 21

– Các processors cần trao đổi dữ liệu thì transfer vào bộ nhớ chung  số giao tiếp

(communication)

– Global read(X,Y):

chuyển block X từ bộ nhớ chung vào bộ nhớ cục bộ Y

– Global write(U,V):

chuyển bộ nhớ cục bộ U vào bộ nhớ chung V

Trang 22

Ví dụ nhân vector với ma trận

vector x trong bộ nhớ chung

– Giả sử A(l:u;s:t) là ma trận con gồm các hàng l, u và các cột s, ,t

x

Trang 23

Giải thuật tính Ax với mô hình MIMD

 Input: Anxn và vector x có n phần tử; p processor sao cho n/p

global write(w,y((i-1)r+1:ir))end

Trang 24

Lưu ý

 Trong mô hình MIMD trên

– Nhiều processors đọc cạnh tranh một ô nhớ (dùng

chung)

– Hai processors không ghi cạnh tranh vào một ô nhớ (dùng chung).

 Trong giải thuật trên các tính

toán của mỗi processor là độc lập nên không cần phải synchronize

 Nếu ta tính theo cách sau:

Trang 25

Mô hình song song

Mô hình bộ nhớ chung (shared memory)

nhớ chung khác là SIMD (single instruction multiple data)

– Tất cả processor thực hiện song song một chỉ thị với dữ liệu khác nhau trong một đơn vị thời

gian

nguyên với mô hình SIMD: giả sử có ma trận A gồm 2k số

nguyên, tính S=A(1)+A(2)+…+A(n)

Trang 26

các processor được đánh

begin global read(A(i),a)global write(a,B(i))for h=1 to logn do

if (i<=n/2h) then begin

global read(B(2i-1),x) global read(B(2i),y) z=x+y

global write(z,B(i))end

if i=1 then global write(z,S)End

Trang 27

 Để đơn giản hóa giải thuật, sau này sẽ không chỉ rõ mode.

 Set A=B+C nghĩa là global read(B,x) global read(C,y) z=x+y

global write(z,A)

Trang 28

Begin compute C’(i,j,l)=A(i,l)B(l,j) for h=1 to logn do

if (l<=n/2 h ) then set C’(i,j,l)=C’(i,j,2l-1)+C’(I,j,2l)

if (l==1) then

set C(i,j)=C’(i,j,1) End;

Trang 29

– Receive(Y,j) chờ nhận dữ liệu từ processor j (cho đến khi nhận được)

– Đường kính (diameter)

– Bậc nút: số nút nối với một nút

Trang 31

Giải thuật Matrix x vector trên ring

 Giả sử Pi chứa B=Ai và

– Pi tính y=A1x1+…+Aixi và chuyển kết quả sang processor bên phải

P1 P2 P3 P4 P5

Trang 32

và chờ processor kế bên truyền dữ liệu.

– P1 tính A1x1 và chuyển cho P2, – P2 tính A1x1+ A2x2

Trang 33

Phân tích giải thuật

 Thời gian tính toán của mỗi

số giữa hai processor liền kề Comm(n) = +n

Trang 34

Mắt lưới

Mesh

 Mesh hai chiều là dạng

2 chiều của mô hình của mảng các

Trang 35

Đặc điểm của mắt lưới

Trang 36

Ví dụ nhân ma trận trên mesh

B(4,2) B(3,2) B(2,2) B(1,2)

*

B(4,3) B(3,3) B(2,3) B(1,3)

*

*

B(4,3) B(3,3) B(2,3) B(1,3)

*

*

*

A(1,4) A(1,3) A(1,2) A(1,1)

A(2,4) A(2,3) A(2,2) A(2,1) *

A(3,4) A(3,3) A(3,2) A(3,1) * *

A(4,4) A(4,3) A(4,2) A(4,1) * * *

Trang 37

 Khi A(i,l) và B(l,j) có trong

processor P(i,j), processor:

– tính C(i,j)=C(i,j)+ A(i,l)B(l,j)

– Chuyển A(i,l) sang P(i,j+1)

– Chuyển B(l,j) sang P(i+1,j)

 Sau n bước processor P(i,j)

sẽ có giá trị C(i,j) đúng

 Như vậy n2 processor thực hiện nhân ma trận một cách song song với tốc độ n2

Trang 38

– Processor pi, với i =id-1id-2…ij…i0

sẽ nối với Pi(j)với i(j)=id-1id-2…ij…i0

– Nói cách khác processor

Pi sẽ nối với processor

Pj nếu và chỉ nếu i,j khác nhau chỉ một bit

Trang 39

Ví dụ hybercube d=4

0010 0100

Trang 41

 Output

– Tổng S=n-1i=0 A(i) lưu tại P 0

Beginfor l=d-1 to 0 do

if (0≤i≤2l-1) then set A(i)=A(i)+A(i(j))End

Trang 43

broadcast

 Bài toán: Chuyển data X từ

P0 tới tất cả các processor trong d-cube (2d processors)

 Ý tưởng chuyển data từ số

chiều ít dần đến số chiều cao

 Giải thuật hoàn tất sau

O(log p) bước song song

 Input: cho P0 chứa X và cube

d- Output: broadcast X tới Pi, i=1 2d

 Giải thuậtBegin

for l=0 to d-1 do

if 0≤i≤2l-1 thenset D(i(j))=D(i)end

Trang 45

Nhân ma trận trên hybercube

 Xét bài toán nhân ma

trận C=AB trên hypercube có p=n3processors.

q bít biễu diễn i

q bít biễu diễn j 3q bít biễu diễn r:

r= ln 2 +in+j

Trang 46

Nhân ma trận trên hybercube (tt)

 Nếu cố định mọi cặp trong

ba thành phần I,i,j thì ta có một q-cube (subcube với số đỉnh là q)

 Input:

– ma trận A nxn lưu trên subcube Pl,i,0 ; A(l,i) lưu tại processor P l,i,0.

– ma trận B nxn lưu trên subcube P l,0,j ; B(l,j) lưu tại

2 với mọi 0≤l,i,j≤n-1.

Processor P l,i,j tính C’(l,i,j)= A(i,l)B(l,j), với mọi 0≤i,j,l≤n-1.

3 Với mỗi 0≤i,j≤n-1 các processors P l,i,j (0≤i,j≤n-1) tính C(i,j)= n-1l=0 C’(l,i,j).

Trang 47

Nhân ma trận trên hybercube(tt)

 Cài đặt bước 1:

– với mỗi (i,l): broadcast A(i,l)

từ processor P l,i,0 tới P l,i,j ; với mọi 0≤l≤n-1 (dùng gt broadcast)

– với mỗi (i,l): broadcast B(l,j)

từ processor P l,0,j tới P l,i,j ; với mọi 0≤i≤n-1 (dùng gt broadcast)

– Bước 1 tốn thời gian O(logn)

– Thời gian O(log n)

 Tổng thời gian AxB là O(logn) dùng n3 processors

Trang 49

So sánh các mô hình

 DAG

– Áp dụng vào 1 số lớp bài toán

– Phức tạp, khó phân tích

– Vấn đề lịch biểu (schedule) và cấp phát processor

– Tốt hơn DAG trong tính toán và comunication

– Khó mô tả và phân tích thuật toán

– Phụ thuộc vào topology của mạng: totpology khác nhau giải thuật rất khác nhau!

 PRAM

– Đã phát triển nhiều GT cho nhiều lớp bài toán trên PRAM

Trang 50

So sánh các mô hình

– PRAM không đề cập chi tiết việc đồng bộ hóa và giao tiếp nên có thể tập trung vào các đặc điểm kiến trúc của bài toán

– PRAM nắm bắt những tham

số quan trọng của tính toán song song nó giúp hiểu một cách tường minh GT song song: phép toán cần thực hiện, công việc của các processor,…

 PRAM là một mô hình chắc chắn

– Chuyển đổi networkPRAM

– PRAM bounded network

 Có thể tích hợp các khái niệm đồng bộ và giao tiếp vào PRAM  Giải thuật trên PRAM có thể phân tích một cách tổng quát

Trang 51

Đánh giá hiệu quả của các giải thuật

song song

của nó trong trường hợp xấu nhất

gian T(n) dùng P(n) processors (n là kích thước input)

C(n) = T(n)*P(n),

O(C(n)) với 1 processor.

Trang 52

Đánh giá hiệu quả của các giải thuật song song (tt)

processors sẽ giả lập P(n) processors trong O(P(n)/p) bước con.

– Thời gian giả lập với p processor: O(T(n)P(n)/p)

– P(n) processors và thời gian T(n)

– Cost C(n)=P(n)T(n) và thời gian T(n)

– O(T(n)P(n)/p) với p processors (p≤P(n))

– O(C(n)/p + T(n)) với p bất kỳ

Trang 53

Định lý Brent

gian T thực hiện 1 task m, tồn tại một giải thuật trên PRAM cho p processors thực hiện cùng công việc m với độ phức tạp thời gian O(m/p + T).

 Ý nghĩa: có thể thực hiện GT song song với một số lượng p processors bất kỳ.

Trang 54

set B(i)= B(2i-1)+B(2i) set S=B(1)

End

Trang 55

Phân tích giải thuật

 Giải thuật không đề cập

– đến số processors

– Cách cấp phát processors (công việc mỗi processor)

 Giải thuật chỉ đề cập đến

– Đơn vị thời gian: trong giải thuật này là logn+2.

– Một ĐVTG bao gồm nhiều phép tính song song.

 Khái niệm

– Scheduling principle-Upper level: mô tả GT như một chuỗi ĐVTG Mỗi ĐVTG gồm nhiều phép tính song song.

– T(n): thời gian thực hiện (ĐVTG)

– Work time scheduling principle W(n): số phép tính tổng cộng của GT.

– Lower level: tính số ĐVTG tối thiểu để giả lập tính toán với p processors.

Trang 56

– W(n): số phép tính thực hiện Trong GT trên W(n)=n+lognj=1(n/2 j )+1 = = O(n).

Lower level với p

processors:

Gọi W j (n) là số phép tính tại bước j Giả lập W j (n) phép toán với p processors trong thời gian ≤  W j (n)/p  bước song song.

Với p processors và T(n) ĐVTG thì thời gian giả lập ≤

 j  W j (n)/p  ≤  j  W j (n)/p +1 ≤ j W(n)/p +T(n).

Trang 57

Khái niệm tối ưu tính toán

gian tính toán tuần tự giải bài toán Q nhanh nhất là T*(n) O(T*(n)) gọi là thời gian tối ưu cho bài toán Q

– Tối ưu yếu (kiểu 1):

W(n)=(T*(n)) (số phép toán theo schedule là T*(n))

Giả sử GT song song trong Tg T(n) dùng p processors: Dùng WT Scheduling principle, có thể giả lập GT tuần tự với Tg T(n) trong Tp(n)=O(T*(n)/p+T(n))Speedup:

Sp(n)=Ώ(T*(n)/(T*(n)/p+T(n))

= Ώ(pT*(n)/(T*(n)+p*T(n))

Optimal speedup khi

Sp(n)=p, tức là khi p=O(T*(n)/T(n))

Trang 58

Khái niệm tối ưu tính toán

 Tối ưu mạnh (kiểu 2)

nếu chứng minh được T(n)

là thời gian tối ưu trong tất

cả các GT song song (không thể có GT song song nhanh hơn) Thì W(n) (WT optimal) gọi là tối ưu mạnh

Mọi GT CREW PRAM có thời gian tính sum là Ώ(logn) nên GT Sum ở trên là tối

ưu (mạnh) trên CREW PRAM

Trang 59

Tài liệu tham khảo

Addision-Wesley, 1992.

and Practice, McGraw-Hill, 1994.

 Kai Hwang and ZhiweiXu, Scalable Parallel Computing: Technology, Architecture and Programming.

Ngày đăng: 23/03/2015, 08:11

HÌNH ẢNH LIÊN QUAN

Đồ thị không có chu trình (DAG) - Phân tích & Thiết kế Giải thuật nâng cao Tính toán song song Parallel computing
th ị không có chu trình (DAG) (Trang 14)

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