Tải bản đầy đủ (.ppt) (36 trang)

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

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 (615.85 KB, 36 trang )

ĐẠ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
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
NGÔN NGỮ THUẬT TOÁN VÀ CÁC ĐIỂM CẢI TIẾN
CHỦ YẾU ĐỂ THUẬT TOÁN LAMPORT
CHỦ YẾU ĐỂ THUẬT TOÁN LAMPORT


HOẠT ĐỘNG NHANH HƠN
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)

HVTH. Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011)
2
NỘ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



HVTH. Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011)
3
1. MỘT SỐ CƠ SỞ LÝ LUẬN CÓ LIÊN QUAN
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.

HVTH. Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011)
4
1. 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ự ?

HVTH. Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011)
5
1. MỘT SỐ CƠ SỞ LÝ LUẬN CÓ LIÊN QUAN
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.

HVTH. Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011)
6
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
(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.

Nhằm giải quyết các bài toán có độ phức tạp thời gian
lớn hoặc những bài toán thời gian thực.

HVTH. 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,

HVTH. Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011)
8
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ô hình song song: Được chia ra các dạng chính
sau đây:

SIMD (Single Instruction Multiple Data): Đơn dòng
lệnh, đa dữ liệu.

MISD (Multiple Instruction Single Data): Đa dòng
lệnh, đơn dữ liệu.

MIMD (Multiple Instructions Multiple Data): Đa
dòng lệnh, đa dữ liệu.

HVTH. 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

HVTH. Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011)
10
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ả:

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.


HVTH. 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.

HVTH. Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011)
12
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)
PC1
PC2
B1: Gửi giá trị n
B2: Tính P1=1*2*3*…*(n div 2) B2: Tính P2=n*(n-1)*…* ((n div 2) +1)
B3: Gửi giá trị P2
B4: Return (P1*P2)

HVTH. 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.

HVTH. Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011)
14
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)

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: Name::<text>


HVTH. 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)

Ngôn ngữ CSP (tt)

Cú pháp để gửi thông điệp từ P cho Q:
Q!<Biểu thức>

Cú pháp để tiếp nhận thông điệp do P gửi cho Q:
P?<Biến>

Ví dụ:

Tiến trình P gửi cho tiến trình Q hai số nguyên:
Q!(5,7) //Lệnh trong P

Tiến trình Q tiếp nhận thông điệp:
P?(i,j) //Lệnh trong Q

HVTH. Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011)
16
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)

Ngôn ngữ ADA


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.

HVTH. 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)

Ngôn ngữ ADA (tt)
Khi mô tả một hoạt động trong ngôn ngữ ADA, cần
xác định các điểm sau:

Các dữ liệu cục bộ.

Các thủ tục cho phép truy cập vào dữ liệu cục
bộ.

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.

HVTH. Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011)
18
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)
Thân của tiến trình T1
Thân của tiến trình T1
Thân của tiến trình T2
Thân của tiến trình T2
PC1:
Khai báo T1, thực hiện T2
Thủ tục P2
Dữ liệu D2
Thủ tục P1
Dữ liệu D1
T2.P2(X)
PC2:
Khai báo T2, thực hiện T1
Quy trình thực hiện từ xa trong ADA

HVTH. 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.

HVTH. Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011)
20

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í dụ: Bài toán bãi để xe

HVTH. 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(t
i
,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

HVTH. Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011)
22

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 yêu cầu tài nguyên:
P1
P2
P3
Request(P1,8)
Request(P1,8)
Request(P1,8)
1
1
1
Request(P2,12)
Request(P2,12)
Request(P2,12)
2
2
2
Tiến trình P1 yêu cầu tài nguyênTiến trình P2 yêu cầu tài nguyên

HVTH. 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).

HVTH. Nguyễn Thành Thủy, Lớp KHMT-K10 (2008-2011)
24
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?
P1
P2
P3
1
1
1
2
2
2
Tiến trình P1 được sử dụng tài nguyên vì nó vào đầu tiên
Reply(14)
Reply(13)
Reply(16)
Reply(17)

HVTH. 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.

×