Thuật Toán Song Song Giới Thiệu Sự Phát Triển Thuật Toán Song Song Reduction algorithms Thuật Toán Giảm Thiểu Broadcast algorithms Thuật Toán Quảng Bá Prefix sums algorithms Thuật
Trang 1Trường Đại học công nghệ thông tin
Khoa Kỹ Thuật Máy Tính
THUYẾT TRÌNH: THUẬT TOÁN SONG SONG
Nhóm SV báo cáo: 10520330 - Trần Võ Hảo
10520364 - Trần Thanh Liêm
GVHD: Ths Thiều Xuân Khánh
Trang 2Thuật Toán Song Song
Giới Thiệu Sự Phát Triển Thuật Toán Song Song
Reduction algorithms (Thuật Toán Giảm Thiểu)
Broadcast algorithms (Thuật Toán Quảng Bá)
Prefix sums algorithms (Thuật Toán Sắp Xếp Tổng)
Trang 3I Giới Thiệu Sự Phát Triển Thuật Toán Song Song
Thuật toán song song chủ yếu là phụ thuộc vào nền tảng và cấu trúc song song
Phân loại thuật toán MIMD
o Các thuật toán dữ liệu song song được lập lịch trước
o Các thuật toán dữ liệu song song tự lập lịch
o Các thuật toán điều khiển song song
Theo M.J.Quinn (1994), có 7 thiết kế chiến lược cho các thuật toán song song
Trang 4• 3 vấn đề cơ bản được xem xét
o Reduction
o Broadcast
o Prefix sums
• Mục tiêu kiến trúc
o Mô hình Hypercube SIMD
o Mô hình lưới 2D SIMD
o Mô hình đa xử lý UMA
o Đa máy tính Hypercube
Trang 5Reduction Problem
Mô tả: Cho n giá trị a0, a1, a2 an-1, một phép kết hợp , hãy sử dụng những bộ xử lý p để tính tổng: ⊕
S = a0 a⊕ 1 a⊕ 2 a⊕ ⊕ n-1
Chiến lược thiết kế 1
- " Nếu có chi phí tối ưu giải thuật CREW PRAM tồn tại và cách thức xử lý PRAM tương tác thông qua các biến chia sẻ ánh xạ vào mục tiêu kiến trúc, giải thuật PRAM là điểm khởi đầu hợp lý "
Trang 6Cost optimal pram algorithm for the reduction problem
Phí tối ưu phức tạp thuật toán PRAM: O (logn) (sử dụng n chia 2 bộ xử lý)
Ví dụ với n = 8 và p = 4 bộ vi xử lý)
Trang 7Cost Optimal PRAM Algorithm for the Reduction Problem(cont’d)
Sử dụng p = n chia 2 bộ xử lý để thêm số lượng n:
Ghi chú: các bộ xử lý giao tiếp trong một mô hình cây biominal
Trang 8Solving Reducing Problem on Hypercube SIMD Computer
Trang 9Solving Reducing Problem on
Hypercube SIMD Computer (cond’t)
Sử dụng p bộ xử lý để thêm n số lượng(p << n)
Trang 10Solving Reducing Problem on
Hypercube SIMD Computer (cond’t)
Trang 11Solving reducing problem on 2D-Mesh SIMD computer
Một lưới 2D với p * p bộ xử lý cần ít nhất 2(p-1) bước gửi dữ liệu giữa hai nút xa nhất
Các ràng buộc thấp hơn tính phức tạp của bất kỳ thuật toán tổng cắt giảm là 0(n/p2 + p).
Ví dụ:một lưới 4 * 4 cần 2 * 3
bước để có được tổng
phụ từ bộ xử lý góc
Trang 12Solving Reducing Problem on
2D-Mesh SIMD Computer(cont’d)
Ví dụ: tính tổng của lưới 4*4
Trang 13Solving Reducing Problem on
2D-Mesh SIMD Computer(cont’d)
Trang 14Solving Reducing Problem on
2D-Mesh SIMD Computer(cont’d)
Trang 15Solving Reducing Problem on
UMA Multiprocessor Model(MIMD)
Dễ dàng truy cập dữ liệu như PRAM
Bộ xử lý thực hiện không đồng bộ, vì vậy chúng ta phải đảm bảo rằng không có bộ xử lý truy cập biến
"không ổn định"
Biến được sử dụng:
Trang 16Solving Reducing Problem on
UMA Multiprocessor Model(cont’d)
Trang 17Solving Reducing Problem on UMA Multiprocessor Model(cont’d)
Trang 18Solving Reducing Problem on UMA Multiprocessor Model(cont’d)
Trang 19Solving Reducing Problem on UMA
Multiprocessor Model(cont’d)
Độ phức tạp thuật toán 0(n/p + p)
Ưu điểm của thuật toán này là gì so với một số khác sử dụng kiểu thành phần quan trọng để tính tổng ?
Chiến lược thiết kế 2:
o Hãy tìm một thuật toán dữ liệu song song trước khi xem xét một thuật toán điều khiển song song
Trên máy tính MIMD, chúng ta nên khai thác cả hai dữ liệu song song và điều khiển song song (nổ lực phát triển chương trình SPMD nếu có thể)
Trang 20 Mô tả: Với một thông điệp có độ dài M được lưu trữ tại một bộ xử lý, hãy gửi thông điệp này đến tất cả các
bộ xử lý khác
Những điều cần được xem xét:
- Chiều dài của thông điệp
- Thông điệp truyền trên cao và thời gian truyền tải dữ liệu
Trang 21Broadcast Algorithm on Hypercube SIMD
Nếu số lượng dữ liệu nhỏ, thuật toán tốt nhất mất logp bước trên p nút hypercube
Ví dụ: một số quảng bá trên hypercube 8 nút
Trang 22Broadcast Algorithm on Hypercube SIMD
Trang 23 Các thuật toán trước đó
- Sử dụng tối đa p/2 trong số plogp các liên kết của hypercube
- Yêu cầu thời gian Mlogp để quảng bá một chiều dài thông điệp M => không hiệu quả để quảng bá tin nhắn dài
Johhsson và Ho (1989) đã đưa ra một thuật toán mà thực hiện logp lần nhanh hơn bằng cách:
- Phá bỏ thông điệp vào các bộ phận logp
- Quảng bá mỗi phần đến tất cả các nút khác thông qua điểm khác nhau ở cây mở rộng biominal
Trang 24Johnsson and Ho’s Broadcast Algorithm on Hypercube SIMD
• Thời gian quảng bá một thông điệp chiều dài M là Mlogp / LogP = M
• Số lượng tối đa của các liên kết sử dụng đồng thời là plogp, lớn hơn nhiều so với
các thuật toán trước đó
Trang 25Prefix SUMS Problem
Mô tả: Cho một thao tác liên kết và một mảng A chứa n phần tử, chúng ta hãy tính số lượng n.⊕
A[0]
A[0] A[1]⊕
A[0] A[1] A[2]⊕ ⊕
…
A[0] A[1] A[2] … A[n-1] ⊕ ⊕ ⊕ ⊕
Chi phí tối ưu thuật toán PRAM: tính toán song song: Lý thuyết và thực tiễn ", mục 2.3.2, p 32
Trang 26Prefix SUMS Problem on Multicomputers
Tìm kiếm các tổng tiền tố của 16 giá trị
Trang 27Prefix SUMS Problem on Multicomputers(cont’d)
- Mỗi bộ xử lý tính tổng tiền tố các yếu tố riêng của mình
và thêm vào mỗi kết quả tổng của các giá trị tổ chức trong số bộ xử lý thấp hơn