Kiến trỳc cụm mỏy tớnh

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 34)

Trước đõy, thuật ngữ “mỏy tớnh hiệu năng cao” (High- Performance Computing - HPC) thường được dựng để chỉ những mỏy tớnh song song hoặc mỏy tớnh vộc tơ với giỏ

trị lờn tới hàng triệu đụla. Nhưng khi cỏc mỏy tớnh hiệu năng cao được tạo ra bằng cỏch kết nối cỏc mỏy trạm (Workstation – WS) với nhau thỡ thuật ngữ “cụm mỏy tớnh”

(Computer Cluster) được sử dụng để chỉ dạng mỏy tớnh này.

Cụm mỏy trạm (Workstation Cluster -WSC) là một nhúm cỏc mỏy trạm được kết nối với nhau thụng qua một mạng tốc độ cao. Cỏc mỏy tớnh trong một WSC truyền thụng qua một trong hai giao thức truyền thụng phổ biến đú là: truyền thụng dựa trờn kết nối và truyền thụng khụng kết nối. Mụ hỡnh kết nối dựa trờn giao thức TCP (Tranmission Control Protocol) với độ tin cậy cho việc truyền thụng điệp được bảo đảm. Mụ hỡnh

khụng kết nối dựa trờn giao thức UDP (User Datagram Protocol), với giao thức này độ tin cậy cho việc truyền thụng điệp được bảo đảm. Hiện nay cú rất nhiều phần mềm hỗ trợ việc tớnh toỏn song song trờn WSC tiờu biểu như MPICH.

Kiến trỳc bú IBM 1600 của trung tõm tớnh toỏn hiệu năng cao:

 5 node tớnh toỏn pSeires 655, mỗi node gồm 8 CPU Power4+16 bit RISC 1.7 GHz của IBM; cache 5.6 MB ECC L2, 128 MB ECC L3, băng thụng: 72.3 GBps; 32 GB RAM, băng thụng bộ nhớ 51.2 GBps; 6x36 GB HDD. Năng lực tớnh toỏn tổng cộng khoảng 240 GFlúp (mở rộng tối đa 768 GFlops/16 node).  1 node quản lớ phần mềm CSM p630: Power4+64 bit 1.2 GHz; cache 1.5 MB

ECC L2, 8 MB ECC L3, băng thụng: 12.8 GBps; 1 GB RAM, băng thụng: 6.4 GBps; 6x36 GB HDD, DVD ROM.

 1 node điều khiển phần cứng HCM: Intel Xeon 3.06 GHz, 1GB RAM, 40 GB HDD, DVD RAM.

 Cỏc node được kết nối với nhau thụng qua HPS (High Performance Switch – Switch hiệu năng cao), băng thụng 2 GBps và Gethernet.

 Hệ thống lưu trữ chung: IBM DS4400 và EXP700 kết nối với cụm IBM 1600 thụng qua cỏp quang với băng thụng 2 GBps.

 Cỏc node chạy HĐH AIX 5L phiờn bản 5.2

Kiến trỳc bú IBM 1350 của trung tõm tớnh toỏn hiệu năng cao:

 8 node tớnh toỏn, mỗi node gồm 2 chip Intel Xeon Dual Core 3.2 GHz, 2 GB RAM, 1x36 GB HDD, DVD ROM. Tổng năng lực tớnh toỏn của 8 node là khoảng 51.2 Gflops.

 2 node phục vụ lưu trữ, mỗi node gồm 2 chip Intel Xeon Dual Core 3.2 GHz, 3 GB RAM, 4x72 GB HDD.

 1 node đúng vai trũ quản lớ bao gồm chip Intel Xeon Dual Core 3.2 GHz, 3 GB RAM, 2x36 GBHDD.

 Năng lực lưu trữ: thiết bị lưu trữ dựng chung EXP400 với 10x73 GB HDD SCSI 320 MBps 15KRpm, dựng hệ thống chia sẻ file: GPFS cho Linux v2.3.0.5

 Cỏc node chạy HĐH Redhat Enterprise Linux 3.0 và được kết nối với nhau thụng qua mạng Gethernet.

Chƣơng 2 – THUẬT TOÁN SONG SONG NHÂN MA TRẬN THƢA VỚI VẫC TƠ

2.1 Ma trận thƣa 2.1.1 Đặt vấn đề

Một số định nghĩa

Ma trận thưa (sparse matrix) là ma trận cú phần lớn cỏc phần tử là khụng, ngược lại với ma trận dày (dense matrix) hầu hết cỏc phần tử là khỏc khụng. Ranh giới giữa ma trận dày và ma trận thưa khụng thật rừ ràng nhưng chắc chắn rằng một ma trận khụng là ma trận dày thỡ là ma trận thưa.

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.

Đụi khi, ta viết ma trận như tập cỏc cặp chỉ số:

( , ) : 0 0 . Ai j     i m j n (2.1) Số cỏc phần tử khỏc khụng của A là:     , : ij 0 . nz Ai jA a  (2.2) Trung bỡnh số phần tử khỏc khụng trờn cột là:   nz A( ) c A n  (2.3) Độ dày hay mật độ cỏc phần tử khỏc khụng là:   nz A( ) d A m n   (2.4)

Ma trận A gọi là thưa khi nz A  m n hay d A 1 [16].

Trong cỏc ứng dụng thực tế ma trận thưa sinh ra là cú quy tắc chứ khụng phải là ngoại lệ. Một ma trận thưa nảy sinh trong mỗi tỡnh huống mà ở đú mỗi biến từ một tập lớn cỏc biến được kết nối chỉ với một số biến. Chẳng hạn, trong bài toỏn tớnh toỏn phương trỡnh nhiệt rời rạc trờn lưới hai chiều, nhiệt độ tại một điểm lưới liờn quan tới nhiệt độ tại cỏc điểm lưới hàng xúm bắc, đụng, nam và tõy. Bài toỏn này cú thể biểu diễn bởi hệ phương trỡnh tuyến tớnh, trong đú ma trận sinh ra là ma trận thưa.

Bài toỏn

Cho ma trận thưa A cấp m n và vộc tơ dày v độ dài n. Kết quả tớnh toỏn là vộc tơ u

độ dài m, u = Av. (adsbygoogle = window.adsbygoogle || []).push({});

Ta cú thuật toỏn tuần tự nhõn ma trận thưa với vộc tơ như sau:

Thuật toỏn 2.1 Thuật toỏn nhõn ma trận thưa với vộc tơ tuần tự

Bài toỏn nhõn ma trận thưa với vộc tơ gần như là tầm thường trong tớnh toỏn tuần tự, nhưng khi ma trận cú kớch thước lớn, phải thực hiện nhõn ma trận với vộc tơ lặp đi lặp lại nhiều lần, khối lượng tớnh toỏn khổng lồ thỡ việc thực hiện nhõn ma trận thưa với vộc tơ song song cú vai trũ cực kỳ quan trọng. Trong cỏc lời giải lặp của hệ phương trỡnh tuyến tớnh, hệ phương trỡnh giỏ trị riờng, trong cỏc bài toỏn mụ phỏng, ta thường phải thực hiện

Input: A ma trận thưa cấp m n ,

v vộc tơ dày độ dài n.

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

for i := 0 to m - 1 do

ui := 0;

for all (i,j): 0im0 jnaij 0 do

nhõn ma trận thưa với vộc tơ lặp đi lặp lại. Trong cỏc phương phỏp giải lặp, bắt đầu với ước đoỏn ban đầu của nghiệm x0 và sau đú tiếp tục cải thiện nú bằng việc tỡm xấp xỉ tụt

hơn xk , k = 1, 2,…, cho tới khi hội tụ với sai số cho trước. Vớ dụ, phương phỏp gradient

liờn hợp cho hệ phương trỡnh tuyến tớnh hữu hạn dương, đối xứng Ax = b và phương phỏp Lanczos [11] cho hệ phương trỡnh đối xứng Ax = x. Trong chương này trỡnh bày bài

toỏn nhõn ma trận thưa với vộc tơ song song, tớnh thưa của ma trận cú thể là bất thường, khụng cú qui tắc. Nhưng thật may mắn trong bài toỏn nhõn ma trận với vộc tơ thỡ ma trận là khụng thay đổi trong quỏ trỡnh tớnh toỏn.

Nghiờn cứu nhõn ma trận thưa với vộc tơ cũng đưa ra cỏi nhỡn sõu sắc hơn trong cỏc lĩnh vực khỏc của tớnh toỏn khoa học. Trong mụ phỏng động lực học, lực tương tỏc giữa cỏc hạt i và j cú thể mụ tả bằng một lực fij. Cho khoảng tương tỏc ngắn, lực bằng 0 nếu cỏc hạt này là cỏch xa nhau. Ở đõy cho ta ma trận lực F là ma trận thưa. Tớnh toỏn cỏc vị trớ mới của cỏc hạt di chuyển dưới lực của hai hạt tương tự như nhõn một vộc tơ với ma trận F. Miền hạt hai chiều và ma trận tương ứng được chỉ ra trong hỡnh 2.1.

Hỡnh 2.1 Mụ phỏng động lực học bằng ma trận lực thưa

Trong hỡnh 2.1, (a) miền động lực học phõn tử hai chiều kớch thước 1.0 1.0 với 10 hạt. Mỗi vũng trũn ký hiệu vựng tương tỏc của một hạt, và được xỏc định bởi bỏn kớnh rc

= 0.1. (b) Ma trận thưa F kớch thước 10 10 tương ứng. Nếu cỏc vũng trũn của hạt i và hạt

j giao nhau thỡ hai hạt này tương tỏc lẫn nhau và giỏ trị fij và fji khỏc 0 xuất hiện trong (b). Cỏc bài toỏn về ma trận thưa đó được đề cập, cựng với cỏc bộ dữ liệu từ những bài toỏn thực tế đó được tập hợp bởi cỏc nhúm nghiờn cứu như: Matrix maket, Harwell- Boeing [20] ngày nay gọi là Rutherford-Boeing… Mục tiờu cho việc xõy dựng cỏc bộ sưu tập này đú là cỏc nhà nghiờn cứu kiểm nghiệm cỏc bộ dữ liệu, cho cỏc thuật toỏn khỏc nhau trờn cỏc mỏy khỏc nhau, để cú thể sử dụng như một tập phổ biến cỏc bộ thử nghiệm cho trường hợp đặc biệt như ma trận thưa.

Cỏc kết quả đó đạt được

Trong những năm gần đõy, đó cú nhiều kết quả đạt được từ bài toỏn nhõn ma trận thưa với vộc tơ song song. Trước tiờn, bài toỏn phõn hoạch ma trận được giải quyết như một bài toỏn phõn hoạch đồ thị. Đõy là phương phỏp phõn hoạch một chiều, là cơ sở của cỏc thuật toỏn phõn hoạch được cài đặt trong cỏc phần mềm Chaco [4] và Metis [12] được sử dụng rộng rói từ những năm 1995-1998. Thành cụng của cỏc chương trỡnh phõn hoạch này là sự kết hợp hiệu quả cỏc thuật toỏn phõn đụi nhiều mức, được đề xuất bởi Bui và Jones [19] từ những năm 1993.

Hendrickson [5], năm 1998, chỉ trớch phương phỏp phõn hoạch đồ thị bởi vỡ nú chỉ xử lý với cỏc ma trận vuụng đối xứng và ỏp đặt cỏch phõn hoạch ma trận để phõn hoạch cho cỏc vộc tơ đầu vào và đầu ra, và bởi vỡ nú khụng nhất thiết để cực tiểu dung lượng truyền thụng, số thụng điệp gửi đi, cũng như cõn bằng tải truyền thụng cực đại của mỗi bộ xử lý. Hendrickson và Kolda [5], chỉ ra những bất lợi đối với tất cả cỏc ứng dụng của phõn hoạch đồ thị trong tớnh toỏn song song, khụng chỉ riờng với việc nhõn ma trận thưa với vộc tơ. Hendrickson và Kolda [7], năm 2000, đó trỡnh ra phương ỏn thay thế, mụ hỡnh chia đụi đồ thị. Mụ hỡnh này cú thể xử lý được cả ma trận vuụng khụng đối xứng và ma trận hỡnh chữ nhật và nú khụng ỏp đặt cỏch phõn phối ma trận cho cỏc vộc tơ đầu vào và đầu ra.

Catalyiirek và Aykanat [21], năm 1999, chỉ ra thuật toỏn phõn hoạch đa mức, họ tớnh được dung lượng truyền thụng chớnh xỏc bằng việc sử dụng phương phỏp siờu đồ thị. Một

siờu đồ thị H = (V, N) bao gồm một tập cỏc đỉnh V = {0, …, n - 1} và một tập cỏc siờu

cạnh N = {n0,…, nm-1} và cũng được gọi là một mạng. Catalyiirek và Aykanat giả thiết

rằng m = n, và việc phõn phối vộc tơ được thực hiện như cỏch phõn phối ma trận. Lợi ớch của phương phỏp này là nú cố gắng cực tiểu dung lượng truyền thụng thực sự.

Cả hai phương phỏp phõn hoạch đồ thị chuẩn và phõn hoạch siờu đồ thị đều là cỏc phương phỏp phõn hoạch ma trận một chiều. Phõn hoạch ma trận hai chiều cũng được đề xuất, và mới được sử dụng với cỏc phiờn bản nhõn ma trận với vộc tơ nhằm khai thỏc trong tớnh toỏn mà chưa khai thỏc cho truyền thụng.

Berger và Bokhari [15], năm 1987, trỡnh bày chiến lược dựa trờn chia đụi đệ quy cho việc phõn hoạch khụng đồng bộ lưới hai chiều. Việc phõn hoạch chia lưới lần lượt theo chiều dọc, chiều ngang, với mục tiờu đạt cõn bằng tải tốt trong tớnh toỏn. Chia đụi đệ quy là kỹ thuật tối ưu đó được biết đến, đó được sử dụng trong mụ phỏng mạch song song. Kỹ thuật này cũng được sử dụng để phõn hoạch ma trận, đó được thực hiện bởi Romero và Zapata [14], năm 1995, để đạt được cõn bằng tải tốt trong bài toỏn nhõn ma trận thưa với vộc tơ.

Bisseling [16], năm 1993, trỡnh bày thuật toỏn hai chiều nhằm khai thỏc tớnh thưa của ma trận ở cả tớnh toỏn và truyền thụng. Bisseling và McColl [17], năm 1994, cải tiến thuật toỏn chỉ những truyền thụng thực sự cần thiết mới được thực hiện; họ đạt được điều này bằng việc chuyển thuật toỏn từ mụ hỡnh lưới vuụng hạn chế với định tuyến store-and- forward sang mụ hỡnh song song đồng bộ khối chung. Họ phõn tớch truyền thụng của một loạt phõn phối sử dụng số gửi hay nhận cực đại trờn một bộ xử lý như hàm chi phớ. Phõn phối ma trận là phõn phối đề cỏc, xỏc định bằng việc phõn hoạch cỏc hàng ma trận thành

M tập Is và cỏc cột thành N tập Jt và phõn P = M.N tớch đề cỏc Is x Jt cho P bộ xử lý. Phõn phối vộc tơ giống như ma trận đường chộo.

Pinar và Aykanat [3], năm 1997, chia ma trận trước tiờn thành cỏc khối hàng và rồi chia mỗi khối độc lập thành cỏc khối cột. Phõn hoạch của họ chỉ tớnh đến cõn bằng tải tớnh toỏn. (adsbygoogle = window.adsbygoogle || []).push({});

Gần đõy, Catalyurek và Aykanat [22], năm 2001, mở rộng phương phỏp phõn hoạch siờu đồ thị một chiều cho ma trận vuụng cho phương phỏp phõn hoạch hai chiều. Họ đó

tạo ra phõn hoạch ma trận đề cỏc bằng cỏch phõn hoạch cỏc hàng thành M tặp cú số phần tử khỏc khụng gần bằng nhau, rồi phõn hoạch cỏc cột sao cho phõn đều cỏc phần tử khỏc khụng trờn cỏc tập hàng. Họ đó chỳ ý đi vào xử lý cỏc vấn đề phõn hoạch cũn hạn chế trong phương phỏp phõn hoạch một chiều. Phõn phối cỏc vộc tơ như phõn phối ma trận đường chộo. Lựa chọn M = N = p, với p là số bộ xử lý của mỏy tớnh song song, khi đú số thụng điệp cực đại trờn bộ xử lý giảm là 2 p1, so với p – 1 thụng điệp của phõn

phối một chiều. Đõy là một lợi thế, đặc biệt với ma trận tương đối nhỏ. Theo kết quả thực nghiệm của họ, số cỏc thụng điệp giảm đỏng kể và dung lượng truyền thụng thỡ như nhau.

Để khai thỏc tớnh thưa của ma trận thưa, trước tiờn chỳng ta phải lựa chọn được cấu trỳc dữ liệu thớch hợp, thường chỉ lưu cỏc phần tử khỏc khụng của ma trận. Tiếp theo, đi vào thiết kế thuật toỏn nhõn ma trận thưa với vộc tơ song song với mục tiờu đề ra là cực tiểu hoỏ chi phớ truyền thụng và đạt cõn bằng tải tốt.

2.1.2 Cấu trỳc dữ liệu cho ma trận thƣa

Lợi ớch chớnh của việc khai thỏc tớnh thưa là làm giảm bộ nhớ sử dụng (cỏc phần tử 0 khụng được lưu trữ) và thời gian tớnh toỏn (cỏc phộp toỏn với 0 được bỏ qua hoặc được làm cho đơn giản). Tuy nhiờn, cú một giỏ phải trả là cỏc thuật toỏn ma trận thưa phức tạp hơn so với ma trận dày tương ứng. Việc phỏt triển và cài đặt cỏc ma trận thưa chi phớ nhiều thời gian và cụng sức hơn. Ma trận thưa cú thể lưu trữ sử dụng nhiều cấu trỳc dữ liệu khỏc nhau, lựa chọn cấu trỳc nào là tốt nhất phụ thuộc vào bài toỏn cụ thể. Dưới đõy là một số cấu trỳc thường gặp [18]:

Lƣợc đồ tọa độ (coordinate scheme), hay lược đồ bộ ba (triple scheme). Mỗi phần

tử khỏc khụng aij được biểu diễn lại bằng bộ ba (i, j, aij), ở đõy i là chỉ số dũng, j là chỉ số

cột và aij là giỏ trị số. Bộ ba được lưu trữ theo thứ tự tuỳ ý trong mảng. Cấu trỳc dữ liệu này là dễ hiểu nhất và chỳng được sử dụng cho cỏc bộ dữ liệu trong Matrix Market. Đõy là cấu trỳc phự hợp cho đầu vào tớnh toỏn song song, tất cả cỏc thụng tin về phần tử khỏc khụng được chứa trong bộ ba, ta cú thể gửi trực tiếp và độc lập cỏc bộ ba này tới cỏc bộ xử lý. Tuy nhiờn sẽ khú để thực hiện cỏc thao tỏc hàng hay cột thụng minh (row-wise,

column-wise) trờn cấu trỳc dữ liệu này, tức là việc lấy ra từng hàng hay từng cột để tớnh

toỏn thỡ khụng thuận tiện lắm.

Lƣu trữ hàng nộn (CRS-Compressed Row Storage). Mỗi hàng i của ma trận được

lưu trữ như một vộc tơ thưa chứa cỏc cặp (j, aij) biểu diễn cỏc giỏ trị khỏc 0. Trong cấu

trỳc dữ liệu, a[k] biểu thị giỏ trị của phần tử khỏc khụng aij được đỏnh chỉ số k, và j[k] là chỉ số cột của aij. Cỏc hàng được lưu trữ liờn tục, theo thứ tự tăng của chỉ số hàng. Vị trớ

của phần tử khỏc khụng đầu tiờn của hàng i được cho bởi start[i]; số cỏc phần tử khỏc

khụng của hàng i bằng start[i+1] - start[i], ở đõy qui ước start[m] = nz(A).

Vớ dụ 2.1: cho ma trận 0 3 0 0 1 4 1 0 0 0 , 5, ( ) 13. 0 5 9 2 0 6 0 0 5 3 0 0 5 8 9 A n nz A                   

Cấu trỳc dữ liệu CRS của ma trận A như sau:

a[k]= 3 1 4 1 5 9 2 6 5 3 5 8 9

j[k]= 1 4 0 1 1 2 3 0 3 4 2 3 4

k = 0 1 2 3 4 5 6 7 8 9 10 11 12

Cấu trỳc dữ liệu CRS cú lợi thế đú là cỏc phần tử của hàng được lưu trữ liờn tiếp, bởi

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 34)