slide bài giảng tính toán lưới - nguyễn hữu đức bài 3 giới thiệu về lập trình song song theo mô hình truyền thông điệp

24 923 0
slide bài giảng tính toán lưới - nguyễn hữu đức bài 3 giới thiệu về lập trình song song theo mô hình truyền thông điệp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giới thiệu lập trình song song theo mơ hình truyền thông điệp Hà nội, 6/2008 Đại học Bách khoa Hà Nội Center of High Performance Computing Hanoi University of Technology {hpcc@mail.hut.edu.vn} Nội dung 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 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 Mơ hình truyền thông điệp (Message Passing Model) Int count = Process Procesor ACCESS ? Process Procesor Cần chế để tiến trình truy cập nhớ Mơ hình truyền thơng điệp: Chia sẻ liệu tiến trình cách truyền thơng điệp Chuẩn MPI (Message Passing Interface) http://www.mpi-forum.org  Chuẩn MPI kết sau năm thảo luận MPI Forum, nhóm gồm khoảng 60 người từ 40 tổ chức khác đại diện cho nhà phân phối hệ thống song song, phịng thí nghiệm quốc gia trường đại học danh tiếng  MPI thư viện hàm chèn vào mã nguồn để truyền liệu tiến trình Chuẩn MPI  Chuẩn MPI-1:  Xác định quy cách đặt tên, trình thực kết trả hàm/chương trình thư viện Mọi hàm/chương trình thư viện phải tuân theo quy tắc trên, điều đảm bảo khả khả chuyển chương trình viết theo chuẩn MPI biên dịch chạy kiến trúc máy tính, hệ điều hành khác  Chi tiết cài đặt hàm/chương trình thư viện nhà cung cấp định (vd: trường Đại học Indiana, Hoa Kỳ phát triển LAM/MPI, MPICH, OPENMPI,…)  Quá trình cài đặt hàm/chương trình thư viện phải tương thích với hầu hết kiến trúc máy tính, hệ điều hành phổ biến  Năm 1994: MPI-1.0; MPI-2.1   Chuẩn MPI-2.1 định nghĩa thêm định tuyến nâng cao: vào song song, truyền thơng phía, … Tuy nhiên chưa hỗ trợ nhiều Khi dùng không dùng MPI  MPI dùng cần viết chương trình:     Đoạn mã song song có tính khả chuyển thơng qua flatform khác Cần đạt hiệu cao Cần viết thư viện song song Khi khơng nên dùng MPI:    Có thể đạt hiệu cách dùng hàm song song sẵn có thư viện Fortran OpenMP Đã có thư viện song song viết MPI, thư viện tốn học song song Khơng cần đoạn mã chạy song song Cấu trúc chương trình song song theo chuẩn MPI  Ngôn ngữ C Định nghĩa prototype: Hàm, macro, hằng,… Khởi tạo môi trường MPI - Dọn dẹp liệu MPI - Hủy bỏ hàm chạy #include main(int argc,char* argv[]) { intitation of variable; MPI_Init(&argc,&argv); MPI_Finalize(); } Các đặc điểm CT truyền thông điệp  Bao gồm nhiều instance chương trình Các instance truyền thông với qua định tuyến thư viện MPI  Các định tuyến chia thành:       Khởi tạo, quản lý ngắt qúa trình truyền thơng Truyền thơng cặp tiến trình(truyền thơng điểm – điểm) Truyền thống nhóm nhóm(truyền thơng cơng cộng) Tạo loại liệu có cấu trúc riêng Thao tác communicator Quy ước đặt tên  Tất phần tử MPI (định tuyến, biến, hằng, ) MPI_  Tên định tuyến:  MPI_Xxxxxx(tham số, )   MPI_Init($argc, $args) Tên hằng:   MPI_XXXXX MPI_COMM_WORLD, MPI_REAL Định tuyến MPI giá trị trả   Các định tuyến MPI thực thi hàm C Giá trị trả định tuyến số nguyên (integer) cho biết trạng thái kết thúc hàm (lỗi hay thành công) int err; err = MPI_Init($argc, $args); if (err == MPI_SUCCESS) { } Các kiểu liệu chuẩn MPI  Kiểu liệu khai báo MPI_Datatype Kiểu liệu MPI Kiểu liệu tương ứng C MPI_CHAR  Ngồi cịn có kiểu liệu dẫn xuất từ kiểu liệu chuẩn signed char MPI_SHORT signed short int MPI_INT signed int MPI_LONG signed long int MPI_UNSIGNED_CHAR unsigned char MPI_UNSIGNED_SHORT unsigned short int MPI_UNSIGNED u MPI_UNSIGNED_LONG unsigned long int MPI_FLOAT float MPI_DOUBLE double MPI_LONG_DOUBLE long double MPI_PACKED (none) MPI_BYTE (none) Communicator comm = MPI_COMM_WORLD   Communicator: Một nhóm tiến trình truyền thống với Một tiến trình thuộc nhiều Communicator Message  Kiểu liệu biểu diễn Communicator: MPI_Comm  MPI_Comm comm: xác định communicator node gửi nhận  MPI_COM_WORLD: Mọi tiến trình thuộc communicator Rank  Mỗi tiến trình communicator có định danh, gọi Rank, đánh số  Một tiến trình rank khác thuộc communicator khác Rank Rank LAN Rank Rank Rank Rank Các định tuyến thiết lập môi trường lấy thông số môi trường  int MPI_Init()   int MPI_Comm_rank(MPI_Comm comm, int *rank)   Trả rank tiến trình int MPI_Comm_size(MPI_Comm comm, int *size);   Khởi tạo tham số cho môi trường MPI Trả số tiến trình comm int MPI_Finalize()  Giải phóng liệu, ngắt định tuyến MPI Cài đặt môi trường thử nghiệm  Sử dụng hệ thống song song sẵn có      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 nút tính tốn nhiều Môi trường song song thực 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 Tự cài đặt môi trường song song máy cá nhân   Số lượng CPU Địi hỏi cơng sức cài đặt, bảo trì Các bước cài đặt   Hướng dẫn áp dụng cài máy tính đơn Bước 1: Hệ điều hành     Cài đặt hệ điều hành dựa Linux: OpenSuse, Ubuntu, Fedora, Debian, … Có thể dùng máy ảo để cài hệ điều hành Hoặc cài đặt Cygwin môi trường Windows để thử nghiệm Bước 2: môi trường truyền thông điệp  Download phần mềm lammpi   Giải nén   http://www.lam-mpi.org/download/files/lam-7.1.4.tar.bz2 $ tar xjvf lam-7.1.4.tar.bz2 Cài đặt  Gõ lệnh sau: /configure, make, make install Môi trường soạn thảo mã nguồn Chương trình eclipse, với plugin PTP Mơ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 Viết chương trình helloworld.c #include #include #include int main(int argc, char* argv[]) { 10 11 12 13 14 15 16 17 18 19 } int size, rank; char hostname[50]; // Khoi tao tham so cho moi truong MPI MPI_Init(&argc, &argv); // Lay ve kich thuoc pommunicator MPI_Comm_size(MPI_COMM_WORLD, &size); // Lay ve so hieu rank MPI_Comm_rank(MPI_COMM_WORLD, &rank); // Lay ve hostname gethostname(hostname,50); printf("My rank is %d , %s\n",rank, hostname); MPI_Finalize(); return 0; Biên dịch chương trình  Dùng lệ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 Khởi tạo mơi trường LAMMPI  Khởi động:   Lệnh: lamboot –v hostfile Tệp tin hostfile chưa tên máy cần để chạy chương trình song song   Nếu hệ thống song song có máy đơn, tệp tin cần có dịng có nội dung: localhost Xem thơng tin môi trường khởi động  lamnodes # vi du hostfile localhost cpu=2 Chạy chương trình helloworld  Chạy chương trình    mpirun –np helloworld Chạy chương trình hello với tiến trình Xem chương trình có thực chạy không:   Mở terminal Gõ lệnh: ps –aux | grep tenchuongtrinh   ps –aux | grep helloworld Tắt môi trường lam/mpi  lamhalt Kết Demo  Chạy chương trình helloworld hệ thống song song bkluster  Đánh giá, nhận xét đặc tính chương trình song song ... 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 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 Mơ hình truyền thơng điệp. .. song song viết MPI, thư viện tốn học song song Khơng cần đoạn mã chạy song song Cấu trúc chương trình song song theo chuẩn MPI  Ngôn ngữ C Định nghĩa prototype: Hàm, macro, hằng,… Khởi tạo môi... chương trình:     Đoạn mã song song có tính khả chuyển thông qua flatform khác Cần đạt hiệu cao Cần viết thư viện song song Khi khơng nên dùng MPI:    Có thể đạt hiệu cách dùng hàm song song

Ngày đăng: 24/10/2014, 11:00

Từ khóa liên quan

Mục lục

  • Giới thiệu về lập trình song song theo mô hình truyền thông điệp

  • Nội dung bài học

  • Mô hình truyền thông điệp (Message Passing Model)

  • Chuẩn MPI (Message Passing Interface)

  • Chuẩn MPI

  • Khi nào dùng và không dùng MPI

  • Cấu trúc chương trình song song theo chuẩn MPI

  • Các đặc điểm cơ bản của CT truyền thông điệp

  • Quy ước đặt tên

  • Định tuyến MPI và giá trị trả về

  • Các kiểu dữ liệu của chuẩn MPI

  • Communicator

  • Rank

  • Cá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

  • Cài đặt môi trường thử nghiệm

  • Các bước cài đặt

  • Môi trường soạn thảo mã nguồn

  • Slide 18

  • Viết chương trình helloworld.c

  • Biên dịch chương trình

  • Khởi tạo môi trường LAMMPI

  • Chạy chương trình helloworld

  • Kết quả

  • Demo

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan