Kiến trúc các hệ thống tính toán Chương 5 Thuật toán song song Nguyễn Phú Bình – Trần Trung Kiên Bộ môn Kỹ thuật Máy tính, Khoa Công nghệ Thông tin Trường Đại học Bách Khoa Hà Nội Tài li
Trang 2Lưu ý của tác giả
Không được tự ý sao chép hay quảng bá bài giảng này khi chưa được sự đồng ý của các tác giả.
Địa chỉ liên hệ của các tác giả:
Nguyễn Phú Bình
Email: ngphubinh@yahoo.com Mobile: 0983533925
Website: http://phubinh.vicosoft.com/ktmt
Trần Trung Kiên
Email: trankien_bk@yahoo.com Mobile: 0914919392
Bộ môn Kỹ thuật Máy tính
Khoa Công nghệ Thông tin Trường Đại học Bách Khoa Hà Nội C1- P322, Tel: 8696125
Website: http://ktmt.shorturl.com
Trang 3Kiến trúc các hệ thống tính toán
Chương 5
Thuật toán song song
Nguyễn Phú Bình – Trần Trung Kiên
Bộ môn Kỹ thuật Máy tính, Khoa Công nghệ Thông tin
Trường Đại học Bách Khoa Hà Nội
Tài liệu tham khảo:
Bài giảng tính toán song song (PGS,TS Nguyễn Đức Nghĩa)
Trang 4 Thuật toán tuần tự là cơ sở cho các thao tác để giải
quyết các vấn đề trong các máy tính tuần tự
Thuật toán song song là cơ sở, cho biết cách thức đểgiải quyết các vấn đề bằng cách sử dụng tính toán
song song
Trang 5 Tổ chức dữ liệu vào, ra, và các dữ liệu trung gian
Quản lý việc truy cập dữ liệu dùng chung bởi nhiều bộ xử lý
Đồng bộ các bộ xử lý
Trang 6Những khái niệm cơ bản:
Phân rã bài toán (Decomposition): là quá trình chia nhỏmột vấn đề lớn thành các phần nhỏ gọi là các nhiệm vụ/công việc nhỏ (task / subjob)
Các nhiệm nhỏ (task / subjob) có độ lớn tùy ý
Trang 8 Chia công việc thành n task
Mỗi task thực hiện tính y[i] (i từ 1 tới n)
Các task này hoàn toàn độc lập với nhau và có thể
thực hiện đồng thời
Trang 9 Độ thị về sự phụ thuộc lẫn nhau giữa các nhiệm công việc (task-dependency graph):
Trang 10 VD2: Thực hiện truy vấn cơ sở dữ liệu
Trang 11 Câu truy vấn:
MODEL="Civic" AND YEAR="2001" AND
(COLOR="Green" OR COLOR="White")
Trang 1212
Trang 13 Tiến trình (Process): là một quá trình xử lý để thực hiện
1 task
Mapping: Cơ chế để ánh xạ các task tới các process
Trang 14 Các kỹ thuật phân rã (decomposition) bài toán:
Phân rã đệ qui (Recursive decomposition)
Phân rã theo dữ liệu (Data decomposition)
Phân rã theo các khả năng có thể xảy ra
(exploratory decomposition)
Trang 15Phân rã đệ qui
Phân rã đệ qui: Bài toán được chia thành các task nhỏ hơn, mỗi task nhỏ đó lại được áp dụng cách chia
tương tự như vậy
Ví dụ : Sắp xếp nhanh (quick sort):
-Giả sử cần sắp xếp 1 dãy A
-Chọn một phần tử x trong A làm mốc (chốt) và chia A thành 2 phần A0 và A1: A0 gồm các phần từ nhỏ hơn
x, A1 gồm các phần tử không nhỏ hơn x A0 và A1 lại tiếp tục áp dụng cách thức như trên cho đến khi mỗi
phần chỉ gồm 1 phần tử
Trang 1616Phân rã đệ qui
Trang 17Phân rã theo dữ liệu
Phân rã theo dữ liệu:
Partitioning Output Data
Partitioning Input Data
Partitioning both Input and Output Data
Partitioning Intermediate Data
Trang 18Phân rã theo dữ liệu
Phân rã theo dữ liệu đầu ra:
Các phần tử dữ liệu đầu ra có thể được tính độc lập nhau
VD1: Nhận 2 ma trận:Chia theo dữ liệu đầu ra
Trang 1919Phân rã theo dữ liệu
VD2:
Trang 2020Phân rã theo dữ liệu
Trang 2121Phân rã theo dữ liệu
Phân rã theo dữ liệu đầu vào:
Trang 2222Phân rã theo dữ liệu
Phân rã theo dữ liệu đầu vào và đầu ra
Trang 2323Phân rã theo dữ liệu
Phân rã theo dữ liệu trung gian:
Trang 2424Phân rã theo dữ liệu
Trang 25Phân rã theo các khả năng có thể xảy ra
Phân rã theo các khả năng có thể xảy ra: Đối với
những bài toán cần duyệt và tìm ra phương án giải
quyết (vd: tìm nước cờ, tìm đường đi ngắn nhất,…),
không gian tìm kiếm sẽ được chia nhỏ và thực hiện
trên từng tiến trình
VD:
Trang 26Phân rã theo các khả năng có thể xảy ra
Trang 27Phân rã theo các khả năng có thể xảy ra
Trang 28Một số thuật toán song song
Ngôn ngữ mô tả thuật toán
Các thuật toán song song
Trang 30… End for
Vòng lặp While
While đieukiên Do S2
S2
… End While
Trang 31Ngôn ngữ mô tả thuật toán
Cấu trúc thể hiện song song
Cấu trúc 1:
For biến=1 to n do in parallel
S1 S2
… End parallel
Cấu trúc 2:
For x € S do in parallel S1
S2
… End parallel
Trang 32 Các thuật toán song song: