Phân phối véc tơ

Một phần của tài liệu (LUẬN văn THẠC sĩ) thiết kế nhân ma trận thưa với véctơ trong tính toán song song và ứng dụng luận văn ths toán học 60 46 35 (Trang 59)

2.2 Nhân ma trận thưa với véc tơ song song

2.2.3 Phân phối véc tơ

Giả sử sau khi thực hiện phân phối ma trận cho P bộ xử lý, sử dụng thuật toán phân phối ma trận thưa của Mondrian. Tiếp theo ta phân phối hai véc tơ v và u cho P bộ xử lý sao cho số cực đại gửi và nhận của các bộ xử lý trong bước (1) và (3) là nhỏ nhất. Bởi vì truyền thơng của u và v trong bước (1) và (3) tương ứng thao tác theo cách tương tự nhau, nên thuật tốn để cực tiểu hóa truyền thơng cho v có thể được sử dụng để cực tiểu hóa

truyền thơng cho u. Do đó ở đây chỉ đề cập tới phân phối của v. Ở đây không quan tâm số phần tử khác không trong mỗi cột, mà chỉ quan tâm tới những bộ xử lý mà sở hữu các

phần tử khác không này. Và chúng ta đưa ma trận A cấp m n về ma trận A~ cấp P n với

1 ~sc

a nếu bộ xử lý s sở hứu ít nhất một phần tử khác khơng trong cột c, và a~sc 0 không sở hữu phần tử khác không nào trong cột c. Ma trận A~ được gọi là ma trận truyền thơng.

Chúng ta có một số định nghĩa như sau: 1 1 0 0 p n sc c s nz a      là số phần tử khác không của A~.      1 0 ~ p s sc a c k là số bộ xử lý trên cột c. B(s), 0 s P, là tập tất cả các cột c mà k c 2 và bộ xử lý s xử lý cột c.

C(s) là tập các cột từ B(s) được sở hữu bởi bộ xử lý s.

) (s

C là tập các cột từ B(s) không được sở hữu bởi bộ xử lý s.

   1. ) ( ) (     s C c c k s Ns . ) ( ) ( ) ( ) (s B s C s C s Nr    0 max s P ( ). Nsend   Ns s 0 max s P ( ). Nreceive   Nr s

Một bộ xử lý gọi là „trên cột c‟ hay „xử lý cột c‟, nếu a~sc 1. Nếu bộ xử lý „sở hữu dữ liệu‟, có nghĩa là dữ liệu được lưu trữ trong bộ nhớ của nó và khơng lưu trữ trong bất kỳ bộ xử lý nào khác. Nếu ta nói rằng bộ xử lý s sở hữu cột c, tức là bộ xử lý s sở hữu thành

phần véc tơ vc. Ns(s) là số lần bộ xử lý s gửi một thành phần véc tơ tới một bộ xử lý khác.

Nr(s) là số lần bộ xử lý s nhận một thành phần véc tơ từ bộ xử lý khác. Chúng ta giả sử

rằng một bộ xử lý chỉ có thể sở hữu một cột nếu nó xử lý trên cột đó hoặc cột đó là rỗng. Ta có C(s)C(s) và C(s)C(s)B(s). Bây giờ ta cần phân mỗi thành phần véc tơ

vj của v cho một bộ xử lý sao cho max(Nsend, Nreceive)là nhỏ nhất.

0 1 2 3 4 5 6 7 8 9 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 2 1 1 0 0 1 0 1 1 0 0 3 1 0 0 0 1 1 1 0 1 1 k 3 1 0 2 4 3 3 1 2 2

Từ bảng trên cho các B(s) như sau:

B(0) = {3, 4, 5, 9} B(1) = {0, 3, 4, 5, 6, 8} B(2) = {0, 4, 6} B(3) = {0, 4, 5, 6, 8, 9}

Giả thiết có một phân phối như sau:

C(0) = {3, 5} C(1) = {0, 4, 8} C(2) = {6} C(3) = {9}.

Bộ xử lý 1 sở hữu các cột 0, 4 và 8. Thì Ns(1) = k(0) - 1 + k(4) – 1 + k(8) - 1 = 2 + 3 + 1

= 6 và Nr(1) = |B(1)| - |C(1)| = 6 – 3 = 3.

Tương tự ta có các giá trị Ns(s) và Nr(s) như sau: Ns(0) = 3, Nr(0) = 2; Ns(1) = 6, Nr(1) = 3; Ns(2) = 2,Nr(2) = 2; Ns(3) = 1, Nr(3) = 5. Do đó Nsend = 6 và Nreceive = 5.

Chi phí của phân phối này là max(Nsend, Nreceive)=6. Ta thấy các cột 1, 2 và 7 không phải phân bố vì có ít hơn hai bộ xử lý trên chúng. Nếu chúng ta cho cột 1 và 7 sở hữu bởi hai bộ xử lý và cột 2 bởi bộ xử lý bất kỳ, chúng ta sẽ không làm tăng

max(Nsend, Nreceive).

2.2.3.1 Cận dƣới địa phƣơng cho số truyền thông cực đại

Dưới đây là một số cận dưới cho giá trị max(Nsend, Nreceive) ở trên. Cận dưới trực quan nhất cho giá trị max(Nsend, Nreceive)trong mỗi phân phối véc tơ như sau:

Định lý 2.4 (Cận dưới 1): Cho một phân phối của ma trận A trên P bộ xử lý, khi đó max(Nsend, Nreceive) V/P. (2.15) Trong đó 1 1 1 0 0 0 max( ( ) 1, 0) ( ) ( ), p p n c s s V k c Ns s Nr s      

    và cũng được gọi là dung lượng truyền thông.

Giả sử rằng các bộ xử lý có thể chỉ sở hữu các cột mà nó xử lý, hoặc các cột rỗng. Từ bây giờ chúng ta sẽ cố gắng để đạt được cận dưới tốt hơn cho max(Nsend, Nreceive), có thể cận dưới này không thể đạt được trong nhiều trường hợp. Nếu chúng ta lấy nhiều thông tin về phân phối ma trận của A để xét, thêm thông tin cho V, chúng ta có thể có cận dưới tốt hơn. Cải tiến trước tiên của cận dưới 1 đạt được bằng việc xem xét thực tế rằng không phải tất cả các bộ xử lý phải truyền thơng bởi vì chúng có thể sở hữu tồn bộ cột (theo nghĩa tất cả các phần tử khác khơng của cột đó chỉ thuộc vào một bộ xử lý). Giả sử cho trường họp bộ xử lý s khi đó B(s) là rỗng.

Định lý 2.5 (Cận dưới 2): Ma trận A đã được phân phối trên P bộ xử lý, có Pa bộ xử lý kích hoạt, có ít nhất một cột được phân cho nhiều hơn hai bộ xử lý, tức là B(s) 0,thì cận dưới tốt hơn cho giá trị max(Nsend, Nreceive)cho bởi:

V/P . Nreceive)

max(Nsend,  a . (2.16)

Chứng minh:

Theo định nghĩa, cho các bộ xử lý khơng kích hoạt trên s là bằng 0, tức là| ( ) | 0C s.

Vì vậy Nr(s)= 0. Do đó tổng số cuộc nhận được phân phối giữa Pa bộ xử lý với |B(s)|> 0. Mà số cuộc nhận bằng V, bởi vậy NreceiveV/Pa, và max(Nsend,Nreceive)V/Pa..

Các cận dưới tiếp theo dưới đây không phải là một cải tiến của cận dưới 1 hay cận dưới 2, nó có thể cao hơn hoặc thấp hơn V /Pa hay V /P phụ thuộc vào phân phối ma trận. Nếu giả sử rằng tất cả các cột được phân phối đều khắp trên các bộ xử lý. Để cực

tiểu max(Ns(s),Nr(s)) của bộ xử lý s mà không xem xét tới các bộ xử lý khác, chúng ta phải đạt được Ns(s) = Nr(s), bởi vì khi Ns(s) đạt được bằng việc di chuyển một cột tới

một bộ xử lý khác, Nr(s) lại tăng lên và ngược lại. Mục tiêu cân bằng Ns(s) và Nr(s) trong khi chúng là nhỏ nhất. Với Nr(s) không quan trọng xem bao nhiêu bộ xử lý cùng trên các cột mà xử lý bởi s: mỗi cột sở hữu giảm Nr(s) đi 1. Vì vậy để giảm Nr(s) tốt nhất là sở

hữu nhiều cột có thể, khơng liên quan tới số bộ xử lý trên nó. Tuy nhiên với Ns(s) thì vấn

Thuật tốn 2.6 Xây dựng cận dưới địa phương của bộ xử lý s

đề lại là bao nhiêu bộ xử lý trên các cột mà s sở hữu: và nó càng ít thì càng tốt. Vì vậy, khi chúng ta khởi tạo với tất cả các cột được sở hữu bởi các bộ xử lý khác (chẳng hạn,

Nr(s)=|B(s)|, C(s) và C(s)B(s)), tốt nhất cho s trước tiên sở hữu tất cả các cột

trong C(s)với hai bộ xử lý, rồi tất cả các cột trong C(s)với ba bộ xử lý,…, cho tới khi

Ns(s)=Nr(s). Trong hầu hết các trường hợp thường không đạt được dấu bằng mà chỉ tăng

Input : B(s)

Output: C(s) và biên dưới địa phương local(s)

C(s) := ;

while not marked

chọn jC(s) với k(j) nhỏ nhất j s C s C( ): ( ) ; if Ns(s)Nr(s)then C(s) := C(s); else local(s) := max(Ns(s), Nr(s)); marked

Ns(s) nhiều nhất có thể nhưng vẫn thoả mãn Ns(s) Nr(s). Giá trị đạt được theo cách này sẽ cho ta giá trị max(Ns(s),Nr(s)) và được gọi là local(s). Ta có thuật tốn 2.6.

Ta thấy rằng tập các cột C(s) đạt được ln thoả mãn hai tính chất cơ bản sau: (i) k(c1)k c2 , với mọi c1C(s)và c2C s,

(ii) Nr(s)kC,min 1Ns(s)Nr(s),

với kC,min mincC(s)k(c). Nếu chúng ta định nghĩa local max0splocal(s)thì chúng ta đạt được cận dưới tiếp theo dưới đây.

Định lý 2.6 (Cận dưới 3): Với mỗi phân phối véc tơ thì cận dưới cho giá trị

max(Nsend, Nreceive)như sau:

. )

,

max(Nsend Nreceivelocal (2.17)

Chứng minh:

Để chứng minh điều này chúng ta sẽ chỉ ra rằng max(Ns(s),Nr(s))local(s) với mọi

s. Trước tiên chúng ta có các định nghĩa:

) ( ),

(s C C s B

B  , với C được xây dựng như trong thuật toán 2.6. Ns(s) Ns(C) Nr(s) Nr(C) Ns(C),Nr(C) max N(C)

Sắp xếp các cột của B không giảm theo số bộ xử lý trên cột k(j). Đánh số lại cho các cột của B sao cho k(0)k(1)...kB 1.và C 0,1,2,...C 1.. Cho C0,...,B 1 là tập các cột tuỳ ý. Chúng ta sẽ biến đổi C thành C sao cho không tăng N(C). Và chúng

Chúng ta sẽ chuyển tập các cột tuỳ ý C thành tập được sắp C0,...,C1 với cùng kích thước.

Thuật tốn 2.7 Chuyển tập C thành C0,...,C1

(Chứng minh tại mỗi thời điểm C  C jC1. Với i thoả mãn iC1. Vì vậy ) ( ) (i k j k j

i   , là vì các cột được sắp theo số các bộ xử lý). Vậy Ns(C) Ns(C)và ).

( )

(C Nr C

Nr    Như là một kết quả N C N C.

Bây giờ chúng ta sắp xếp tập C, chúng ta có thể phải bỏ hoặc thêm vào các cột từ/tới Ccho tới khi C  C. Cho mCm C,và chúng ta có các trường hợp sau:

1. mm:C0,...,m1 và C0,...,m1. Vì vậy CC.

2. mm:C0,...,m1 và C0,...,m1,...,m1.Cho CC. Chúng ta sẽ bỏ đi các cột từ m1 tới m khỏi C Như một kết quả C0,...,m1C. Cho Cold

new

C là các tập trước và sau khi bỏ một cột. Nếu mmthì Ns Cold  Nr Cold . Hơn nữa, NrCnewNr Cold 1 Ns(Cold )và NsCnew Ns Cold . Vì vậy

C newNs Cold N(Cold).

N     

3. mm:C0,...,m1,...,m1 và C0,...,m1. Cho CC. Chúng ta sẽ chuyển C thành C bằng việc thêm vào các cột mtới m-1 vào C . Như là một kết quả C0,...,m1C. Theo cách xây dựng Ns(C) Nr(C). Bởi vì mm,

C C: ; for i:= 0 to C 1 if iCthen chọn jCmà j lớn nhất   C j  i C: \  ;

1 ) ( ) ( )

(Cnew Nr Cnew Nr Cold 

NsNs(Cold )Nr(Cold ). Vì vậy

CnewNr Cold N Cold .

N     

Bây giờ chúng ta chỉ ra rằng mỗi tập Ccó thể chuyển thành tập C mà không làm

tăng N C. Vì vậy C là tối ưu, vì nếu khơng sẽ phải có một tập C~ màN C~  N C , cái này cũng có thể được chuyển thành C mà không làm tăng N C~ . Điều này là mâu thuẫn.

Như vậy chúng ta đã chứng minh được rằng cận dưới địa phương là cực tiểu, nếu một tập các cột thoả mãn điều kiện xác định thì chi phí của nó là cực tiểu. Điều kiện này sẽ được duy trì trong suốt thuật tốn dựa trên cận dưới địa phương, thảo luận ở phần tiếp theo.

Bổ đề 2.1: Nếu Clà tập thoả mãn (i) và (ii), thì N C N ,C với C là tập các cột được

tạo bởi thuật toán 2.6, N(C) = max(Ns(C), Nr(C)).

Chứng minh:

Chuyển tập Cthành tập C với C0,1,...,C1sử dụng thuật toán 2.7.

Ở đây k i   k j với mọi hốn vị cột trong thuật tốn 2.7. (Vì, nếu k i   k j , thì sẽ có cột iCvới k(i) thấp hơn một cột trong C, bởi vậy không thoả mãn (i), dẫn tới mâu thuẫn. Trong chứng minh phần trước đã chỉ ra rằng k i k j  thì khơng thể. Vậy

   

k ik j . Bởi vì k i   k j với mỗi hoán vị, Ns(C)=Ns(C), Nr(C)=Nr(C), suy ra N(C)=N(C) và C thoả mãn (i) và (ii).

Bây giờ chúng ta có tập được sắp C, thoả mãn (i) và (ii), có ba khả năng: 1. mm: C C N C  N C  N C .

2. mm: C = {0,…,m - 1} và C0,...,m1,...,m1 . Với C thoả mãn ,min

( ) C 1 ( ) ( ),

mãn Ns C  Ns C( )kC,min 1 và Nr C  Nr C( ) 1. Do đó ,min

( ) ( ) C 1 ( ) ( )

Ns C Ns Ck  Nr CNr C C không thoả mãn (ii), dẫn tới mâu thuẫn. 3. mm: C0,...,m1,...,m1và C0,...,m1 . Với C thoả mãn ( ) ( ) ( 1) 1 Ns C Ns Ck m  vàNr C(  ) Nr C( ) 1. ( ) ( 1) 1 ( ) ( ) ( ) Ns C k m  Ns CNr CNr C Ns C( )Nr C( )k m(  1) 1. Lưu ý rằng kC,min k m( 1), bởi vì cột m 1 C. Do đó, ,min ( ) ( ) C 1

Ns C  Nr C k   Ckhông thoả mãn (ii), dẫn tới mâu thuẫn. Điều này có nghĩa rằng N C  N C  N C( ).

Với các ma trận phân phối tốt có thể đạt local V /Pa, bởi vì các giá trị địa phương của các bộ xử lý xem xét các cột chi phí rẻ (chẳng hạn các cột có ít bộ xử lý) để sở hữu chúng và tránh các cột chi phí đắt hơn. Vì vậy cận dưới tốt nhất là:

Định lý 2.7 (Cận dưới 4): Với mỗi phân phối véc tơ thì cận dưới cho giá trị max(Nsend, Nreceive)như sau:

 / , ).

max( )

,

max(Nsend NreceiveV Pa local (2.18) Trong đó V là dung lượng truyền thông, Pa là số bộ xử lý kích hoạt khi phân phối dữ liệu của ma trận.

Đây là cận tốt để xác định cận dưới địa phương tổng quát, thuật toán 2.8. Sự khác nhau giữa cận dưới 3 và cận dưới 4 là cận dưới địa phương tổng quát cho phép các cột đã sở hữu, tức là |C(s)| > 0. Như một kết quả, trước khi phân phối các cột chưa được sở hữu

Ns(s) > 0 và Nr(s) < |B(s)|. Bây giờ cận dưới tổng quát localgen(s) cho bộ xử lý s đạt được

bằng việc phân trước tiên các cột chưa sở hữu c từ C(s) vào C(s) với k(c)=2, rồi k(c)=3,… Nhưng thoả mãn Ns(s) Nr(s). Thuật toán cho cận dưới tổng quát như sau:

Thuật toán 2.8 Tạo cận dưới địa phương tổng quát cho bộ xử lý s

Định lý 2.8 (Cận dưới 5): Cho tập các cột đã sở hữu C(s) với mỗi bộ xử lý s cận dưới

tổng quát cho giá trị max(Nsend, Nreceive)sẽ là:

 ,  max / , ,

max Nsend NreceiveV Pa localgen (2.19) Trong đó localgen max0splocalgen(s).

Tính chất (i) sẽ cho cận dưới địa phương tổng quát, ngoại trừ c1c2 không nên là các cột đã sở hữu. Tính chất (ii) thì khơng thay đổi. Chứng minh phần này tương tự như chứng minh của cận dưới 3.

Ví dự 2.5: Xét ma trận A~ trong ví dụ 1, và tính các cận dưới. Trước tiên tính tổng số nhận và gửi của ví dụ 1 cho ta ( ) 3 ( ) 12.

0 3

0  

sNs ssNr s

V P = 4 nên V P/ 3. Bởi Input: C(t), 0 t P đã được phân

Output: C(s) với cận dưới địa phương tổng quát

( ) ( ) \ t s ( )

C sB s  C t ;

while not marked

chọn jC(s) với k(j) nhỏ nhất  s j C s C( )  ; if Ns(s)Nr(s)then ) ( ) (s C s C   ; else )) ( ), ( max( ) (s Ns s Nr s localgen  ; marked

vì tất cả các bộ xử lý khơng có tập B(s) nào rỗng nên chúng ta có Pa = 4, do đó

V /Pa3.

Để tính cận dưới địa phương local chúng ta phải tính bốn giá trị local(s) của bốn bộ

xử lý. Sử dụng thuật tốn 2.6: Tính C(0), trước tiên có Nr(0) = |B(0)| = 4, C(0) = , C(0)3, 4,5,9, chọn j = 3, Ns = k(3) – 1 = 1, Nr = 4 - 1 = 3, Ns <Nr => C(0) = {3}. chọn j = 9, Ns = 2, Nr = 2 => Kết thúc C(0) = {3, 9}. Tương tự cho các bộ xử lý khác, ta có: C(0) ={3,9}Ns(0) = 2, Nr(0) = 2 local(0) = 2 C(1) ={3,8}Ns(1) = 2, Nr(1) = 4 local(1) = 4 C(2) ={0}Ns(0) = 2, Nr(2) = 2 local(2) = 2 C(3) ={8,9}Ns(0) = 2, Nr(3) = 2 local(3) = 4

Bởi vậy local = 4. Giá trị này cho ta cận dưới 4: maxV/Pa,local4. Lưu ý các tập

C(s) có thể chứa các cột khác nhau, nhưng Ns(s) và Nr(s) là xác định.

Sử dụng thuật tốn 2.8 để tính cận dưới địa phương tổng quát localgen trong trường hợp C(0) = {3}, C(1) = {8}, C(2) = {4} và C(3) = {9}, chúng ta có thể có được:

Tính cho C(1), khởi tạo C(1) = {8}, Ns(1) = k(1) – 1 = 0, Nr(1) = |B(1)| - |C(1)| = 5,

  (1) (1) (0, 2,3) 0,5, 6 CBC  ta có: chọn j = 0, Ns(1) = 2, Nr(1) = 2 => dừng, C(1) = {8, 0}. Tương tự cho các bộ xử lý khác, ta có: C(0) ={3}Ns(0) = 1, Nr(0) = 3 local(0) = 3

C(1) ={8,0}Ns(1) = 3, Nr(1) = 4 local(1) = 4 C(2) ={4}Ns(0) = 3, Nr(2) = 2 local(2) = 3 C(3) ={9,5}Ns(0) = 3, Nr(3) = 4 local(3) = 4.

Vậy localgen = 4 và cận dưới 5 bằng 4.

Một phần của tài liệu (LUẬN văn THẠC sĩ) thiết kế nhân ma trận thưa với véctơ trong tính toán song song và ứng dụng luận văn ths toán học 60 46 35 (Trang 59)

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

(102 trang)