Tại sao chúng ta không thể phát triển một lý thuyết phức tạp thống nhất về điện toán phân tán?


41

Lĩnh vực điện toán phân tán đã giảm đáng kể trong việc phát triển một lý thuyết toán học duy nhất để mô tả các thuật toán phân tán. Có một số 'mô hình' và khung tính toán phân tán đơn giản là không tương thích với nhau. Sự bùng nổ tuyệt đối của các thuộc tính thời gian khác nhau (không đồng bộ, đồng bộ, đồng bộ một phần), các nguyên tắc giao tiếp khác nhau (truyền thông điệp so với bộ nhớ chia sẻ, phát sóng so với unicast), nhiều mô hình lỗi (dừng thất bại, khôi phục sự cố, gửi lỗi, gửi lỗi, v.v. trên) đã để lại cho chúng tôi một số lượng lớn các mô hình hệ thống, khung và phương pháp hệ thống, việc so sánh kết quả khả năng thanh toán tương đối và giới hạn thấp hơn giữa các mô hình và khung này đã trở nên khó khăn, khó hiểu và đôi khi không thể.

Câu hỏi của tôi rất đơn giản, tại sao lại như vậy? Điều gì khác biệt cơ bản về điện toán phân tán (từ đối tác tuần tự của nó) đến nỗi chúng ta không thể đối chiếu nghiên cứu thành một lý thuyết thống nhất về điện toán phân tán? Với tính toán tuần tự, Máy Turing, Hàm đệ quy và Phép tính Lambda tất cả đều tương đương nhau. Đây có phải chỉ là một sự may mắn, hay chúng ta đã thực sự làm tốt công việc đóng gói điện toán tuần tự theo cách chưa hoàn thành với điện toán phân tán?

Nói cách khác, tính toán phân tán vốn đã không chịu khuất phục trước một lý thuyết tao nhã (và nếu vậy, làm thế nào và tại sao?), Hay đơn giản là chúng ta không đủ thông minh để khám phá một lý thuyết như vậy?

Tài liệu tham khảo duy nhất tôi có thể tìm thấy giải quyết vấn đề này là: " Đánh giá hai thập kỷ nghiên cứu lý thuyết điện toán phân tán " của Fischer và Merritt DOI: 10.1007 / s00446-003-0096-6

Bất kỳ tài liệu tham khảo hoặc giải trình sẽ thực sự hữu ích.

Câu trả lời:


26

Tôi cho rằng mô hình tính toán Turing có động lực trừu tượng là một công nghệ xấp xỉ tốt cho đến gần đây, trong khi các mô hình điện toán phân tán, từ sự khởi đầu, đã được thúc đẩy bởi thế giới thực, vốn luôn lộn xộn hơn trừu tượng.

Từ, giả sử, 1940-1995, quy mô của các trường hợp sự cố, "không quan trọng" tương đối của song song và đồng thời, và quy mô vĩ mô của các thiết bị máy tính, tất cả đều "âm mưu" để giữ cho các máy Turing trở thành một xấp xỉ tuyệt vời của máy tính trong thế giới thực. Tuy nhiên, một khi bạn bắt đầu xử lý các bộ dữ liệu lớn, nhu cầu phổ biến về đồng thời, sinh học thông qua lăng kính thuật toán, v.v., sẽ không rõ ràng hơn nếu có một mô hình tính toán "trực quan". Có lẽ các vấn đề khó trong một mô hình không khó - hoàn toàn ít phức tạp về mặt tính toán - trong một mô hình khác. Vì vậy, tôi tin rằng sự phức tạp tính toán chính thống cuối cùng đã bắt kịp (!) Với tính toán phân tán, bằng cách bắt đầu xem xét nhiều mô hình tính toán và cấu trúc dữ liệu, được thúc đẩy bởi các cân nhắc trong thế giới thực.


7
Cũng xem xét các câu hỏi xác định của các lĩnh vực tương ứng. "Giả sử bạn có thể tính toán hoàn hảo. Giới hạn của những gì bạn có thể và không thể làm là gì?" so với "Giả sử bạn có một kênh, bộ xử lý bị lỗi hoặc giả sử bạn có một đối thủ. Làm thế nào bạn có thể tính toán thành công khi gặp những trở ngại đó?" Câu hỏi đầu tiên có nhiều khả năng tạo ra câu trả lời "sạch". Thứ hai là một yêu cầu để khoa học hóa sự lộn xộn.
Aaron Sterling

21

Tôi sẽ trả lời điều này từ góc độ của các vấn đề đồ thị cổ điển (hoặc các vấn đề đầu vào / đầu ra): chúng ta có một mạng, mỗi nút lấy một cái gì đó làm đầu vào và mỗi nút phải tạo ra một cái gì đó làm đầu ra. Tôi đoán đây là gần nhất với thế giới phức tạp tính toán truyền thống.

Tôi chắc chắn thiên vị, nhưng tôi nghĩ rằng trong bối cảnh này, có một đơn giản và mô hình khá phổ biến được sử dụng trong phân phối máy tính: các thuật toán phân phối đồng bộ , với định nghĩa rằng thời gian chạy = số vòng đồng bộ . Theo thuật ngữ của Peleg, đây là mô hình ĐỊA PHƯƠNG .

Mô hình này là tốt vì nó có rất ít "bộ phận chuyển động", không có tham số, v.v. Tuy nhiên, nó rất cụ thể: thật hợp lý khi nói rằng thời gian chạy của thuật toán là chính xác 15 trong mô hình này. Và bạn có thể chứng minh các giới hạn dưới lý thuyết, thông tin vô điều kiện: từ quan điểm này, độ phức tạp phân tán của nhiều vấn đề đồ thị (ví dụ, tô màu đồ thị) được hiểu khá rõ.

Mô hình này cũng cung cấp một cách tiếp cận thống nhất cho nhiều khía cạnh của điện toán phân tán:

  • Truyền tin nhắn so với bộ nhớ chia sẻ, phát sóng so với unicast: Không liên quan trong mô hình này.
  • Hệ thống trong thế giới thực của bạn không đồng bộ? Không có vấn đề gì, chỉ cần cắm vào bộ đồng bộ . Độ phức tạp thời gian (với các định nghĩa phù hợp) về cơ bản không bị ảnh hưởng.α
  • Bạn muốn có một thuật toán cho các mạng động, hoặc bạn muốn phục hồi từ các thất bại? Chà, nếu thuật toán đồng bộ của bạn mang tính xác định, thì bạn có thể sử dụng nó để xây dựng thuật toán tự ổn định . Một lần nữa, sự phức tạp thời gian về cơ bản là không bị ảnh hưởng.

Bây giờ tất cả điều này đều ổn miễn là bạn nghiên cứu các vấn đề được "phân phối thực sự" theo nghĩa là thời gian chạy thuật toán của bạn nhỏ hơn đường kính của biểu đồ , nghĩa là không có nút nào cần có thông tin đầy đủ về cấu trúc của đồ thị. Tuy nhiên, cũng có nhiều vấn đề vốn đã mang tính toàn cầu: thuật toán nhanh nhất trong mô hình này có thời gian chạy tuyến tính theo đường kính của biểu đồ. Trong nghiên cứu về những vấn đề đó, mô hình trên không còn có ý nghĩa gì nữa, và sau đó chúng ta cần phải dùng đến một thứ khác. Thông thường, người ta bắt đầu chú ý đến tổng số tin nhắn hoặc bit được truyền trong mạng. Đó là một lý do tại sao chúng tôi nhận được một số mô hình khác nhau.


Sau đó, tất nhiên chúng ta có một vấn đề là cộng đồng điện toán phân tán thực sự là hai cộng đồng khác nhau, với rất ít điểm chung đáng ngạc nhiên . Nếu bạn gộp lại với nhau tất cả các mô hình từ hai cộng đồng, nó sẽ chắc chắn tìm một chút bối rối ... câu trả lời của tôi ở trên có liên quan đến chỉ có một nửa của cộng đồng; Tôi tin tưởng người khác sẽ điền vào liên quan đến nửa kia.


Nếu tôi hiểu điều này một cách chính xác, vấn đề là có một lý thuyết tao nhã chỉ dành cho các hệ thống đồng bộ và không có nhiều thứ khác. Đối với các hệ thống không phải là hệ thống đồng bộ, chúng tôi đang giải quyết các vấn đề / mối quan hệ từ hai cộng đồng khác nhau và điều này trình bày các vấn đề phương pháp luận với việc phát triển một lý thuyết duy nhất. Tôi đã hiểu chính xác lập luận của bạn chưa?
Srikanth Sastry

Cảm ơn câu trả lời rất nhiều thông tin. Tôi sẽ chấp nhận điều này như câu trả lời.
Mohammad Al-Turkistany

5

Một ý tưởng lãng mạn để nắm bắt các mô hình điện toán phân tán khác nhau đã được thông qua cấu trúc liên kết đại số. Ý tưởng cốt lõi là xây dựng các phức hợp đơn giản bằng cách cho các điểm là các trạng thái quá trình, mỗi trạng thái được gắn nhãn với một id tiến trình. Đây là một mồi về chủ đề này. Câu trả lời gần nhất cho câu hỏi của bạn có lẽ đã được Eli gafni chạm đến trong bài báo của ông- Điện toán phân tán- Một thoáng của một lý thuyết. Trong bài báo của mình, anh ta cho thấy các mô phỏng bắt đầu với bộ nhớ chia sẻ không đồng bộ cho hai - ba bộ xử lý (đối với lỗi dừng và Byzantine) - cho thấy cách có thể áp dụng điều này cho mô hình truyền tin nhắn. Điều quan trọng để hiểu các mô phỏng của ông là khái niệm xem một máy tính phân tán theo cấu trúc liên kết


4

Tôi nghĩ tình hình có vẻ khá khác biệt nếu được xem trong bối cảnh: bắt đầu từ những công trình đầu tiên và kết quả không thể thực hiện được theo thỏa thuận Byzantine ( PSL80 LSP82 FLP85), rõ ràng rằng các vấn đề cơ bản trong điện toán phân tán chỉ có thể được giải quyết hoàn toàn với các giả định đồng bộ nghiêm ngặt và mức độ dư thừa cao. Vì các giới hạn tài nguyên lý thuyết vô điều kiện này được coi là không khả thi cho bất kỳ mục đích thực tế nào, nghiên cứu tập trung vào phát triển các mô hình tinh chế hơn cho phép đánh đổi các giả định chi tiết hơn (ví dụ về bảo đảm thời gian hoặc chế độ thất bại) so với bảo đảm (ví dụ như số lỗi đồng thời các loại trên các loại thành phần dung sai, ví dụ như bộ xử lý, liên kết) để cung cấp cho các nhà thiết kế hệ thống các công cụ để tìm ra sự đánh đổi phù hợp cho hệ thống.


Tôi hiểu rằng các mô hình tinh chế đã được giới thiệu để hiểu khả năng giải quyết 'thực tế' của các vấn đề trong không gian phân tán. Người ta sẽ mong đợi các mô hình hạt mịn này sắp xếp gọn gàng thành một hệ thống phân cấp liên quan đến khả năng thanh toán, độ phức tạp thời gian và độ phức tạp của thông điệp. Không may, không phải trường hợp này. Câu hỏi của tôi ở đây, lý do cho sự balkanization này là gì? Nếu đó là một số thuộc tính vốn có của điện toán phân tán, thì chúng là gì?
Srikanth Sastry
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.