Có thể (dấu gạch chéo bạn có thể cung cấp một ví dụ) để giảm độ phức tạp tính toán của một vấn đề bằng cách sử dụng thuật toán song song không yêu cầu số lượng bộ xử lý so với kích thước đầu vào không?
Có thể (dấu gạch chéo bạn có thể cung cấp một ví dụ) để giảm độ phức tạp tính toán của một vấn đề bằng cách sử dụng thuật toán song song không yêu cầu số lượng bộ xử lý so với kích thước đầu vào không?
Câu trả lời:
Nếu bạn có nghĩa là bộ xử lý O (1), thì không, độ phức tạp tính toán không thể giảm.
Đơn giản chỉ cần sắp xếp công việc được thực hiện bởi mỗi bộ xử lý và thực hiện nó trên một bộ duy nhất. Nếu bạn lo lắng về việc đồng bộ hóa, thì một bộ xử lý có thể dễ dàng mô phỏng điều đó.
Có một lĩnh vực mới nổi của các thuật toán song song hạt thô, trong đó thời gian chạy (và mức tiêu thụ tài nguyên tính toán khác) được coi là một hàm của các tham số độc lập n (kích thước đầu vào) và p (số lượng bộ xử lý), thường theo giả định tự nhiên n >> p .
Một điểm khởi đầu tốt là google cho "song song hàng loạt".
Bạn có thể quan tâm đến bài viết này:
Hiệu suất siêu tuyến trong tính toán song song thời gian thực của Selim Akl.
Ông cung cấp các ví dụ về các vấn đề tính toán trong đó "giải pháp tuần tự chậm hơn lần so với giải pháp song song n-bộ xử lý"; điều này được thực hiện bằng cách diễn giải một cách sáng tạo khái niệm "vấn đề tính toán".
"bạn không thể tính toán nó với 1 bộ xử lý, nhưng có thể tính toán với 2."
Điều này là không thể, giả sử rằng cả hai bộ xử lý là TM hoặc một mô hình ít mạnh hơn. Từ wikipedia, cho máy nhiều băng:
Mô hình này bằng trực giác có vẻ mạnh hơn nhiều so với mô hình băng đơn, nhưng bất kỳ máy đa băng nào, dù k lớn đến đâu, đều có thể được mô phỏng bằng máy băng đơn chỉ sử dụng thời gian tính toán nhiều hơn theo phương pháp bậc hai (Papadimitriou 1994, Thrm 2.1)
Ngoài ra, đối với máy nhiều đầu, từ "Mô phỏng thời gian tuyến tính của máy turing đa đầu có đầu - Nhảy đầu" của Walter J. Savitch và Paul MB Vitányi:
Kết quả chính của bài báo này cho thấy, với một máy Turing có nhiều đầu đọc ghi trên mỗi băng và có thêm một thao tác dịch chuyển "chuyển một đầu nhất định sang vị trí của một số đầu khác", người ta có thể xây dựng một cách hiệu quả máy Turing đa nhiệm với một đầu đọc-ghi trên mỗi băng mô phỏng theo thời gian tuyến tính; tức là nếu máy ban đầu hoạt động theo thời gian T (n), thì máy mô phỏng sẽ hoạt động theo thời gian cT (n), đối với một số hằng số c.
Có lẽ "song song hoặc" (được đưa ra hai hàm trả về giá trị boolean, cho biết liệu một trong số chúng có trả về đúng không, cho rằng bất kỳ hàm nào trong số chúng, nhưng không phải cả hai, có thể không kết thúc) có thể là điều bạn đang nói đến: bạn không thể tính toán Nó với 1 bộ xử lý, nhưng có thể tính toán với 2.
Tuy nhiên, điều này phụ thuộc nhiều vào mô hình tính toán nào bạn sẽ sử dụng, cho dù bạn đưa ra các quy trình dưới dạng hộp đen hoặc như mô tả của chúng mà bạn có thể tự giải thích, v.v.