.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 (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 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 tố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 tố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 tồ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 tố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 tố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 tố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 tố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 tố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 hồn tồ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 tố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 tố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 tồ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ì tồ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 tố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 (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 49 - 58)