.6 Mơ hình kiến trúc lập lịch

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

nguyên được cấp phát cho tác vụ được đăng kí trước. Khơng có mức ưu tiên cơng việc bên trong một nhiệm vụ. Các tài nguyên được cấp phát tới tác vụ theo thứ tự thêm vào. Bộ lập lịch tác vụ lựa chọn các nút sẵn sàng tốt nhất trong cụm để chạy từng tác vụ. Một tác vụ cũng có thể đặc tả danh sách các nút mà nó có thể chạy trên đó, và bộ lập lịch lựa chọn nút tốt nhất trong danh sách đó. Cơng cụ lệnh (command-line) Ứng dụng Cộng tác COM Quản lý tác vụ C# API Dịch vụ cụm Dịch vụ lập lịch tác vụ Mức dữ liệu Bộ theo dõi lập lịch DB Quản lý nút Mức giao diện Mức lập lịch Mức thực thi

Lập lịch tác vụ cũng hỗ trợ khả năng khôi phục. Điều này đảm bảo một ứng dụng ngốn tài nguyên sẽ khơng trì hỗn các ứng dụng khác đang sẵn sàng chạy. Bộ lập lịch sẽ lập lịch một tác vụ ưu tiên thấp hơn nếu một tác vụ ưu tiên cao hơn đang chờ tài nguyên rảnh rỗi và tác vụ ưu tiên thấp hơn có thể hồn thành cơng việc của mình với tài ngun sẵn có mà khơng trì hỗn thời gian bắt đầu của tác vụ ưu tiên cao kia.

Chúng ta cũng có thể mở rộng lập lịch với các bộ lọc. Một bộ lọc đăng kí tác vụ được gọi ra trước khi một tác vụ được xếp vào hàng đợi hoặc được sửa đổi. Nó có thể chấp nhận sửa đổi tác vụ hoặc từ chối sự đệ trình tác vụ đó. Một bộ lọc kích hoạt được gọi ra trước khi tác vụ bắt đầu làm việc. Bộ lọc này có thể thực hiện các nhiệm vụ như kiểm tra yêu cầu giấy phép phần mềm, hoặc triển khai các chính sách cấp phát tài nguyên. Nếu bộ lọc kích hoạt trả lại giá trị khác 0 (bị lỗi), thì tác vụ vẫn duy trì trong hàng đợi. Bộ lọc được gọi tuần hồn cho đến khi nó thành cơng.

Dịch vụ cụm là một dịch vụ .NET từ xa. Nó cung cấp các thiết lập cụm rộng, các hoạt động liên quan đến nút, các hoạt động liên quan đến tác vụ, nhiệm vụ, và thông tin sử dụng tài nguyên.

Các ứng dụng và các cơng cụ dịng lệnh truy cập các chức năng của bộ lập lịch tác vụ thông qua tầng giao diện.

1.5.3 Lập trình MPI với VS.NET

Để lập trình một bài tốn song song với công cụ Microsoft Visual Studio .NET [10], trước hết chúng ta tạo một project, loại Win32 Console Application, không chọn "Precompiled header".

Trong mã nguồn của project, thay đổi từ "_tmain" thành "main" và "_TCHAR*

argv[]" thành "char* argv[]" để nó tương thích với hàm MPI_Init.

Nhấp phải chuột vào project trong phần "Solution Explorer", chọn "Properties". Mở rộng "Configuration Properties" ở bên trái.

- Lựa chọn "General" bên dưới thực đơn "C/C++". Trong mục "Additional Include

Directories" ở bên phải, nhập vào đường dẫn tới thư mục include của SDK đã cài

đặt trong máy. Thông thường, chúng ta sử dụng "C:\Program Files\Microsoft

Compute Cluster Pack\Include".

- Lựa chọn "Advanced" cũng trong mục "C/C++". ở phần "Compile As" ở bên phải, lựa chọn "Compile as C Code (/TC)" nếu chương trình viết bằng C chứ khơng phải C++.

- Lựa chọn "General" trong phần "Linker". Với phần "Additional Library

Directories" ở bên phải, nhập vào đường dẫn tới thư mục lib của SDK được cài ra

trong máy. Ngầm định là "C:\Program Files\Microsoft Compute Cluster

Pack\Lib\i386".

- Lựa chọn mục "Input" cũng trong phần "Linker". Trong mục "Additional

Dependencies" ở bên phải, gõ dòng msmpi.lib, để sử dụng thư viện MPI.

Đến đây, chúng ta đã có thể viết chương trình, biên dịch với Visual Studio. Khi đã biên dịch được tệp khả thi exe, chúng ta cần sử dụng chương trình mpirun.exe trong thư mục bin của gói SDK để chạy với cú pháp “mpiexec -np x abc.exe”, trong đó, “x” là số

lượng vi xử lý muốn sử dụng, và “abc.exe” là tên tệp đã biên dịch ở trên.

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

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 tố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 tố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

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

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

(102 trang)