1. Trang chủ
  2. » Công Nghệ Thông Tin

slike bài giảng tính toán lưới - nguyễn hữu đức bài 5 truyền thông cộng tác

57 749 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 57
Dung lượng 680,98 KB

Nội dung

Truyền thông cộng tác (Collective communication) 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         Truyền thông kết hợp kiểu nhiều-một truyền thông quảng bá kiểu một-nhiều Truyền thông kết hợp/quảng bá kiểu Nhiều-Nhiều Phép toán All-Reduce Prefix-Sum Phép tốn Scatter Gather Truyền thơng Nhiều-Nhiều đặc biệt Phép dịch vòng Cải tiến tốc độ số phép tốn truyền thơng Một số định tuyến truyền thơng cộng tác MPI High Performance Computing Center - HUT Truyền thông kết hợp kiểu nhiều-một/ truyền thông quảng bá kiểu một-nhiều  Truyền thông kết hợp nhiều-một/truyền thông quảng bá một-nhiều tạo thành cặp truyền thông Truyền thông quảng bá một-nhiều p1 p1 Truyền thông kết hợp nhiều-một Được dùng nhiều giải thuật quan trọng như: nhân ma trận-vector, phép khử Gause, tìm đường ngắn nhất, nhân vector High Performance Computing Center - HUT Topology cho truyền thông quảng bá m ột-nhiều   Một cách tự nhiên, ta thường tiến hành truyền thông quảng bá một-nhiều cách gửi (p-1) thơng điệp từ nguồn tới (p-1) đích Tuy nhiên, cách không hiệu quả:    Tiến trình nguồn bị tượng thắt cổ chai Giảm hiệu suất mạng truyền thông: thời điểm có cặp nút hoạt động Xét truyền thơng quảng bá một-nhiều topology khác nhau:    Topology vịng/ mảng tuyến tính Topology lưới Topology siêu lập phương High Performance Computing Center - HUT Ring or Linear Array Topology  Sử dụng kỹ thuật Nhân đôi đệ qui (recursive doubling) sau:     Tiến trình nguồn gửi thơng điệp đến tiến trình j Sau kết thúc, hai tiến trình đồng thời gửi thơng điệp cho tiến trình khác đợi Quá trình tiếp tục tồn tiến trình nhận liệu Dữ liệu quảng bá log(p) bước High Performance Computing Center - HUT Truyền thơng quảng bá một-nhiều vịng nút    Trong bước, chọn đích cẩn thận, đích ảnh hưởng đến hiệu Thông điệp gửi từ nút cho nút xa với (nút 4) Trong bước 2: khoảng cách bị giảm nửa High Performance Computing Center - HUT Truyền thông kết hợp nhiều-một vòng nút      Đơn giản, ta đảo ngược hướng chuỗi truyền thông Đầu tiên, nút lẻ gửi liệu sang nút chẵn trước Nội dung kết hợp vào nút chẵn Còn lại nút: 0,2,4,6 Nút + nút = nút 0; nút + nút = nút 4; Nút + nút = nút 0; High Performance Computing Center - HUT Ví dụ nhân ma trận-vector   Mỗi dòng ma trận cần phải nhân với vector Bước1: Truyền thông quảng bá một-nhiều:     Bước 2: Với tiến trình   Mỗi phần tử vector nguồn Quảng bá đến cột tương ứng ma trận Mỗi cột mảng tuyến tính n phần t Nhân phân tử ma trận với phẩn tử vừa nhận Bước 3: Tiến hành truyền thông kết hợp nhiều-một:   Trên dịng ma trận tiến trình Tiến trình ma trận đích High Performance Computing Center - HUT Topology lưới   Xét lưới vng có p nút Mỗi dịng/cột mảng tuyến tính p1/2 phần tử Từ lưới mở rộng cho lưới khác Toán hạng truyền thông tiến hành theo pha:   Pha 1: Tiến hành nhiều dòng Mỗi dòng mảng tuyến tính Pha 2: Tiến hành pha 1, cột High Performance Computing Center - HUT Truyền thông quảng bá một-nhiều lưới vuông 16 nút  Pha 1: truyền thông quảng bá một-nhiều từ nguồn đến (p1/2 – 1) nút hàng  Bước 1,  Sau nút hàng có liệu, tiếp tục bước  Pha 2: truyền thông quảng bá một-nhiều cho cột tương ứng  Nguồn Bước 3, High Performance Computing Center - HUT 10 Nhóm thao tác liệu   Thực thi tác vụ thu gọn tồn cục, ví dụ tính tổng, tìm số lớn nhất, tìm số nhỏ nhất, Các tác vụ   Tác vụ có sẵn Hoặc người dùng tự định nghĩa High Performance Computing Center - HUT 43 Định tuyến MPI_Reduce  Reduce : int MPI_Reduce (void* sbuf, void* rbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)  Kết hợp giá trị phần tử từ tiến trình gửi theo thao tác op, kết lưu tiến trình root High Performance Computing Center - HUT 44 Định tuyến MPI_Allreduce  All reduce: int MPI_Allreduce (void* sbuf, void* rbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)   Giống thao tác reduce, kết gửi đến cho tất tiến trình communicator Ý nghĩa tham số tương tự hàm reduce High Performance Computing Center - HUT 45 Các phép toán thao tác liệu High Performance Computing Center - HUT 46 Tham khảo thêm    MPI_Reduce_scatter() MPI_Scan() Các phép toán người dùng tự định nghĩa High Performance Computing Center - HUT 47 Barrier Synchronizations  Là chế đồng bộ, tạm ngừng tiến trình  Tiến trình tiếp tục thực tất tiến trình khác sẵn sàng  Đảm bảo tiến trình bắt đầu thực (chuỗi) thao tác High Performance Computing Center - HUT 48 Case study: tìm kiếm song song  Lập trình đếm số lần xuất khố (key) dãy cho trước, sử dụng hàm truyền thông cộng tác  Dãy số cho trước lưu file text data.in gồm N phần tử có định dạng :      Các phần tử phân biệt khoảng trắng Yêu cầu chọn số tiến trình thực ước số phần tử dãy Khố cần tìm kiếm truyền vào dạng tham số chương trình Ví dụ:   Số_phần tử_N Phần_tử_thứ_1 phần_tử_thứ_2 phần_tử_thứ_N $ mpirun -np program 23 Sử dụng hàm truyền thông cộng đồng : MPI_Bcast(), MPI_Scatter(), MPI_Reduce() High Performance Computing Center - HUT 49 Case study: tìm kiếm song song # # High Performance Computing Center - HUT 50 Case study: tìm kiếm song song Hàm đọc liệu từ file data.in : #define FILE_NAME "data.in" int * loadData(int * NoElements){ FILE * dataf; int * dataSet; int i; /* mo file */ dataf = fopen(FILE_NAME, "r"); if (!dataf){ /* loi mo file */ printf("Loi mo file %s\n", FILE_NAME); return NULL; } /* doc so phan tu */ fscanf(dataf, "%d", NoElements); /* cap phat vung nho cho mang du lieu */ dataSet = (int*) malloc(sizeof(int) * (*NoElements)); /* doc mang du lieu */ for ( i=0 ; i< (*NoElements) ; i++ ) fscanf(dataf, "%d", dataSet+i); fclose(dataf); return dataSet; } High Performance Computing Center - HUT 51 Case study: tìm kiếm song song Hàm đếm số lần xuất khoá key dãy arr int search(int *arr, int ne, int key){ int i; int count = 0; for ( i=0 ; i

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN