Tải bản đầy đủ (.pptx) (27 trang)

THUYẾT TRÌNH THUẬT TOÁN SONG SONG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (381.47 KB, 27 trang )

Trườ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
GVHD: Ths Thiều Xuân Khánh
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 Toán Sắp Xếp Tổng)
I. 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.

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
Reduction 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 a1 a2 an-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ý "
Cost 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ý)
Cost 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
Solving Reducing Problem on
Hypercube SIMD Computer
Solving Reducing Problem on
Hypercube SIMD Computer (cond’t)
Sử dụng p bộ xử lý để thêm n số lượng(p << n)
Solving Reducing Problem on
Hypercube SIMD Computer (cond’t)
Solving 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.
Solving Reducing Problem on
2D-Mesh SIMD Computer(cont’d)

Ví dụ: tính tổng của lưới 4*4

Solving Reducing Problem on
2D-Mesh SIMD Computer(cont’d)
Solving Reducing Problem on
2D-Mesh SIMD Computer(cont’d)
Solving 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:
Solving Reducing Problem on
UMA Multiprocessor Model(cont’d)
Solving Reducing Problem on UMA
Multiprocessor Model(cont’d)
Solving Reducing Problem on UMA
Multiprocessor Model(cont’d)
Solving 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ể)
Broadcast

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
Broadcast 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
Broadcast Algorithm on Hypercube SIMD
Broadcast Algorithm on Hypercube SIMD

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.
Johnsson 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 đó
Prefix 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

×