.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 (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 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 tố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 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:

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 63 - 68)