Sự hội tụ của các kiến trúc song song
Máy song song đã được phát triển với một số kiến trúc riêng biệt. Trong phần này, chúng ta sẽ thảo luận về kiến trúc máy tính song song khác nhau và bản chất của sự hội tụ của chúng.
Kiến trúc truyền thông
Kiến trúc song song nâng cao các khái niệm thông thường về kiến trúc máy tính với kiến trúc truyền thông. Kiến trúc máy tính xác định các yếu tố trừu tượng quan trọng (như ranh giới hệ thống người dùng và ranh giới phần cứng-phần mềm) và cấu trúc tổ chức, trong khi kiến trúc truyền thông xác định các hoạt động giao tiếp và đồng bộ hóa cơ bản. Nó cũng đề cập đến cơ cấu tổ chức.
Mô hình lập trình là lớp trên cùng. Các ứng dụng được viết bằng mô hình lập trình. Các mô hình lập trình song song bao gồm:
- Không gian địa chỉ được chia sẻ
- Thông qua
- Lập trình song song dữ liệu
Shared addresslập trình cũng giống như sử dụng một bảng thông báo, nơi người ta có thể giao tiếp với một hoặc nhiều cá nhân bằng cách đăng thông tin tại một địa điểm cụ thể, thông tin này được chia sẻ bởi tất cả các cá nhân khác. Hoạt động cá nhân được điều phối bằng cách để ý xem ai đang làm nhiệm vụ gì.
Message passing giống như một cuộc gọi điện thoại hoặc các bức thư trong đó một người nhận cụ thể nhận được thông tin từ một người gửi cụ thể.
Data parallellập trình là một hình thức hợp tác có tổ chức. Tại đây, một số cá nhân thực hiện đồng thời một hành động trên các phần tử riêng biệt của tập dữ liệu và chia sẻ thông tin trên toàn cầu.
Bộ nhớ dùng chung
Bộ nhớ dùng chung đa xử lý là một trong những lớp quan trọng nhất của máy song song. Nó cung cấp thông lượng tốt hơn trên khối lượng công việc đa chương trình và hỗ trợ các chương trình song song.
Trong trường hợp này, tất cả các hệ thống máy tính đều cho phép một bộ xử lý và một bộ điều khiển I / O truy cập vào một tập hợp các mô-đun bộ nhớ bằng một số kết nối phần cứng. Dung lượng bộ nhớ được tăng lên bằng cách thêm mô-đun bộ nhớ và dung lượng I / O được tăng lên bằng cách thêm thiết bị vào bộ điều khiển I / O hoặc bằng cách thêm bộ điều khiển I / O bổ sung. Khả năng xử lý có thể được tăng lên bằng cách chờ sẵn một bộ xử lý nhanh hơn hoặc bằng cách thêm nhiều bộ xử lý hơn.
Tất cả các tài nguyên được tổ chức xung quanh một bus bộ nhớ trung tâm. Thông qua cơ chế truy cập bus, bất kỳ bộ xử lý nào cũng có thể truy cập bất kỳ địa chỉ vật lý nào trong hệ thống. Vì tất cả các bộ xử lý cách đều tất cả các vị trí bộ nhớ, thời gian truy cập hoặc độ trễ của tất cả các bộ xử lý là như nhau trên một vị trí bộ nhớ. Đây được gọi làsymmetric multiprocessor.
Kiến trúc truyền thông điệp
Kiến trúc truyền thông điệp cũng là một lớp quan trọng của các máy song song. Nó cung cấp thông tin liên lạc giữa các bộ xử lý như các hoạt động I / O rõ ràng. Trong trường hợp này, giao tiếp được kết hợp ở mức I / O, thay vì hệ thống bộ nhớ.
Trong kiến trúc truyền thông điệp, giao tiếp người dùng được thực thi bằng cách sử dụng hệ điều hành hoặc lệnh gọi thư viện thực hiện nhiều hành động cấp thấp hơn, bao gồm cả hoạt động giao tiếp thực tế. Kết quả là, có một khoảng cách giữa mô hình lập trình và các hoạt động giao tiếp ở cấp phần cứng vật lý.
Send và receivelà hoạt động giao tiếp cấp người dùng phổ biến nhất trong hệ thống truyền thông điệp. Gửi chỉ định bộ đệm dữ liệu cục bộ (sẽ được truyền) và bộ xử lý từ xa nhận. Nhận chỉ định một quá trình gửi và một bộ đệm dữ liệu cục bộ trong đó dữ liệu được truyền sẽ được đặt. Trong hoạt động gửi, mộtidentifier hoặc một tag được đính kèm vào thông báo và thao tác nhận chỉ định quy tắc đối sánh như thẻ cụ thể từ một bộ xử lý cụ thể hoặc bất kỳ thẻ nào từ bất kỳ bộ xử lý nào.
Sự kết hợp giữa một gửi và một nhận phù hợp sẽ hoàn thành một bản sao từ bộ nhớ vào bộ nhớ. Mỗi đầu chỉ định địa chỉ dữ liệu cục bộ của nó và một sự kiện đồng bộ hóa theo cặp.
Sự hội tụ
Sự phát triển của phần cứng và phần mềm đã xóa nhòa ranh giới rõ ràng giữa bộ nhớ dùng chung và trại truyền tin nhắn. Truyền thông điệp và không gian địa chỉ dùng chung đại diện cho hai mô hình lập trình riêng biệt; mỗi bên cung cấp một mô hình minh bạch để chia sẻ, đồng bộ hóa và giao tiếp. Tuy nhiên, các cấu trúc máy cơ bản đã hội tụ để hướng tới một tổ chức chung.
Xử lý song song dữ liệu
Một lớp quan trọng khác của máy song song được gọi một cách đa dạng - mảng bộ xử lý, kiến trúc song song dữ liệu và máy đa dữ liệu một lệnh. Đặc điểm chính của mô hình lập trình là các phép toán có thể được thực hiện song song trên từng phần tử của cấu trúc dữ liệu thông thường lớn (như mảng hoặc ma trận).
Ngôn ngữ lập trình song song dữ liệu thường được thực thi bằng cách xem không gian địa chỉ cục bộ của một nhóm quy trình, mỗi quy trình trên mỗi bộ xử lý, tạo thành một không gian toàn cục rõ ràng. Vì tất cả các bộ xử lý giao tiếp với nhau và có một cái nhìn toàn cục về tất cả các hoạt động, vì vậy có thể sử dụng không gian địa chỉ dùng chung hoặc truyền thông báo.
Các vấn đề cơ bản về thiết kế
Chỉ phát triển mô hình lập trình không thể làm tăng hiệu quả của máy tính cũng như chỉ phát triển phần cứng không thể làm được. Tuy nhiên, sự phát triển trong kiến trúc máy tính có thể tạo ra sự khác biệt trong hiệu suất của máy tính. Chúng ta có thể hiểu vấn đề thiết kế bằng cách tập trung vào cách các chương trình sử dụng máy móc và những công nghệ cơ bản nào được cung cấp.
Trong phần này, chúng ta sẽ thảo luận về tính trừu tượng của giao tiếp và các yêu cầu cơ bản của mô hình lập trình.
Giao tiếp trừu tượng
Sự trừu tượng hóa giao tiếp là giao diện chính giữa mô hình lập trình và việc triển khai hệ thống. Nó giống như tập lệnh cung cấp nền tảng để cùng một chương trình có thể chạy chính xác trên nhiều triển khai. Các hoạt động ở cấp độ này phải đơn giản.
Sự trừu tượng hóa giao tiếp giống như một hợp đồng giữa phần cứng và phần mềm, cho phép nhau cải thiện tính linh hoạt mà không ảnh hưởng đến công việc.
Yêu cầu về mô hình lập trình
Một chương trình song song có một hoặc nhiều luồng hoạt động trên dữ liệu. Mô hình lập trình song song xác định dữ liệu nào mà các luồng có thểname, cái nào operations có thể được thực hiện trên dữ liệu được đặt tên, và thứ tự nào được tuân theo bởi các hoạt động.
Để xác nhận rằng các phụ thuộc giữa các chương trình được thực thi, một chương trình song song phải điều phối hoạt động của các luồng của nó.