ĐẠI HỌC ĐÀ NẴNGTRƯỜNG ĐẠI HỌC BÁCH KHOA TIỂU LUẬN MÔN HỌC HỆ PHÂN TÁN Đề tài: BIỂU THỨC SONG SONG VÀ PHÂN TÁN TRONG CÁC NGÔN NGỮ THUẬT TOÁN VÀ CÁC ĐIỂM CẢI TIẾN CHỦ YẾU ĐỂ THUẬT TOÁN LA
Trang 1ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
TIỂU LUẬN MÔN HỌC
HỆ PHÂN TÁN
Đề tài:
BIỂU THỨC SONG SONG VÀ PHÂN TÁN TRONG CÁC NGÔN NGỮ THUẬT TOÁN VÀ CÁC ĐIỂM CẢI TIẾN
CHỦ YẾU ĐỂ THUẬT TOÁN LAMPORT
HOẠT ĐỘNG NHANH HƠN
GVHD: PGS.TS LÊ VĂN SƠN HVTH: NGUYỄN THÀNH THỦY LỚP: KHMT-K10 (2008-2011)
GVHD: PGS.TS LÊ VĂN SƠN HVTH: NGUYỄN THÀNH THỦY LỚP: KHMT-K10 (2008-2011)
Trang 2NỘI DUNG TRÌNH BÀY
1 Một số cơ sở lý luận có liên quan
2 Biểu thức song song và phân tán trong các
ngôn ngữ thuật toán
3 Các điểm cải tiến chủ yếu để thuật toán
Lamport hoạt động tốt hơn
4 Kết luận
Trang 3HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 3
Xử lý song song và xử lý tuần tự
Sự khác biệt giữa xử lý song song và tuần tự ?
Trong tính toán song song nhiều bộ xử lý cùng
kết hợp với nhau để giải quyết cùng một vấn đề
Trong tính toán tuần tự với một bộ xử lý thì mỗi
thời điểm chỉ thực hiện được một phép toán
Trang 41 MỘT SỐ CƠ SỞ LÝ LUẬN CÓ LIÊN QUAN
Xử lý song song và xử lý tuần tự (tt)
Sự khác biệt giữa xử lý song song và tuần tự ?
Trang 5HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 5
Xử lý song song và xử lý tuần tự (tt)
Tại sao phải xử lý song song ?
Ngày càng xuất hiện nhiều bài toán mà những hệ thống đơn không đáp ứng được yêu cầu xử lý về thời gian
=> Đòi hỏi phải sử dụng những giải pháp xử lý song song
Trang 62. BIỂU THỨC SONG SONG VÀ PHÂN TÁN
TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.1 Tính toán song song và phân tán
(Parallel and Distributed Computing)
Tính toán song song phân tán là gì?
Là một dạng tính toán hiệu năng cao, bằng cách
tận dụng sức mạnh tính toán của một tập các máy tính hoặc bộ xử lý được kết nối thông qua môi trường truyền thông.
lớn hoặc những bài toán thời gian thực.
Trang 7HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 7
2. BIỂU THỨC SONG SONG VÀ PHÂN TÁN
TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.1 Tính toán song song và phân tán (tt)
Môi trường lập trình song song
Môi trường lập trình song song được chia làm hai mức:
Mức hệ thống: thường là một phần mềm hệ
thống chạy làm nền (background)
Mức ngôn ngữ lập trình song song: Ngôn ngữ
C/C++ kết hợp với bộ thư viện của MPI hoặc PVM; FORTRAN, HPF, CSP, ADA,
Trang 82. BIỂU THỨC SONG SONG VÀ PHÂN TÁN
TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.1 Tính toán song song và phân tán (tt)
Mô hình song song: Được chia ra các dạng chính
Trang 9HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 9
2. BIỂU THỨC SONG SONG VÀ PHÂN TÁN
TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.2 Các chiến lược song song
Có ba chiến lược thiết kế chương trình song song phổ biến là:
Song song hoá kết quả
Song song hoá đại diện
Song song hoá chuyên biệt
Trang 102. BIỂU THỨC SONG SONG VÀ PHÂN TÁN
TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.2 Các chiến lược song song (tt)
Song song hoá kết quả:
Là cơ chế tính toán song song tập trung trên
toàn bộ dữ liệu của bài toán
Mỗi bộ xử lý sẽ cho một phần kết quả của bài
toán sao cho các phần việc được thực hiện độc
lập
Sau khi các phần việc hoàn thành, công đoạn
cuối cùng là kết hợp các thành phần để được
kết quả hoàn chỉnh
Trang 11HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 11
2. BIỂU THỨC SONG SONG VÀ PHÂN TÁN
TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.2 Các chiến lược song song (tt)
Song song hoá kết quả: (tt)
Ví dụ: Tính n! trên hai máy tính
Mỗi máy sẽ nhân n/2 số với nhau
Kết quả của máy tính thứ hai, sẽ được chuyển về máy tính thứ nhất để nó nhân hai kết quả bộ phận
Trang 122. BIỂU THỨC SONG SONG VÀ PHÂN TÁN
TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.2 Các chiến lược song song (tt)
Trang 13HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 13
2. BIỂU THỨC SONG SONG VÀ PHÂN TÁN
TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.3 Một số ngôn ngữ thuật toán song song
Có hai loại ngôn ngữ thuật toán song song
Một số ngôn ngữ cho phép lập trình ứng dụng với tư
cách là kích hoạt song song.
Một số ngôn ngữ khác cho phép triển khai tường
minh công việc phân tán.
Trang 142. BIỂU THỨC SONG SONG VÀ PHÂN TÁN
TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.3 Một số ngôn ngữ thuật toán song song (tt)
Ngôn ngữ CSP (Communicating Sequential Processes)
Ngôn ngữ CSP cho phép lập trình ứng dụng
dưới dạng một số lượng tiến trình cố định
Các tiến trình này có thể phối hợp với nhau nhờ
phép toán liên lạc kiểu "kiểu gặp gỡ"
Một chương trình bao gồm tập hợp các tiến trình
[<Tiến trình 1>]||[<Tiến trình 2>]||…||[<Tiến trình n>]
Trong đó, <Tiến trình> dựa vào sự kết hợp giữa
<tên> với <mã> chương trình nguồn của tiến trình:
Trang 15HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 15
2. BIỂU THỨC SONG SONG VÀ PHÂN TÁN
TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.3 Một số ngôn ngữ thuật toán song song (tt)
Trang 162. BIỂU THỨC SONG SONG VÀ PHÂN TÁN
TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.3 Một số ngôn ngữ thuật toán song song (tt)
Ngôn ngữ ADA là ngôn ngữ mô phỏng.
Thông qua ngôn ngữ này người ta có thể phân
rã chương trình thành một tập hợp các tiến trình song song
Trang 17HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 17
2. BIỂU THỨC SONG SONG VÀ PHÂN TÁN
TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.3 Một số ngôn ngữ thuật toán song song (tt)
Một chương trình tuần tự hay thân của hoạt
động được thực hiện cùng lệnh khởi sự ban
đầu
Trang 182. BIỂU THỨC SONG SONG VÀ PHÂN TÁN
TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.3 Một số ngôn ngữ thuật toán song song (tt)
Trang 19HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 19
3. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.1 Thuật toán Lamport
Thuật toán được sử dụng trong mô hình hàng đợi phân tán
Các tài nguyên và các motor cấp phát tài nguyên được phân bố ở các trạm khác nhau
Trang 203. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.1 Thuật toán Lamport (tt)
Ví dụ: Bài toán bãi để xe
Trang 21HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 21
3. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.1 Thuật toán Lamport (tt)
Nội dung thuật toán:
Khi Pi yêu cầu tài nguyên:
Tiến trình Pi gửi thông điệp Request(ti ,i) đến tất
cả các tiến trình khác và cả chính bản thân nó
Khi một tiến trình Pk nào đó, nhận được yêu cầu
từ Pi, nó đặt yêu cầu đó vào hàng đợi và gửi thông điệp Reply lại cho Pi.
• t i là thời gian logic cục bộ của trạm phát
Trang 223. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.1 Thuật toán Lamport (tt)
Khi Pi yêu cầu tài nguyên:
P1
P2P3
Trang 23HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 23
3. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.1 Thuật toán Lamport (tt)
Khi nào Pi được phép sử dụng tài nguyên?
Pi nhận được thông điệp trả lời có nhãn thời
gian lớn hơn ti từ các tiến trình khác.
Và yêu cầu của chính nó ở đầu hàng đợi (vào sớm nhất).
Trang 243. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.1 Thuật toán Lamport (tt)
Khi nào Pi được phép sử dụng tài nguyên?
P1
P2P3
1
1 2
2
2
Reply(14)
Reply(13) Reply(16)
Reply(17)
Trang 25HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 25
3. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.1 Thuật toán Lamport (tt)
Khi Pi giải phóng tài nguyên:
Khi thực hiện xong, Pi sẽ xóa yêu cầu của nó ra
khởi hàng đợi và gửi thông điệp Release đến tất
cả các tiến trình
Một tiến trình Pk khi nhận được thông điệp
Release, nó sẽ xóa yêu cầu của Pi ra khỏi hàng đợi.
Trang 263. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.1 Thuật toán Lamport (tt)
Khi Pi giải phóng tài nguyên:
P1
P2P3
1
1 2
2
2
Release(20)
Release(20) Release(20)
Trang 27HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 27
3. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.1 Thuật toán Lamport (tt)
Vấn đề: Có quá nhiều thông điệp được gửi đi
trong hệ thống dẫn đến hệ thống làm việc quá tải, tốc độ xử lý chậm, …
Khắc phục: Giải thuật Ricart-Agrawala sẽ cải
thiện các hạn chế trên
Trang 283. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.2 Thuật toán Ricart-Agrawala
Được phát triển bởi Glenn Ricart và Ashok
Trang 29HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 29
3. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.2 Thuật toán Ricart-Agrawala
Nội dung thuật toán
Khi Pi yêu cầu tài nguyên:
Tiến trình Pi gửi thông điệp Request(t i ,i) đến tất
cả các tiến trình kể cả bản thân nói
Khi một tiến trình Pk nào đó nhận được yêu cầu
từ Pi:
rỗi hoặc là yêu cầu được phát sinh sớm nhất.
• Còn lại yêu cầu sẽ bị trì hoãn (deferred).
Trang 303. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.2 Thuật toán Ricart-Agrawala
Khi Pi yêu cầu tài nguyên:
P1
P2P3
Trang 31HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 31
3. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.2 Thuật toán Ricart-Agrawala
Khi Pi yêu cầu tài nguyên:
P1
P2P3
1
1
1 2
Trang 323 CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN
3.2 Thuật toán Ricart-Agrawala (tt)
Khi nào Pi được sử dụng tài nguyên?
Khi và chỉ khi tiến trình đó nhận được thông
điệp Reply từ tất cả các trạm.
Khi Pi giải phóng tài nguyên:
Khi Pi giải phóng tài nguyên, nó sẽ gửi thông điệp
Reply lại cho các tiến trình đang bị trì hoãn
trước đó
Trang 33HVTH Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011) 33
3. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.2 Thuật toán Ricart-Agrawala (tt)
Khi giải phóng tài nguyên:
P1
P2P3
2
2
Reply(is OK)
Trang 343. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU
ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG TỐT HƠN 3.3 So sánh hai thuật toán
Thuật toán Ricart-Agrawala tối ưu hơn thuật toán Lamport nhờ việc kết hợp giữa hai thông điệp
Release và Reply
Điểm khác nhau cơ bản:
Ý tưởng của Lamport là để duy trì các bản sao gắn bó của một cấu trúc dữ liệu bản sao
Ricart-Agrawala tránh cấu trúc dữ liệu và chỉ truyền sự thay đổi trạng thái
Thông điệp cần thiết cho việc thực hiện đoạn găng của thuật toán Lamport là 3(N-1) và của
Trang 35 Vì thời gian và khả năng có hạn nên bản báo cáo không tránh sai sót, Kính mong Thầy và mọi người góp ý!
Trang 36XIN CHÂN THÀNH
CÁM ƠN !!!