song song Năm s n ả
xu tấ
Lo i ạ
máy tính S BXL và c u hình tôpôố ấ
ILLIAC IV 1972 SIMD 64, tuy n tínhế DAP 1974 SIMD 4096, theo dàn MPP 1980 SIMD 16384, siêu kh iố Cyber 1983 MIMD 16, hình vòng xuy nế IPSC/1 1985 MIMD 128, siêu kh iố
IPSC/2 1987 MIMD 128, siêu kh iố Cray 1 1976 Vector 1
Cray 2 1985 Vector 4 Intel Wrap 1990 Vector 50
4.3. Đa b x lý và đa máy tínhộ ử
4.3.1. Đa b x lýộ ử
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
+ Các BXL chia sẻ bộ nhớ và các thiết bị vào ra
+ Các tác vụ ghi/đọc của các BXL vào cùng một vùng nhớ được giải quyết bới bộ nhớ đệm
4.3. Đa b x lý và đa máy tínhộ ử
4.3.2. Đa máy tính
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
+ Tất cả bộ nhớ và thiết bị vào ra là độc lập + Di chuyển dữ liệu trong mạng liên kết chậm + Kiểu lập trình là sự mở rộng của kiểu đơn BXL
4.4. L p trình song song và các thu t toán song songậ ậ
4.4.1. L p trình song songậ
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
+ Thuật ngữ tiến trình:
- Mô tả dãy câu lệnh của CT có thể thực hiện một cách tuần tự hoặc song song với những câu lệnh khác của CT + Thuật ngữ chương trình:
- Là một tập các tiến trình có thể thực hiện tuần tự hoặc đồng thời có tương tranh
4.4. L p trình song song và các thu t toán song songậ ậ
4.4.1. L p trình song songậ
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
+ Trong môi trường lập trình tuần tự:
- Một CT thực hiện trên cùng một tập dữ liệu cho ra cùng một kết quả
- CT thực hiện sẽ tạo ra 1 tiến trình bên trong hệ thống mà người sử dụng không quan sát được
- Mỗi câu lệnh thực hiện không gây trở ngại cho các câu lệnh khác trong CT
4.4. L p trình song song và các thu t toán song songậ ậ
4.4.1. L p trình song songậ
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
+ Trong môi trường đa chương trình, đa bộ xử lý:
- Các câu lệnh của các CT có thể được thực hiện đan xen - Ở cùng 1 thời điểm có thể có nhiều hơn 1 CT được thực hiện
- Các CT tự chủ thực hiện các tiến trình của mình
- Các CT phải tương tác với nhau, việc thực hiện các CT ảnh hưởng tới nhịp độ thực hiện của nhau
4.4. L p trình song song và các thu t toán song songậ ậ
4.4.1. L p trình song songậ
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
+ Trong môi trường lập trình song song:
- Người lập trình phải cung cấp các công cụ để đồng bộ hóa và điều khiển sự tương tác giữa các tiến trình
- Tạo và lập lịch cho các tiến trình
- Người lập trình có thể “nhìn thấy” quá trình thực hiện CT Tận dụng khả năng tính toán của các BXL:
- Phát triển các ngôn ngữ lập trình
4.4. L p trình song song và các thu t toán song songậ ậ
4.4.1. L p trình song songậ
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
* Một số ngôn ngữ lập trình (NNLT) song song:
+ Fortran 90:
- Là NNLT song song theo dữ liệu - Nâng cấp từ Fortran 77:
- Hỗ trợ mở rộng khả năng tính toán mảng
Bổ sung thêm đặc tính con trỏ
4.4. L p trình song song và các thu t toán song songậ ậ
4.4.1. L p trình song songậ
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
* Một số ngôn ngữ lập trình (NNLT) song song:
+ OCCAM (Inmos Company phát triển năm 1988):
- Lập trình cho các hệ thống nhiều máy tính kết nối với nhau hoặc các hệ phân tán
- Thiếu một số đặc tính:
Hỗ trợ cơ chế đệ quy
Định nghĩa kiểu dữ liệu hay con trỏ
4.4. L p trình song song và các thu t toán song songậ ậ
4.4.1. L p trình song songậ
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Quyền ưu tiên: mức độ phụ thuộc tính toán của câu lệnh + Quan hệ ưu tiên tính toán trong xử lý song song rất quan trọng đảm bảo quá trình tính toán là chính xác
+ Ví dụ:
S1: A := B + C S2: B := A + E S3: A := A + B
4.4. L p trình song song và các thu t toán song songậ ậ
4.4.1. L p trình song songậ
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Phân tích các phụ thuộc:
- S1 tính giá trị biến A và biến này được S2 và S3 sử dụng
⇒ Có sự phụ thuộc S2, S3 vào S1 (ký hiệu là d1, d2)
S1 S2 S3
d1
4.4. L p trình song song và các thu t toán song songậ ậ
4.4.1. L p trình song songậ
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Phân tích các phụ thuộc:
- S2 tính giá trị biến B và biến này được S3 sử dụng
⇒ Có sự phụ thuộc S3 vào S2 (ký hiệu là d3)
S1 S2 S3
d1
d2
4.4. L p trình song song và các thu t toán song songậ ậ
4.4.1. L p trình song songậ
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Phân tích các phụ thuộc:
- Giá trị trước đó của biến B được sử dụng ở S1
⇒ Có sự phụ thuộc của S2 vào S1 (ký hiệu là d4)
S1 S2 S3
d1
d2
d3 d4
4.4. L p trình song song và các thu t toán song songậ ậ
4.4.1. L p trình song songậ
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Phân tích các phụ thuộc:
- Cả 2 lệnh S1 và S3 cùng tính giá trị của biến A
⇒ Có sự phụ thuộc d5 S1 S2 S3 d1 d2 d3 d4 d5
4.4. L p trình song song và các thu t toán song songậ ậ
4.4.1. L p trình song songậ
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Phân tích các phụ thuộc:
- S3 tính giá trị biến A và biến này được S2 và S3 sử dụng
⇒ Có sự phụ thuộc S2, S3 vào S3 (ký hiệu là d6, d7)
S1 S2 S3 d1 d2 d3 d4 d5 d6 d7
4.4. L p trình song song và các thu t toán song songậ ậ
4.4.1. L p trình song songậ
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Đồ thị phụ thuộc dữ liệu: S1 S2 S3 d1 d2 d3 d4 d5 d6 d7 + Đồ thị định hướng: G = (V, E) V: tập lệnh E: các phụ thuộc dữ liệu
4.4. L p trình song song và các thu t toán song songậ ậ
4.4.1. L p trình song songậ
CHƯƠNG 4: M T S KI N TRÚC HI N Đ IỘ Ố Ế Ệ Ạ
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Các ký hiệu:
- DEF(S): tập các biến có giá trị bị thay đổi khi thực hiện S - USE(S): tập các biến được truy cập khi thực hiện S
+ Ví dụ: S: B := A + C - 2.0 - DEF(S) = {B}