Tôi đồng ý với bạn rằng không phải là cách tốt nhất để mô tả các thuật toán song song hiệu quả.NC
Thật vậy, theo định nghĩa NC cũng bao gồm rất nhiều vấn đề không thể song song hiệu quả. Một ví dụ phổ biến là tìm kiếm nhị phân song song. Vấn đề phát sinh do tìm kiếm nhị phân song song có độ phức tạp thời gian đa giác ngay cả với . Bất kỳ thuật toán tuần tự nào yêu cầu tại hầu hết thời gian logarit trong trường hợp xấu nhất là ở bất kể tính khả thi song song của nó.N Cp=1NC
Nhưng chờ đợi, có nhiều hơn nữa.
NC thuật toán giả định các máy song song có số lượng bộ xử lý đa thức để giải quyết trong các vấn đề thời gian đa lượng có kích thước vừa phải. Tuy nhiên, trong thực tế, chúng tôi sử dụng các máy có kích thước vừa phải (về bộ xử lý) để giải quyết các vấn đề lớn . Số lượng bộ xử lý có xu hướng là đa thức phụ, thậm chí là tuyến tính.
Cuối cùng, có các vấn đề trong với thời gian song song tuyến tính đó, những vấn đề này không thuộc về . Bây giờ, các hàm tuyến tính có thể có một hành vi tiệm cận có liên quan chỉ đối với các giá trị lớn không chính thức của , và thay vào đó có thể ít tiến bộ hơn đối với các giá trị thực tế của . Ví dụ: cho . Theo sau các thuật toán thời gian song song tuyến tính có thể chạy nhanh hơn các thuật toán .O ( n ε ) , 0 < ε < 1 N C n n √PO(nϵ),0<ϵ<1NCnnn≤0,5×109NCn−−√<lg3nn≤0.5×109NC
Trong một câu trả lời, người ta đã quan sát rằng "Trong thực tế, điều này có nghĩa là chúng ta có thể chuẩn bị một máy tính có nhiều bộ nhớ hơn khi kích thước đầu vào tăng lên, đó là cách chúng ta thường sử dụng máy tính trong thế giới thực. NC mô hình một tình huống tương tự trong tính toán song song ".
Tôi một phần đồng ý với quan điểm này. Chúng tôi mua một máy tính song song mới có nhiều bộ nhớ hơn khi siêu máy tính cũ ngừng hoạt động vì các chip DRAM ít tốn kém hơn theo thời gian và để cân bằng phần nào máy tính song song liên quan đến các thành phần chính của nó (bộ xử lý, bộ nhớ, kết nối, v.v.).
Tuy nhiên, vì bộ nhớ là tài nguyên hữu hạn, đã có rất nhiều nghiên cứu về việc sử dụng nó một cách hiệu quả, mà không yêu cầu thêm bộ nhớ vào siêu máy tính để giải quyết các vấn đề lớn hơn. Chẳng hạn, Sun và Ni đã đề xuất khái niệm tăng tốc giới hạn bộ nhớ và Quinn đã đề xuất hàm gọi là khả năng mở rộng để đo lượng bộ nhớ trên mỗi bộ xử lý phải tăng lên như thế nào để duy trì mức hiệu quả không đổi. Nói chung, vì chi phí hoạt động song song tăng khi số lượng bộ xử lý tăng, chúng tôi duy trì hiệu quả tăng kích thước của vấn đề đang được giải quyết. Nhưng kích thước bài toán tối đa bị giới hạn bởi số lượng bộ nhớ chính (là tuyến tính tính theon pp). Hàm khả năng mở rộng sử dụng hàm đẳng hướng và một hàm khác biểu thị lượng bộ nhớ cần thiết để lưu trữ một vấn đề về kích thước để xác định mức độ bộ nhớ trên mỗi bộ xử lý phải tăng lên để duy trì mức hiệu quả không đổi. Khi hàm này là một hằng số, thuật toán song song hoàn toàn có thể mở rộng (từ việc sử dụng phối cảnh bộ nhớ). Trong khi bộ nhớ có sẵn, có thể duy trì cùng mức hiệu quả bằng cách tăng kích thước bài toán. Tuy nhiên, do bộ nhớ được sử dụng cho mỗi bộ xử lý tăng tuyến tính với , nên đến một lúc nào đó, giá trị này sẽ đạt đến dung lượng bộ nhớ của hệ thống. Hiệu quả không thể được duy trì khi số lượng bộ xử lý tăng vượt quá điểm này.np
Do đó, ngày càng quan trọng để thiết kế các thuật toán song song có thể mở rộng bộ nhớ, vì chúng là thực tế cho các vấn đề lớn.
n3n