.4 Nhõn ma trận thưa với vộc tơ song song

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 49 - 58)

Thuật toỏn song song nhõn ma trận thưa với vộc tơ tổng quỏt, thuật toỏn 2.4. Thành phần vộc tơ vj cần thiết cho tớnh toỏn aij.vj phải đạt được trước khi bắt đầu bước (2). Điều

Input: A là ma trận thưa cấp m n , distr(A) = , v vộc tơ dày độ dài n, distr(v) = v.

Output: u vộc tơ dày độ dài m, u = Av, distr(u) = u.

    : 0 ( : 0 ( , ) ) : 0 ( : 0 ( , ) ) s s I i i m j j n i j s J j j n i i m i j s                     (1) {Nhận vj về} for all jJsdo receive vj fromP(v(j));

(2) {Nhõn ma trận thưa với vộc tơ cục bộ}

for all iIsdo ; 0 : is u for all j:0 jn(i,j)s do uis := uis + aijvj; (3) {Gửi uis cho bộ xử lý tớnh ui} for all iIsdo send uis to P(u( ));i (4) {Tổng kết cỏc tổng thành phần khỏc 0} for all i: 0   i m u( )is do ui := 0; for all t: 0  t P uit 0 do ui := ui + uit;

này được thực hiện trong bước truyền thụng (1), xem minh hoạ hỡnh 2.3. Bộ xử lý mà phải nhận vj được nhận biết từ ma trận thưa địa phương mà cần thành phần vj này. Thành phần vi phải nhận về mỗi bộ xử lý mà cần nú, nú cú thể được sử dụng nhiều lần cho cỏc phần tử khỏc 0 địa phương aij trong cựng cột j của ma trận. Nếu cột j chứa ớt nhất một

phần tử khỏc 0 địa phương thỡ vj là cần thiết; ngược lại vj khụng cần thiết. Do đú, để thuận tiện ta xỏc định tập chỉ số Js cỏc cột khỏc rỗng địa phương, tương tự tập chỉ số hàng khỏc rỗng Is. Chỳng ta nhận về vj nếu và chỉ nếu jJs, thực hiện ở bước (1) của thuật toỏn 2.4. Tập Js cú thể được biểu diễn bằng mảng colindex độ dài |Js|, tương tự rowindex cho tập Is. Minh hoạ tập chỉ số cột trong hỡnh 2.2(b). Chỳng ta xem cỏc mảng rowindex và colindex như phần cấu trỳc dữ liệu cho ma trận thưa địa phương. Tổng thành phần uis mà khỏc 0 phải được gửi tới ui nếu hàng i địa phương là khụng rỗng, tức là, nếu iIs, thực hiện trong bước (3). Cuối cựng, bộ xử lý chịu trỏch nhiệm tớnh ui sẽ cộng cỏc giỏ trị khỏc 0 đó nhận được trước đú uit, 0 t P t, s,thực hiện ở bước (4).

Cỏc bộ xử lý được giả thiết đồng bộ húa toàn cục giữa cỏc bước.

Hỡnh 2.3 Minh hoạ truyền thụng nhõn ma trận thưa với vộc tơ

Hỡnh 2.3 minh hoạ truyền thụng trong quỏ trỡnh nhõn ma trận thưa với vộc tơ như trong hỡnh 2.2, mũi tờn đứng ký hiệu truyền thụng của cỏc thành phần vj: v0 phải gửi từ bộ xử lớ sở hữu nú P(1) cho P(0) đang sở hữu cỏc phần tử khỏc khụng a10 = 4 và a30 = 6; v2

ngang ký hiệu truyền thụng cỏc tổng thành phần uis: P(1) gửi u01 = 3 mà nú tớnh được tới P(0) để tớnh u0; P(0) gửi u20 = 14 tới P(1) để tớnh u2; và P(1) gửi u31 = 29 tới P(0) để tớnh u3; u1u4 được tớnh cục bộ, khụng cú truyền thụng với bộ xử lý khỏc. Tổng truyền thụng V = 5 từ dữ liệu.

Từ thuật toỏn 2.4, mục tiờu cụ thể được đưa ra như sau:

 Cố gắng rải cỏc phần tử khỏc khụng của ma trận đều khắp trờn cỏc bộ xử lý, cực tiểu húa lượng cụng việc cực đại của một bộ xử lý trong bước (2).

 Cố gắng cực tiểu húa tổng số truyền thụng, dung lượng truyền thụng.

 Cố gắng dải đều truyền thụng trờn cỏc bộ xử lý, cả việc gửi và nhận, để cực tiểu húa số thao tỏc truyền thụng cực đại của bộ xử lý trong bước (1) và (3).

 Cố gắng phõn hoạch ma trận theo cả hai chiều, chẳng hạn bằng việc chia nú thành cỏc khối hỡnh chữ nhật. Như một kết quả, cỏc phần tử của cột cần để phõn phối trờn chỉ Pbộ xử lý (giả thiết P là số chớnh phương) thay vỡ trờn P bộ xử lý của mỏy tớnh song song. Ở đõy giới hạn số bộ xử lý đớch và vỡ vậy truyền thụng của thành phần vộc tơ vj trong bước (1) là P1, vj được cung cấp cho một trong cỏc bộ xử lý mà cần nú. Theo cỏch này, nú cũng hạn chế số truyền thụng trong bước (3). Mặc dự phõn phối một chiều cú lợi ớch là bỏ qua một hoặc hai bước, chẳng hạn bước (3) hoặc (4) trong trường hợp phõn phối theo hàng, chi phớ phải trả sẽ cao: cỏc hàng (cỏc cột) phải được phõn phối trờn một số lượng lớn cỏc bộ xử lý và số truyền thụng cho một thành phần vộc tơ cú thể đạt P - 1.

Dưới đõy trỡnh bày phương phỏp phõn hoạch hai chiều cho ma trận thưa tổng quỏt [8] và phương phỏp phõn hoạch cỏc vộc tơ dựa trờn biờn địa phương [18] nhằm đạt được cỏc mục tiờu đề ra.

Dung lượng truyền thụng của thuật toỏn song song cho bài toỏn nhõn ma trận thưa với vộc tơ là tổng số phần tử dữ liệu được gửi đi trong bước (1) và bước (3). Giỏ trị này phụ thuộc vào việc lựa chọn phõn phối dữ liệu cho ma trận và cỏc vộc tơ. Ta giả thiết rằng thành phần vộc tơ vj của vộc tơ đầu vào v sẽ phõn cho một trong cỏc bộ xử lý mà sở hữu

thành phần khỏc khụng aij trong cột j của ma trận, nếu như tồn tại phần tử khỏc khụng, cũn ngược lại khụng tồn tại phần tử khỏc khụng trong cột j, cột j là rỗng thỡ sẽ khụng gõy ra truyền thụng. Cỏch phõn như vậy sẽ cho kết quả tốt hơn khi phõn cho cỏc bộ xử lý khỏc. Ta cũng thực hiện phõn cỏc thành phần ui của vộc tơ đầu ra u cho một trong cỏc bộ xử lý mà sở hữu phần tử khỏc khụng aij trong hàng i của ma trận. Theo cỏch phõn như vậy thỡ dung lượng truyền thụng là độc lập với phõn phối của cỏc vộc tơ.

2.2.2 Phõn phối ma trận

Giả sử ma trận thưaAcú kớch thước m n với m n, 1, cỏc phần tử aij, với 0 i m

và 0 j n. Vộc tơ đầu vào v là vộc tơ độ dài n và vộc tơ đầu ra u là vộc tơ độ dài m.

Chỳng ta khụng tớnh khả năng thưa cú thể cú của cỏc vộc tơ. Mỏy tớnh song song cú số bộ xử lý dạng P2q bộ xử lý, q0,mỗi bộ xử lý cú bộ nhớ cục bộ riờng.

Một phõn hoạch k chiều của A là một tập A0,...,Ak1 khỏc rỗng, cỏc tập con của A rời nhau đụi một và thỏa món 1

0 . k r r A A    

Dưới đõy là một số định nghĩa:

Định nghĩa 2.1. Cho A là ma trận thưa m n và cho A0,...,Ak1là cỏc tập con của A, k 1. Số tập con mà cú phần tử khỏc khụng trong hàng i của ma trận A, với 0im,

 0,..., 1

i k

i p A A

p

 r:0rkj:0 jnaij 1 i,jAr, (2.7) Số tập con mà cú phần tử khỏc khụng trong cột j của ma trận A, với 0 jn.

 0,..., 1

j k

j q A A

q

Ký hiệu pimaxpi 1,0, qj maxqj 1,0. Khi đú dung lượng truyền thụng cho cỏc tập 1 0,...,AkA xỏc định như sau:           1  0 1 0 1 0,..., n j j m i i k p q A A V (2.9)

Đặc biệt hàm dung lượng truyền thụng V vẫn xỏc định khi k tập con rời nhau đụi một mà khụng tạo nờn phõn hoạch k chiều. Nếu k = P và cỏc tập con tạo nờn phõn hoạch P

chiều và nếu chỳng ta phõn mỗi tập con cho một bộ xử lý, thỡ V A( 0,...,AP1) chớnh là dung lượng truyền thụng trong thuật toỏn song song nhõn ma trận thưa với vộc tơ ở trờn. Đú là bởi vỡ mỗi vjđược gửi từ chớnh bộ xử lý sở hữu nú tới qj bộ xử lý khỏc mà xử lý phần tử khỏc khụng của cột j và mỗi ui là tổng của một giỏ trị cục bộ (từ chớnh nú) và cỏc giỏ trị nhận được từpi bộ xử lý khỏc. Một tớnh chất quan trọng nữa của dung lượng truyền thụng như sau.

Định lý 2.2. Cho A là ma trận cấp m n và A0,...,Ak1là cỏc tập con của A, k 2. Khi đú dung lượng truyền thụng giữa k tập,

   

0 1 0 3 2 1 2 1

( ,..., k ) ,..., k , k k k , k

V A A V A AA A V AA (2.10)

Chứng minh:

Để chứng minh (2.10) thay V bởi pi, với 0imqjvới 0 jn. Chỳng ta chỉ cần chứng minh cho trường hợp pi, cũn trường hợp qj là tương tự. Cho i là chỉ số

hàng, ta phải chứng minh rằng  0 3 2 1  2 1 1 0,..., ) ,..., , , (             k i k k k i k k i A A p A A A A p A A p . (2.11)

Nếu Ak-2 hoặc Ak-1 cú phần tử khỏc 0 trong hàng i, chỳng ta cú thể thaypi  pi 1. Ta cú vế phải bằng

         ,..., , ,  1 1 , 1 1 ,..., 1 , 1 , ,..., 1 2 3 0 1 2 3 0 1 2 1 2 3 0                       k k k i k k i k i k k i k k k i A A A A p A A p A A p A A p A A A A p chớnh bằng vế trỏi. Nếu Ak-2 và Ak-1 khụng cú phần tử khỏc khụng trờn hàng i, thỡ ta cú vế phải và vế trỏi cựng bằng piA0,...,Ak3.

Định lý trờn là khỏi quỏt cho cỏc tập con tựy ý, nhận xột bởi Catalyurek và Aykanat [19], trong trường hợp mà mỗi tập con Ar bao gồm cỏc cột (nguyờn vẹn) của ma trận. Định lý chỉ ra rằng để xem xột truyền thụng tăng thờm từ việc phõn chia một tập con của ma trận, chỳng ta chỉ cần xem xột trờn chớnh tập con này.

Chỳng ta cũng định nghĩa hàm tớnh lượng cụng việc tớnh toỏn cực đại của một bộ xử lý khi nhõn ma trận cục bộ với vộc tơ. Để đơn giản chỳng ta biểu diễn bằng số lượng phộp nhõn (liờn quan tới cỏc phần tử khỏc khụng của ma trận), bỏ qua cỏc phộp cộng.

Định nghĩa 2.3. Cho A là ma trận cấp m n và A0,...,Ak1 là cỏc tập con rời nhau đụi một của A, với k 1. Thỡ lượng tớnh toỏn cực đại cho cỏc tập con A0,...,Ak1 là:

 0 1 0 ,..., k max ( r). r k W A Anz A    (2.12) Hàm V mụ tả chi phớ của bước (1) và (3) trong thuật toỏn 2.4, hàm W thỡ mụ tả chi phớ của bước (2). Chi phớ của bước (4) ở đõy bỏ qua, thường thỡ chi phớ này nhỏ hơn nhiều so với chi phớ của cỏc bước khỏc, tổng số phộp cộng của tất cả cỏc bộ xử lý trong bước (4) được bao bởi V, bởi vỡ mỗi giỏ trị cộng thờm vào đó được nhận trước đấy trong bước (3), và chi phớ phộp cộng thường rẻ hơn nhiều so với chi phớ truyền thụng. Việc cực tiểu V vỡ vậy chớnh là cực tiểu húa cận trờn chi phớ của bước (4). Việc cõn bằng tải truyền thụng trong bước (3) sẽ cõn bằng được tải tớnh toỏn trong bước (4).

Mục tiờu đề ra là đưa ra thuật toỏn phõn hoạch ma trận A, phõn hoạch P chiều, thỏa món tiờu trớ cõn bằng tải:

 0,..., P1 1   W A

W A A

P

   , (2.13)

và cú dung lượng truyền thụng V A( 0,...,AP1) thấp. Ở đõy, 0là tham số mất cõn bằng tải cho phộp. Giỏ trị nhỏ cú nghĩa rằng cõn bằng tải phải gần như hoàn hảo.

Trước tiờn chỳng ta xem xột bài toỏn phõn hoạch đơn giản nhất, trường hợp P = 2.

Một cỏch để phõn chia ma trận là phõn hoàn toàn cột cho A0 hoặc A1. Khi đú qj 0với mọi j, vỡ vậy khụng gõy truyền thụng cho thành phần vộc tơ vj. (Việc phõn chia một cột j bằng cỏch phõn cỏc phần tử khỏc khụng cho cỏc bộ xử lý khỏc nhau sẽ gõy nờn truyền thụng.) Nếu hai cột j và jcú một phần tử khỏc khụng trong cựng hàng i, chẳng hạn

1   ij

ij a

a , thỡ cỏc cột này tốt hơn phõn cho cựng một bộ xử lý; ngược lại pi1.Bài toỏn phõn cỏc cột của ma trận thành hai tập chớnh là bài toỏn phõn hoạch siờu đồ thị hai chiều, siờu đồ thị H = (V, N), với V = {0,…, n-1} là tập cỏc đỉnh, N = {n0,…, nm-1} là tập cỏc siờu

cạnh, ni j: 0  j n aij 1. Hàm split chia ma trận đầu vào A thành hai tập A0A1

như sau:

A A0, 1split A sign , ,.

Đầu ra là cặp tập con rời nhau A0,A1 với A0A1 A thỏa món

A0,A1 1   W A /2.

W   Nếu sign = 1, cỏc cột được phõn hoạch; nếu sign = -1, cỏc hàng được phõn hoạch.

Thụng thường chỳng ta chỉ xột với giả thiết P = 2q, nhưng chỳng ta cú thể tớnh toỏn với trường hợp tổng quỏt. Chẳng hạn, cho trường hợp P = 3 ta cú thể chia ma trận thành hai tập theo tỷ lệ cỏc phần tử khỏc khụng, chẳng hạn với tỷ lệ 2:1.

Việc chia một ma trận thành hai phần bằng cỏch phõn toàn bộ cột (hay hàng) cú lợi là đơn giản và khụng cú truyền thụng trong bước (1). Tuy nhiờn, trong trường hợp chia theo cột, chẳng hạn cột j với hai nửa (nửa đầu và nửa cuối) lần lượt là jj. Phõn hai

nửa này cho hai bộ xử lý cú thể tiết kiệm được truyền thụng trong bước (3). Theo phương phỏp này từng phần tử được phõn cho cỏc bộ xử lý thay vỡ toàn bộ cột (hay hàng).

Tiếp theo chỳng ta xem xột trường hợp P = 4. Mục đớch phõn hoạch hai chiều là

chỳng ta cú thể phõn cỏc cột vào hai tập J0và J1 và rồi cỏc hàng vào hai tập I0và I1. Như vậy sẽ phõn ma trận thành bốn ma trận con, xỏc định bởi cỏc tớch đề cỏc I0J0, I0J1,

0 1 J

I  và I1J1. Phõn phối này, hiện nay vẫn sử dụng cho hầu hết cỏc ma trận, được gọi là phõn phối đề cỏc. Trường hợp bốn bộ xử lý cho thấy một loạt bất lợi của phõn bố đề cỏc: việc phõn hoạch của cỏc hàng mà phải ỏp dụng cho cả cỏc cột. Một phõn hoạch hàng tốt cho cỏc cột của J0cú thể là xấu cho cỏc cột của J1, và ngược lại. Điều này dẫn đến phải xem xột việc phõn hoạch theo hàng hay theo cột. Hạn chế lượng lớn cỏc tập phõn hoạch cú thể thỡ sẽ cho lời giải tốt hơn. Do đú chỳng ta cú thể phõn hoạch cho từng phần riờng biệt. Định lý 2.2 cho thấy cú thể thực hiện một cỏch độc lập, bởi vỡ:

A0,A1,A2,A3 VA0 A1,A2 A3 V A0,A1 V A2,A3,

V      (2.14)

ở đõy cỏc phần được ký hiệu bởi A0,A1,A2,A3 với A0A1là phần đầu của cột và A2A3là phần sau của cột. Ta cú thể phõn hoạch A0A1mà khụng cần xem xột phõn hoạch của

3 2 A A  .

Lợi ớch của việc phõn hoạch độc lập được minh họa như hỡnh 2.4. Để cho dễ hiểu, ma trận trong hỡnh đó được chia bằng lược đồ đơn giản mà chỉ dựa vào việc cực tiểu húa cõn bằng tải tớnh toỏn và ở phõn hoạch này ma trận được chia thành cỏc khối liờn tục. Việc phõn hoạch độc lập dẫn đến cõn bằng tải tốt hơn nhiều, chẳng hạn cho giỏ trị cực đại 80 phần tử khỏc 0 trờn bộ xử lý,  2.5%, so với 128 phần tử khỏc khụng,  64%,cho trường hợp phõn phối đề cỏc. Tổng dung lượng truyền thụng là gần như nhau, 66 và 63. Rừ ràng việc phõn hoạch độc lập cho nhiều khả năng để cải thiện cõn bằng tải hay cực tiểu chi phớ truyền thụng.

Hỡnh 2.4 Phõn phối của ma trận impcol_b

Ma trận impcol_b kớch thước 59 59 , lấy từ bộ sưu tập Rutherford-Boeing, được

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 49 - 58)