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.