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ỡ hoó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ể hoàn thành cụng việc của mỡnh với tài nguyờn sẵn cú mà khụng trỡ hoó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 hoà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 toỏ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 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 . A i j i m j n (2.1) Số cỏc phần tử khỏc khụng của A là: , : ij 0 . nz A i j A 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.
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): 0im0 j naij 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.