Phân tích độ phức tạp thời gian cho mô hình Map-Giảm


8

Tôi đang cố gắng thiết kế lại thuật toán của mình để chạy trên mô hình Hadoop / MapReduce. Tôi đã tự hỏi nếu có bất kỳ cách tiếp cận toàn diện nào để đo độ phức tạp thời gian cho các thuật toán trên nền tảng Dữ liệu lớn.

Một ví dụ đơn giản, lấy trung bình n (= 1 tỷ) số có thể được thực hiện trên O (n) + C (giả sử phép chia là hoạt động thời gian không đổi). Nếu tôi phá vỡ thuật toán song song hóa lớn này cho Map Giảm, bằng cách chia dữ liệu cho k nút, độ phức tạp thời gian của tôi sẽ đơn giản trở thành O (n / k) + C + C '. Ở đây, C 'có thể được coi là chi phí thời gian lập kế hoạch công việc khởi động. Lưu ý rằng không có sự xáo trộn nào liên quan và công việc của bộ giảm tốc gần như không đáng kể.

Tôi quan tâm đến một phân tích đầy đủ hơn về thuật toán với các vòng lặp lặp trên dữ liệu và liên quan đến các hoạt động xáo trộn và giảm tốc nặng. Tôi muốn kết hợp, nếu có thể, các hoạt động I / O và chuyển dữ liệu mạng.


2
Không có cách nào để đo lường sự không triệu chứng. Bạn có quan tâm đến điểm chuẩn hoặc phân tích chính thức? Cái sau là khó khăn trong cài đặt song song, và phụ thuộc vào kiểu máy chính xác của bạn. Rất có thể, nếu bạn giả sử một mô hình mà bạn có thể xử lý trong quá trình phân tích, kết quả sẽ không cho bạn biết nhiều trong thực tế.
Raphael

2
Điều đó nói rằng, câu hỏi này có thể có liên quan.
Raphael

1
Bạn đã thấy Khai thác dữ liệu lớn ? Phần 2.5 và 2.6 nói về việc giảm thiểu chi phí liên lạc (I / O) và không tính thời gian thường là cổ chai thực sự trong Hadoop
Eric Farng

Trong các bài báo tôi đã đọc, bạn không thực sự phân tích sự phức tạp về thời gian. Bạn đếm số vòng và lượng dữ liệu bạn cần xử lý trong mỗi vòng (độ phức tạp trong giao tiếp). Việc xáo trộn dữ liệu qua mạng thường là nút cổ chai trong việc giảm bản đồ.
adrianN

Câu trả lời:


0

S. Arora, B. Barak, Phương pháp hiện đại phức tạp tính toán, Chương 13 là một tài liệu giới thiệu tốt cho chủ đề này:

Sự phức tạp trong giao tiếp liên quan đến kịch bản sau đây. Có hai người chơi có sức mạnh tính toán không giới hạn, mỗi người nắm giữ mộtn đầu vào bit, nói xy. Không ai biết đầu vào của người khác và họ muốn hợp tác tính toánf(x,y) chức năng ở đâu f:{0,1}n×{0,1}n{0,1}được cả hai biết đến. Hơn nữa, họ đã thấy trước tình huống này (ví dụ, một trong các bên có thể là tàu vũ trụ và bên kia có thể là trạm cơ sở trên trái đất), vì vậy họ đã biết - trước khi họ biết đầu vào của mìnhx,y- đồng ý với một giao thức cho truyền thông. Chi phí của giao thức này là số bit được người chơi truyền đạt cho sự lựa chọn đầu vào trong trường hợp xấu nhấtx,y.


-1

Thấy bạn đúng nhưng bạn biết khá khó để nói độ phức tạp thời gian cụ thể của việc giảm bản đồ. Nó phụ thuộc vào truy vấn. Nhưng trong trường hợp đó nên là o (nlogn / k) + c + c 'vì k nút. Tất cả các truy vấn ngắn này bao gồm giai đoạn ánh xạ của texhnique giảm bản đồ tuân theo khái niệm Btree. Từ nơi đó để tính toán bên trong, chúng tôi có thể nói rằng độ phức tạp thời gian của nó> o (nlogn) + c + c '.

Xin hãy sửa lời đề nghị của tôi.


2
Chào mừng đến với trang web! Khi bạn nói "sửa lời đề nghị của tôi, làm ơn", điều đó cho thấy bạn không tự tin lắm vào câu trả lời của mình, điều này nghe có vẻ giống như một phỏng đoán hơn là một câu trả lời thực tế. Rõ ràng, bất kỳ câu trả lời có thể sai nhưng chúng tôi hy vọng rằng người viết câu trả lời tin rằng nó là chính xác!
David Richerby
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.