Phép phân loại Flynn

Một phần của tài liệu Song song hoá bài toán JSP trên một số môi trường tính toán song song và phân tán luận văn thạc sĩ (Trang 63 - 66)

6. Phương pháp nghiên cứu

2.1.2.1. Phép phân loại Flynn

Dựa vào quan điểm lập trình, Flynn đã nêu ra sự khác biệt quan trong nhất hình thành nên sự phân loại các máy tính (1972), đó là dựa trên số dòng lệnh (instruction stream) và số dòng dữ liệu (data stream). Một dòng lệnh là một dãy các lệnh được thực hiện bởi máy tính. Một dòng dữ liệu là một dãy các dữ liệu được sử dụng để thực hiên các dòng lệnh. Dựa theo số phần cứng được sử dụng để điều khiển các dòng lệnh và dữ liệu có thể phân ra làm 4 loại như sau:

▪ SISD (single instruction stream, single data stream) ▪ SIMD (single instruction stream, multiple data stream) ▪ MISD (multiple instruction stream, single data stream)

▪ MIMD (multiple instruction stream, multiple data stream) [5]

Hệ thống SISD

Đây chính là mô hình máy Von Neumann, các dòng lệnh được thực hiện một cách tuần tự. Hệ thống SISD được biểu diễn như hình 2.1:

Hình 2.1: Mô hình máy tính SISD

Một đơn vị điều khiển tiếp nhận một chỉ thị đơn từ bộ nhớ, sau đó đưa vào cho bộ xử lý thực thi trên một đơn vụ dữ liệu được chỉ ra trong chỉ thị nhận được, và cuối cùng là đưa kết quả nhận được vào bộ nhớ. [5]

Hệ thống SIMD

Hầu hết các máy tính song song bàn đầu đều được thiết kế theo kiến trúc SIMD. Hệ thống SIMD gồm nhiều đơn vị xử lý (Processor Unit – PU) nằm dưới sự điều khiển của cùng một đơn vị điều khiển trung tâm nhưng tính toán trên những tập hợp dữ liệu phân biệt từ những dòng dữ liệu phân biệt. Do đó mỗi PU thực thi cùng một dòng lệnh ở cùng một thời điểm: việc tính toán được đồng bộ hóa. Bộ nhớ chia sẻ bởi tất cả các PU. Tuy nhiên, với số lượng PU lớn, tất cả các PU đều không thực sự có thể truy cập một cách liên tục bất kỳ vùng nhớ nào. Các vùng nhớ chia sẻ có thể được chia thành từng module. Việc truy cập đến các module khác nhau phải thông qua một mạng liên kết.

Các máy SIMD có thể được xem như các máy đơn bộ xử lý, có thể tính toán trên nhiều tập hợp dữ liệu khác nhau. Các máy tính vector hay dây chuyền đều thuộc loại SIMD. Ngoài ra, những hệ thống với một số lượng lớn các bộ xử lý có khả năng thực thi cùng một lệnh trên những mẫu dữ liệu phân biệt cũng thuộc vào loại SIMD. Các hệ thống SIMD rất thích hợp cho những ứng dụng cụ thể như xử lý ảnh, xử lý tín hiệu số,… [5] [8]

Hình 2.2: Mô hình máy tính SIMD

Hệ thống MIMD

Được tiên đoán bởi các doanh nghiệp vào thập niên 90, mô hình MIMD gần đây đã trở nên khá phổ biến. Lý do cho sự thay đổi này là vì tính uyển chuyển cao của kiến trúc MIMD và bởi khả năng tận dụng được những ưu điểm của các bộ vi xử lý được sản xuất hàng loạt vì thế tránh được những vòng phát triển dài dòng và qua đó có thể được phát triển cùng với sự cải thiện của các ứng dụng song song mà

vấn đề của nó được phân rã từ trung bình cho đến tốt. Ưu điểm của các máy tính MIMD bao gồm khả năng uyển chuyển cao trong việc khai thác nhiều dạng thức song song khác nhau, dễ phân chia nhỏ hơn cho các bộ xử lý độc lập trong môi trường đa người dùng, ít khó khăn trong việc mở rộng (scalability). Nhưng bên cạnh đó kiến trúc này cũng có khuyết điểm là sự quá tải do giao tiếp giữa các bộ xử lý và việc lập trình gặp nhiều khó khăn. [8]

Về kiến trúc, sự khác biệt chính so với mô hình SIMD là mỗi PU có một đơn vị điều khiển riêng của chính nó. Đặc biệt, chế độ tính toán vẫn được đồng bộ hóa. Là một máy MIMD thật sự, các bộ xử lý phải tương tác với nhau, do đó phải đặt các bộ xử lý gần nhau. Có hai cách tương tác: thông qua bộ nhớ chia sẻ (nếu có) hay thông qua việc gửi và nhận các bản tin qua một mạng liên kết. Dựa trên mức độ tương tác, chúng ta liên kết các máy MIMD “lỏng” hay “chặt”. Hầu như các hệ thống với một vài bộ xử lý dùng trong môi trường nhiều người sử dụng và chia sẻ thời gian là liên kết lỏng. Các máy đa bộ xử lý vector là liên kết chặt.

Nói chung, các máy MIMD mạnh hơn bởi chúng có thể thực thi các lệnh khác nhau trên nhiều dòng dữ liệu khác nhau tại một thời điểm. [5]

Hình 2.3: Mô hình máy MIMD

Hệ thống MISD

Nếu ta không đủ khả năng mua một máy MIMD, ta sẽ thích việc xử lý cùng một lệnh trên các dữ liệu khác nhau (SIMD) hơn là thực hiện các lệnh khác nhau trên cùng một dòng dữ liệu (MISD).

Giữa hai mô hình SIMD và MIMD, ta lại có thêm mô hình SPMD (Single Program Multiple Data). Rõ ràng, khả năng cúa các máy SPMD cũng giống như SIMD, bởi vì mỗi bộ xử lý thực thi cùng một phần mã chương trình mà nó sẽ là đơn vị xử lý duy nhất mã chương trình này. Do đó, những lệnh khác nhau có thể được thực thi cùng một thời điểm và chế độ tính toán đồng bộ hóa. [5]

Một phần của tài liệu Song song hoá bài toán JSP trên một số môi trường tính toán song song và phân tán luận văn thạc sĩ (Trang 63 - 66)

Tải bản đầy đủ (PDF)

(115 trang)