Chu n MPI Message Passing Interface ẩ Chuẩn MPI là kết quả sau hơn 2 năm thảo luận của MPI Forum, 1 nhóm gồm khoảng 60 người từ 40 tổ chức khác nhau đại diện cho những nhà phân phối các
Trang 1Gi i thi u v l p trình song song ớ ệ ề ậ theo mô hình truy n thông đi p ề ệ
Center of High Performance Computing
Hanoi University of Technology
{hpcc@mail.hut.edu.vn}
Hà n i, 6/2008 ộ
Đ i h c Bách khoa Hà N i ạ ọ ộ
Trang 2N i dung bài h c ộ ọ
Mô hình truy n thông đi p ề ệ
C u trúc ch ấ ươ ng trình truy n thông đi p ề ệ
Các khái ni m trong ch ệ ươ ng trình
Chu n b môi tr ẩ ị ườ ng l p trình ậ
Biên d ch, ch y ch ị ạ ươ ng trình song song
Demo
Trang 3Mô hình truy n thông đi p ề ệ (Message Passing Model)
Procesor 2
Trang 4Chu n MPI (Message Passing Interface) ẩ
Chuẩn MPI là kết quả sau hơn 2 năm thảo luận của MPI Forum,
1 nhóm gồm khoảng 60 người từ 40 tổ chức khác nhau đại diện cho những nhà phân phối các hệ thống song song, những phòng thí nghiệm quốc gia và những trường đại học danh tiếng
MPI là một thư viện các hàm có thể chèn vào mã nguồn để
truyền dữ liệu giữa các tiến trình
http://www.mpi-forum.org
Trang 5Chu n MPI ẩ
Chuẩn MPI-1:
Xác định quy cách đặt tên, quá trình thực hiện và kết quả trả về của các hàm/chương trình con trong thư viện Mọi hàm/chương trình con trong thư viện đều phải tuân theo những quy tắc trên, điều này đảm bảo khả năng khả chuyển của các chương trình viết theo chuẩn MPI khi biên dịch và chạy trên các kiến trúc máy tính, hệ điều hành khác nhau.
Chi tiết cài đặt của các hàm/chương trình con trong thư viện là do những nhà cung cấp quyết định (vd: trường Đại học Indiana, Hoa Kỳ phát triển LAM/MPI, MPICH, OPENMPI,…)
Quá trình cài đặt các hàm/chương trình con trong thư viện phải tương thích với hầu hết các kiến trúc máy tính, hệ điều hành phổ biến.
Năm 1994: MPI-1.0; hiện nay mới nhất là MPI-2.1
Chuẩn MPI-2.1 định nghĩa thêm các định tuyến nâng cao: vào
ra song song, truyền thông 1 phía, …
Tuy nhiên chưa được hỗ trợ nhiều
Trang 6Khi nào dùng và không dùng MPI
Đoạn mã song song có tính khả chuyển thông qua các flatform khác nhau
Cần đạt hiệu năng cao
Cần viết thư viện song song
Có thể đạt hiệu năng bằng cách dùng các hàm song song sẵn có của thư viện Fortran hoặc của OpenMP
Đã có các thư viện song song viết bằng MPI, như thư viện toán học song song
Không cần đoạn mã nào chạy song song
Trang 7C u trúc ch ấ ươ ng trình song song theo chu n MPI ẩ
Trang 8Các đ c đi m c b n c a CT truy n thông đi p ặ ể ơ ả ủ ề ệ
tuyến trong thư viện MPI
Khởi tạo, quản lý và ngắt qúa trình truyền thông
Truyền thông giữa các cặp tiến trình(truyền thông điểm – điểm)
Truyền thống giữa các nhóm nhóm(truyền thông công cộng)
Tạo các loại dữ liệu có cấu trúc riêng
Thao tác trên communicator
Trang 9Quy ướ c đ t tên ặ
đều bắt đầu bằng từ MPI_
Trang 10Đ nh tuy n MPI và giá tr tr v ị ế ị ả ề
cho biết trạng thái kết thúc của hàm (lỗi hay thành công)
int err;
err = MPI_Init($argc, $args);
if (err == MPI_SUCCESS){
}
Trang 11(none) MPI_PACKED
long double MPI_LONG_DOUBLE
double MPI_DOUBLE
float MPI_FLOAT
unsigned long int MPI_UNSIGNED_LONG
u
n s i g n e d i n t
MPI_UNSIGNED
unsigned short int MPI_UNSIGNED_SHORT
unsigned char MPI_UNSIGNED_CHAR
signed long int MPI_LONG
signed int MPI_INT
signed short int MPI_SHORT
signed char MPI_CHAR
Ki u d li u ể ữ ệ
t ươ ng ng trong C ứ
Ki u d li u MPI ể ữ ệ
Trang 121
2 3
Trang 13 Mỗi tiến trình trong 1 communicator
có 1 định danh, gọi là Rank, đánh số
Rank 0
Trang 14Các đ nh tuy n ị ế thi t l p môi tr ế ậ ườ ng
và l y các thông s v môi tr ấ ố ề ườ ng
Khởi tạo tham số cho môi trường MPI
Trả về rank của tiến trình
Trả về số tiến trình trong comm
Giải phóng dữ liệu, ngắt các định tuyến MPI
Trang 15Cài đ t môi tr ặ ườ ng th nghi m ử ệ
Không đòi hỏi cấu hình, bảo trì, thay đổi máy tính cá nhân
Tập trung vào viết chương trình
Số lượng các nút tính toán nhiều
Môi trường song song thực sự
Hệ thống bkluster
Địa chỉ: bkluster.hut.edu.vn
Liên hệ người quản trị để lấy tài khoản đăng nhập
Số lượng CPU ít
Đòi hỏi công sức cài đặt, bảo trì
Trang 16 Có thể dùng máy ảo để cài hệ điều hành
Hoặc cài đặt Cygwin trên môi trường Windows để thử nghiệm
Bước 2: môi trường truyền thông điệp
Trang 17Môi tr ườ ng so n th o mã ngu n ạ ả ồ
Chương trình eclipse, với plugin PTP
Trang 18Môi tr ườ ng so n th o mã ngu n ạ ả ồ
Môi trường lập trình song song trực tuyến PCP
http://bkluster.hut.edu.vn/pcp
Trang 20Biên d ch ch ị ươ ng trình
mpicc helloworld.c –o helloworld
Biên dịch mã nguồn helloworld.c thành chương trình chạy
có tên helloworld
Trang 21Kh i t o môi tr ở ạ ườ ng LAMMPI
Khởi động:
Lệnh: lamboot –v hostfile
Tệp tin hostfile chưa tên các máy cần để chạy chương trình song song
có nội dung: localhost
Xem thông tin môi trường đã khởi động
lamnodes
# vi du hostfile localhost cpu=2
Trang 22Ch y ch ạ ươ ng trình helloworld
mpirun –np 4 helloworld
Chạy chương trình hello với 4 tiến trình
Mở 1 terminal mới
Gõ lệnh: ps –aux | grep tenchuongtrinh
ps –aux | grep helloworld
lamhalt
Trang 23K t qu ế ả