Phân phối so với tính toán song song


61

Tôi thường nghe mọi người nói về điện toán song song và điện toán phân tán, nhưng tôi có ấn tượng rằng không có ranh giới rõ ràng giữa 2 người và mọi người có xu hướng nhầm lẫn điều đó khá dễ dàng, trong khi tôi tin rằng nó rất khác nhau:

  • Tính toán song song được kết hợp chặt chẽ hơn với đa luồng hoặc cách sử dụng toàn bộ một CPU.
  • Điện toán phân tán đề cập đến khái niệm phân chia và chinh phục, thực hiện các tác vụ phụ trên các máy khác nhau và sau đó hợp nhất các kết quả.

Tuy nhiên, kể từ khi chúng ta bước vào kỷ nguyên Dữ liệu lớn , có vẻ như sự khác biệt thực sự đang tan chảy và hầu hết các hệ thống ngày nay sử dụng kết hợp tính toán song song và phân tán.

Một ví dụ tôi sử dụng trong công việc hàng ngày của mình là Hadoop với mô hình Map / Giảm, một hệ thống phân tán rõ ràng với các công nhân thực thi các tác vụ trên các máy khác nhau, nhưng cũng tận dụng tối đa từng máy với một số tính toán song song.

Tôi muốn nhận được một số lời khuyên để hiểu chính xác làm thế nào để tạo sự khác biệt trong thế giới ngày nay, và nếu chúng ta vẫn có thể nói về điện toán song song hoặc không còn sự phân biệt rõ ràng nữa. Đối với tôi có vẻ như điện toán phân tán đã phát triển rất nhiều trong những năm qua, trong khi điện toán song song dường như bị đình trệ, điều này có thể giải thích tại sao tôi nghe nhiều về việc phân phối các tính toán hơn là song song.


5
Điện toán song song không nhất thiết có nghĩa là CPU đơn: có những hệ thống có nhiều CPU vật lý.
Svick

2
Ngoài ra, tính toán phân tán không bị hạn chế để phân chia & chinh phục mỗi se. Tôi gặp nhiều rắc rối hơn với những người khó hiểu đồng thời và song song.
Raphael

1
Nếu bạn đang giải quyết một cách rõ ràng về điện toán phân tán, bạn sẽ cần xử lý các trường hợp thất bại sâu hơn nhiều. Rất nhiều thứ chỉ được phân phối vì lý do địa lý. Một số hệ thống phân tán có rất ít xảy ra song song vì một nút trung tâm trong mạng là một nút cổ chai.
Cướp

Câu trả lời:


57

Đây là một phần của vấn đề thuật ngữ, và như vậy, chỉ yêu cầu bạn và người bạn đang nói chuyện phải làm rõ trước. Tuy nhiên, có những chủ đề khác nhau có liên quan mạnh mẽ hơn với hệ thống song song , đồng thời hoặc hệ thống phân tán .

Song song nói chung liên quan đến việc hoàn thành một tính toán cụ thể càng nhanh càng tốt, khai thác nhiều bộ xử lý. Quy mô của các bộ xử lý có thể bao gồm từ nhiều đơn vị số học trong một bộ xử lý, đến nhiều bộ xử lý chia sẻ bộ nhớ, để phân phối tính toán trên nhiều máy tính. Về phía các mô hình tính toán, tính song song nói chung là về việc sử dụng nhiều luồng tính toán đồng thời trong nội bộ, để tính toán một kết quả cuối cùng. Song song đôi khi cũng được sử dụng cho các hệ thống phản ứng thời gian thực , chứa nhiều bộ xử lý chia sẻ một đồng hồ chủ duy nhất; hệ thống như vậy là hoàn toàn xác định .

Đồng thời là nghiên cứu tính toán với nhiều luồng tính toán. Đồng thời có xu hướng đến từ kiến ​​trúc của phần mềm hơn là từ kiến ​​trúc của phần cứng. Phần mềm có thể được viết để sử dụng đồng thời để khai thác song song phần cứng, nhưng thường thì nhu cầu vốn có trong hành vi của phần mềm, để phản ứng với các sự kiện không đồng bộ khác nhau (ví dụ: luồng tính toán hoạt động độc lập với luồng giao diện người dùng hoặc chương trình phản ứng đến các ngắt phần cứng bằng cách chuyển sang một luồng xử lý ngắt).

Nghiên cứu điện toán phân tán bộ xử lý riêng biệt được kết nối bởi các liên kết truyền thông. Trong khi các mô hình xử lý song song thường (nhưng không phải luôn luôn) giả định bộ nhớ dùng chung, các hệ thống phân tán chủ yếu dựa vào việc truyền thông điệp. Hệ thống phân tán vốn đã đồng thời. Giống như đồng thời, phân phối thường là một phần của mục tiêu, không chỉ là một phần của giải pháp: nếu tài nguyên ở các vị trí địa lý khác biệt, hệ thống vốn được phân phối. Các hệ thống trong đó lỗi một phần (của các nút bộ xử lý hoặc liên kết truyền thông) có thể thuộc miền này.


2
Câu trả lời tốt. Chúng ta nên nhấn mạnh rằng điện toán phân tán là một tập hợp con của điện toán song song.
Raphael

6
@Raphael: Tôi không nghĩ rằng điều đó thể hiện chính xác trọng tâm của hai lĩnh vực. Thật vậy, chúng thường được coi là các lĩnh vực hoàn toàn riêng biệt, bởi vì chúng giải quyết các vấn đề hoàn toàn khác nhau. Khi lập trình một máy tính song song sử dụng MPI, người ta không thực sự lo lắng về những thất bại một phần, vì những điều này ít xảy ra trong những máy tính như vậy. Mặt khác, điện toán phân tán quan tâm nhiều hơn đến các vấn đề phân phối, chẳng hạn như lỗi một phần và ít quan tâm hơn đến việc ép mọi chu kỳ CPU ra khỏi các máy có sẵn.
Dave Clarke

4
@Raphael Ngược lại, điện toán phân tán rất độc lập với điện toán song song. Trong nghiên cứu về các hệ thống phân tán, điện toán song song thường là trường hợp nhàm chán (không có tài nguyên địa phương thú vị, không có lỗi).
Gilles 'SO- ngừng trở nên xấu xa'

Tôi đã sử dụng các từ theo nghĩa đen; quá tệ nếu các điều khoản đã được chiếm đoạt và do đó chuyển hướng.
Raphael

Cảm ơn câu trả lời của bạn @Gilles, có vẻ như tôi hơi thiên vị đối với điện toán phân tán, rất vui khi thấy ai đó đề cập đến điều gì đó bằng các thuật ngữ phù hợp!
Charles Menguy

17

Như @Raphael đã chỉ ra, Điện toán phân tán là một tập hợp con của Điện toán song song; lần lượt, Parallel Computing là một tập hợp con của tính toán đồng thời.

Đồng thời đề cập đến việc chia sẻtài nguyên trong cùng khung thời gian. Ví dụ, một số quy trình chia sẻ cùng CPU (hoặc lõi CPU) hoặc chia sẻ bộ nhớ hoặc thiết bị I / O. Hệ điều hành quản lý tài nguyên dùng chung. Máy đa bộ xử lý và hệ thống phân tán là kiến ​​trúc trong đó kiểm soát đồng thời đóng vai trò quan trọng. Đồng thời xảy ra ở cả cấp độ phần cứng và phần mềm. Nhiều thiết bị hoạt động cùng một lúc, bộ xử lý có sự song song bên trong và hoạt động theo nhiều hướng dẫn đồng thời, hệ thống có nhiều bộ xử lý và hệ thống tương tác thông qua giao tiếp mạng. Đồng thời xảy ra ở cấp ứng dụng trong xử lý tín hiệu, trong sự chồng chéo của I / O và xử lý, trong giao tiếp và trong việc chia sẻ tài nguyên giữa các quy trình hoặc giữa các luồng trong cùng một quy trình.

Hai tiến trình (hoặc luồng) thực thi trên cùng một hệ thống để việc thực thi của chúng được xen kẽ theo thời gian là đồng thời: các tiến trình (luồng) đang chia sẻ tài nguyên CPU. Tôi thích định nghĩa sau: hai tiến trình (luồng) thực thi trên cùng một hệ thống là đồng thời khi và chỉ khi tiến trình thứ hai (luồng) bắt đầu thực thi khi tiến trình đầu tiên (luồng) chưa kết thúc thực thi.

Đồng thời trở thành song song khi các quy trình (hoặc luồng) thực thi trên các CPU khác nhau (hoặc lõi của cùng một CPU). Song song trong trường hợp này không phải là ảo ảo mà là Real real.

Khi các CPU đó thuộc về cùng một máy, chúng tôi gọi tính toán là "song song"; khi các CPU thuộc về các máy khác nhau , có thể được trải đều về mặt địa lý, chúng tôi gọi việc tính toán là "phân phối".

Do đó, Điện toán phân tán là một tập hợp con của Điện toán song song, là một tập hợp con của Điện toán đồng thời.

Tất nhiên, đúng là, nói chung, tính toán song song và phân tán được coi là khác nhau. Tính toán song song có liên quan đến các ứng dụng kết hợp chặt chẽ và được sử dụng để đạt được một trong các mục tiêu sau:

  1. Giải các bài toán chuyên sâu nhanh hơn;
  2. Giải quyết các vấn đề lớn hơn trong cùng một khoảng thời gian;
  3. Giải quyết các vấn đề kích thước tương tự với độ chính xác cao hơn trong cùng một khoảng thời gian.

Tx5xTxxnhưng với độ chính xác cao hơn bằng cách sử dụng một mô hình phức tạp hơn nhiều, nhiều phương trình, biến và ràng buộc hơn). Điện toán song song có thể sử dụng bộ nhớ chia sẻ, truyền tin nhắn hoặc cả hai (ví dụ: nút nội bộ của bộ nhớ dùng chung bằng OpenMP, nút liên thông qua tin nhắn bằng MPI); nó cũng có thể sử dụng bộ tăng tốc GPU. Vì ứng dụng chạy trên một siêu máy tính song song, chúng tôi thường không tính đến các vấn đề như lỗi, phân vùng mạng, v.v., vì xác suất của những sự kiện này là, vì mục đích thực tế, gần bằng không. Tuy nhiên, các ứng dụng song song lớn như mô phỏng biến đổi khí hậu, có thể chạy trong vài tháng, thường liên quan đến lỗi và sử dụng cơ chế kiểm tra / khởi động lại để tránh bắt đầu mô phỏng lại từ đầu nếu có vấn đề phát sinh.

Điện toán phân tán có liên quan đến các ứng dụng kết hợp lỏng lẻo, trong đó mục tiêu (cho siêu máy tính phân tán ) là giải quyết các vấn đề quá lớn hoặc việc thực thi có thể được chia trên các thành phần khác nhau có thể có lợi từ việc thực hiện trên các kiến ​​trúc khác nhau. Có một số mô hình bao gồm máy khách-máy chủ, máy ngang hàng, v.v ... Các vấn đề phát sinh trong điện toán phân tán, chẳng hạn như bảo mật, lỗi, phân vùng mạng, v.v. phải được tính đến tại thời điểm thiết kế, vì trong bối cảnh này là quy tắc và không ngoại lệ

Cuối cùng, điện toán lưới và điện toán đám mây đều là tập hợp con của điện toán phân tán. Mô hình điện toán lưới nổi lên như một lĩnh vực mới khác biệt với điện toán phân tán truyền thống vì tập trung vào chia sẻ tài nguyên quy mô lớn và các ứng dụng hiệu suất cao sáng tạo. Các tài nguyên đang được chia sẻ, thường thuộc về nhiều lĩnh vực quản trị khác nhau (được gọi là Tổ chức ảo ). Grid Computing, trong khi được các nhà khoa học sử dụng rất nhiều trong thập kỷ qua, theo truyền thống là khó khăn đối với người dùng thông thường. Điện toán đám mây cố gắng thu hẹp khoảng cách, bằng cách cho phép người dùng thông thường khai thác dễ dàng nhiều máy, được đặt cùng một trung tâm dữ liệu và không được phân phối theo địa lý, thông qua việc sử dụng Máy ảocó thể được lắp ráp bởi người dùng để chạy các ứng dụng của họ. Do phần cứng, đặc biệt là thiếu kết nối mạng hiệu suất cao thông thường (như Infiniband, v.v.), các đám mây không được nhắm mục tiêu để chạy các ứng dụng MPI song song. Các ứng dụng phân tán chạy trên các đám mây thường được triển khai để khai thác mô hình Bản đồ / Giảm. Nhân tiện, nhiều người nghĩ về Map / less như một mô hình luồng dữ liệu song song.


2
Tôi nghĩ rằng câu trả lời này là một chút sai lệch; nó tập trung vào điện toán hiệu năng cao phân tán (thực sự liên quan chặt chẽ với điện toán hiệu năng cao song song), trong khi toàn bộ lĩnh vực điện toán phân tán rộng hơn nhiều.
Jukka Suomela

Tôi không đồng ý: câu trả lời cũng bao gồm tính toán hiệu năng cao phân tán, thay vào đó, thường là bỏ qua tính toán phân tán. Thật vậy, tôi đã thảo luận về các mô hình máy khách và máy chủ ngang hàng, bảo mật, lỗi và các vấn đề phân vùng mạng là lĩnh vực của điện toán phân tán.
Massimo Cafaro

+1. Rất vui được trả lời! Tôi tự hỏi nếu tính toán phân tán được sử dụng cho các mục đích khác ngoài tính toán song song? Nói cách khác, tính toán phân tán có phải là một tập hợp con của tính toán song song, tức là tính toán phân tán có thuộc về tính toán song song không? Btw, đây là câu hỏi của tôi cs.stackexchange.com/questions/20064
Tim

1
@Tim, tính toán phân tán cũng được sử dụng theo từng se, độc lập với tính toán song song. Ví dụ, hãy suy nghĩ về các thuật toán phân tán cổ điển như bầu cử lãnh đạo, đồng thuận, v.v.
Massimo Cafaro

7

Tôi không chắc là tôi hiểu câu hỏi. Sự khác biệt giữa xử lý song song và phân tán vẫn còn đó. Việc bạn có thể tận dụng cả hai trong cùng một tính toán sẽ không thay đổi ý nghĩa của các khái niệm.

Và tôi không biết bạn đang theo dõi tin tức gì, nhưng tôi khá chắc chắn việc xử lý song song không bị đình trệ, đặc biệt là vì tôi nghĩ nó hữu ích hơn thường xuyên.

Nếu bạn cần xử lý terabyte dữ liệu, tính toán phân tán (có thể kết hợp với tính toán song song) là cách tốt nhất. Nhưng nếu bạn cần tính toán một cái gì đó trên máy tính để bàn hoặc điện thoại thông minh, tính toán song song có thể sẽ mang lại cho bạn kết quả tốt nhất, vì xét rằng kết nối internet có thể không khả dụng luôn và khi có, nó có thể chậm.


1
-1, vì câu trả lời này không thực sự trả lời câu hỏi (nghĩa là giải thích các điều khoản).
Jukka Suomela

@JukkaSuomela, câu hỏi không phải là về việc giải thích các điều khoản, mà là sự khác biệt giữa chúng.
Svick

6

Đây là một bài báo gần đây đáng đọc:

Michel Raynal: "Tính toán song song so với tính toán phân tán: Một sự nhầm lẫn lớn?" , Proc. Euro-Par 2015 , đổi : 10.1007 / 978-3-319-27308-2_4

Trừu tượng:

Bài viết về vị trí ngắn này thảo luận về thực tế rằng, từ quan điểm giảng dạy, tính song song và tính toán phân tán thường bị nhầm lẫn, trong khi, khi nhìn vào bản chất sâu sắc của chúng, chúng giải quyết các vấn đề cơ bản khác biệt. Do đó, các chương trình giảng dạy phù hợp nên được thiết kế riêng cho từng chương trình. Tất cả mọi thứ đều có trong tất cả mọi thứ (và có đi có lại), thái độ của dường như không phải là một cách tiếp cận phù hợp để dạy cho học sinh các khái niệm quan trọng đặc trưng cho sự song song ở một bên và tính toán phân tán ở phía bên kia.


4

Trong phần Giới thiệu của cuốn sách [1], các tác giả cung cấp một góc nhìn khác (khác với quan điểm trong các câu trả lời khác) về so sánh giữa điện toán phân tán và điện toán song song.

Theo nghĩa rộng, mục tiêu của xử lý song song là sử dụng tất cả các bộ xử lý để thực hiện một nhiệm vụ lớn. Ngược lại, mỗi bộ xử lý trong một hệ thống phân tán thường có chương trình nghị sự bán độc lập riêng, nhưng vì nhiều lý do, bao gồm chia sẻ tài nguyên, tính khả dụng và khả năng chịu lỗi, bộ xử lý cần phối hợp hành động của chúng.

Từ quan điểm này, mô hình Bản đồ / Giảm chủ yếu rơi vào bối cảnh tính toán song song. Tuy nhiên, nếu chúng ta muốn các nút liên quan đạt được sự đồng thuận về một nhà lãnh đạo chung, bằng cách sử dụng thuật toán Paxos (wiki) , thì chúng ta đang xem xét một vấn đề điển hình trong điện toán phân tán.

[1] Máy tính phân tán. Nguyên tắc cơ bản, mô phỏng và chủ đề nâng cao. Hagit Attiya và Jennifer Welch. 2004.


0

câu trả lời thích hợp hơn ở đây. Về cơ bản, parallelđề cập đến memory-shared multiprocessortrong khi distributedđề cập đến nó private-memory multicomputers. Đó là, cái đầu tiên là một máy đa lõi hoặc siêu khối trong khi một cái khác là một mạng lưới máy tính phân tán theo địa lý. Cái sau ngụ ý ít khớp nối hơn và do đó, khả năng chịu lỗi và khả năng chịu lỗi cao hơn với chi phí hiệu năng thấp hơn. Hiệu năng bị ảnh hưởng vì bạn cần tuần tự hóa dữ liệu trong mỗi chuyến đi khứ hồi và việc phân phối của nó qua khoảng cách xa hơn trong khi bạn chỉ cần giới thiệu một đối tượng trong bộ nhớ để chuyển nó sang CPU khác trong bộ xử lý song song.

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.