Bài giảng Tính toán lưới - Bài 6: Các thao tác trên communicator - Nguyễn Hữu Đức
Các thao tác trên communicator
Center of High Performance Computing
Hà nội, 6/2008
Đại học Bách khoa Hà Nội
Hanoi University of Technology
{hpcc@mail.hut.edu.vn}
Nội dung bài học
Communicator
Các loại communicator
Thao tác với intra-communicator
Thao tác với inter-communicator
2
Communicator
Một communicator (comm) bao gồm một tập các
tiến trình, hay một nhóm các tiến trình.
Truyền thông giữa các tiến trình thực hiện trên
ngữ cảnh communicator
MPI_COMM_WORLD:
Là communicator mặc định khi khởi tạo chương trình
Cho phép các tiến trình truyền thông điểm điểm hoặc
cộng tác
Một số ứng dụng đòi hỏi truyền thông giữa một
nhóm nhỏ các tiến trình.
Communicator
Một communicator gồm:
Một nhóm các tiến trình
Một ngữ cảnh (context) hạ tầng trao đổi thông tin,
tạo ra khi comm được thiết lập
Nhóm = Tập hợp các tiến trình
Mỗi communicator có một định danh nhóm hay một
group handle liên kết với nó.
Group handle sẽ được dùng cho các thao tác thêm bớt
tiến trình, và tạo ra communicator
4
Các loại communicator
Intra-communicators:
Liên quan đến các truyền thông giữa các tiến trình trong
cùng một communicator
Về cơ bản, intra-communicator gồm tập con các tiến trình
của MPI_COM_WORLD
Thường xử lý các tác vụ: xử lý dòng, cột, ma trận con của
ma trận, tăng tính trong sáng của chương trình,…
Inter-communicators:
Liên quan đến truyền thông giữa các intra-communicator
Có 2 cách tạo ra communicator:
Tạo communicator từ group (nhóm tiến trình)
Tạo communicator từ communicator.
5
Qui trình tạo communicator từ nhóm
call MPI_COMM_GROUP(…)
Định tuyến MPI_Comm_group
Lấy về group handle của communicator
7
Ví dụ lấy về group handle
8
Định tuyến MPI_group_incl
Tạo ra nhóm mới từ nhóm đã tồn tại bằng cách chỉ
định các tiến trình sẽ là thành viên nhóm mới
9
Ví dụ tạo nhóm tiến trình
10
Ví dụ tạo nhóm tiến trình
11
Định tuyến MPI_Group_incl
Vị trí của tiến trình gọi trong nhóm mới được xác
định bởi mảng member
Tiến trình gọi có rank là member(i) sẽ có rank là i trong
nhóm mới
i nằm trong khoảng (0, count -1)
Nếu count = 0, định danh của nhóm mới có giá trị
MPI_GROUP_EMPTY
Hai nhóm có thể có tiến trình giống nhau, nhưng
khác nhau về thứ tự phụ thuộc vào ma trận member
12
Định tuyến MPI_group_excl
Tạo ra nhóm mới từ nhóm đã tồn tại bằng cách chỉ
định các tiến trình không phải thành viên nhóm mới
13
Ví dụ tạo nhóm mới
14
Ví dụ tạo nhóm mới
15
Định tuyến MPI_group_excl
Vị trí tiến trình gọi trong nhóm mới tương ứng với
rank của nó trong nhóm cũ
Thứ tự các phần tử trong mảng nonmember không
ảnh hưởng đến rank của tiến trình trong nhóm mới
Nếu count=0, nhóm mới tạo ra giống hệt nhóm cũ
Các rank của các tiến trình trong mảng nonmember:
Không được trùng nhau.
Phải hợp lệ (tồn tại)
16
Các định tuyến lấy thông tin nhóm
Lấy về rank của tiến trình trong nhóm
MPI_Group_rank (MPI_Group group, int *rank);
Lấy về kích thước của nhóm tiến trình
MPI_Group_size (MPI_Group group, int *size);
So sánh mối quan hệ giữa 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: các tiến trình trong hai nhóm giống nhau, được đánh thứ tự
rank giống nhau
MPI_SIMILAR: các tiến trình trong hai nhóm giống nhau, được đánh thứ
tự rank khác nhau
MPI_UNEQUAL: mỗi quan hệ khác
17
Định tuyến MPI_Group_rank
Trước khi tạo nhóm
MPI_COM_WORLD: (0, 1, …, p-1)
Worker_group:
Sau khi tạo nhóm
MPI_COM_WORLD: 0
Worker_group: (0, 1, …, p-2)
Nếu tiến trình đang gọi có rank = 0: giá trị group_rank là
MPI_UNDEFINED
18
Định tuyến MPI_Group_free
Trả group về 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 ra communicator từ một communicator đã có sẵn
Tất cả các tiến trình cần gọi một hàm giống nhau với các
tham số giống nhau
Các tiến trình không tham dự trong nhóm cho kết quả
MPI_Comm_Null
Giải phóng bằng MPI_Comm_Free
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tính toán lưới - Bài 6: Các thao tác trên communicator - Nguyễn Hữu Đức", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- bai_giang_tinh_toan_luoi_bai_6_cac_thao_tac_tren_communicato.pdf