Tính toán song song và phân tán


14

(Các) sự khác biệt giữa các tính toán song song và phân tán là gì? Khi nói đến khả năng mở rộng và hiệu quả, rất phổ biến để xem các giải pháp xử lý các tính toán trong cụm máy móc, và đôi khi nó được gọi là xử lý song song hoặc xử lý phân tán.

Theo một cách nào đó, tính toán dường như luôn luôn song song, vì có những thứ chạy đồng thời. Nhưng liệu tính toán phân tán có liên quan đơn giản đến việc sử dụng nhiều hơn một máy hay có bất kỳ đặc thù nào khác để phân biệt hai loại xử lý này không? Chẳng hạn, sẽ không thừa khi nói rằng một tính toán là song song VÀ phân phối ?

Câu trả lời:


16

Nói một cách đơn giản, 'song song' có nghĩa là chạy đồng thời trên các tài nguyên riêng biệt (CPU), trong khi 'phân tán' có nghĩa là chạy trên các máy tính khác nhau, liên quan đến các vấn đề liên quan đến mạng.

Điện toán song song sử dụng ví dụ OpenMP không được phân phối, trong khi tính toán song song với Message Passing thường được phân phối.

Ở trong một cài đặt 'phân tán nhưng không song song' có nghĩa là sử dụng ít tài nguyên để nó hiếm khi gặp phải nhưng về mặt khái niệm là có thể.


4

Các thuật ngữ "tính toán song song" và "tính toán phân tán" chắc chắn có sự chồng chéo lớn, nhưng có thể được phân biệt rõ hơn. Trên thực tế, bạn đã làm điều này trong câu hỏi của mình, bằng cách sau đó hỏi về "xử lý song song" và "xử lý phân tán".

Người ta có thể coi "điện toán phân tán" là thuật ngữ chung hơn liên quan đến "xử lý phân tán", ví dụ như "lưu trữ phân tán". Thuật ngữ chung, "phân phối", thường đề cập đến một số loại Thông báo Truyền qua mạng, giữa các máy được phân tách vật lý.

Thuật ngữ "song song máy tính" cũng là trong quá trình được xác định hơn nữa, ví dụ bằng cách phân biệt một cách rõ ràng giữa các thuật ngữ "song song" và "đồng thời", trong đó - khoảng - người đầu tiên đề cập xử lý song song dữ liệu và sau này để việc xử lý song song , mặc dù có hầu như không thực sự nghiêm ngặt và ràng buộc ràng buộc.

Vì vậy, người ta có thể nói rằng

  • "xử lý phân tán" thường (mặc dù không nhất thiết) có nghĩa là nó cũng là "xử lý song song"
  • "Điện toán phân tán" nói chung hơn và cũng bao gồm các khía cạnh không liên quan đến song song
  • và rõ ràng, "tính toán song song" / "xử lý song song" không ngụ ý rằng nó được "phân phối"

3

Các câu trả lời được trình bày cho đến nay là rất hay, nhưng tôi cũng mong đợi sự nhấn mạnh vào một sự khác biệt cụ thể giữa xử lý song song và xử lý phân tán: mã được thực thi. Xem xét các quá trình song song, mã được thực hiện là như nhau, bất kể mức độ song song (hướng dẫn, dữ liệu, nhiệm vụ). Bạn viết một mã duy nhất và nó sẽ được thực thi bởi các luồng / bộ xử lý khác nhau, ví dụ, trong khi tính toán các sản phẩm ma trận hoặc tạo hoán vị.

Mặt khác, điện toán phân tán liên quan đến việc thực hiện các thuật toán / chương trình khác nhau cùng một lúc trong các bộ xử lý khác nhau (từ một hoặc nhiều máy). Các tính toán như vậy sau đó được hợp nhất thành kết quả trung gian / cuối cùng bằng cách sử dụng các phương tiện truyền thông / đồng bộ hóa dữ liệu có sẵn (bộ nhớ dùng chung, mạng). Hơn nữa, điện toán phân tán rất hấp dẫn để xử lý BigData, vì nó cho phép khai thác song song đĩa (thường là nút cổ chai cho cơ sở dữ liệu lớn).

Cuối cùng, đối với mức độ song song, nó có thể được coi là một ràng buộc đối với việc đồng bộ hóa. Ví dụ, trong GPGPU, là đa dữ liệu một lệnh (SIMD), sự song song xảy ra bằng cách có các đầu vào khác nhau cho một lệnh, mỗi cặp (data_i, lệnh) được thực thi bởi một luồng khác nhau. Đó là hạn chế rằng, trong trường hợp các nhánh khác nhau, cần phải loại bỏ rất nhiều tính toán không cần thiết, cho đến khi các chủ đề tập hợp lại. Tuy nhiên, đối với các luồng CPU, chúng thường phân kỳ; tuy nhiên, người ta có thể sử dụng các cấu trúc đồng bộ hóa để cấp phép thực thi đồng thời các phần cụ thể của mã.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.