Tải bản đầy đủ (.doc) (50 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (289.36 KB, 50 trang )

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 một số
giải thuật song song

Giáo viên hớng dẫn
thực hiện
Ts Lê ngọc xuân
thanh nhàn

Vinh, 05-2005

Sinh viên
Nguyễn thị


Lời nói đầu.
Cùng với sự phát triển của khoa học kỹ thuật, ngày nay công
nghệ thông tin cũng là lĩnh vực đợc thế giới và đặc biệt là các quốc gia
có nền kinh tế phát triển đầu t nhiều về công nghệ cũng nh cơ sở hạ
tầng cả chiều rộng lẫn chiều sâu. Trong đó nâng cao hiệu năng sử dụng
Máy tính trong các ứng dụng hay thực hiện một công việc cụ thể nào đó
sẽ là vấn đề then chốt cho các mục tiêu phát triển trong nghành. Việc
nghiên cứu xây dựng một mô hình Máy tính có khả năng rút ngắn thời
gian xử lý, làm giảm bớt độ phức tạp tính toán của các bài toán có độ
phức tạp tính toán lớn đã và đang là mục tiêu của các nhà khoa học,


của các hãng sãn xuất Máy tính trên thế giới. Đó có thể là sản phẩm của
thời đại, cũng có thể là công nghệ chính trong t ơng lai. Chúng ta biết
rằng, trong tơng lai hầu hết các bài 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 là các hệ thống thời gian thực. Đó
chính là yêu cầu để đến cuối những năm 80 của thế kỷ tr ớc, trên thị trờng xuất hiện những Máy tính song song đ ợc thơng mại hoá và dần di
vào các ứng dụng thực tế.
Trong phạm vi của đề tài này, em muốn trình bày thêm về các bài toán
đợc giải quyết bằng Máy tính song song mà qua đó độ phức tạp tính toán
cũng nh thời gian tính toán đợc giảm xuống. Đây chính là nội dung chính
mà em trình bày trong khoá luận: Tìm hiểu một số giải thuật song song.
Trong quá trình thực hiện, em đã nhận đợc sự giúp đỡ của các thầy cô
giáo trong khoa công nghệ thông tin cũng nh các bạn sinh viên lớp 42B và
đặc biệt là thầy giáo Ts: Lê Ngọc Xuân đã hớng dẫn giúp đỡ em hoàn
thành khoá luận này. Em xin chân thành cảm ơn!


Mặc dù đã cố gắng nhiều, song không thể tránh khỏi những thiếu sót
nhất định. Kính mong các thầy giáo cô giáo cùng các bạn xem chơng trình
đóng góp ý kiến để đề tài của em đợc hoàn thiện hơ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 trong

5


1.1 mở đầu

5

1.2 topo mạng kết nối trong

5

1.2.1 mạng kết nối tĩnh

5

1, Mạng mạch chia sẻ

6

2, Mạng kết nối mảng

6

3, Mạng vòng

6

4, Mạng kết nối cây nhị phân

7

5, Mạng dịch chuyển chuyển đổi


8

6, Mạng lới hai chiều

9

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 tuần tự về nhân ma trận

24

2.2 Những giải thuật cho bộ xử lý mảng

25

2.2.1 Nhân ma trận 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 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 bộ đa xử lý

32


Chơng III. Giải quyết các hệ tuyến tính

37

3.1Thuật ngữ

37

3.2 Phơng pháp thế 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 trong
Mở đầu
Mạng kết nối trong là hệ thống mạng đợc sử dụng và phát triển vào
những năm 1950 của nền công nghiệp điện thoại và coi nó nh là một công
cụ để giảm thiểu thời gian giữa các cuộc gọi.
Trong nền công nghiệp máy tính, việc nghiên cứu chiến lợc kết nối trong
giữa các thành phần của máy tính nhằm tăng hiệu năng và tốc độ tính toán
của các máy tính song song .
Yêu cầu tính toán của khoa học hiện đại đòi hỏi phải có các máy tính hiệu
năng cao, một số hệ thống song song sử dụng nhiều bộ xử lý để giải quyết
từng ứng dụng. Vì thế, cần phải thiết kế trên mạng kết nối trong để giảm
thiểu thời gian truyền tin giữa các thành phần của máy tính và nâng cao hiệu
năng của hệ thống đó.
1.1.

1.2. Topo mạng kết nối trong
Các liên kết vật lý và các bộ chuyển mạch tạo nên cơ sở để kết nối
mạng. Bộ chuyển mạch cho phép liên kết giữa nhiều đầu vào với nhiều đầu
ra.
Topo mạng chia thành hai loai: Mạng tĩnh và Mạng động.
+ Mạng tĩnh:
Là sự cố định liên kết giữa các nút ( các bộ xử lý, các modul bộ nhớ,
modul vào ra và tích hợp sử dụng) và mạng này cũng không thay đổi trong
quá trình tính toán và xử lý.
+ Mạng động :
Là sự liên kết giữa các nút có thể thay đổi và cấu hình lại trạng thái
trong quá trình xử lý. Cơ sở kết nối của mạng động là các bộ chuyển mạch.
1.2.1. mạng kết nối tĩnh

Đặc trng của mạng tĩnh dựa vào hai dặc trng sau:
- Cấp của nút: Là số các đờng kết nối vào và ra nút đó
- Đờng kính: của mạng là giá trị lớn nhất của các giá trị nhỏ nhất, khoảng
cách giữa các cặp nút lớn nhất và nhỏ nhất.
Thông thờng ngời ta dùng đờng kính để so sánh hiệu năng giữa các 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ó là loại mạng phổ biến, là loại mạng tĩnh đơn giản nhất, dễ cài đặt
có cấp nút là 1, dễ tính toán khoảng cách từ một nút đến nút khác, dễ thêm
và bớt các nút trong mạng. Tuy nhiên, dễ gây tắc nghẽn đụng độ khi có
nhiều nút yêu cầu mạch chia sẻ trong cùng một 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 là Topo mạng tĩnh đơn giản dễ cài đặt, cấp của nút bằng 2, dễ
tính toán. Nếu mạng n nút thì khoảng cách truyền tin giữa các nút có đờng
kính N-1. Nút đầu tiên và nút cuối cũng của mạng không liên kết đợc với
nhau. Thiết kế của mạng làm dài thêm thông tin, nếu một nút thứ i muốn
truyền tin tới nút thứ j thì dữ liệu phải truyền đi qua tất cả các nút giữa
chúng. Do đó, trong trờng hợp một nút bị hỏng thì cả hệ thống không hoạt
động đợc, gây ra đụng độ và hiệu năng của 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ác cấu trúc đơn giản đó là cấu trúc vòng, dễ
thiết kế, cấp của nút là 2, một nút đợc liên kết với hai nút hai bên nó, nút
đầu tiên và nút cuối cùng đợc nối lại với nhau. Mạng có thể truyền tin một
chiều hay hai chiều. Nếu mạng có n nút thì có đờng kính là N-1, đối với
truyền tin một chiều và N-1/2 nếu truyền tin hai chiều. Mặc dù đờng kính
của mạng vòng lớn hơn mạng kết nối mảng, hình dáng của nó có thể là
nguyên nhân gây ra những thông tin dài giữa những nút mạng. Mạng vòng
hai chiều vẫn có nhiều thiếu sót nhng nó cũng đã cải thiện đợc nếu một nút
bị hỏng thì 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 cây nhị phân:
Nút đầu tiên gọi là nút gốc, các nút trong có 2 nút con, nút cuối
không có nút con gọi là nút lá, cấp của nút bằng 3
Ví dụ với mạng kết nối cây nhị phân 7 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 cây nhị phân 7 nút.
- Nút N0 đợc gọi là nút gốc, bốn nút cuối đợc gọi là các nút lá, hai nút N1, N2
gọi là các nút trong.
- Mạng có N nút có đờng kính 2(h-1) với h = log N.
Mạng này có thể mở rộng ra bằng những cách đơn giản, một đặc điểm
tốt ở sự kết nối dữ liệu có thể đợc đi theo một đờng truyền. Mạng có một phơng thức đơn giản cho phép các gói tin cần truyền biểu hiện trong một bảng
thông tin mà các nút cần phải gửi tới các nút khác, mỗi gói tin có phần đầu
chứa thông tin nh là đờng truyền, địa chỉ và khu địa chỉ 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) và 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 0 )
Ví dụ với mạng 8 nút thì có sự kết nối giữa các 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

0

1

2

3

4

5

6

7

Hình 1.5: Sơ đồ các kết nối Suffle Exchange

Tiện lợi cho các giải thuật giải quyết các bà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ố ai , giá trị biến x.
Ra:Giá trị P(x)= a0+a1x1+a2x22+.+anxnn
Kỷ Thuật: Trên mỗi bộ xử lý gắn 3 thanh ghi :
-Thanh ghi thứ nhất 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 các thanh ghi lần lợt chứa các ai các thanh ghi chứa biến
x tại tất cả các nút.
-Các thanh ghi đánh dấu : các thanh ghi lẻ 1,3,5 có giá trị bằng 1,
ngợc lại có giá trị 0.
Bớc 1:Các giá trị thiết lập tại các thanh ghi đánh dấu: Nếu nội dung
thanh ghi đánh dấu bằng 1 thì nội dung thanh ghi hệ số nhân với nội dung
thanh ghi biến và kết quả lu vào thanh ghi hệ số. Ngợc lại, nội dung thanh
ghi đánh dấu bằng 0 thì nội dung thanh ghi hệ số không thay đổi. Trong cả
hai trờng hợp nội dung của thanh ghi biến tự nhân với chính nó.
Bớc 2:Nội dung của cặp thanh ghi đánh dấu đợc chuyển đổi giá trị
cho nhau theo kết nối dich chuyển và quay lai bớc 1. Khi tại các nút cha
chứa đủ giá trị của các aix2 (tại nút thứ i). Ngợc lai sang bớc 3.
Bớc 3:Tại mỗi bớc tính toán các nội dung của thanh ghi hệ số đợc
chuyển đổi với nhau sử dụng các kết nối dịch chuyển. Sau đó các bản sao
của các nội dung của các thanh ghi hệ số đợc chuyển đổi giữa các nút sử
dụng các kết nối chuyển đổi. Sau mỗi chuyển đổi mỗi nút sẽ thực hiện phép
cộng, giữa nội dung của thanh ghi hệ số với giá trị của bản sao đợc chuyển
đổi đến. Quá trình tiếp tục cho đến khi tại các điểm nhận đợc giá trị của

P(x).
6, Mạng lới hai chiều:
Cấu trúc của nó bao gồm k1*k0 nút mà ki 2, i = 1..0.
Trong mạng mỗi nút đều đợc kết nối với bốn phía nếu cột ký hiệu là j và
hàng ký hiệu i thì (i,j) đợc nối với các nút (i-1,j); (i,j+1); (i+1,j), (i,j-1), mỗi
nút này chỉ đợc nối với 2 hoặc 3 nút bên cạnh.
Nếu mạng có k1*k0 thì có đờng kính: (k1-1) +(k0-1).

Ví dụ một mạng có k1=2, k0= 4 có số nút: 2*4 = 8, cấp của nút là 4 và mạng
đợc kết nối nh sau:


1

0

1

2

3

4

5

6

7


0

Hình 1.6a:Mạng lới hai chiều với số nút là 8.
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, trong đó số nút N = n2
Ra: Đờng đi từ nút có số thứ tự là S đến nút có số thứ tự là D
1.Tính khoảng cách hàng R: R = D/n - S/n
2. Tính khoảng cách cột C: C = D(mod n) S(mod n)
3. Đa giá trị R và C vào đầu gói tin.
4. Gửi thông tin từ S đến D.
khi R(C) là số dơng thì 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 một lần gói tin chuyển đến nút
kề cạnh thì R đợc giảm đi 1 khi chuyển xuống và đợc tăng lên 1 khi
chuyển lên cho đến khi R = 0 thì bắt đầu chuyển ngang, mỗi lần chuyển
sang phải thì giảm C đi 1. Khi chuyển sang trái thì C đợc tăng lên 1.
Quá trình sẽ tiếp tục cho đến khi C = 0 thì ta đạt đợc đích cần chuyển
đến.
Ví dụ tìm đờng đi để chuyển một gói tin từ nút 6 đến nút 12 với k 1 = 4
và k0 = 12 (n = 4)
1. R = 12/4 - 6/4 = 2
2. C = 12 mod 4 6 mod 4 = -2

Ta có đờng đi trên mạng nh hình sau:


0

1


2

3

4

5

6

7

8

9

10

11

12

13

14

15

Hình 1.6b:

7. Mạng n-hình hộp(n-cube)
Một mạng n-cube cũng đợc gọi là Hypercube. Bao gồm N = n 2 nút
với n là chiều của hình hộp. Mỗi nút đợc địa chỉ hoá bởi biểu diễn nhị phân
của số thứ tự và mỗi nút sẽ đợc kết nối với tất cả các nút có biểu diễn nhị
phân của số thứ tự khác nhau một bit.

110

111
101

100
011

010
000

001

Hình 1.7:Mạng n-Hình hộp.
Giải thuật định đờng trong n-cube:
Vào: Nguồn S(sn-1sn-2s1s0);
Đích D(dn-1dn-2d1d0);
Ra : Đờng đi từ S đến D


1. Tính t = S D = tn-1tn-2t1t0
2. Đợc định nghĩa là phép toán XOR
2. Nếu t 0 với 0 i n-1 thì sử dụng đờng kết nối thứ i để gửi gói
tin đến nút mới, với địa chỉ nh địa chỉ của nút hiện thời, chỉ trừ

bit thứ i và chuyển đổi ti = 0.
3. Tiếp tục bớc 2 đến khi ti = 0 với mọi ti mà 0 i n-1.
Đặc trng của mạng chọn các đờng đi giữa các nút nguồn
S(sn-1sn-2s1s0) và nguồn D(dn-1dn-2d1d0);
P1: sn-1sn-2s1s0 sn-1sn-2s1d0
sn-1sn-2d1d0 sn-1dn-2d1d0 dn-1dn-2d1d0.
P2: sn-1sn-2s1s0 sn-1sn-2d1s0
sn-1sn-2d2d1s0 sn-1dn-2d1s0 dn-1dn-2d1s0.
dn-1dn-2d1d0.
Pn: sn-1sn-2s1s0 dn-1sn-2s1s0
dn-1sn-2s1d0 dn-1dn-2d1d0 dn-1dn-2d1s0.
Thuận lợi cho việc cài dặt các máy tính song song, tính ma trận, sắp
xếp, trộn, biến đổi nhanh Fourier.
Ví dụ trộn hai danh sách trên 3- cube:
Giải thuật Batchers để trộn hai danh sách đợc phát biểu
Vào : Hai danh sách một không tăng và một không giảm.
Ra : Trộn thành một danh sách tăng hoặc giảm.
Khởi đầu:
Đa danh hai sách vào các nút theo thứ tự (giả sử danh sách tăng dần)
Lặp: Trên mỗi bớc tính toán mỗi cặp phần tử danh sách đợc so sánh và
chuyển đổi vị trí, nếu chúng không phải là cặp tăng. Sự so sánh này đợc thực
hiện theo khoảng cách (hiệu của số thứ tụ) từ lớn đến khi khoảng cách bằng
1.
1.2.2. Mạng kết nối động
Mạng kết nối động là loại mạng cho phép cấu hình lại các kết nối
giữa các nút trong quá trình tính toán.Topo của mạng động là cấu trúc vật lý
đợc xác định bởi các bộ chuyển mạch Swich boes và các liên kết, trong đó
bộ chuyển mạch là thành phần cơ bản của mạng. Giá thành của mạng thờng
đợc đo bằng số lợng của các bộ chuyển mạch đợc sử dụng trong kết nối
mạng.

Trong mạng động cho phép chúng ta lựa chọn những bộ chuyển mạch đơn
giản.


Hình 1.8: đại diện cho những bộ chuyển mạch đơn giản với hai đầu vào (x
và y) và hai đầu ra (z0 và z1). Đờng điều khiển s quyết định các đờng vào đợc
nối với các đờng ra theo một đờng thẳng hoặc chéo.
Ví dụ:
Khi đờng điều khiển s=0, thì đờng vào nối với đờng ra thành một đờng thẳng, đó là x đợc nối với z0 và y nối z1 , khi đờng điều khiển s = 1, thì
đờng vào nối với đờng ra thành một đờng chéo, x đợc nối với z1 và y đợc nối
với z0.

x
y

Z0

Z1
S=0

S=1

x

Z0

x

Z0


y

Z1

y

Z1
Exchange

Straight
Hình 1.8:

Phơng pháp kết nối:
Giả sử có biểu diễn nhị phân là d2d1d0 các di (0 i 2) xác định trạng
thái của bộ chuyển mạch trên nấc i. Nếu d i = 0, chuyển mạch thẳng, ngợc lại
di = 1 chuyển chéo


Bây giờ cho phép chúng ta thiết kế một mạng từ nguồn x đến 8 đầu ra,
nó đợc thể hiện trong Hình 1.9. Trong mạng này, có ba nấc(cột), nắc 2, 1,
và 0, địa chỉ dự định đợc biểu diễn bởi d2d1d0. , bộ chuyển trong nấc 2 là
quan trọng nhất của địa chỉ dự bị(i,e,d2). Song các bộ chuyển của nấc 1 và 0
đã đợc điều khiển bởi d1 và d0. Giả sử xác định đờng đi từ nguồn x đến nút
6(110) nh trên
S=d0
S=d1

d2 d1 d0
0 0 0
0 0 1


x

0 1 0

S=d2

0 1 1

1 0 0
1 0 1
1 1 0
1 1 1
Nấc 2

Nấc 1

Nấc 0

Hình 1.9: Mạng 3 nấc kết nối 1 đầu vào và 8 đầu ra.

Mạng
kết nối
động

Phân loại mạng kết nối động.
Mạch
dằng

Ko liên

thông

Đơn nấc

Đa nấc

Bộ kết nối

Bộ tập trung

Kết nối lại

Liên thông


Hình 1.10 Phân loại mạng kết nối động
1.Mạng mạch dằng:
Cho phép kết nối với một cặp đầu vào và đầu ra có hiệu năng cao, trong
mạng một đầu vào có thể nối với bất kỳ một đầu ra nào đó. Nó có thể nhìn
nh là các đờng dọc và ngang, tại các điểm giao nhau có một bộ chuyển
mạch. Hình 1.11 đại diện cho một mạch dằng N nút tới N nút. Sự kết nối
giữa mỗi đôi của những nút đợc thiết lập bởi một bộ chuyển mạch dằng. Có
n2 bộ chuyển mạch dằng để hoàn thành điều kiện nối giữa tất cả các nút.
Mạng mạch dằng có giá thành cao vì sử dụng nhiều bộ chuyển mạch.
1
2
N
1
Bộ chuyển
mạch dằng


2

N

Hình 1.11:Mạng mạch dằng.
2. Mạng đơn nấc:
Mạng đơn nấc là loại mạng kết nối vòng, nó yêu cầu có giải thuật kết
nối, mỗi lần truyền tin qua mạng giữa các bộ xủ lý gọi là một chuyển
qua(pass). Một ví dụ, Hình 1. 13: đại diện cho một mạng đơn nấc dựa
vào kết nối dịch chuyển - chuyển đổi.
Ví dụ:


Mạng kết nối 8 bộ xủ lý dựa vào hàm dịch chuyển và chuyển đổi,
dùng 4 bộ chuyển mạch.

0

1
2
3
4
5
6
7

Bộ xử lý

Bộ chuyển mạch


Hình 1.12:Mạng đơn nấc

3.Mạng đa nấc
Mạng đa nấc đợc chia thành hai loại bộ tập trung và bộ kết nối. Cả hai
loại Topo mạng này đợc thiết lập vào những năm 50 bởi hãng Bell Labs.
Trong đó bộ tập trung sẽ kết nối một đầu vào chỉ định nào đó với bất kỳ một
đầu ra rỗi nào đó.
a, Bộ tập trung:
Đợc đặc trng bởi bộ ba sau đây (i,o,c), trong đó i > o c. i:Số đầu vào, o:
Số đầu ra, c: Khản năng kết nối bộ tập trung, trong đó khản năng của bộ tập


trung là số các kết nối lớn nhất có thể đợc kết nối qua mạng, đồng thời cho
một bộ tập trung (i,o,c) khản năng kết nối của (l/k) đầu vào trong đó (k c)
với k đầu ra và nó chính là khản năng của bộ tập trung
(l/k) =(

l!
)
k!(l k )!

Đầu ra
1

Bộ chuyển
mạch

2


3

4

1

(3,4)

2

(2,4)

3

(1,4)

4

(2,3)

5

(1,3)

6

(1,2)

Hình 1.13: Bộ tập trung
b, Bộ kết nối:

+ Mạng liên thông: Trong mọi thời điểm cặp đầu vào và đầu ra logic luôn
luôn đợc kết nối với nhau, mà không phải phân bố lại định đờng và thiết lập.
Clos đa ra một đặc trng của mạng liên thông: Trên nấc vào có một số bộ
chuyển mạch dằng n*m. Trên nấc đầu ra có một số bộ chuyển mạch dằng
m*n. Trên các nấc trung gian có bộ chuyển mạch dằng r*r. Xét bộ ba nấc
N(n,m,r) nếu m 2n 1 thì mạng luôn luôn là mạng liên thông


l1 n

l2 n

l3 n

n*m

r*r

m*n

1

1

1

2

2


2

r

m

r

n

O1

n

O2

n

Or

Hình 1.14:Mạng liên thông.
+ Mạng kết nối lại: Là một loại mạng đa năng có khản năng kết nối giữa 1
cặp đầu vào và đầu ra rỗi, trong đó có thể thiết lập lại quá trình định đờng.
Xét bộ ba nấc N(n,m,r) Ta chứng minh đợc với m n thì mạng thay đổi.
Pall đã chứng minh nếu m = n = r thì có n-1 đờng đi để kết nối cặp đầu vào
đầu ra tại mọi thời điểm. Nếu r 2 thì số đờng đi cần phải thay đổi lớn nhất

r-1.
Đầu vào
Chọn mạch

N1/3=n

N2/3

1

1
2

2

Đầu ra
chọn mạch

1
2

1/3
2n-1=2N
-1
Each
Consists
of three stages

2n-2

N2/3

2n-1


N2/3

Hình 1.15: Mạng kết nối lại.
Cấu trúc của mạng kết nối lại: Giả sử số nấc của mạng là lẻ:
S11S22.s-1Ss
Trong đó Si Biểu diễn các bộ chuyển mạch trên nấc i

n


i Biểu diễn sự kết nối giữa hai nấc Si và Si+1
Với s 3 giả sử rằng ni là biểu diễn số đầu vào, đầu ra của mạng trên mỗi
nấc Si và N là tổng số đầu vào đầu ra của mạng, ta chứng đợc:
Kết nối mạng thoả mãn điều kiện đối xứng sau:
i = s-1-1 for = 1,,(s-1)/2,
S1 = S s-i+1 for = 1,,(s-1)/2,
Một ví dụ về mạng thay đổi của 8 đầu vào và 8 đầu ra
0

0

1

1

1

1

1


1

2
3

2

2

2

2

2

2
3

4
5

3

3

3

3


3

4
5

4

4

4

4

4

6

6
7

1

7

Hình 1.16: Mạng thay đổi 8 đầu vào và 8 đầu ra:
+ Mạng không liên thông:
Mạng không liên thông là loại mạng kết nối trong, trong đó tuỳ vào
trạng thái của mạng mà một đầu vào và một đầu ra rỗi không thể kết nối với
nhau đợc. Đã biết hai loại mạng liên thông đa nấc là mạng Omegar và đa
nấc hình hộp.

Loại mạng đa nấc hình hộp:
Đặc điểm N = 2n (n là số nấc)
. Trên mỗi nấc có N/2 bộ chuyển mạch
. Dùng các bộ chuyển mạch 4 trạng thái


Exchange

Straight

Upper
broadcast

Lower
broadcast

Quảng bá trên

Quảng bá dưới

Hình 1.17:
Kết nối: Số thứ tự của đầu vào (đầu ra) gọi là nhãn, hai nhãn kết nối
với nhau nếu biểu diễn nhị phân của chúng chỉ khác nhau một bit, hay chính
xác hơn trên nấc thứ i hai nhãn kết nối với nhau nếu biểu diễn nhị phân của
chúng khác nhau bởi bít thứ i.
Ví dụ nh mạng 5 nấc hình hộp có 8 đầu vào và 8 đầu ra
0

0


1

1

1

1

1

1

2
3

2

2

2

2

2

2
3

4
5


3

3

3

3

3

4
5

4

4

4

4

4

6

6
7

Hình 1.19: Mạng 5 nấc hình hộp.


Giải thuật định đờng:
Vào: S(sn-1sn-2s1s0) đích D(dn-1dn-2d1d0)

1

7


Ra: Đờng đi từ S đến D
Lặp: Trên nấc thứ i. Xét si và di
Nếu di = si thì chuyển thẳng, ngợc lại thì chuyển chéo, lặp lại cho đến khi
đến đích.
Trạng thái của bộ chuyển mạch:
0

1
2
2

4

3

Nấc 0
Nấc 1
Nấc 2

5


6

7

Hình 1.20:
Tính T = S D = tn-1tn-2t1t0
Trên nấc thứ i nếu ti <> 0 thì trạng thái của bộ chuyển mạch chuyển chéo,
ngợc lại thì chuyển thẳng.
Mạng hình hộp ba mức là mạng không liên thông.
Nếu hai nút 3 và 7 tơng ứng với 0 và 1 đồng thời không đợc thiết lập
Nếu dùng thêm bộ chuyển mạch quảng bá trên(dới) có thể kết nối một đầu
vào với nhiều đầu ra.
Ví dụ nh từ đầu vào 2 đến 6 có thể kết nối với các đầu ra 4,5,6,7.
Mạng Omega:
Đặc trng của mạng: có n nấc n = log2N trong đó N là số đầu vào(đầu ra)
Kết nối: Giống nh mạng hình hộp chỉ khác nấc giữa có đảo thứ tự của các
bộ chuyển mạch theo hàm dịch chuyển.
Giải thuật định đờng:
Từ nguồn S(sn-1sn-2s1s0) đến đích D(dn-1dn-2d1d0)


Ta sẽ thực hiện nh sau:
Trên nấc i nguồn sẽ nối với đầu ra trên khi d i = 0, ngợc lại nối với đầu ra dới.
Ví dụ về mạng Omega 3 nấc 8 đầu vào và 8 đầu ra.
0

0

1


1

1

1

2
3

2

3

2

2
3

4
5

3

2

3

4
5


4

4

4

6

6
7

1

7

Hình 1.21:Mạng Omega 3 nấc 8đầu vào và 8 đầu ra.
Để tìm đầu ra của mạng Omega và mạng đa nấc hình hộp dùng hai hàm
dịch chuyển và chuyển đổi. Hàm dịch chuyển: Giả sử có nguồn biểu diễn
nhị phân là (xn-1xn-2x1x0) qua hàm dịch chuyển nó kết nối với nút biểu
diễn nhị phân là (xn-2x0x1xn-1)
Nếu gọi hàm là : ( xn-1xn-2x1x0) qua hàm dịch chuyển nó kết nối với nút
biểu diễn nhị phân là (xn-2x0x1xn-1).
Hàm chuyển đổi:
Giả sử nguồn biểu diễn nhị phân là: ( x n-1xn-2x1x0) qua hàm chuyển đổi nó
kết nối với nút có biểu diễn nhị phân là: ( xn-1xn-2x1x0)
Nếu gọi hàm là E: E( x n-1xn-2x1x0) qua hàm dịch chuyển nó kết nối với nút
biểu diễn nhị phân là ( xn-1xn-2x1x0 ).
Một mạng Omega dợc định nghĩa có n nấc đợc gọi là n lần hợp của và E
và ta ký hiệu nh sau:
= E((EE()))

Giả sử nguồn X(xn-1xn-2x1x0) khi đó thực hiện n lần hàm hợp


(X) xn-1 cn-1 x1 c0
Trong đó ci biểu diễn trạng thái của bộ chuyển mạch trên nấc thứ i
Nếu ci = 1 Thì trạng thái đợc chuyển chéo ngợc lại chuyển thẳng.
Mạng n nấc hình hộp đợc biểu diễn nh sau:
C = E(0(EE(n-2(E(n-1))))
Trong đó i biểu diễn sự kết nối của các bộ chuyển mạch trên nấc thứ i+1 và
nấc i.
i(xn-1xn+1x0) = xn-1 x0xi +1
Nếu ta áp dụng n lần hàm hợp lên nguồn x ta có :
C(x) xn-1 cn-1x0 c0
Trong đó ci là trạng thái của bộ chuyển mạch trên 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 nối dịch chuyểnchuyển đổi với mô hình tính toán SIMD. Do 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 mô
hình kết nối đa bộ xử lý vì nó yêu cầu quá nhiều tính toán tổng thể trên mỗi
phép xử lý theo mỗi 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
cộng l*m*n và các phép nhân tơng ứng. Sự phức tạp về thời gian để nhân hai
ma trận có cỡ là n*n sử dụng thuật toán tuần tự là O(n 3). Giải thuật nhân ma
trận tuần tự có thời gian ngắn, độ phức tạp tính toán nhỏ đợc phát triển bởi
giải thuật strasens
Giải thuật tuần tự nhân ma trận.
{******************************************}
Global

a[0..(l-1)][0..(m-1)];
b[0..(m-1)][0..(n-1)];
c[0..(l-1)][0..(n-1)]
t,i,j,k

Begin
for i 0 to l-1 do



for j 0 to n-1 do
t 0
for k 0 to m-1 do
t t+ a[i][k]*b[k][i]
endfor
c[i][j] t
endfor
endfor
End
{********************************************}

2.2. Những giải thuật cho bộ xử lý mảng
2.2.1. Nhân ma trận trên kết nối lới hai chiều
với mô hình tính toán Simd.

A Lower Bound Gentleman (1978) đã chỉ ra rằng việc nhân 2 ma trận
cỡ n*n trên kết nối lới hai chiều với mô hình tính toán SIMD cần O(n) bớc
tải dữ liệu.
Định nghĩa 2.1:
Cho dữ liệu sẵn có trớc đây sử dụng bộ xử lý đơn ở chế độ tính toán song
song. Hàm (k) là số lợng tối đa các bộ xử lý mà dữ liệu đợc truyền với k bớc tải dữ liệu hoặc ít hơn. Trong kết nối lới hai chiều với mô hình tính toán
SIMD (0) = 1; (1) = 5; (2) = 13; (k) = 2*k2 + 2*k + 1;
Bổ đề 2.1:
Giả sử rằng nhân hai ma trận A và B có cỡ là n*n và mỗi thành phần
A và B đợc lu trử chính xác một lần và không có thành phần xử lý nào chứa
hơn một phần tử của ma trận khác. Nếu ta bỏ qua bất cứ một tiện ích chuyển
dữ liệu nào thì việc nhân ma trận A và B để có ma trận C có cỡ là n*n cần ít
nhất S bớc tải dữ liệu với (2S) n2.

Chứng minh:


×