Tải bản đầy đủ (.pdf) (40 trang)

Báo cáo btl thuộc học phần tính toán hiệu năng cao đánh giá hiệu năng cao bài toán giải phương trình tuyến tính sử dụng mpi

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.1 MB, 40 trang )

lOMoARcPSD|39269578

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
------🙙🕮🙛-------

BÁO CÁO BTL THUỘC HỌC PHẦN:
Tính tốn hiệu năng cao

Đánh giá hiệu năng cao bài toán giải phương trình tuyến tính sử
dụng MPI

Giảng viên hướng dẫn : Hà Mạnh Đào

Lớp : 20221IT6019002

Khóa: : K15

Nhóm thực hiện : Nhóm 11

Thành Viên: 1. Trịnh Đức Nhân – 2020600842

2. Vũ Quang Trường – 2020601158

3. Nguyễn Tiến Tú – 2020601739

Hà Nội

Downloaded by SAU SAU ()

lOMoARcPSD|39269578



M唃⌀C L唃⌀C

CHƯƠNG I: MỞ ĐẦU 4

1.1. Ý tưởng nghiên cứu 4

1.2. Những kiến thức và kỹ năng cần đạt được 4

1.3.Yêu cầu về đầu ra sản phẩm nghiên cứu 4

1.4. Ý tưởng về hoạt động của sản phẩm 4

CHƯƠNG II : KI쨃ĀN THỨC CƠ SỞ 6

2.1. Giới thiệu về tính tốn song song 6

2.1.1. Tính tốn song song là gì? 6

2.1.2. Tài nguyên 6

2.1.3. Các vấn đề tính tốn 7

2.1.5. Các kiến trúc bộ nhớ 7

2.1.6. Các mơ hình lập trình song song 8

2.2. Tổng quan về lập trình song song với MPI 8

2.2.1. Giới thiệu 8


2.2.2. Một số đặc điểm của MPI 9

2.2.3. Mục tiêu thiết kế của MPI bao gồm: 10

2.2.4. Năng lực tính tốn 12

2.2.5. Mô hình lập trình 14

2.2.6. Lập trình MPI 14

2.2.7. Giao tiếp Point to Point 16

2.2.8. Tham số trong các hàm 17

CHƯƠNG III: GIẢI QUY쨃ĀT BÀI TOÁN 18

3.1. Phát biểu bài toán 18

3.2. Giới thiệu các phương pháp giải phương trình tuyến tính song song 19

3.2.1. Phương pháp Cramerv 19

3.2.2. Phương pháp Gauss 21

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

3.2.3. Phương pháp lặp đơn 24


3.2.4. Phương pháp lặp Jacobi 26

3.2.5. Phương pháp Gauss-Seidel 29

3.3. Giải quyết bài toán bằng thuật tốn tuần tự và song song 33

3.3.1. Tìm hiểu về khái niệm của thuật toán tuần tự và song song 33

3.3.2. Cài đặt chương trình 33

3.3.3.1. Thuật toán tuần tự 33

3.3.3.2. Thuật toán song song 35

CHƯƠNG IV: K쨃ĀT LUẬN 39

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

CHƯƠNG I: MỞ ĐẦU

1.1. Ý tưởng nghiên cứu
Hiện nay, nhu cầu tính tốn trong lĩnh vực khoa học và công nghệ ngày

càng cao và trở thành một thách thức vì phương pháp xử lý tuần tự với một bộ
xử lý không thể đáp ứng được. Vì vậy việc xây dựng các hệ thống máy tính
mạnh là một nhiệm vụ quan trọng trong lĩnh vực tính tốn hiệu năng cao
(High Performance Computing). Các bài tốn phức tạp và địi hỏi sự tính tốn

lớn ln được tìm thấy và khơng ngừng tăng lên nhằm để giải quyết các bài
toán trong lĩnh vực khoa học và cơng nghệ. Nhận thấy được tầm quan trọng
đó, nhóm chúng em đã quyết định chọn đề tài “Đánh giá hiệu năng cao bài
tốn giải phương trình tuyến tính sử dụng MPI” với mong muốn nghiên
cứu, tìm tịi, phát triển một chương trình sử dụng tính tốn song song để giúp
xử lý bài tốn một cách nhanh chóng và dễ dàng hơn.
1.2. Những kiến thức và kỹ năng cần đạt được

➢ Kiến thức cơ bản về môn học tính tốn hiệu năng cao
➢ Kiến thức cơ bản về MPI
➢ Kỹ năng làm việc nhóm.
1.3.Yêu cầu về đầu ra sản phẩm nghiên cứu
➢ Tiết kiệm thời gian, công sức về xử lý bài tốn.
➢ Lưu trữ thơng tin an toàn.
➢ Thuận tiện cho việc sử dụng chương trình để xử lý bài tốn phương

trình tuyến tính
1.4. Ý tưởng về hoạt động của sản phẩm

Sản phẩm được tạo ra bằng phương pháp nghiên cứu, tìm tịi, phát triển
đồng thời cài đặt, chạy một chương trình giải bài tốn phương trình tuyến tính
sử dụng MPI trong tính tốn song song.

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

1.5. Các công cụ được sử dụng để làm sản phẩm
➢ Visual studio


Downloaded by SAU SAU ()

lOMoARcPSD|39269578

CHƯƠNG II : KI쨃ĀN THỨC CƠ SỞ

2.1. Giới thiệu về tính tốn song song
2.1.1. Tính tốn song song là gì?

➢ Thơng thường, phần mềm được viết cho tính toán tuần tự (serial
computation):
● Được chạy trên máy tính đơn với một bộ xử lý trung tâm (CPU).
● Một bài toán (problem) sẽ được chia thành một chuỗi các câu
lệnh rời rạc.
● Các câu lệnh được thực hiện một cách tuần tự.
● Tại mỗi thời điểm chỉ thực hiện được một câu lệnh.

➢ Ý nghĩa đơn giản nhất của tính tốn song song là việc sử dụng đồng
thời nhiều tài nguyên máy tính để giải quyết bài tốn về tính tốn.
● Để chạy trên nhiều CPU
● Một bài toán được chia thành các phần riêng biệt mà có thể được
giải quyết đồng thời.
● Mỗi phần được chia nhỏ hơn dưới một dãy các câu lệnh
● Các câu lệnh của mỗi phần thực thi đồng thời trên các CPU khác
nhau
➔ Tính tốn song song là một hình thức tính tốn trong đó nhiều
phép tính được thực hiện đồng thời, hoạt động trên nguyên tắc là
những vấn đề lớn đều có thể chia thành nhiều phần nhỏ hơn, sau đó
được giải quyết tương tranh ("trong lĩnh vực tính toán").


2.1.2. Tài nguyên
➢ Các nguồn tài nguyên tính tốn có thể bao gồm:
● Một máy tính đơn với nhiều bộ vi xử lý (CPU);

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

● Một máy tính đơn với một hoặc nhiều CPU và một số tài nguyên
chuyên dụng như GPU, FPGA …;

● Một số lượng tùy ý các máy tính được kết nối bởi một mạng máy
tính;

● Hoặc kết hợp của cả hai loại trên.
2.1.3. Các vấn đề tính tốn

➢ Vấn đề tính tốn thường được thể hiện qua các đặc điểm như khả năng:
● Chia thành các phần riêng biệt các cơng việc để có thể giải quyết
cùng một lúc;
● Thực thi nhiều câu lệnh chương trình tại nhiều thời điểm;
● Giải quyết bài tốn trong thời gian ít hơn với nhiều tài nguyên
tính tốn hơn là thực thi chỉ trên một tài ngun tính tốn duy
nhất.

2.1.4. Các giới hạn của tính tốn tuần tự

➢ Các giới hạn để tính tốn tuần tự - Cả hai lý do giới hạn về vật lý và
thực tiễn đặt ra những hạn chế đáng kể để xây dựng được ứng dụng
chạy nhanh hơn trên máy tính tuần tự.


➢ Tốc độ truyền dẫn – Tốc độ của máy tính tuần tự phụ thuộc trực tiếp
vào tốc độ di chuyển của dữ liệu trên phần cứng.

➢ Giới hạn để thu nhỏ - công nghệ bộ vi xử lý ngày càng cho phép tăng
số transistor được đặt trên các con chip. Tuy nhiên, thậm chí ngay cả
các transistor có kích thước là phân tử hoặc mức ngun tử thì số lượng
tích hợp trên thiết bị cũng sẽ đạt tới giới hạn.

➢ Hạn chế về kinh tế - Giá thành sẽ càng đắt khi tạo ra một bộ đơn vi xử
lý (VXL) chạy nhanh. Sẽ kinh tế hơn nếu sử dụng một số lượng bộ vi
xử lý nhanh vừa phải nhưng có thể đạt được hiệu suất như bộ VXL đơn
chạy nhanh (hoặc tốt hơn).

2.1.5. Các kiến trúc bộ nhớ
➢ Bộ nhớ chia sẻ - Shared Memory

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

➢ Bộ nhớ phân tán - Distributed Memory
➢ Lai bộ nhớ chia sẻ và phân tán - Hybrid Distributed Shared Memory
2.1.6. Các mơ hình lập trình song song
➢ Mơ hình chia sẻ bộ nhớ
➢ Mơ hình luồng (Thread)
➢ Mơ hình gửi thơng điệp (MPI)
➢ Mơ hình song song dữ liệu
➢ Các mơ hình khác
2.2. Tổng quan về lập trình song song với MPI

2.2.1. Giới thiệu

Message Passing Interface – MPI là một chuẩn mới được sử dụng rộng
rãi nhất. Nó khơng phải là một ngơn ngữ lập trình mới, thay vào đó nó là một
thư viện của chương trình con mà có thể được gọi từ chương trình C và
Fortran 77.

MPI được phát triển bởi một diễn đàn mở quốc tế, bao gồm các đại
diện từ ngành công nghiệp, các học viện và phịng thí nghiệm của chính phủ.
Nó đã nhanh chóng được chấp nhận rộng rãi bởi được thiết kế cẩn thận cho
phép hiệu suất tối đa trên một loạt các hệ thống, và nó dựa trên truyền thơng
điệp, một trong những mơ hình mạnh mẽ nhất và được sử dụng rộng rãi cho
lập trình các hệ thống song song.Những nỗ lực cho MPI bắt đầu vào mùa hè
năm 1991, khi một nhóm nhỏ các nhà nghiên cứu bắt đầu thảo luận tại một
nơi hẻo lánh trên núi ở Úc.Nội dung đó lại được thảo luận tại hội thảo “tiêu
chuẩn cho truyền thông điệp trong một môi trường bộ nhớ phân tán”
(Standards for Message Passing in a Distributed Memory environment) tổ
chức vào ngày 29 – 30 tháng 4 năm 1992 tại Williamsburg, Virginia. Tại hội
thảo này, các tính năng cơ bản cần thiết cho một MPI chuẩn đã được thảo
luận, mà một nhóm cộng tác đã được thành lập để tiếp tục q trình tiêu
chuẩn hố. Jack Dongarra, Rolf Hempel Hempel, Tony Hey và David
W.Walker đưa ra một bản dự thảo sơ bộ được biết đến như MPI-1 trong tháng

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

11 năm 1992. Trong tháng 11 năm 1992, một cuộc họp của nhóm cộng tác
MPI đã được tổ chức tại Minneapolis, mà tại đó hội thảo quyết định đặt các
q trình tiêu chuẩn hố trên một cơ sở chính thức hơn. Nhóm cộng tác MPI

đã gặp nhau 6 tuần một lần trong suốt 9 tháng đầu của năm 1993. Bản dự thảo
chuẩn MPI đã được trình bày tại hội nghị Siêu máy tính năm 93 trong tháng
11 năm 1993.

Sau một thời gian nhận những ý kiến đóng góp từ cộng đồng, một số
kết quả được thay đổi trong MPI, phiên bản 1.0 của MPI được phát hành vào
tháng 6 năm 1994. Thông qua những cuộc gặp gỡ và thư điện tử, các nhà
nghiên cứu đã thảo luận với nhau thành lập diễn đàn MPI, trong đó tất cả các
thành viên của cộng đồng điện toán hiệu suất cao đều có thể đăng ký làm
thành viên của diễn đàn.

MPI đã thu hút sự tham gia khoảng 80 người từ 40 tổ chức, chủ yếu là
ở Mỹ và Châu Âu. Hầu hết các nhà cung cấp chính của máy tính đều được
tham gia vào MPI cùng với các nhà nghiên cứu từ các trường đại học, phịng
thí nghiệm của chính phủ và ngành cơng nghiệp.
2.2.2. Một số đặc điểm của MPI

MPI là một giao thức truyền thông độc lập với ngơn ngữ dùng để lập
trình máy tính song song. MPI hỗ trợ cả giao tiếp điểm – điểm và giao tiếp tập
thể. Mục tiêu của MPI là hiệu suất, khả năng mở rộng và khả năng di dộng
cao.MPI thường xuyên chạy trên các máy tính chia sẻ bộ nhớ.Mặc dù MPI
thuộc về lớp thứ 5 và lớp cao hơn của mơ hình OSI, nhưng những triển khai
có thể bao gồm hầu hết các lớp, với socket và TCP (Transmission Control
Protocol) được dùng trong tần vận chuyển.Hầu hết các triển khai MPI bao
gồm một thiết lập định tuyến riêng có thể được gọi trực tiếp từ C, C++,
Fortran hay bất kỳ ngơn ngữ nào có giao diện với các thư viện, bao gồm C#,
Java hoặc Python. Những ưu điểm ucar MPI vượt qua những thư viện truyền
thông điệp cũ là tính di động (MPI có thể được triển khai cho hầu hết các kiến
trúc bộ nhớ phân tán) và tốc độ (MPI thực hiện nguyên tắc tối ưu hoá cho


Downloaded by SAU SAU ()

lOMoARcPSD|39269578

phần cứ mà nó chạy).
MPI sử dụng LIS (Language Independent Specifications) để gọi và

ràng buộc ngôn ngữ. Phiên bản đầu tiên được phát hành chỉ định ràng buộc
ANSI C và Fortran 77 cùng với LIS. Năm 2008, chuẩn MPI-1.3 chứa khoảng
128 chức năng, đây cũng là phát hành cuối cùng của seri MPI-1 trong năm
2008.

Phiên bản MPI-2.2 bao gồm những tính năng nới như là I/O song song,
quản lý tiến trình động và điều hành bộ nhớ từ xa. LIS của MPI-2 thiết lập
hơn 500 hàm và cung cấp ràng buộc ngôn ngữ cho ANSI C, ANSI C++ và
ANSI Fortran (Fortran 90). Khả năng tương tác đối tượng cũng được thêm
vào để cho phép lập trình truyền thơng điệp bằng ngơn ngữ hỗn hợp dễ dàng
hơn.

MPI cung cấp mơ hình liên kết ảo, đồng bộ hoá và chức năng liên lạc
giữa một tập hợp các tiến trình (đã được ánh xạ tới các nút/máy chủ/máy tính
cụ thể) trong một ngơn ngữ độc lập, với cú pháp ngôn ngữ đặc trưng (ràng
buộc), cùng với một vài tính năng ngơn ngữ đặc trưng. Những chương trình
MPI ln ln làm việc với các tiến trình, nhưng những lập trình viên thường
xem các tiến trình như là những bộ vi xử lý. Thông thường, để đạt hiệu suất
tối đa, mỗi CPU (hoặc 1 nhân trong một máy tính đa nhân) sẽ được giao chỉ
một tiến trình duy nhất.Những chức năng thư viện MPI bao gồm (không giới
hạn) những hoạt động nhận/gửi loại điểm – điểm, lựa chọn giữa mô hình xử
lý logic Cartesian hoặc mơ hình xử lý logic đồ thị tương đồng, trao đổi dữ
liệu giữa những cặp tiến trình, kết hợp các kết quả từng phần của tính tốn

(thu thập và giảm các hoạt động), đồng bộ hố các nút cũng như thu thập
thơng tin liên quan đến mạng như số lượng của tiến trình trong phiên tính
tốn, nhận dạng bộ vi xử lý hiện tại mà bộ vi xử lý được ánh xạ, những tiến
trình lân cận truy cập trong một mơ hình liên kết logic.
2.2.3. Mục tiêu thiết kế của MPI bao gồm:

➢ Thiết kế một giao diện lập trình ứng dụng. Mặc dù MPI gần đây được

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

sử dụng như một chương trình dịch và một thư viện ở thời gian chạy,
nhưng thiết kế của MPI chủ yếu phản ánh nhu cầu nhận thức của những
người lập trình ứng dụng.
➢ Cho phép truyền thông một cách hiệu quả: tránh việc sao chép dữ liệu
từ bộ nhớ sang bộ nhớ và cho phép gối chồng (overlap) giữa các tính
tốn và truyền thơng và offload để truyền thơng đồng xử lý khi có thể.
➢ Cho phép thực thi trên một môi trường không đồng nhất.
➢ Có thể được gắn kết dễ dàng vào trong các chương trình ngơn ngữ C và
Fortran. Cung cấp một giao thức truyền thông tin cậy: người dùng
không cần phải lo lắng tới thất bại trong truyền thông. Các thất bại này
được xử lý bởi các hệ thống truyền thông cơ sở phía sau.
➢ Định nghĩa một giao thức khơng q khác biệt so với các môi trường
song song hiện tại như PVM (Parallel Virtual Machine), NX, Express...
và cung cấp các mở rộng cho phép độ linh hoạt cao hơn.
➢ Định nghĩa một giao thức có thể được thực thi trên các môi trường
(flatform) của nhiều nhà cung cấp mà không cần thay đổi nào đáng kể
trong truyền thông cơ sở và phần mềm hệ thống.
➢ Ngữ nghĩa của giao thức là độc lập với ngôn ngữ.

➢ Giao thức được thiết kế cho phép sử dụng luồng một cách an tồn.
* Các tính năng chủ yếu của MPI .
➢ Một lượng lớn các hàm truyền thông điểm – điểm (phong phú hơn rất
nhiều so với các mơi trường lập trình song song khác).
➢ Một lượng lớn các thủ tục truyền thông chọn lọc, được sử dụng để giao
tiếp giữa một nhóm các bộ xử lý trong hệ thống.
➢ Một ngữ cảnh truyền thông hỗ trợ cho việc thiết kế các thư viện phần
mềm song song.
➢ Có khả năng xác định các topology truyền thơng.
➢ Có khả năng định nghĩa các kiểu dữ liệu mới để mô tả các thông báo
dựa trên các dữ liệu không liên tục.

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

* Các tiến trình

➢ Một chương trình MPI bao gồm các bộ xử lý độc lập, thực thi các mã

lệnh riêng của chúng trong một mơ hình MIMD (Multiple

Instruction Multiple Data). Các tập lệnh được thực thi bởi các bộ xử

lý không nhất thiết phải giống nhau, việc truyền thông giữa các bộ xử

lý được thực hiện thông qua việc gọi các hàm truyền thông của

MPI.


➢ MPI không định rõ kiểu thực thi cho mỗi bộ xử lý. Bộ xử lý A có thể

chạy tuần tự, hoặc có thể thực thi ở dạng đa luồng với các luồng

được kích hoạt đồng thời.

➢ Điều này thực hiện được do tính chất luồng an tồn (thread-safe) của

MPI bằng cách tránh sử dụng các trạng thái tuyệt đối.

* Ứng dụng MPI

Một ứng dụng MPI có thể được thực thi như là một tập các nhiệm vụ

truyền thông đồng thời. Một chương trình bao gồm các đoạn mã của người

lập trình được liên kết với các hàm thư viện được cung cấp bởi phần mềm

MPI. Mỗi nhiệm vụ được chỉ định một thứ hạng (rank) duy nhất trong khoảng

1-> n-1 với các ứng dụng có n nhiệm vụ. Các hạng này được sử dụng để xác

định các nhiệm vụ MPI khác nhau trong việc gửi và nhận tin cũng như thực

hiện các thao tác truyền thơng nói chung. Nhiệm vụ MPI có thể chạy trên

cùng bộ xử lý hoặc các bộ xử lý khác nhau một cách đồng thời. Lợi ích của

các rank là làm cho thao tác phối hợp độc lập với vị trí vật lý của các thành


phần.

2.2.4. Năng lực tính tốn

Việc song song hóa một chương trình nhằm làm cho chương trình đó

chạy nhanh hơn, tuy nhiên chương trình đó sẽ chạy nhanh hơn bao

nhiêu lần? Định luật Amdahl’s [3] cho phép ta xác định điều này. Giả sử xét

về khía cạnh thời gian chạy chương trình, một phần p của chương trình

có thể song song hóa và phần 1-p còn lại buộc phải chạy tuần tự. Trong

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

trường hợp lý tưởng, nếu thực thi chương trình sử dụng n bộ xử lý, thời gian
chạy chương trình sẽ là 1-p + p/n của thời gian chạy chương trình một cách
tuần tự. Đây là hệ quả trực tiếp của định luật Amdahl áp dụng cho trường
hợp thực thi lý tưởng.

Ví dụ: nếu 80% chương trình có thể được song song hóa, và ta có 4 bộ
xử lý, thời gian chạy song song sẽ là: 1 - 0.8 + 0.8/4 = 0.4 tức là bằng 40%
thời gian chạy tuần tự.

Hình 2.1: khả năng tăng tốc độ tính tốn, trường hợp lý tưởng
Đối với chương trình trên, thời gian chạy song song sẽ không thể nào
nhỏ hơn 20% thời gian chạy tuần tự cho dù ta sử dụng số lượng vô

cùng lớn các bộ xử lý.
Trên thực tế, khi chạy một chương trình song song, thường xuất hiện
các chi phí truyền thơng và việc phân cơng cơng việc không cân bằng
giữa các bộ xử lý. Do đó thời gian chạy chương trình sẽ là:

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

Hinh 2.2: Khả năng tăng tốc độ tính tốn, trường hợp thực tế.
Do vậy để tăng tốc độ của chương trình ta cần:

● Tăng tỉ lệ (thành phần) được song song hóa của chương trình.
● Phân công công việc một cách công bằng cho các bộ xử lý.
● Giảm tới mức tối thiểu thời gian truyền thơng.
2.2.5. Mơ hình lập trình
MPI ra đời mục đích dành cho các hệ thống máy tính có bộ nhớ phân
tán. Tuy nhiên MPI cũng có thể triển khai được trên hệ thống máy tính có bộ
nhớ chia sẻ.

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

2.2.6. Lập trình MPI
➢ Header file:
● Yêu cầu cho mọi chương trình được lập trình bởi MPI
● Định dạng các hàm trong MPI
#include “mpi.h”
rc = MPI_Xxxxx(parameter)

➢ Cấu trúc của chương trình MPI :

➢ Rank:
● Với mỗi Communicator, mỗi processes có một ID nhất định.
● Rank được bắt đầu từ 0
● Sử dụng rank trong các message để chỉ ra nguồn (source) và đích
(destination)

➢ Các hàm quản lý môi trường
● MPI_Comm_size : Xác định số lượng process trong nhóm ứng
với một Communicator (thường là MPI_COMM_WORLD)
int MPI_Comm_size(MPI_Comm comm,int *size )
● MPI_Comm_rank : Trả về id của Communicator hiện tại
int MPI_Comm_rank (comm,&rank)

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

● MPI_Abort : Hủy bỏ tất cả các MPI processes gắn với một
Communicator
int MPI_Abort(MPI_Comm comm,int errorcode)

● MPI_Finalize : Kết thúc môi trường thực thi MPI
int MPI_Finalize()

➢ Ví dụ:
#include "mpi.h"
#include
int main(int argc, char *argv[]) {

int numtasks, rank, rc;
rc = MPI_Init(&argc,&argv);
if (rc != MPI_SUCCESS) {
printf ("Error starting MPI program.
Terminating.\n");
MPI_Abort(MPI_COMM_WORLD, rc);
}
MPI_Comm_size(MPI_COMM_WORLD, &numtasks);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
printf ("Number of tasks= %d My rank= %d\n",
numtasks,rank);
/******* do some work *******/
MPI_Finalize();
}

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

2.2.7. Giao tiếp Point to Point
➢ MPI Point to Point là giao tiếp giữa hai và chỉ hai processes với nhau.
➢ Khi một Process thực hiện giao thức truyền tin (send) thì nhiệm vụ
khác phải có giao thức nhận tin (receive) tương ứng
➢ Các hàm trong Point-to-Point

2.2.8. Tham số trong các hàm

Downloaded by SAU SAU ()

lOMoARcPSD|39269578


CHƯƠNG III: GIẢI QUY쨃ĀT BÀI TỐN

3.1. Phát biểu bài tốn
Hệ phương trình tuyến tính là tập hợp của hai hoặc nhiều phương

trình tuyến tính có cùng biến số giống nhau. Phương trình tuyến tính có thể có
một biến, hai biến hoặc ba biến. Dưới đây là dạng tổng quát của hệ với m
phương trình và n ẩn

Dạng tổng qt hệ phương trình tuyến tính:

Trong đó:
● xi: được gọi là các ẩn của hệ
● aij: được gọi là các hệ của ẩn
● bi: được gọi là các hệ số tự do
Ký hiệu: Như chúng ta đã biết, hệ phương trình tuyến tính có thể viết
dưới dạng ma trận. Do đó, hệ phương trình tuyến tính n biến có thể được viết
dưới dạng:

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

3.2. Giới thiệu các phương pháp giải phương trình tuyến tính song song
3.2.1. Phương pháp Cramerv
Nội dung của phương pháp này cũng chính là định lý sau:

➢ Định lý: Cho hệ Cramer
trong đó

là ma trận các hệ số. Khi đó,

Downloaded by SAU SAU ()

lOMoARcPSD|39269578

➢ Nếu thì hệ phương trình có nghiệm duy nhất xác định bởi công

thức sau: , trong đó chính là ma trận thu được ma trận A

bằng cách thay cột i bởi cột hệ số tự do

● Nếu detA = 0 và tồn tại sao cho thì hệ
phương trình vô nghiệm

● Nếu detA = 0 và thì hệ phương trình khơng có

nghiệm duy nhất (nghĩa là vô nghiệm hoặc vô số nghiệm). Nếu

xảy ra trường hợp này thì ta sẽ dùng phương pháp Gauss (được

nêu trong phần tiếp theo) để giải hệ phương trình này.

➢ Hệ quả: Hệ phương trình tuyến tính thuần nhất n phương trình n ẩn có

nghiệm khơng tầm thường khi và chỉ khi định thức của ma trận các hệ

số bằng 0.

➢ Nhận xét: Phương pháp này dùng để giải hệ phương trình có số


phương trình bằng số ẩn.

Các ví dụ:

Ví dụ 1: Giải hệ phương trình sau: với a, b, c là
các số khác 0.

Giải:

Ta có nên đây là hệ Cramer. Hơn nữa

Downloaded by SAU SAU ()


×