Các hệ thống nảy thường bao gồm nhiều bộ vi xử lý CPU kết nổi với nhau theo một câu hình nhật định, sử dụng các công cụ phản mềm quản lý giao tiếp phủ hợp, Mặc dù các nguyên lý cơ bản
Trang 1
TRƯỜNG ĐẠI HỌC BÁCTI KHOA IIÀ NỘI
PHỦNG TI] HIOÀNG
GIAI SONG SONG CAC BAI TOÁN CÓ MÔ IÌNI TOÁN HỌC
LÀ CÁC IIE PHƯƠNG TRINII BAO IIAM RIENG
BẰNG PHƯƠNG PHÁP SÓ
Chuyên ngành: CÔNG NGHỆ THÔNG TIN
LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGIIE THONG TIN
NGƯỜI HƯỚNG DẪN
Ts VU VAN THIEU
Ha ndi - 2015
Trang 2
luận văn thạc sĩ nảy do tôi nghiên cửu và thực hiện dưới sự hướng dẫn
của thầy giáo 7 Vỡ văn Thiệu Đề hoàn thành luận văn này, ngoài các tài liệu tham khảo đã liệt kê, tôi cam đoan không sao chép toàn văn các công trình hoặc thiết kế tốt nghiệp của người khác
Tác giả luận văn
Phùng Thị Hoàng
Trang 3DANH MỤC CÁC THUẬT NGŨ VIÊT T
Chương 2: Cơ sở lý thuy
2.1 Phương pháp số giải hệ phương trình PDEs
2.2 Mô hình lập trình song sơng SPMD
2.3.2 Các khái niệm cơ bản của MPI 8
3.1.Giới thiệu bài toán Heat Iiqualiows ìàccecoeeccvee seen 2E
3.2 Phương pháp số giải bài toán Heat Equations - - 3
4.2.1 Phương pháp rời rac hóa theo không gian 23 3.32 Phương pháp tích hợp theo thời gian - - 25
3.3.1 Cài đặt hàm rời rạc theo không gian - 26
3.3.2 Cải đặt hàm tích hợp theo thời gian - 29
Chương 4: Phân tích sự phụ thuộc dữ liệu, thiết kể giải thưậttruyền thông và cài
đặt chương trình song song
4.1 Phân tích sự phụ thuộc đữ liệu
Chương 5: Chạy thứ nghiệm chương trình và đánh giá kết quả
5,1 Hệ thông tính toán sơng Song cu oeiniereririrresirsesseoee4L
Trang 4
TAI LIEU THAM KHAO
PHU LUC
Trang 5
Parlial Differential Equations
Central Processing Unit Random Access Memory
Single Program Multiple Data Message Passing Tnterface
Trang 61 |Hình2l | Mêhinhlập trinhseng song SPMD 6
5 | Hinh3.3 Chia miễn tính toán thánh một lưới điển 24
9 |Hinh42 Gti dif ligu dau vao tir Root dén các CPU 33
13 | Hinh 4.4 Giũi kết quả tỉnh toán về Root 39
Trang 7Các kiểu dữ liệu MPI
Cáo hẳn tính toán của MPT Các hàm phỏ biển của MPI Thông số cơ bản của máy lính trạm T7610 Thời gian chạy chương trình Ở và MPI (ms) Thời gián chạy chương trình MPI với NP kháo nhau
Trang 8pháp số trên nên tảng siêu máy tính, cluster, hoặc grid.Bải toán cụ thể được trình bay
là bãi toàn phương trình truyền riưệi
Tauận văn được hoàn thành đưới sự hưởng dẫn của thầy giáo T8 Vø Văn Thiệu lim xin được bảy tố lòng cám ơn chân thành nhảt tới Thấy đã nhiệt tỉnh giúp đổ và
Trang 9trong ngành khoa học vật liệu, vật ly
Có rất nhiều bài toán trong thực tế có mô hình toán học là các hệ phương trình dao ham riêng có khối lượng tỉnh toán rất lớn vả/hoặc yêu cầu được xử lý trong một
khoảng thời gian nhất định Ví dụ như các bai toan dự bảo thời tiết, dự bảo báo, dự báo
lũ lụt sóng thân; bải toán mô phỏng các hệ sinh thai biển; bải toán mô hình phát triển vỉ
sinh vat; bai toán mô phỏng khi động lực học Thông thường các bài toán có khối lượng tỉnh toán lớn trên được xử lỷ song song trên các (hệ thông) mảy tính có khả năng,
tỉnh toán cao như các siêu máy tính, cluster, grid Các hệ thống nảy thường bao gồm
nhiều bộ vi xử lý (CPU) kết nổi với nhau theo một câu hình nhật định, sử dụng các
công cụ (phản mềm) quản lý giao tiếp phủ hợp,
Mặc dù các nguyên lý cơ bản của tính toán song song rất rõ ràng, nhưng việc xây dựng các chương trình xử lý song song thường phức tạp vả tôn nhiều thời gian, đặc
biệt là các chương trình song song giải các bải toán phức tạp
Rất khó có thể tìm được nghiệm chỉnh xác của các hệ phương trình dao ham
riêng PDEs.Thông thường người ta sẽ dủng phương pháp s6 (Numerical Method) dé
giải các hệ phương trình PDEs.Theo cách này, miễn tính toán của bài toán (Domain) được chia thành một lưới điểm Các hàm, đạo hàm, ., được tính toán một cách rời rac tại từng điểm lưới Đề tỉnh đạo ham ta cỏ thể đủng một số phương pháp như sai phân thuận, sai phần ngược, sai phân trung tâm Các phương pháp nảy yêu cầu thông tin
Hoe viên: Phùng Thị Hoàng 1 Luận vẫn thạc sĩ
Trang 10(dữ liệu) bỏ sung từ các điểm lưới xung quanh đề tính toán đạo hàm tại một điểm lưới
Người ta gọi vẫn đẻ này là sự phụ thuộc dữ liêu trong tinh toan
Trongmột chương trình tuân tự thực hiện trên một CPU, tất cả dữ liệu được lưu trong củng một bộ nhở nên chúng ta không cần quan tâm đến vân đẻ phụ thuộc dữ liệu
Trên hệ thống máy tính song song cỏ bộ nhở phân tản, mỗi CPU cỏ một bộ nhở
riêng.CPU này không thể truy cập dữ liệu trên bộ nhớ của CPU khác
Trong mét chuong trinh song song SPMD (Single Program Multiple Data) hay con goi là mô hình lập trình song song Domain decomposition (Phân chia mien tinh
toán), miền tỉnh toán của bài toán (đomain) được chia thành các miền con (subdomain)
Môi miễn con được gán cho một CPU Do các CPU không thẻ truy cập bộ nhớ của nhau, nên nêu có sự phụ thuộc dữ liêu trong tỉnh toán thì cân phải truyền thông giữa các CPU Cụ thể hơn, nếu việc tỉnh toán trên CPU A cần dữ liệu lưu trữ trong bộ nhớ riêng của CPU B, CPU B sẽ gửi và CPU A sẽ nhận dữ liệu này Tiển trình đỏ gọi là truyền thông
Việc cải đặt một chương trình song song cỏ sự phụ thuộc dữ liệu rất phức tạp,
bởi vi, trước hết chủng ta phải xác định được đữ liệu phụ thuộc (hay dữ liệu cân truyền
thông), lưu dữ liêu cần truyền thông vào các biên, sau đó thiết kẻ một giải thuật truyền
thông phủ hợp, cuối cùng sử dụng dữ liệu thu được một cách chính xác
Chính vì vậy, trong luận văn này tôi sẽ nghiên cứu và trình bảy thuật toán song song giải bài toán có mô hình toán học là phương trình đạo hàm riêng bằng phương pháp số trên nên tảng siêu máy tỉnh, cluster, hoặc grid.Trước tiên tôi tìm hiểu các phương pháp số giải hệ phương trình đạo hảm riêng, sau đỏ sẽ đi sâu nghiên cửu và đưa ra giải pháp đề xây dưng các chương trình tính toản song song cho bai toan trên Cuối cùng tôi sẽ áp dụng xây dựng chương trình song song cho một bài toán cụ thể
như bài toán phương trình truyền nhiệt Các chương trình song song nảy sẽ được chạy
thử nghiệm trên máy tỉnh trạm cỏ nhiều CPU,
Hoe viên: Phùng Thị Hoàng 3 Luận vẫn thạc sĩ
Trang 11Luận văn bao gồm các chương chỉnh sau:
Chương 2:Tìm hiểu cơ sở lý thuyết về các phương pháp số giải hệ phương trinh PDEs,tìm hiểu mô hình tính toán song song SPMD và thư viện lập trình song
Chương 5: Chạy thử nghiệm chương trình,phân tích kết quả, đánh giá hiệu quả
của chương trình song song
Trang 12Chương 2: Cơ sở lý thuyết
2.1 Phương pháp số giải hệ phương trình PDEs
Nói chung, rat khỏ tìm được nghiệm chính xác của các hệ phương trình đạo
hàm riêng PDEs Vi vay, thông thưởng người ta sử dụng phương pháp s6(Numerical
Method) đẻ giải các hệ phương trình PDEs
Ngày nay có nhiều phương pháp số đề giải các hệ PDEs, ví dụ như phương
phápDST(Direct Space-Time) hay phương pháp MOL (Method Of Line) Theo phương, pháp MOL, hai bước rời rạc theo không gian và tích hợp theo thời gian được thực hiện
riêng, trong khi đối với phương pháp DST, hai bước này được thực hiện đồng thời
Phương pháp MOL có ưu điểm là đơn giản và linh hoạt hơn so với phương phap DST,
do đó trong luận văn nảy tôi sẽ chọn MOL là phương pháp số giải các hệ PDEs
Phương pháp MOL giải các hệ PDEs bao gồm hai bước:
1) Rời rạc hóa theo không gian (Spatial discretization)
2) Tích hợp theo thời gian (Time integration)
Có nhiêu cách đề rời rạc hỏa hệ phương trình PDEs trong không gian, ví dụ,
phương pháp phần tử hữu han (FEM: Finite Element Method), phuong pháp sai phân
hữu hạn (FDM: Einite Difference Method), va phương pháp thẻ tích hữu hạn (FVM:
Finite Volume Method) Trong luan van nay tdi sé sir dung phương pháp sai phân hữu
Trang 13nảy,Cỏ nhiều phương pháp số đề tỉnh đạo hảm trong không gian, trong luận văn nảy tôi
sẽ sử dụng các phương pháp như sai phân thuận hoặc sai phân trung tâm
Sau khi rời rạc hóa hệ phương trình PDEs trong không gian, ta sẽ thu được một
hệ phương trình vi phân thường (ODEs: Ordinary Differential Equations) cỏ dạng như
ø là các biển của hệ phương trinh PDEs,
E là hàm thu được từ bước rời rạc hỏa theo không gian,
t la biến thời gian
Có nhiều phương pháp đề giải hệ phương trình vi phân thường ODES, trong luận
văn nảy chủng tôi sẽ sử dụng phương pháp Euler thuan (Forward Euler),
Phương pháp Euler thuận giải phương trình vi phân thường ODEs cỏ công thức như sau:
Opp = Oy + At F(@y,t) Trong đó
nla bước tính toản thứ n,
ht la d6 dai bude thoi gian
Công thức Euler thuận cỏ thê được tính toán lặp như sau:
Trang 14@y = Oya + ht F(@y-atn-a)
Trong d6 @,, ty 1a các giá trị khởi tạo ban đầu
2.2 Mô hình lập trình song song SPMD
Hiên có rất nhiều mô hình lập trình song song.Tuy nhiên, mô hình lập trinh
song song SPMD (Single Program Multiple Data) là phỏ biến nhất vì nó phủ hợp với
các hệ thống tỉnh toản cỏ bộ nhớ phân tán và các bài toán cỏ dữ liệu phân tán Do đỏ,
trong luận văn này tôi sẽ chọn SPMD làm mô hình tỉnh toán song song
Trong mô hình SPMD, miền tính toán của bài toán (Domain) được chia thành các miễn con (Subdomain), các miễn con được tỉnh toán bởi củng một chương trình
trên các bộ xử lý (Process) khác nhau Mô hình lập trình song song SPMD được mô tả
& & &
Trang 15Một chương trình song song sử dụng mỏ hình SPMD bao gồm các bước chỉnh
sau:
© Phan chia mien tinh toan (Domain decomposition)
e Phan tan dit ligu dau vao (Data distribution)
«_ Truyền thông dữ liêu (Communication)
© Tinh toan (Computation)
© Tap hop dữ liêu dau ra (Result collection) 2.3 Thư viện MPI
MPI là viết tắt của các chữ Message Passing Interface MPI lả bộ thư viện hỗ trợ việc lập trình song song với các ngôn ngữ như C, Fortran Tập MPI thi hảnh bao gồm một thư viện các thủ tục sao cho có thể goi được từ các chương trinh Fortran, C, C++ hay Ada Lợi thể của MPI so với các thư viện cũ là nỏ vừa thuận tiện
(vi MPI thực thi cho hầu hết các kiến trúc bộ nhớ phân tán) vừa nhanh (vì mỗi thủ tục
được tôi ưu hỏa cho phân cứng mà nó đang chạy)
2.3.1 MPI tiêu chuẩn
MPI tiêu chuân hồ trợ cho nhiều ngôn ngữ lập trình nhu C, C++, Fortran, chay
trên nhiều nên tảng phân cứng khác nhau Điều nảy đem lại nhiều lời ich, bao gồm:
~ Giảm thời gian viết chương trình,
- Cho phép phát triểnmột ứng dụng (ví dụ, chạy trên một mạng lưới các máy
trạm lảm việc) cỏ thẻ chạy hiệu quả trên nhiều hệ thông khác nhau (vi dụ như chạy trên các hệ thông song song chuyên biệt)
Hoe viên: Phùng Thị Hoàng 7 Luận vẫn thạc sĩ
Trang 16Mục tiêu chỉnh của các đặc điểm nảy của MPI lả đề cho phép người dùng không
cân phải băn khoăn vẻ hiệu quả, tỉnh năng linh hoạt, và chức năng của chương trình
Điều nảy có nghĩa rằng người ta có thể viết các chương trình chạy linh hoạt trên nhiều
hé thong ma van cỏ thẻ tận dụng lợi thế của các phân cửng chuyên dụng va phan mem
được cung cấp bởi các nhà cung cấp cả nhân Đông thời, các tỉnh năng tiên tiến, chẳng,
han như tập rộng lớn của các hoạt động tập thẻ, có thể được dự kiến trong mỗi MPI và
có thể được sử dụng trong tắt cả các chương trình ứng dụng song song nơi mả họ cỏ
thể có ích
MPI không phải là một cuộc cách mạng mới của máy tính lập trình song song, đúng hơn, nó là một nỗ lực đề thu thập các tính năng tốt nhất của nhiều hệ thông đi qua
hiện có, cải thiện chủng ở nơi thích hợp, vả chuẩn hóa chúng
2.3.2 Các khái niệm cơ ban cia MPT
Các khái niệm cơ bản của các MPltiêu chuẩn là tiền trình vả các truyền thông
Trong khi truyền thông kiểu điểm — diém (point-to point) va kieu tap hop (Collective)
là trung tâm của MPI, nhỏm tiến trình gỏi đữ liệu,các kiểu dữ liệu, vả topo ảo là những
khái niệm quan trọng khác của MPItiêu chuẩn
2.3.2.1 Gói đữ liệu và các tiên trình
Một tiền trình MPI là một thực thể tham gia vảo thực hiện một số nhiệm vụ tính
toán Trong mô hình lập trình cơ bản MPI, mỗi tiễn trình được liên kết với một bộ nhớ duy nhất, được gọi là bộ nhớ cục bộ của nó, mà nó chỉ có thẻ truy cập vả cập nhật trực tiếp Một gói dữ liệubao gồm một phân nội dung théng tin, cling với một số dữ liệu bỏ
gói tin chỉ rõ để người nhận tiền trình có thể
sung được gọi là một nhãn Nhãn của n
đọc nội đung thông tin của các tin nhắn vào bộ nhớ địa phương của mình Nhãn chứa thêm thông tin cỏ thể được sử dụng bởi các tiên trình nhận đề quyết định hay không vả
Hoe viên: Phùng Thị Hoàng § Luận vẫn thạc sĩ
Trang 17khi mở các tin nhắn cũng như làm thẻ nào đề truy cập dữ liệu trong một tim nhắn nó đã
nhiệm vụ để thực hiện; đó lả, một nhóm tiên trình MPI thường củng thực hiện một
nhiệm vụ chung Một tiền trình cỏ thẻ thuộc về bắt kỳ số lượng nào của các nhỏm
Nhỏm MPI được cho là tĩnh bởi vì tất cả họ đều xuất phát từ các nhom ban dau và không có tiễn trình mới cỏ thể được tạo ra trong tiên trình thực hiện chương trình
Ngoài hạn chế nảy, MPI cung cấp một loạt các thiết bị quản lý nhóm tiền trình
2.3.2.1.2Phương thức truyền thông
Một tiền trình MPI đơn có thể lựa chọn có hoặc không cỏ thông báo, tủy thuộc vào nhãn của thông bảo đó Nhận được tin nhắn làm thay đổi bộ nhở cục bộ của tiên trình vả là một hoạt động không thê đảo ngược Một lỗi phố biền trong lập trình MPI là một tiên trình đề nhận được một tin nhắn gửi bởi tiền trình sai hoặc một tin nhắn gửi bởi đúng tiền trình nhưng dự định cho một giai đoạn khác của tính toản Vẫn đẻ nảy đặc biệt liên quan khi các nhiệm vụ được giao một tiền trình liên quan đến các cuộc gọi đến một thủ tục thư viện parallels Vẫn đề ở đây là giao tiếp trực tiếp khởi xướng bởi người sử dụng và thông tin liên lạc được tiên hảnh trong các cuộc gọi đên một produre thư viện thuộc các ngữ cảnh khác nhau, hoặc các vũ tru Tin nhắn qua giao diện hỗ trợ
Hoe viên: Phùng Thị Hoàng 9 Luận vẫn thạc sĩ
Trang 18cảnh báo làm cho nó có thể cho người sử dụng và các thông điệp thư viên đề đi du lịch củng một lúc mả không can bat kỳ nguy cơ của họ là lần lộn
2.3.2.1.3 Topo do
Các bảng xép hang mặc định các tiến trình trong một nhóm không phải là luôn
luôn tự nhiên nhất đề viết các ứng dung phản mềm Ví dụ, các ửng dụng có thê mô hình
số hiện tượng trong không gian ba chiều Vào những lúc khác, thuật toán hiệu quả
mộ
hơn có thể được sử dụng nêu các tiên trình được biết đề tạo thành một lưới hai chiêu
Trong tất cả những trường hợp nảy nó là tự nhiên đề nghĩ vẻ các tiên trình như được lập chỉ mục theo một số hệ tọa độ Đề-Các Như một hệ thống phối hợp có thể hoặc có thể không phản ánh ket nổi vật lý thực tẻ giữa các bộ xử lý chay các tiền trình trong nhóm.Tọa độ Đè-Các phổi hợp hệ thông được gọi là topo Đẻ-Các và có thẻ có kích thướcbất kỳ.MPI cũng cung cấp topo dé thi cho phép người sử dụng xác định rõ rảng mỗi quan hệ láng giêng giữa các tiền trình Tiền trình mà cac lang gieng gan nhật theo một tiên trình câu trúc liên kết không cần phải chạy trên vi xử lý mả kết nồi vat ly; Do
đỏ câu trúc liên kết Đẻ-Các vả đồ thị được gọi lả topo ão
2.3.2.1.4 Comminicator
Comminicatortrong MPT gắn với các khái niệm của nhóm tiền trình, bồi cảnh
giao tiếp, vả topology ảo Một giao tiếp luôn gắn liên với một nhóm tiền trình, một bồi cảnh giao tiếp và một topology ảo.Nhóm và Comminicatorlả các đối tượng đục, họ chỉ
có thể được thông qua như là đối số cho ham MPI va có thẻ xuất hiện trong, các biểu thức Boolean Tất cả thông tin liên lạc trong MPI liên quan đền it nhất một người giao
tiếp Tắt cả các tiên trình liên quan đến một thông tin phải cung cấp các comminicator giống như một đối só trong các MPI cuộc gọi thủ tục tương ứng
3.3.2.2Kiêu dữ liệu MPI
Hoc viên: Phùng Thị Hoàng 10 Luận văn thạc sĩ
Trang 19Hệ thống kiểu dữ liệu trong ngôn ngữ lập trình, như C và Fortran, cho trinh
biên dịch như thế nào đề giải thích đữ liệu và có thể như thế nào dữ liệu sẽ được đặt ra
trong bộ nhớ chính Đó là thông tin rất quan trọng để MPI định nghĩa một kiểu hệ thống tin nhắn trên đầu trang của các hệ thống kiểu dữ liệu của C và các ngôn ngữ
Fortran, Cac kiểu dữ liệu MPI đơn giản chủ yêu là sự kết hợp của các kiểu dữ liệu
nguyên bản của C và Fortrancông với một tiên tô MPI ở trước
MPI cung cap thi tue MPI đề xác định kiêu dữ liệu MPI có nguồn gốc Một MEI loại dữ liệu thu được quy định cụ thể các định dạng của một chuỗi các giả trị và
bao gồm: số lượng các thành phân trong chuỗi, các kiêu dữ liệu MPI của mỗi phân tử
và khoảng cách trong byte giữa các yêu tô của chuối
ÍMPI UNISIGNED CHAR lunsigned char
IMPI_UNISIGNED junsigned int
ÍMPI UNSIGNED LONG lunsigned long
ÍMPI UNSIGNED SHORT unsigned short
Trang 202.3.2.3 Các kiêu hàm tính toán của MPI
IMPI BAND |Bitwise and
ÍMPI MAXLOC faximum and location maximum
|MPI_MINLOC (Minimum and location minimum
Bang 2: Cae ham tính toan cia MPI
2.3.2.4 Cac ham phé bién ctia MPI
MPI Init() Khối tạo bộ môi trường thực thì MPI, hàm này phải
được gọi trước tất cả các hảm MPI khác, va chi được gọi một lần Hàm này có thể được ding dé truyền tham số dỏng lệnh tới tất cả các tiền trình,
cách dùng như sau: MPL Init (&arge, &argv)
Trang 21Dùng để kết thúc môi trường thực thi MPT Ham nay
phai due goi cudi cling trong tat ca cdc ham MPI Xác định số lượng tiên trình tham gia vào một bộ giao tiếp, thông thường, nó được dủng trong bộ giao
tiếp MPIL COMM_ WORLD bộ giao tiếp được xây dựng sẵn, bao gôm tất cả các tiền trình tham gia vào
(void *local, void *global,
int count, MPI_Datatype
type, MPI_Op operator, int
Root, MPI_Comm comm)
Xác định thử tự của tiên trình này trong bộ giao tiếp
Luc ban dau mỗi tiền trinh được gan cho một số thử
tự từ 0 tới mÌ trong bộ giao tiếp
MPI_COMM_WORLD
Kiểm tra xem hâm MPL InitQ đã được gọi hay chưa
Đồng bộ tất cả các tiên trình trong hệ thông, khi
hàm nảy được gọi, tất cả các tiến trình sẽ củng chờ
cho tới khi tiến trình cuối củng thực hiện đến bước
này vả tất cả củng thực hiện câu lệnh tiếp theo vào
cùng một thời điểm
Wipdinhiiigmcisliiis
Xác định độ chính xác của thời gian hệ thông
‘Ham tinh gộp, đùng đề gộp các kết quả của từng tiên
trình vào kết quả chung Trong đó, local là kết quả
cục bộ, global là kết quả nhận được sau khi tỉnh gộp
các kết quả cục bộ, type là kiểu dữ liệu tỉnh gộp,
operator là thao tác tính gộp, Root là thứ tự của tiền trình sẽ nhận được kết quả global, commn là bộ giao
Trang 22Các cuộc gọi đến thủ tục truyền thông MPI được phan loại theo cách khi nó
được gọi một cách an toản, khi nào nóđược thoát ra, cỏ cân bộ nhớ đệm không, Không,
phải tất cả các kết hợp có thẻ được đưa vao MPI (cũng không phai la tat ca ho déu can thiếU) nhưng số lượng của họ đã dẫn đến củng tên được sử dụng để có nghĩa là những,
thứ khác nhau
Một thủ tục truyền thông MPI là bị khóa nều một cuộc gọi dén nỏ sẽ không trở lại trước khi nó là an toan cho một tiền trình đề tải sử dụng các nguồn tải nguyên quy định trong các cuộc gọi Thủ tục truyền thông Non-blocking MPI được bồ sung các thủ tục kiểm tra hoặc chờ cho phép tải sử dụng các nguồn lực xác định trong cuộc gọi của
họ
2.3.2.4.1 Truyén thong Point-to-point
Truyền thông Point-to-point chỉ liên quan đến hai tiên trinh: một tiền trình gửi
một tin nhắn vả một tiền trình tiếp nhận thông điệp đỏ Mọi thủ tục truyền thông, MPI
Point-to-point cỏ một phiên bản đồng bộ và mộtphiên bản không đồng bô
Mỗi MPI gửi thủ tục hoạt động trong một trong bón chẻ đô: đồng bộ, đệm, tiêu chuẩn và sẵn sảng, Các chế độ truyền thông xác định thời gian hoản thành các hoạt động gửi và khi có cuộc gọi đến thủ tục gửi tương ứng có thể được ban hành một cách
an toàn Lưu y rang một cuộc gọi đến một thủ tục không, đồng bô gửi thủ tục có thê trở lại trước khi chính nỏ được hoàn thành Vì lý do đó, các thủ tục không đồng bộcỏ một
tham số bỗ sung: một đẻ xử lỷ một yêu cầu gửi trả lại bởi các thủ tục không đồng bô
Hoc viên: Phùng Thị Hoàng 14 Luận văn thạc sĩ
Trang 23Xử lý mả có thể được sử dụng đề kiểm tra hoặc chờ đợi đẻ hoàn thành các hoạt động
gửi
Một cuộc gọi đến, một gửi đồng bộ là hoàn toàn chỉ sau khi một cuộc gọi đẻ phủ
hợp với một thủ tục nhận đã được ban hảnh Một các thủ tục gửi không đồng bộhoản thành hay không một cuộc gọi đề phủ hợp với một thủ tục nhận đã được ban hành Các
tiêu chuẩn của MPI xác định các thủ tục đề quản lý không gian đêm và người sử dụng
có trách nhiệm cung cấp đủ không gian đệm đẻ lưu trữ các tin nhắn gửi đi.Sự lựa chọn
giữa gọi một đồng bộ hoặc một thủ tục gửi không đồng bộ từ một sỏ thỏa hiệp giữa các
không gian đệm và thời gian thực hiện.Các chế độ tiêu chuẩn của truyền thông chuyền
tiếp các phân tích của các bảnMPI thương mại.Vỉ vậy, một cuộc gọi đến một thủ tục gửi hoạt động trong chẻ độ tiêu chuân có thẻ hoặc có thẻ không hoản thành trước khi một cuộc gọi đến một kết hợp nhận thủ tục đã được ban hành Một cuộc gọi đến bát kỳ thủ tục gửi hành trong tiêu chuẩn, chế độ hoặc đệm đông bộ có thê được ban hành một cách an toàn ngay cả khi không phủ hợp với nhận cuộc gọi đã được ban hảnh Điều đó
lả không đúng đối với các cuộc gọi đẻ gửi hành thủ tục ở chế độ sẵn sang Cac hoạt đội chỉnh xác của các thủ tục gửi dựa trên các lập trình để dâm bảo rằng gửi sẽ được
kết hợp bởi nhận được một cách phủ hợp.Những chỉ là một phương thức hoạt động cho
các thủ tục MPI nhận được một tin nhắn
2.3.2.4.2 Truyền thông tập hợp
Thông tin liên lạc tap thé được khởi xưởng bởi tắt cả các tiền trình trong, các giao tiếp trong mà giao tiếp diễn ra Các tiêu chuan MPI cung cap cho các loại chính của thông tin liên lạc tập thẻ gặp phải trong thực tế hiên nay.Các tập thẻ MPI thủ tục truyền thông được ngăn chăn Các rảo cản, mô tả sau, hoạt động trong đồng bộ chế độ;
tất cả các thủ tục giao tiếp tập thê khác MPI có thể được coi lả hoạt động trong chế độ
tiêu chuẩn Các hình thức chủ yếu của thông tin liên lạc tập thể bao gồm trong tiêu
Trang 242.3.3 MPI lớn hay nhỏ?
Có lẽ các quyết định cơ bản nhất cho các diễn đản MPI là liệu MPI sé là "nhỏ và độc quyên, "kết hợp các giao điểm tôi thiểu của các thư viện hiện cỏ, hoặc" lớn và bao gồm, "kết hợp các công đoản của các chức năng của hệ thông hiện cỏ Cuỗi củng, mặc
đủ một số ý tưởng đã rời ra, một nỗ lực được thực hiện đề bao gồm một số lượng tương
đổi lớn các tỉnh năng đã được chứng minh rất hữu ích trong các thư viện khác nhau và các ứng dụng
2.3.3.1 MPI là lớn
Nhiều chức năng được mô tả trong phân cuối củng có nghĩa là các tiêu chuẩn
MPI có nhiều chức năng trong nỏ (khoảng 125).Điều này có nghĩa rằng MPI thì không thể phức tạp? Câu trả lời là không có vỉ hai lý do Thứ nhất, số lượng các chức năng
trong MPI đền từ việc kết hợp một số lượng nhỏ khái niệm về trực giao.Số lượng các ý
tưởng trong MPI là nhỏ Thử hai, nhiều người trong số các thói quen
đại diện cho tính năng bổ sung có thẻ được bỏ qua cho đền khi cản thiết
int MPI_Comm_size(MPI_Comm comm, int *size)
int MPI_Comm_rank(MPI_Comm comm, int *rank)
int MPI_Send(void *buf, int count, MPI_Datatype datatype,int dest, int tag, MPI_Comm
comm)
int MPI Recvivoid “buf, int count, MPI Datatype datatype,int source, int tag,
MPI_Comm comm,MPI_Status status)
Hoc viên: Phùng Thị Hoàng 16 Luận văn thạc sĩ
Trang 25Các chức năng trên sẽ được mô tả, cũng như các chức năng khác cỏ liên quan
MPI, trong các kế tiếp chương
Với các chức năng nảy chỉ có một số lượng lớn các chương trình hữu ích và
hiệu quả có thẻ được viết Tắt cả các chức năng khác thêm tỉnh linh hoạt (kiểu dữ liêu),
vững mạnh (nonblocking gửi / nhận), hiệu quả ("sẵn sảng" chế độ), mô đun (nhóm,
truyền thông), hoặc tiên lợi (tập thể hoạt động, câu trúc liên kêU),
2.3.4 Cae API MPI
2.3.4.1 Chuẩn
MPI bao gồm một thư viện Một quá trình MPI bao gồm một chương trình C hoặc Fortran77 mà giao tiếp với quá trình MPI khác bằng cách gọi thỏi quen MPI.Các thoi quen MPI cung cap các lập trình viên với một giao diện nhất quản trên nhiều nên tảng khác nhau
Tất cả các tên của thói quen MPI va cac hang sé trong ca hai C, Fortran bat dau với tiên tố MPI đề tránh tên collisions.Fortran tên thông thường lả tất cả các trường hợp trên nhưng C tên thường được trộn lần trường hợp Sau khi tải liêu MPI, khi một
tên thường xuyên được sử dụng trong một ngữ cảnh ngôn ngữ độc lập, các phiên bản
chữ hoa được sử dụng Tất cả các hằng số được viết hoa trong cả Fortran và C
2.3.4.1.1 Khởi tao MPI
Đầu tiên trong bắt kỳ chương trình MPI được khởi tạo là MPL Init, mỗi chương trình MPI phải gọi thói quen này một lân, trước khi bắt ky thói quen MPI khác Làm nhiều cuộc gọi đến MPL Init là sai lâm Các phiên bản C của các thói quen chấp nhận các đối số chỉnh, tức là argc vả argv như các đôi sỏ
int MPI_Init(int *arge, char ***argv);
Trang 26MPI Init xác định một cải gì đỏ gọi là MPI COMM_WORLD cho mỗi qua
trình gọi nó.MPI COMM WORLD lả một người giao tiếp Tất cả các cuộc gọi truyền
thông MPI yêu cầu một tham số truyền và quá trình MPI chỉ có thể giao tiếp nêu ho chia sẻ một người giao tiếp,
MPI COMM_WORLD
©
Q @
@ @
Hinh 2.2: Cae MPI_COMM_ WORLD
Các MPI COMM_ WORLD giao tiếp được xác định trước cho bảy quy trình
Các con số cho thây thử hạng của mỗi quá trình
Mỗi người giao tiếp có chứa một nhóm mà là một danh sách các quy trình Các quá trình được sắp xếp và đánh sỏ liên tiếp từ 0.Các số của mỗi quá trình được gọi là
thử hạng của nó.Mức xếp hạng nảy nhận dạng mỗi quả trình trong giao tiếp Ví dụ, cấp
bậc có thẻ được sử dụng để xác đmh nguồn hoặc đích của thông điệp Sử dụng MPI COMM_WORLD, mỗi tiên trình có thể giao tiếp với môi khác Các nhóm MPI COMM WORLD là tập hợp của tắt cả các tiến trinh MPL
Một quá trình MPI có thể truy vẫn một người giao tiếp để cỏ thông tin về nhóm nay, voi MPI_Comm_rank va MPI_Comm_ size
int MPL_Comm_rank (MPI_Comm comm, int rank *)
Hoc viên: Phùng Thị Hoàng 18 Luận văn thạc sĩ
Trang 27MPI Comm rank trả trong rank cấp bậc của các quả trình gọi trong nhóm kết
hợp với giao tiếp comm
intMPI Comm _size(MPI Comm comm, int *size)
MPI Comm size lợi nhuận trong size số lượng các quả trình trong nhóm ket hợp với truyền thong comm
2.3.4.1.3 Clean-Up ctia MPI
Một chương trình MPI nên gọi cac thoi quen MPI Finalize khi tat ca cac thong tin liên lạc đã hoàn thành Thói quen này đọn sạch tắt cả các MPI dữ liệu -cầu trúc, vv
Nó không hủy truyền thông xuất sắc, do đó, nó là trách nhiệm của các lập trình viên đẻ
đảm bảo tất cả các thông tin liên lạc đã hoàn thành Một khi thói quen này đã được gọi
là, không có cuộc gọi nảo khác có thể được thực hiện cho thỏi quen MPI, thậm chỉ không MPI Init, đo đó, một quá trình có thê không muộn đăng ký lại MPL
intMPL Einalize(void)
3.3.4.1.4 Hủy MPI
int MPI_ Abort (MPI_Comm comm, int errcode)
Điều này thường cổ gắng đề hủy bỏ tất cả các quá trình trong nhỏm chửa trong comm vi vậy mả với comm = MPIL COMM_WORLD toản bộ chương trình sẽ chấm dứt
2.3.4.1.5 Từners và đồng bộ
MPI định nghĩa một bộ đếm thời gian Một giờ được quy định mặc dủ nó không
phải là "tin nhắn qua", bởi vì thời gian chương trình song song là quan trọng trong việc
thực hiện gỡ lỗi và vi giờ hiện thời hoặc bắt tiện hoặc không cung cấp quyền truy cập day đủ để tính giờ có độ phân giải cao
đôi MPI_Wtime (void)
Hoc viên: Phùng Thị Hoàng 19 Luận văn thạc sĩ
Trang 28MPI_Wtime trả về một số điểm nổi giây, đại diện cho thời gian trôi qua tường
đồng hỗ kế từ khi một số thời điểm trong quả khử Giờ trở lại địa phương ở những nút
mả gọi họ.Không có yêu cau rang các nút khác nhau lại cùng một lúc
double MPI_Wtick(void)
MPI Wtiek trả vẻ độ phân giải của MPI Wtime trong vải giây Nghĩa lả, nó trả
về số giây giữa đồng hồ liên tiếp theo
Hoc viên: Phùng Thị Hoàng 20 Luận văn thạc sĩ
Trang 29Chương 3: Bài toán phương trình truyền nhiệt(HeatEquations)
3.1.Giới thiệu bài toan Heat Equations
Một quá trình khuếch tán, ví dụ như khuếch tán nhiệt trong chat ran hoặc khuếch tán chất tan trong một dung dịch, cỏ thể được mô hình hóa bằng một phương trình đạo
hàm riêng
Xét một hợp chất hóa học cỏ thể hòa tan trong chất lỏng Hợp chất hóa học này cỏ nông độ e (concentration) nhất định (số phan ti/m3) Gia sir ring hop chat chi di
chuyển trong dung môi thông qua khuéch tản tự do (đề loại đi trường hợp khuếch tan
bằng dòng chảy của dung môi) Bây giờ ta đi tìm một phương trình mô tả nông độ c
trên một thẻ tich nhỏ thông qua định luật Fick (liên quan đến dòng khuếch tán tuyên tính với gradient nòng độ),
Mat A
Hinh 3.1: Gradient néng dé Ve
Gọi 1 là thông lượng hay số phần tử đi qua một đơn vị bề mặt trong một thời gian
xác định (số phần tử/m23) Định luật Fick phát biểu rằng thông lượng J va gradient néng d6 c phụ thuộc tuyến tính với nhau theo công thức
Hoc viên: Phùng Thị Hoàng 21 Luận văn thạc sĩ
Trang 30J=—D.Vc [31]
Với D là hệ số khuếch tán (m2/s)
Hinh 3.2: Khéi thé tich nhé dxdydz
Tiệp theo, ta xét một khôi thẻ tích nhỏ đV=dxdydz (Hình3.2) và tính toản số lượng, phần tử khuếch tản vảo và ra của khỏi này Thực hiện bằng cách tỉnh toan theo ba chiêu x, y, z một cách độc lập, sau đỏ cộng tất cả các két quả thu được lại đề cỏ tổng thông lượng Số lượng phân tử đi qua khối trong một đơn vị thời gian theo chiều x
được cho bởi công thức: (Jx(x)-]x(x+dx))dydz, tương tự như vậy ta có các công thức
cho chiều y và chiêu 2 Tiếp theo, tổng sổ phân tử tăng lên trong khối phải bằng số
phần tử khuếch tán vào khối Do đó:
Trang 31Trong đỏ t là thời gian Chia Phương trình [3.2] cho dV và giả sử rằng dx, dy, dz
3.2 Phương pháp số giải bài toán Heat Equations
Ta sẽ giải phương trình Heat Equations bằng phương pháp số, theo đỏ bao gồm hai bước: rời rac héa theo khéng gian (Spatial discretization) va tích hợp theo thời gian (Time integration)
3.2.1 Phương pháp rời rạc hóa theo không gian
Xét bài toán Heat Equations trong khéng gian hai chiêu kích thước MxM
Trong không gian hai chiều, phương trình Heat Equations co dang:
ac _ pac , ac
Để giải bải toán trên bằng phương pháp sổ, trước tiên ta cản chia miễn tinh toan
MxM nảy thành một lưới điểm Cho trước kích thước điểm lưới theo chiêu x và y tương ứng la dx và dy (giả sử dx=dy), ta xác định được số điểm lưới theo chiêu x(m)
va y(n) nhu sau :
m = M/dx,
Hoc viên: Phùng Thị Hoàng 23 Luận văn thạc sĩ