Kiến trúc cụm máy tính

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 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 tốn hiệu năng cao:

 5 node tính tố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 tố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 tốn hiệu năng cao:

 8 node tính tố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 tố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

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 tốn tính tố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 tố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 tốn là véc tơ u

độ dài m, u = Av.

Ta có thuật tố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 tố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 tố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 tố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

tố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 q trình tính tố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 tố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 tố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 tố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 tố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 tố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 tố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 tố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 tốn hai chiều nhằm khai thác tính thưa của ma trận ở cả tính tốn và truyền thơng. Bisseling và McColl [17], năm 1994, cải tiến thuật tố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 tốn từ mơ hình lưới vng 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 tốn.

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 hố 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 tốn (các phép tố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 tố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 tố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

tố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 (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 34)

Tải bản đầy đủ (PDF)

(102 trang)