5/11/16%
1%
LP TRÌNH THƯ VIN MPI
MESSAGE PASSING INTERFACE
ThS. Phan Trng Tiến
B môn CNPM – Khoa CNTT
Hc Vin Nông nghip Vit Nam
Email: phantien84@gmail.com
Website: http://timoday.edu.vn
1/1/2015 Lp trình thư vin MPI 1
MPI là gì?
qLà viết tt ca Message Passing Interface, ch mt dng giao
thc kết ni ca máy tính. Nó nm trong chun “de facto cho
kết ni gia các nút chy mt chương trình song song trên b
nh phân tán.
qTp MPI thi hành bao gm mt thư vin các th tc sao cho có
th gi được t các chương trình Fortran, C, C++ hay Ada.
1/1/2015 2
Lp trình thư vin MPI
5/11/16%
2%
Mô hình lp trình
qMPI ra đời mc đích dành cho các h thng máy tính có b
nh phân tán. Tuy nhiên MPI cũng có th trin khai được trên
h thng máy tính có b nh chia s.
1/1/2015 3
Lp trình thư vin MPI
Lp trình MPI
qHeader file:
qYêu cu cho mi chương trình được lp trình bi MPI
qĐịnh dng các hàm trong MPI
1/1/2015 4
#include “mpi.h”
rc = MPI_Xxxxx(parameter)
Lp trình thư vin MPI
5/11/16%
3%
Lp trình MPI
qCu trúc ca chương
trình MPI
1/1/2015 5
Lp trình thư vin MPI
Communicators and Groups
qCommunicators và Group là tp hp tt c các processes có
th giao tiếp được vi nhau.
qPhn ln các hàm trong thư vin MPI yêu cu tham s
Communicator.
qMPI_COMM_WORLD được định nghĩa sn.
1/1/2015 6
Lp trình thư vin MPI
5/11/16%
4%
Rank
qVi mi Communicator, mi processes mt ID nht định.
qRank được bt đầu t 0
qS dng rank trong các message để ch ra ngun (source) và
đích (destination)
1/1/2015 7
Lp trình thư vin MPI
Các hàm qun lý môi trường
qMPI_Init
qKhi to môi trường thc thi MPI. Hàm này được gi trong mi chương
trình MPI, được gi trước các hàm MPI khác, và ch được gi mt ln duy
nht.
1/1/2015 8
int MPI_Init(int *argc,char ***argv)
Lp trình thư vin MPI
5/11/16%
5%
Các hàm qun lý môi trường
qMPI_Comm_size
qXác định s lượng process trong nhóm ng vi mt Communicator
(thường MPI_COMM_WORLD)
qMPI_Comm_rank
qTr v id ca Communicator hin ti
1/1/2015 9
int MPI_Comm_size(MPI_Comm comm,int *size )
int MPI_Comm_rank (comm,&rank)
Lp trình thư vin MPI
Các hàm qun lý môi trường
qMPI_Abort
qHy b tt c các MPI processes gn vi mt Communicator
1/1/2015 10
int MPI_Abort(MPI_Comm comm,int errorcode)
Lp trình thư vin MPI