Tìm hiểu một số giải thuật song song

50 261 0
Tìm hiểu một số giải thuật song song

Đ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

Trờng đại học vinh Khoa công nghệ thông tin ============== Luận văn tốt nghiệp : Tìm hiểu số giải thuật song song Giáo viên hớng dẫn thực Ts Lê ngọc xuân nhàn Vinh, 05-2005 Sinh viên Nguyễn thị Lời nói đầu Cùng với phát triển khoa học kỹ thuật, ngày công nghệ thông tin lĩnh vực đợc giới đặc biệt quốc gia có kinh tế phát triển đầu t nhiều công nghệ nh sở hạ tầng chiều rộng lẫn chiều sâu Trong nâng cao hiệu sử dụng Máy tính ứng dụng hay thực công việc cụ thể vấn đề then chốt cho mục tiêu phát triển nghành Việc nghiên cứu xây dựng mô hình Máy tính có khả rút ngắn thời gian xử lý, làm giảm bớt độ phức tạp tính toán toán có độ phức tạp tính toán lớn mục tiêu nhà khoa học, hãng sãn xuất Máy tính giới Đó sản phẩm thời đại, công nghệ t ơng lai Chúng ta biết rằng, tơng lai hầu hết toán thực tế yêu cầu tính toán cao, khối lợng lớn, tốc độ nhanh, đặc biệt hệ thống thời gian thực Đó yêu cầu để đến cuối năm 80 kỷ tr ớc, thị trờng xuất Máy tính song song đ ợc thơng mại hoá dần di vào ứng dụng thực tế Trong phạm vi đề tài này, em muốn trình bày thêm toán đợc giải Máy tính song song mà qua độ phức tạp tính toán nh thời gian tính toán đợc giảm xuống Đây nội dung mà em trình bày khoá luận: Tìm hiểu số giải thuật song song Trong trình thực hiện, em nhận đợc giúp đỡ thầy cô giáo khoa công nghệ thông tin nh bạn sinh viên lớp 42B đặc biệt thầy giáo Ts: Lê Ngọc Xuân hớng dẫn giúp đỡ em hoàn thành khoá luận Em xin chân thành cảm ơn! Mặc dù cố gắng nhiều, song tránh khỏi thiếu sót định Kính mong thầy giáo cô giáo bạn xem chơng trình đóng góp ý kiến để đề tài em đợc hoàn thiện Vinh, tháng 05/ 2005 Tác giả Mục lục Lời nói đầu Mục lục Trang Chơng I Mạng kết nối 1.1 mở đầu 1.2 topo mạng kết nối 1.2.1 mạng kết nối tĩnh 1, Mạng mạch chia sẻ 2, Mạng kết nối mảng 3, Mạng vòng 4, Mạng kết nối nhị phân 5, Mạng dịch chuyển chuyển đổi 6, Mạng lới hai chiều 7, Mạng n-hình hộp(n-cube) 10 1.2.2 mạng kết nối động 11 1,Mạng mạch dằng 15 2,Mạng đơn nấc 16 3,Mạng đa nấc 17 a, Bộ tập trung 18 b, Bộ kết nối 18 Chơng I I nhân ma trận 24 2.1 giải thuật nhân ma trận 24 2.2 Những giải thuật cho xử lý mảng 25 2.2.1 Nhân ma trận kết nối lới hai chiều với mô hình tính toán Simd 25 2.2.2 Nhân ma trận kết nối dịch chuyển chuyển đổi theo mô hình tính toán simd 31 2.3 Giải thuật cho cho đa xử lý 32 Chơng III Giải hệ tuyến tính 37 3.1Thuật ngữ 37 3.2 Phơng pháp ngợc 40 3.3 phơng pháp khử gauss 43 3.4 phơng pháp nhiều lới 47 3.5 Đờng dốc liên hợp 48 tài liệu tham khảo 52 Chơng I Mạng kết nối Mở đầu Mạng kết nối hệ thống mạng đợc sử dụng phát triển vào năm 1950 công nghiệp điện thoại coi nh công cụ để giảm thiểu thời gian gọi Trong công nghiệp máy tính, việc nghiên cứu chiến lợc kết nối thành phần máy tính nhằm tăng hiệu tốc độ tính toán máy tính song song Yêu cầu tính toán khoa học đại đòi hỏi phải có máy tính hiệu cao, số hệ thống song song sử dụng nhiều xử lý để giải ứng dụng Vì thế, cần phải thiết kế mạng kết nối để giảm thiểu thời gian truyền tin thành phần máy tính nâng cao hiệu hệ thống 1.1 1.2 Topo mạng kết nối Các liên kết vật lý chuyển mạch tạo nên sở để kết nối mạng Bộ chuyển mạch cho phép liên kết nhiều đầu vào với nhiều đầu Topo mạng chia thành hai loai: Mạng tĩnh Mạng động + Mạng tĩnh: Là cố định liên kết nút ( xử lý, modul nhớ, modul vào tích hợp sử dụng) mạng không thay đổi trình tính toán xử lý + Mạng động : Là liên kết nút thay đổi cấu hình lại trạng thái trình xử lý Cơ sở kết nối mạng động chuyển mạch 1.2.1 mạng kết nối tĩnh Đặc trng mạng tĩnh dựa vào hai dặc trng sau: - Cấp nút: Là số đờng kết nối vào nút - Đờng kính: mạng giá trị lớn giá trị nhỏ nhất, khoảng cách cặp nút lớn nhỏ Thông thờng ngời ta dùng đờng kính để so sánh hiệu loại mạng + Cấp 1: Mạng mạch chia sẻ (shared bus) + Cấp 2: Mạng mảng, vòng + Cấp 3: Cây nhị phân, mạng dịch chuyển-chuyển đổi + Cấp 4: Mạng lới hai chiều + Cấp bất kỳ: n-cube, lới n-chiều 1, Mạng mạch chia sẻ Nó loại mạng phổ biến, loại mạng tĩnh đơn giản nhất, dễ cài đặt có cấp nút 1, dễ tính toán khoảng cách từ nút đến nút khác, dễ thêm bớt nút mạng Tuy nhiên, dễ gây tắc nghẽn đụng độ có nhiều nút yêu cầu mạch chia sẻ thời điểm Mạng chia sẻ N0 N1 N2 N3 Nn Hình 1.1 2, Mạng kết nối mảng Đây Topo mạng tĩnh đơn giản dễ cài đặt, cấp nút 2, dễ tính toán Nếu mạng n nút khoảng cách truyền tin nút có đờng kính N-1 Nút nút cuối mạng không liên kết đợc với Thiết kế mạng làm dài thêm thông tin, nút thứ i muốn truyền tin tới nút thứ j liệu phải truyền qua tất nút chúng Do đó, trờng hợp nút bị hỏng hệ thống không hoạt động đợc, gây đụng độ hiệu hệ thống không cao N0 N1 N2 N3 Nn Hình 1.2:Mạng kết nối mảng 3, Mạng vòng: Có hình dạng khác với cấu trúc đơn giản cấu trúc vòng, dễ thiết kế, cấp nút 2, nút đợc liên kết với hai nút hai bên nó, nút nút cuối đợc nối lại với Mạng truyền tin chiều hay hai chiều Nếu mạng có n nút có đờng kính N-1, truyền tin chiều N-1/2 truyền tin hai chiều Mặc dù đờng kính mạng vòng lớn mạng kết nối mảng, hình dáng nguyên nhân gây thông tin dài nút mạng Mạng vòng hai chiều có nhiều thiếu sót nhng cải thiện đợc nút bị hỏng mạng vòng trở thành mạng kết nối mảng N0 N1 N2 N3 Hình 1.3:Mạng vòng 4, Mạng kết nối nhị phân: Nút gọi nút gốc, nút có nút con, nút cuối nút gọi nút lá, cấp nút Ví dụ với mạng kết nối nhị phân nút: N0 N1 001 N2 010 N3 N4 N5 100 101 110 011 N6 111 Hình 1.4:Mạng kết nối nhị phân nút - Nút N0 đợc gọi nút gốc, bốn nút cuối đợc gọi nút lá, hai nút N1, N2 gọi nút - Mạng có N nút có đờng kính 2(h-1) với h = log N Mạng mở rộng cách đơn giản, đặc điểm tốt kết nối liệu đợc theo đờng truyền Mạng có phơng thức đơn giản cho phép gói tin cần truyền biểu bảng thông tin mà nút cần phải gửi tới nút khác, gói tin có phần đầu chứa thông tin nh đờng truyền, địa khu địa dự định 5, Mạng dịch chuyển chuyển đổi: Kết nối sử dụng hai hàm dịch chuyễn(Suffle) chuyển đổi (Exchange) X=(xn-1xn-2.x1x0) Suffle(xn-1xn-2.x1x0) xn-2.x1x0 xn-1 Exchange(xn-1xn-2.x1x0) xn-1xn-2.x1 x ) Ví dụ với mạng nút có kết nối nút nh sau: Suffle: 000 000 001 010 010 100 011 110 100 001 101 011 110 101 111 111 Exchange:000 001 001 000 010 011 011 010 100 101 101 100 110 111 111110 Hình 1.5: Sơ đồ kết nối Suffle Exchange Tiện lợi cho giải thuật giải toán dạng: Tính giá trị đa thức biến đổi Fourier Ví dụ giải thuật tính giá trị đa thức Vào: Các hệ số , giá trị biến x Ra:Giá trị P(x)= a0+a1x1+a2x22+.+anxnn Kỷ Thuật: Trên xử lý gắn ghi : -Thanh ghi thứ chứa hệ số -Thanh ghi thứ hai chứa biến x -Thanh ghi thứ ba chứa bít đánh dấu Giải thiết: -Ban đầu ghi lần lợt chứa ghi chứa biến x tất nút -Các ghi đánh dấu : ghi lẻ 1,3,5 có giá trị 1, ngợc lại có giá trị Bớc 1:Các giá trị thiết lập ghi đánh dấu: Nếu nội dung ghi đánh dấu nội dung ghi hệ số nhân với nội dung ghi biến kết lu vào ghi hệ số Ngợc lại, nội dung ghi đánh dấu nội dung ghi hệ số không thay đổi Trong hai trờng hợp nội dung ghi biến tự nhân với Bớc 2:Nội dung cặp ghi đánh dấu đợc chuyển đổi giá trị cho theo kết nối dich chuyển quay lai bớc Khi nút cha chứa đủ giá trị aix2 (tại nút thứ i) Ngợc lai sang bớc Bớc 3:Tại bớc tính toán nội dung ghi hệ số đợc chuyển đổi với sử dụng kết nối dịch chuyển Sau nội dung ghi hệ số đợc chuyển đổi nút sử dụng kết nối chuyển đổi Sau chuyển đổi nút thực phép cộng, nội dung ghi hệ số với giá trị đợc chuyển đổi đến Quá trình tiếp tục điểm nhận đợc giá trị P(x) 6, Mạng lới hai chiều: Cấu trúc bao gồm k1*k0 nút mà ki 2, i = Trong mạng nút đợc kết nối với bốn phía cột ký hiệu j hàng ký hiệu i (i,j) đợc nối với nút (i-1,j); (i,j+1); (i+1,j), (i,j-1), nút đợc nối với nút bên cạnh Nếu mạng có k1*k0 có đờng kính: (k1-1) +(k0-1) Ví dụ mạng có k1=2, k0= có số nút: 2*4 = 8, cấp nút mạng đợc kết nối nh sau: 1 Hình 1.6a:Mạng lới hai chiều với số nút Giải thuật định đờng: Vào: Nguồn (số thứ tự nút đầu): S Đích (số thứ tự nút đến): D Số n, số nút N = n2 Ra: Đờng từ nút có số thứ tự S đến nút có số thứ tự D 1.Tính khoảng cách hàng R: R = D/n - S/n Tính khoảng cách cột C: C = D(mod n) S(mod n) Đa giá trị R C vào đầu gói tin Gửi thông tin từ S đến D R(C) số dơng gói tin đợc chuyển xuống (sang phải), ngợc lại gói tin đợc chuyển lên (sang trái) Mỗi lần gói tin chuyển đến nút kề cạnh R đợc giảm chuyển xuống đợc tăng lên chuyển lên R = bắt đầu chuyển ngang, lần chuyển sang phải giảm C Khi chuyển sang trái C đợc tăng lên Quá trình tiếp tục C = ta đạt đợc đích cần chuyển đến Ví dụ tìm đờng để chuyển gói tin từ nút đến nút 12 với k = k0 = 12 (n = 4) R = 12/4 - 6/4 = 2 C = 12 mod mod = -2 Ta có đờng mạng nh hình sau: x1 = s1, x2 = s2, x3 = s3, ,xn = sn Thoả mãn phơng trình hệ tuyến tính Một hệ n phơng trình tuyến tính với n biến đợc viết a11x1 + a12x2 +a13x3 + +a1nxn = b1 a21x1 + a22x2 +a23x3 + +a2nxn = b2 a131x1 + a32x2 +a33x3 + +a3nxn = b3 (3.2) an1x1 + an2x2 +an3x3 + +annxn = bn Thờng dùng biểu thức Ax = b với A ma trận n*n chứa giá trị ai,js x b vector n-phần tử, thành x is bis tơng ứng Các biến cục phần tử ma trận A khác 0, làm để tính đợc giá trị x, tờng hợp chung nhất, giải thuật tuyến tính có độ phức tạp thời gian O(n3) để giải đợc hệ tuyến tính, vấn đề nhiều hệ tuyến tính dạng đặc biệt ví dụ đợc lấy từ Hailiday Resnick (1974) Xem phần tử mạch hình 3.1, hai nguồn bin cung cấp E1 E2 mạch ba điện trở R1, R2, R3 Cho giá trị muốn tính dòng điện i 1, i2 i3 cách áp dụng dịnh luật vật lý thành lập hệ ba phơng trình, với ba biến i1, i2 i3 cha biết i1 -i2 -R1i1 -R2i2 +i3 = +R3i3 = -E1 -R3i3 = E2 E E R1 R3 i1 (3.3) i3 R2 Hình 3.1 Một mạch điện ba điện trở E E i2 Hệ phơng trình với giá trị bên phải đợc giải nhanh hệ phơng trình có dạng bình thờng Ví dụ nh hệ phơng trình hệ đờng chéo Định nghĩa 3.3: Một ma trận a có cỡ n*n ma trận tam giác i>j ai,j = Định nghĩa 3.4: Một ma trận A cỡ n*n ma trận tam giác dới i ai,j = Một hệ tuyến tính Ax = b đợc gọi hệđờng chéo nh hệ số ma trận A làm thành đờng chéo, giải thuật liên tục với độ phức tạp thơi gian O(n), dùng để giải hệ đờng chéo Giả thiết muốn xác định trạng thái nhiệt độ thức phân phối vật chất hình 3.2 sau T2 T1 x x1 x2 x3 x4 Hình 3.2 Chúng ta giả thiết có trục ngang tất điểm trục ngang có nhiệt độ, điều cho phép mô tả nhiệt độ nh hàm khoảng cách từ điểm đến cuối Chúng ta giả sử nhiệt độ T1, T2 điểm đầu cuối cố định suốt trình có nguồn điện, cuối giả sử đợc bao phủ loại vật chất( đồng chất ) nói cách khác độ nóng toàn không thay đổi Xác dịnh trạng thái nhiệt độ điểm x 1, x2, x3, x4 đợc xác định hệ phơng trình tuyến tính x1 0.5x2 = 0.5T1 -0.5x1 + x2 - 0.5x3 =0 0.5x2 + x3 0.5x4 = -0.5x3 + x4 = 0.5T2 (3.4) Đây ba định nghĩa mà thờng dùng trờng hợp sau này: Địng nghĩa 3.6: Một ma trận A cỡ n*n ma trận tam giác trội với i,j n a i ,i > j =i a i , j Định nghĩa 3.7: Một ma trận A cỡ n*n ma trận đối xứng aji = aị Định nghĩa 3.8: Một ma trận A cỡ n*n ma trận nghịch đảo nh ma trận ma trận đối xứng ma trận tam giác trội aii > với i,j n 3.2 phơng pháp ngợc ( back suutitution) Trong phần miêu tả tính song song giải thuật dùng để giải hệ tuyến tính Ax = b, với A ma trận tam giác Cho hệ phơng trình tuyến tính, với A ma trận tam giác cỡ n*n Dùng giải thuật thay để giải hệ tuyến tính với độ phức tạp thời gian O(n2) Hãy xem giải thuật ví dụ đơn giản, giả sử giải hệ 1x1 + 1x2 1x3 + 4x4 = - 2x2 3x3 + 1x4 = 2x3 3x4 = (3.5) 2x4 = Chúng ta giảiphơng trình cuối mà có biến Từ xác định đợc x4 = 2, làm đơn giản phơng trình lại cách thay giá trị x4 vào phơng trình: 1x1 + 1x2 1x3 = - 2x2 3x3 = 2x3 = (3.6) 2x4 = Bây phơng trình thứ ba có biến dùng phép chia đơn giản để có x3 = Tiếp theo dùng phơng trình để đơn giản hai phơng trình lại 1x1 + 1x2 =3 - 2x2 = 12 2x3 = (3.7) 2x4 = Chúng ta có phơng trình đơn giản thứ hai chứa có biến dùng phép chia b2 cho a22 Ta đợc x2 = -6.sau lấy x2*a22 từ bớc có phơng trình 1x1 =3 - 2x2 =2 2x3 =6 (3.8) 2x4 = thật dễ dàng để giải x1 = Một giải thuật thay ngợc có độ phức tạp thời gian O(n2) Sau hai giải thuật Back.Substitution(SISD) Back.Substitution(uma multiprocessor) Giải thuật giải hệ phơng trình tuyến tính với A ma trận tam giác(back.substitution(sisd)): {******************************************} Global n { cỡ hệ thống} a[1 n][1 n] { phần tử a } b[1 n] { phần tử b } x[1 n] { phần tử x } i { số hàng } j { số cột } begin for n dowto x[i] b[i]/a[i][i] for to i-1 b[j] b[j] x[i] * a[j][i] a[j][i] endfor endfor end {******************************************} Giải thuật song song dùng xử lý riêng UMA đa xử lý (back.substitution(uma multiprocessor)): {******************************************} Global n { cỡ hệ thống} P { số xử lý} a[1 n][1 n] { phần tử a } b[1 n] { phần tử b } x[1 n] { phần tử x } i { số hàng } local k { số cột } j { xử ký định} begin for n dowto x[i] b[i] / a[i][i] forall pj where j p for k j to i-1 step p b[k] b[k] x[i] * a[k][i] a[k][i] endfor endforall endfor end {******************************************} Với giải thuật sử dụng để giải hệ phơng trình tuyến tính n ẩn, xử lý thứ tính giá trị x n gửi giá trị đến tất xử lý, từ xử lý thay giá trị x n biết vào tất phơng trình chứa ẩn xn tiếp tục xử lý p2 tính đợc xn-1 gửi giá trị đến tất xử lý tìm đợc hết giá trị ẩn x 3.3 phơng pháp khử Gauss Trong phần mô tả tính song song giải thuật khử Gauss giải thuật tiếng để giải hệ tuyến tính Ax = b, ma trận A có giá trị khác không Phơng pháp khử Gauss đa ma trận a dạng ma trận tam giác, với điểm thay đợc tính từ hệ số x, ta thay hàng hệ tuyến tính tổng hàng khác không hệ Hình 3.6 mô tả hội tụ giải thuật, tất phần tử khác không đờng chéo cột i đợc loại bỏ đợc thay bớc thứ i Tất phần tử khác không đờng chéo cột i đợc thay dòng j với j n i+1 Tổng dòng j -aj,i / ai,i thay dòng i Sau đợc lặp lặp lại n lần hệ tuyến tính trở thành hệ tam giác trên, giải thuật tính toán tuyến tính phơng pháp khử Gauss mô tả dòng thứ i để điều khiển tất phần tử khác không đờng chéo cột i, cách tiếp cận số chắn máy tính số Một giải thuật khử Gauss đợc viết, mảng phần tử pivoi[i] chứa số lặp lặp lại với dòng i đợc dùng làm dòng quay Một mảng khác đợc dùng để xác định cách dễ hơn, nh có dòng đặc biệt đợc dùng làm dòng quay Các phần tử không thay đổi Các phần tử điều khiển cần làm Dòng quay Các phần tử sẻ đư ợc thay đổi Các phần tử điều khiển Hình 3.6 Trong suốt vòng lặp i giải thuật khử Gauss tất phần tử cột dòng đợc điều khiển từ dòng i cột j Giải thuật khử Gauss với phần trục quay {******************************************} Global n a[1 n][1 n] b[1 n] marked[1 n] pivot[1 n] picked Begin for i to n marked[i] endfor for i to n - tmp for i to n if marked[j] = and a[j][i] > tmp then tmp a[j][i] picked j endif endfor mared[picked] pivot[picked] i for i to n if marked[j] = then tmp a[i][j] / a[picked][i] for k i +1 to n a[j][k] a[j][k] a[picked][k] * tmp endfor b[j] b[j] b[k] * tmp endif endfor endfor for i to n if marked[i] = then pivot[i] N break endif endfor end {******************************************} \ Chúng ta xác định giải thuật khử Gauss đáp ứng tính song song Đầu tiên tính thao tác số học hoàn thành giải thuật khử Gauss giải thuật có n-1 bớc lặp Với bớc lặp thứ i giải thuật thực khoảng từ đến n-1 Trong i lần lặp lặp lại có n-1 bớc để xây dựng vòng quay Một vòng quay xác định giải thuật phải xây dựng đợc n i dòng, mà dòng đợc xây dựng thông qua 2*(n-i) điểm Để sửa đổi những hệ số ma trận A nhiều hai điểm để thayđổi đầu vào b Từ tổng số điểm là: n n i =1 j =i +1 ( n i 1) + ( 2n 2i + 3) = n n n +1 (2 (nn +i 4+n1)++1 +2i1 + i ( n2+ 1)=) = n i =1 i =1 j =i +1 k = i +1 2 n + n 2n 3 Một nghiên cứu phụ thuộc liệu giải thuật thấy vòng lặp vòng lặp có số k , vòng lặp có số j đợc thực song song lúc Nói cách khác hàm quay đợc tìm thấy để sửa đổi tất hàng đợc đánh dấu xuất đồng thời Với dòng nhiều mảng a[i][j] / a[picked][i] đợc tính sửa đổi thành phần tử i+1 đến n dòng xuất đồng thời, tất thao tác tính toán xuất phơng trình vòng lặp giải thuật dờng nh thoả mãn song song lúc Hãy xem việc thực giải thuật khử Gauss nhiều máy tính Giả sử n tích p, làm cách mà mô tả đợc phần tử ma trận A B xử lý cá nhân? Nếu nh khảo sát luồng liệu giải thuật vòng lặp thứ i, thấy việc xác định dòng quay picked yêu cầu mục liệu cột i đợc so sánh, xác định giá trị phần tử đặc biệt a[j][k], yêu cầu giá trị xung quanh a[j][i], a[picked][i] a[picked] [k] Rõ ràng xác định phân phối liệu đến điểm giải thuật có yêu cầu truyền Cho phân phối liệu xử lý phải t ơng tác để xác định dòng chuẩn, dòng chuẩn đợc xác định xử lý sở hữu dòng chuẩn truyền phần tử đến xử lý khác Vì chúng cập nhật giá trị dòng unmarked mà chúng điều khiển Vì quan tâm đến giá trị khuyết dòng chuẩn giá trị cột i dòng chuẩn Cũng có nhiều cách khác để xác định dòng chuẩn giải thuật khử Gauss dành xử lý để duyệt giá trị a1,j khác không lớn nhỏ phơng trình hệ để dùng làm dòng chuẩn chia phơng trình có hệ cho xử lý, xử lý duyệt đồng thời lúc phơng trình xử lý tìm đợc a1,j khác không, Trớc hết u tiên lấy giá trị xử lý thứ nhất, xử lý thứ giá trị lúc lấy giá trị xử lý tiếp sau Trong nhiều giải thuật máy tính khác nhau, ví dụ nh gán xử lý nhóm xen kẽ cột a b, lấy từ b sang xử lý không cần tơng tác để xác định hàm chuẩn Thay vào suốt vòng lặp xử lý điều khiển phần tử cột i tơng ứng với hàm unmarked tìm phần tử với giá trị lớn nhất, không cần thiết xử lý truyền phần tử cột điểm khuyết dòng chuấn đến xử lý khác Chúng ta xem lại cỡ máy tính song song số lợng công việc đợc thực xử lý Chiến lợc tăng tối đa tổng phí tơng tác, mà mô tả ngữ cảnh nhiều xử lý quan trọng định chọn giải thuật cho nhiều máy tính Giả thiết có hệ phơng trình 16 ẩn phơng trình đợc chia để xử lý giải đồng thời lúc với xử lý xử lý p(1) làm việc với phơng trình đến nh ba xử lý lại làm việc với phơng trình khác, sau xử lý nhận phơng trình tìm a1,j khác không Trớc hết u tiên lấy giá trị xử lý p(1), p(1) giá trị a 1,j khác không lúc tìm đến xử lý Sau xác định đợc dòng chuẩn đổi chỗ cho dòng thứ phơng trình xử lý p(1) gửi dòng chuẩn đến tất xử lý, từ xử lý thực phép toán lúc để đa ma trận A ma trận tam giác P1 P2 P3 P4 A 10 02 11 12 13 14 15 Hình 3.7 3.4 phơng pháp nhiều lới Phơng pháp nhiều lới lớp giải thuật lặp lặp lại sử dụng cho phận phơng trình vi phân khác Sự phát triển phơng pháp nhiều lới đợc thể qua hai ý sau Các giải thuật đợc lặp lặp lại lới thô nhanh lới dày Các giải thuật lặp lặp lại hội tụ nhanh nh giá trị biến ban đầu ổn định Phơng pháp nhiều lới tìm giải pháp riêng biệt phơng trình khác nhau, cách kết hợp lới thô lới dày dùng cách tính tập đỉnh lới trớc để tìm giá trị tập đỉnh lới Trong phần mô tả cách thực phơng pháp nhiều lới đờng truyền cần thiết để thực phép tính nhiều máy tính Để đơn giản thực phơng pháp nhiều lới hai kích thớc lới Giả thiết lới giày G0 có kích thớc n*n với n > Chúng ta ký hiệu lới thô Gi, với i < logn, điểm lới i,j lới Gk có biến liên quan xki,j có ba cách tính giải thuật nhiều lới nh sau: Relaxation: tính giá trị tất điểm x i,jk lới Gk Phép tính đợc thực hiệnbằng cách sử dụng phơng pháp Jacobi, Gus-Seidel, Jacobi overrelaxation giải thuật lặp lặp lại khác Interpolatio: Tính tất biến lới giày lới Gk-1 hàm biến lới thô Gk dùng phép nội suy để tính xi,jk-1 Thông qua giá trị trung bình vùng (i,j) lới Gk ví dụ nh dùng sơ đồ hội tụ x3,50 đợc gán trung bình x12,4 , x14,4, x12,6, x12,6 x14,6 Prọection: Tính giá trị biến lới thô Gk giá trị lới dày Gk-1 giải thuật đơn giản, gọi phép gán x k-1i,j cho xki-1 3.5 Đờng dốc liên hợp: Phơng pháp đờng giốc liên hợp dùng để giảm nhịp độ trung bình giải pháp hệ thống tuyến tính mồi hệ số ma trận đợc xác định Sự lặp lặp lại phơng pháp dốc liên hợp đợc thể công thức x(t) = x(t - 1) + s(t)d(t) Một giá trị giá trị x hàm véc tơ x giá trị s véc tơ hớng d Giá trị x đợc xác định với giá trị trung bình lặp lặp lại n trớc lần lặp th giá trị x(0), d(0) g(0) đợc cho trớc Trong thực giải thuật x(0) d(0) ban đầu đợc cho véc tơ 0, g(0) đợc cho giá trị b Với mồi bớc lặp t đợc tính hàm x(t) theo bốn bớc sau: Bớc 1: Tính đờng dốc g(t) = Ax(t - 1) b Bớc 2: Tính giá trị cho véc tơ có hớng g (t ) g ( t ) T d (t) = g(t) = g (t 1) g ( t 1) T d ( t 1) Bớc 3: tính cỡ bớc d (t ) g ( t ) T s( t ) = d (t ) Ad ( t ) T Bớc 4: Tính giá trị xấp xỉ x: x(t) = x(t 1) + s(t)d(t) Tiến hành giải mã giải thuật đờng dốc liên hợp đợc mô tả rong hai giải thuật INTER.PRODUCT MATRIX.VECTOR PRODUCT, Chơng trình đợc gọi chơng trình Chúng ta xem thực song song giải thuật đờng dốc liên hợp kiến trúc nhớ phân tán Giả thiết xử lý có nhớ riêng, nhiều hàng a, tơng ứng với phần tử vector b, d g hai chơng trình INTER.PRODUCT MATRIX.VECTOR PRODUCT phiên song song hàm INTER.PRODUCT xử lý máy tính tổng sản phẩm Khi xử lý tính tổng thực phép tổng giảm với xử lý khác để xác định sản phẩm Phiên song song hàm có độ phức tạp truyền thông tối thiểu O(n/p + logp), với n giá trị tuyến tính hệ thống p số xử lý Hàm MATRIX.VECTOR PRODUCT yêu cầu xử lý truy nhập đến xử lý thành phần khác vector b vài điểm suốt trình tính toán Nói cách khác để làm đợc điều cho hệ số gộp đầu vào, thành phần xử lý vector b xử lý đơn, xử lý truyền toàn mảng b cho xử lý khác Chiến lợc cho độ phức tạp thời gian truyền thông O(n log p) Conjugate.gradient(sisd) {******************************************} Parameter n input a[1 n][1 ] output Global b[1 n] x[1 n] d[1 n] g[1 n] i interation s denom1, denom2, num1, num2, tmpvec[1 n] Begin for i to n d[i] x[i] g[i] -b[i] endfor for iteration to n denom1 INNER.PRODUCT (g[1 n], g[1 n]) g[1 n] MATRIX.VECTOR.PRODUCT (a[1 n][1 n], x[1 n]) for i to n g[i] g[i] b[i] endfor num1 INNER.PRODUCT (g[1 n], g[1 n]) if num1 < break endif for i to n d[i] -g[i] + (numerator / denominator) * d[i] endfor num2 INNER.PRODUCT (d[1 n], g[1 n]) tmpvec[1 n] MATRIX.VECTOR.PRODUCT (a[1 n][1 n], d[1 n]) denom2 INNER.PRODUCT (d[1 n], tmpvec[1 n]) s -num2 / denom2 for i to n x[i] x[i] + s * d[i] endfor endfor end {******************************************} INNER.PRODUCT (a[1 n], b[1 n]: Vlalue a[1 n], b[1 n] Local i,result Begin Result for i to n result result + a[i] *b[j] endfor return result end MATRIX.VECTOR.PRODUCT (a[1 n][1 n], b[1 n]): Vlalue a[1 n], b[1 n] Local i,result[1 n] Begin Result[i] for i to n result[i] result[i] + a[i][j] *b[j] endfor return result[1 n] end -lời kết Trên nội dung mà em trình bày khoá luận: Tìm hiểu số giải thuật song song phần nhỏ nhiều giải thuật song song vừa học vừa làm, nên cố gắng có hớng dẫn, giúp đỡ nhiệt tình thầy giáo hớng dẫn nhng không tránh khỏi hạn chế Kính mong thầy cô giáo bạn đóng góp ý kiến để đề tài em đợc hoàn thiện Cuối lần em xin chân thành cảm ơn thầy giáo Lê Ngọc Xuân, xin chân thành cảm ơn thầy cô giáo giúp đỡ em hoàn thành đề tài này./ Vinh, tháng 5/2005 Tác giả Nguyễn Thị Thanh Nhàn Tài liệu tham khảo Phạm Kỳ Anh Giải tích số NXB ĐHQG Hà Nội Đổ Xuân Lôi Cấu trúc Dử liệu Giải thuật NXB TK Michael J.Quinn Parallel Computing and Practice HILL,INC Bài tập Pascal sở nâng cao Quách Tuấn Ngọc NXB GD [...]... của giải thuật nhân ma trận trên Cm* Nh vậy, trong phạm vi chơng này chúng ta đã nghiên cứu một vài giải thuật nhân ma trận trên mô hình Máy tính song song, tuy nhiên có nhiều giải thuật để thực hiện điều này nh giải thuật kết nối Hypercube trên mô hình tính toán SIMD, giải thuật hớng hàng cột - Chơng III Giải quyết các hệ tuyến tính Trong chơng này chúng ta khảo sát các giải thuật. .. nấc thứ i -Chơng II nhân ma trận Nhân ma trận là một đối tợng của nhiều giải thuật số và phi số, trong phạm vi chơng này chúng ta xét một vài giải thuật song song để nhân ma trận Trong đó, ta chứng minh rằng: nhân 2 ma trận trên mô hình SIMD có độ phức tạp thuật toán là (n) và tiếp tục mô tả một giải thuật tối u cho mô hình nhân ma trận Nhân ma trận có thể đợc thực trên kết... cho n3 = 23q bộ xử lý các phần tử 2.3 Giải thuật cho cho bộ đa xử lý Nhân ma trận có thể đợc thực hiện song song hoá trên bộ đa xử lý Trong giải thuật nối tiếp đầu chơng này cho ba vòng lặp có thể đợc song song hoá đợc Điều đó đặt ra một câu hỏi thú vị : Có nhiều vòng lặp, tất cả đều có khả năng song song hoá đợc, nhng khi nào thì nên chọn vòng lặp nào để song song hoá? Tổng phí tơng tác: Là lợng công... trong quá trình song song, nên chúng ta phải tối đa hoá tổng phí tơng tác bất cứ khi nào có thể Trong trờng hợp với nhân ma trận, chúng ta có thể song song hoá vòng j hoặc vòng i mà không gây nên những vấn đề gì bởi vì sự phụ thuộc dữ liệu duy nhất nằm ở bên ngoài vòng trong cùng Nếu chúng ta làm song song vòng j thì giải thuật song song n đồng bộ hoá và tổng phí tơng tác của mã song song là O(n3/p)... lý có bộ nhớ riêng UMA vòng i đợc song song hoá sẽ thực thi nhanh hơn Một giải thuật song song cho mô hình đa bộ xử lý có bộ xử lý riêng UMA đợc minh hoạ, các biến i, j, k và t đại diện cho các biến địa phơng để xử lý Tính phức tạp của giải thuật này là gì? mỗi quá trình tính toán n/p hàng của ma trận C, thời gian cần thiết để tính một hàng đơn là O(n2), do đó với một số ma trận cỡ lớn thì thời gian... thao tác, vì vậy một giải thuật song song khác dựa trên cơ sở khối nhân ma trận đã đợc phát triển cho mô hình này 2.1 giải thuật tuần tự về Nhân ma trận Phép nhân ma trận A có cỡ là (l*n) và ma trân B có cỡ là (m*n) kết quả là ma trận C có cỡ là (l*n), những phần tử của ma trận C đợc xác định bởi công thức : m-1 Ci,j=ai,kbk,j k=0 Một giải thuật tuần tự thực hiện nhân ma trận, giải thuật cần các phép... k3 phép cộng và k3 phép nhân Số lợng của các thao tác toán học trên mỗi lần truy cập bộ nhớ tăng từ 2, ở giải thuật trớc đến k = n/p trong giải thuật mới một sự cải tiến đáng kể Ostlund, Hibbard and Whiteside (1982) đã tiến hành nhân giải thuật trên Cm* cho nhiều ma trận kích cỡ khác nhau Giải thuật nhân khối ma trận thực hiện tốt hơn trên đa bộ xử lý UMA bởi vì nó tăng số lợng tính toán đợc thực hiện... các phơng pháp giải trực tiếp đối với các hệ tuyên tính Cuối cùng mục 3.5 mô tả giải thuật đờng dốc liên hợp một giải thuật hội tụ nhanh để giải quyết các hệ phơng trình tuyến tính nhất định 3.1 Thuật ngữ Phần này định nghĩa một vài điểm quan trọng và minh hoạ các vấn đề có thể đợc giải quyết đối với hệ thống tuyến tính Định nghĩa 3.1: Phơng trình tuyến tính n biến x 1, x2, x3,, xn là một phơng trình... vậy, mục 2.2 bao gồm cả phần trình bày của giải thuật Dekel etals với độ phức tạp thuật toán là O( log(n)) Mục 2.3 nói về việc nhân ma trận trên bộ đa xử lý, có 3 phơng pháp thực sự có thể song song hoá giải thuật nối tiếp trên mô hình này Chúng ta có thể sử dụng chiến lợc thiết kế tối đa hoá tổng phí tơng tác để tìm ra sự lựa chọn phù hợp nhất, không có giải thuật tính toán tuyến tính nào phù hợp với... sát các giải thuật song song, dùng để giải các hệ phơng trình tuyến tính Nhiều vấn đề của các ngành khoa học và công nghệ có thể làm thành một hệ thống của các phơng trình tuyến tính Bởi vì việc giải quyết các vấn đề của hệ thống thờng khá lớn Đó là một lý do đúng để giải quyết các hệ thống của máy tính song song có hiệu quả Trong mục 3.1, chúng ta thực hiện 2 ví dụ và xây dựng thuật ngữ dùng ở phần ... nhiều giải thuật số phi số, phạm vi chơng xét vài giải thuật song song để nhân ma trận Trong đó, ta chứng minh rằng: nhân ma trận mô hình SIMD có độ phức tạp thuật toán (n) tiếp tục mô tả giải thuật. .. Chúng ta xác định giải thuật khử Gauss đáp ứng tính song song Đầu tiên tính thao tác số học hoàn thành giải thuật khử Gauss giải thuật có n-1 bớc lặp Với bớc lặp thứ i giải thuật thực khoảng... -lời kết Trên nội dung mà em trình bày khoá luận: Tìm hiểu số giải thuật song song phần nhỏ nhiều giải thuật song song vừa học vừa làm, nên cố gắng có hớng dẫn, giúp đỡ nhiệt tình

Ngày đăng: 15/12/2015, 08:42

Từ khóa liên quan

Mục lục

  • Gi¶i thuËt khö Gauss tuÇn tù víi mét phÇn trôc quay

Tài liệu cùng người dùng

Tài liệu liên quan