slike bài giảng tính toán lưới - nguyễn hữu đức bài 6 các thao tác trên communicator

26 370 0
slike bài giảng tính toán lưới - nguyễn hữu đức bài 6 các thao tác trên communicator

Đ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

Các thao tác communicator 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 Communicator Các loại communicator Thao tác với intra-communicator Thao tác với inter-communicator Communicator  Một communicator (comm) bao gồm tập tiến trình, hay nhóm tiến trình  Truyền thơng tiến trình thực ngữ cảnh communicator  MPI_COMM_WORLD:    Là communicator mặc định khởi tạo chương trình Cho phép tiến trình truyền thơng điểm điểm cộng tác Một số ứng dụng địi hỏi truyền thơng nhóm nhỏ tiến trình Communicator  Một communicator gồm:  Một nhóm tiến trình  Một ngữ cảnh (context) hạ tầng trao đổi thông tin, tạo comm thiết lập  Nhóm = Tập hợp tiến trình  Mỗi communicator có định danh nhóm hay group handle liên kết với  Group handle dùng cho thao tác thêm bớt tiến trình, tạo communicator Các loại communicator  Intra-communicators:     Inter-communicators:   Liên quan đến truyền thơng tiến trình communicator Về bản, intra-communicator gồm tập tiến trình MPI_COM_WORLD Thường xử lý tác vụ: xử lý dòng, cột, ma trận ma trận, tăng tính sáng chương trình,… Liên quan đến truyền thơng intra-communicator Có cách tạo communicator:   Tạo communicator từ group (nhóm tiến trình) Tạo communicator từ communicator Qui trình tạo communicator từ nhóm call MPI_COMM_GROUP(…) Định tuyến MPI_Comm_group  Lấy group handle communicator Ví dụ lấy group handle Định tuyến MPI_group_incl  Tạo nhóm từ nhóm tồn cách định tiến trình thành viên nhóm Ví dụ tạo nhóm tiến trình 10 Định tuyến MPI_Group_incl  Vị trí tiến trình gọi nhóm xác định mảng member   Tiến trình gọi có rank member(i) có rank i nhóm i nằm khoảng (0, count -1)  Nếu count = 0, định danh nhóm có giá trị MPI_GROUP_EMPTY  Hai nhóm có tiến trình giống nhau, khác thứ tự phụ thuộc vào ma trận member 12 Định tuyến MPI_group_excl  Tạo nhóm từ nhóm tồn cách định tiến trình khơng phải thành viên nhóm 13 Ví dụ tạo nhóm 14 Ví dụ tạo nhóm 15 Định tuyến MPI_group_excl  Vị trí tiến trình gọi nhóm tương ứng với rank nhóm cũ  Thứ tự phần tử mảng nonmember không ảnh hưởng đến rank tiến trình nhóm  Nếu count=0, nhóm tạo giống hệt nhóm cũ  Các rank tiến trình mảng nonmember:   Khơng trùng Phải hợp lệ (tồn tại) 16 Các định tuyến lấy thơng tin nhóm  Lấy rank tiến trình nhóm   Lấy kích thước nhóm tiến trình   MPI_Group_rank (MPI_Group group, int *rank); MPI_Group_size (MPI_Group group, int *size); So sánh mối quan hệ hai nhóm tiến trình   MPI_Group_compare (MPI_Group group1, MPI_Group group2, int *result); Giá trị trả về, biến result:    MPI_IDENL: tiến trình hai nhóm giống nhau, đánh thứ tự rank giống MPI_SIMILAR: tiến trình hai nhóm giống nhau, đánh thứ tự rank khác MPI_UNEQUAL: quan hệ khác 17 Định tuyến MPI_Group_rank  Trước tạo nhóm    Sau tạo nhóm    MPI_COM_WORLD: (0, 1, …, p-1) Worker_group: MPI_COM_WORLD: Worker_group: (0, 1, …, p-2) Nếu tiến trình gọi có rank = 0: giá trị group_rank MPI_UNDEFINED 18 Định tuyến MPI_Group_free    Trả group cho hệ thống Khơng giải phóng communicator chứa đựng group Dùng định tuyến MPI_Comm_free để giải phóng communicator 19 MPI_Comm_Create     Tạo communicator từ communicator có sẵn Tất tiến trình cần gọi hàm giống với tham số giống Các tiến trình khơng tham dự nhóm cho kết MPI_Comm_Null Giải phóng MPI_Comm_Free Tạo comm từ comm khác: MPI_Comm_Split Truyền thơng inter-communicator  Mục đích inter-communicator   Kết nối hạ tầng truyền thống hai nhóm rời Cấu trúc communicator:    Tách thành nhóm cục nhóm từ xa Có tính đối xứng Kiểm tra communicator intra hay inter, dùng định tuyến:  int MPI_Comm_test_inter ( MPI_Comm comm, int *flag ) Tạo inter-communicator từ hai intra-communicator MPI_Intercomm_create (MPI_Comm local_comm, int local_leader, MPI_Comm peer_comm, int remote_leader, int tag, MPI_Comm *intercomm_out)  Tạo inter-communicator cách kết nối hai intracommunicator:     Tiến trình có rank local_leader nhóm local_comm truyền thơng với tiến trình remote_leader nhóm peer_comm Hai tiến trình hai nhóm tạo thành cầu nối hai intra-communicators Inter-communicator tạo xác định trỏ intercomm_out Đây định tuyến truyền thông cộng tác:  Phải gọi tiến trình tham gia vào định tuyến 23 Ví dụ tạo inter-communicator 24 Tạo inter-communicator từ inter-communicator có sẵn MPI_Intercomm_merge (MPI_Comm intercomm, int high, MPI_Comm *newintercomm);   Tổ hợp nhóm gồm nhóm intercomm kết hợp để tạo thành newintercomm Giá trị high xác định thứ tự bên tổ hợp nhóm    Tất tiến trình nhóm phải truyền giá trị high giống Nhóm có giá trị high = false xếp trước nhóm có giá trị high = true tổ hợp nhóm Nếu tất tiến trình có giá trị high giống thứ tự phân phối tùy ý 25 Kết luận  Nhóm ngữ cảnh truyền thông tạo communicator  Communicator định nghĩa khả trao đổi thông tin tiến trình  Communicator sử dụng để tách bạch hạ tầng truyền thơng  Tất q trình truyền tin cần đến communicator  Cho phép tránh nhầm lẫn lựa chọn thông báo  Cho phép thực việc lập trình cấu trúc hệ thống song song, tách biệt modul ...Nội dung học Communicator Các loại communicator Thao tác với intra -communicator Thao tác với inter -communicator Communicator  Một communicator (comm) bao gồm tập tiến... thao tác thêm bớt tiến trình, tạo communicator Các loại communicator  Intra-communicators:     Inter-communicators:   Liên quan đến truyền thông tiến trình communicator Về bản, intra -communicator. .. MPI_COM_WORLD Thường xử lý tác vụ: xử lý dòng, cột, ma trận ma trận, tăng tính sáng chương trình,… Liên quan đến truyền thơng intra -communicator Có cách tạo communicator:   Tạo communicator từ group

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

Từ khóa liên quan

Mục lục

  • Các thao tác trên communicator

  • Nội dung bài học

  • Communicator

  • Slide 4

  • Các loại communicator

  • Qui trình tạo communicator từ nhóm

  • Định tuyến MPI_Comm_group

  • Ví dụ lấy về group handle

  • Định tuyến MPI_group_incl

  • Ví dụ tạo nhóm tiến trình

  • Slide 11

  • Định tuyến MPI_Group_incl

  • Định tuyến MPI_group_excl

  • Ví dụ tạo nhóm mới

  • Slide 15

  • Slide 16

  • Các định tuyến lấy thông tin nhóm

  • Định tuyến MPI_Group_rank

  • Định tuyến MPI_Group_free

  • MPI_Comm_Create

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

Tài liệu liên quan