.6 Xõy dựng cận dưới địa phương của bộ xử lý s

Một phần của tài liệu 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 (Trang 63 - 68)

đề 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 toỏn 2.6.

Ta thấy rằng tập cỏc cột C(s) đạt được luụn 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 toỏ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 (adsbygoogle = window.adsbygoogle || []).push({});

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 toỏ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 hoỏn vị cột trong thuật toỏ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 ( ) ( ) (adsbygoogle = window.adsbygoogle || []).push({});

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:

Một phần của tài liệu 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 (Trang 63 - 68)