2010-03-09 38 views
5

tôi mới đây hỏi một câu hỏi về các thuật toán lập trình song song được đóng khá nhanh do khả năng xấu của tôi để giao tiếp ý định của tôi:Thuật toán lập trình song song hữu ích nhất?

https://stackoverflow.com/questions/2407631/what-is-the-most-useful-parallel-programming-algorithm-closed

tôi cũng đã gần đây đã hỏi một câu hỏi khác, cụ thể:

Is MapReduce just a generalisation of another programming principle?

Câu hỏi khác là cụ thể về việc giảm bản đồ và để xem liệu bản đồ có phải là phiên bản cụ thể hơn của một số khái niệm khác trong lập trình song song hay không. Câu hỏi này (về một thuật toán lập trình song song hữu ích) là nhiều hơn về toàn bộ chuỗi các thuật toán để lập trình song song. Bạn sẽ phải tha thứ cho tôi mặc dù tôi khá mới để lập trình song song, vì vậy có lẽ MapReduce hoặc cái gì đó là một dạng tổng quát hơn của mapreduce là "chỉ" cấu trúc lập trình song song có sẵn, trong trường hợp này tôi xin lỗi vì sự thiếu hiểu biết của tôi.

+1

đây là imho chủ quan –

+0

Tôi đồng ý @Gabriel, cảm ơn. Tôi quên kiểm tra hộp "wiki cộng đồng" – Zubair

+0

Tôi muốn nói 'make -j ' –

Trả lời

1

Có thể có hai cấu trúc lập trình song song "chính".

Bản đồ/Giảm là một. Ở cấp độ siêu chung chung, nó chỉ là sự phân chia và chinh phục song song. Gửi các bit riêng lẻ đến các trình xử lý song song và kết hợp các kết quả khi chúng đến.

Cấu trúc lập trình song song chính khác là đường ống ... các phần công việc trải qua một loạt các giai đoạn, mỗi giai đoạn có thể chạy trong một luồng song song.

Tôi nghĩ rằng chỉ là về bất kỳ thuật toán song song nào sẽ đun sôi xuống một trong hai thuật toán đó. Tôi có thể sai, tất nhiên.

+0

Không được lập bản đồ chỉ giống như thuật toán đường ống, sử dụng hai ống, một để gửi tính toán và một để nhận câu trả lời ? – Zubair

+0

@ Zubair: Không thực sự ... bản đồ giảm gửi mọi thứ đến nhiều 'ống' song song, trong khi một đường ống sẽ gửi mọi thứ xuống cùng một chuỗi tuần tự của các đường ống. Vì vậy, bản đồ/giảm trông giống như A -> (B, C, D, E) -> F (B, C, D, E nhận được yêu cầu song song, và câu trả lời của họ đi thẳng đến F), trong khi một đường ống trông giống như A-> B-> C-> D-> E-> F - mỗi phần tử gửi dữ liệu của nó đến phần tử tiếp theo, vì vậy mọi thứ tới F đã trải qua từ A đến E. IOW, trong một đường ống, mỗi bước lấy đầu ra từ bước trước. – kyoryu

+0

Cảm ơn bạn đã làm rõ. Nếu mọi thứ trong một đường ống phải được xử lý theo cách nối tiếp thì đâu là sự song đối? – Zubair

Các vấn đề liên quan