2 Giải hệ phơng trình với ma trận hệ số tam giác

Một phần của tài liệu Thiết kế giải thuật song song (Trang 65 - 67)

Sau khi thực hiện phân rã A= L*U, ta sẽ thu đợc:

• L là ma trận tam giác dới ( lower triangular ) bởi vì tất cả các phần tử phía trên đờng chéo chính đều = 0, lij= 0 với i < j.

• U là ma trận tam giác trên ( upper triangular) bởi vì tất cả các phần tử phía dới đờng chéo chính đều = 0, uij= 0 với i> j.

Đối với các giải thuật trực tiếp giải hệ phơng trình tuyến tính thì việc đa ma trận hệ số về ma trận tam giác là điều quan trọng bởi vì hệ tuyến tính ma trận hệ số tam giác thờng dễ giải bằng các bớc khử liên tiếp.

Giải thuật tuần tự giải L* y = b.

Đối với hệ phơng trình tam giác thấp, y có thể tìm đợc bằng giải thuật rút gọn tiến. Giải thuật đợc trình bày nh sau:

xi=(bi- ∑− = 1 1 / ) i j ii j ijx l l , i=1, , n… for j=1 to n x j = b j /ljj for i = j+1 to n bi= bi- lij x j end end

Giải thuật tuần tự giải U * x = y

Đối với hệ phơng trình tam giác trên, x có thể tìm đợc bằng giải thuật rút gọn quay lui. Giải thuật đợc trình bày nh sau:

xi=(bi- ∑− = 1 1 / ) n j ii j ijx u u , i=1, , n… for j=1 to n x j = b j /u jj for i = 1 to j-1

bi= bi- uijx j

end end

Phân tích độ phức tạp của giải thuật tuần tự.

Giải thuật rút gọn tiến và rút gọn quay lui yêu cầu khoảng n2 /2 phép nhân và số lợng tơng tự đối với phép cộng, bởi vậy thời gian tính toán đối với mô hình tuần tự là:

T1= tc n2 /2

Với tc là thời gian tính toán cho cặp phép nhân và cộng.

Trong mục này chỉ xem xét xây dựng giải thuật song song đối với hệ ph- ơng trình tam giác dới, hệ phơng trình tam giác trên sẽ đợc giải tơng tự.

a. Phân r ã

Phân rã bài toán thành các tác vụ, mỗi tác vụ tơng ứng với một phần tử trong ma trận L cần cập nhật.

- For i=2, , n, j= 1, , i-1 tác vụ (i, j). Mỗi tác vụ sẽ … … + lu trữ lij

+ tính toán lijx j

- For i = 1, , n, tác vụ (i, i). Mỗi tác vụ sẽ … + lu trữ lii và bi + tính tổng ti =∑− = 1 1 i j j ijx l + tính toán và lu trữ xi= (bi - ti)/lii

Với việc phân chia này dẫn đến mảng 2 chiều tam giác n( n-1)/2 tác vụ.

b. Truyền thông

Đối với các tác vụ for j=1, , n-1, mỗi tác vụ task(j, j) sẽ broadcast x… j

tới task(j, j), i=j+1, . . , n.

for i=2, . . , n tính tổng các kết quả thu gọn lij x j từ các tác vụ task(i, j), j=1, , i-1. tới task(i, i).

Hình 5. 6 Mô tả truyền thông giữa các tác vụ

Program for task (i, j), ij

If i=j then If i> 1 then

Recv sum reduction t else t=0 end xi=(bi-t)/lii

broadcast xi to tasks(k, i), k=i+1, . . , n else

recv x j

t = lijx j

send t for sum reduction across tasks (i, k), k=1, . , i-1, to task(i, i)…

end

c. Tích tụ

Với mảng hai chiều tác vụ, các chiến lợc tích tụ tự nhiên là :

 Kết hợp n/p hàng hoặc cột

 Kết hợp hàng cột với ma trận con kích thớc (n/ p ) ì(n/ p ) trong cả hai trờng hợp đều đem lại p tác vụ

d. ánh xạ

Mỗi tác vụ sẽ đợc ấn định vào một trong p bộ xử lý.

Một phần của tài liệu Thiết kế giải thuật song song (Trang 65 - 67)

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

(80 trang)
w