Làm cách nào để tính toán chi phí song song của mã song song chạy trên một bộ xử lý khi không có mã tuần tự?


8

Tôi đang định hình hiệu suất của bộ giải tuyến tính của PETSc. Như tôi hiểu nó,

speedup=Sequential TimeParallel Time.

Tôi biết rằng việc chạy mã song song trên một bộ xử lý có thể được sử dụng làm proxy cho hiệu suất tuần tự. Tuy nhiên, tôi không nghĩ rằng đó là một thước đo tốt của một mã tuần tự tương đương do chi phí phát sinh song song. Thông thường, hiệu suất của mã tuần tự nhanh hơn hiệu suất song song trên một bộ xử lý. Tôi cho rằng tôi có thể tìm kiếm các thư viện số thực hiện cùng một bộ giải, nhưng không có gì đảm bảo rằng thuật toán này thực sự tương đương.

Như tôi hiểu nó,

Parallel performance on one processor=Sequential Time+Parallel Overhead

Do đó, nếu có một cách để định lượng chi phí song song, chúng ta có thể trừ nó khỏi thời gian song song trên một bộ xử lý để có được số đo tốt hơn về thời gian tuần tự.

Vì vậy, câu hỏi của tôi sau đó sẽ là:

  1. Có cách nào để tính toán chi phí song song của mã song song chạy trên một bộ xử lý khi không có mã tuần tự không?
  2. Có thực sự cần thiết? Nói chung, hiệu năng song song trên một bộ xử lý có đủ tốt để xấp xỉ hiệu suất tuần tự không?

Tăng tốc là một biện pháp tương đối và không nói nhiều về hiệu suất tuyệt đối. Tăng tốc có thể được đo lường bằng cách thực hiện tuần tự thuần túy thực hiện cùng một công việc hữu ích hoặc thực hiện song song (với chi phí như bạn chỉ ra). Trong mỗi trường hợp, việc tăng tốc có thể khá khác nhau do chi phí hoạt động song song và / hoặc có thể khác nhau trong các hướng dẫn của ứng dụng. Tại sao bạn muốn ước tính chi phí song song?
Allan P. Engsig-Karup

@ AllanP.Engsig-Karup: Tôi nghĩ động lực chính của tôi chỉ là biết cách lấy ước tính hợp lý của mã tuần tự khi tất cả những gì tôi có là mã song song.
Paul

1
@Paul: Tôi sẽ cố gắng đưa ra câu trả lời thực tế sau đó, nhưng thường có những sự đánh đổi được thực hiện để có được một thuật toán có thể mở rộng. Việc tăng tốc độ thực sự cần được đo tương đối với việc thực hiện nối tiếp tốt nhất, với cùng một đầu vào, tạo ra cùng một đầu ra (nhiễu loạn modulo nhỏ).
Jack Poulson

@Jack: Đồng ý. Ngoài ra, theo tôi, việc tăng tốc tương đối không hữu ích lắm trừ khi thời gian tuyệt đối cũng được đưa ra.
Allan P. Engsig-Karup

1
@Jack: Tôi không đồng ý. Việc thực hiện nối tiếp tốt nhất có thể không phải là của bạn. Tăng tốc mã có lẽ nên được đo dựa trên hiệu suất nối tiếp của chính nó. Sau đó, việc thực hiện của bạn nên được đo lường đối với các triển khai khác ở cả hai khía cạnh tương đối và tuyệt đối. Sử dụng một triển khai nối tiếp không liên quan trong tử số có khả năng gây hiểu nhầm.
Bill Barth

Câu trả lời:


5

Tôi nghĩ rằng miễn là bạn nói những gì bạn đo được khi tăng tốc, sẽ không ai có lỗi với bạn vì đã sử dụng thời gian phiên bản song song của mã để chạy trên một bộ xử lý. Nếu bạn cũng đưa ra tổng thời gian cho một trong các trường hợp của bạn (giả sử thời gian của bộ xử lý), thì mọi người sẽ có thể so sánh việc thực hiện của bạn với những người khác trong tài liệu hoặc với chính họ.

Đối với một số vấn đề, thậm chí không có kết quả bộ xử lý nào có thể tính toán được các ràng buộc của bộ nhớ hoặc thời gian. Do đó, hầu hết mọi người đều hiểu khi nhìn vào kết quả tăng tốc, rằng mọi thứ được tính tương đối với số lượng bộ xử lý nhỏ nhất có sẵn và dữ liệu uni-bộ xử lý là mã song song chạy trên một bộ xử lý.

Không có quy tắc cứng và nhanh, nhưng bạn nên rõ ràng về những gì bạn đang làm và cung cấp cho người đọc của bạn đủ thông tin để tính toán các đại lượng khác có thể khiến họ quan tâm.


0

Tôi không quen thuộc với các bên trong PETSc (không giống như các chuyên gia khác của PETSc ở đây) nhưng imho không nên có chi phí song song với PETSc miễn là bạn điều hành công việc của mình như một quy trình duy nhất (nghĩa là không phân vùng, v.v.).

Hãy nhớ rằng PETSc cũng có thể được cài đặt mà không cần MPI, nghĩa là có thể có bất kỳ chi phí MPI nhỏ nào (giả sử nếu có bất kỳ cuộc gọi MPI thực tế nào được thực hiện khi chạy trên 1 lõi mà tôi rất nghi ngờ) cũng có thể được giảm giá.

Điều này rõ ràng là đúng khi chi phí song song chủ yếu là giao tiếp và không phải là thuật toán.


Điều đó có thể đúng với petc, nhưng có lẽ không đúng với mã song song nói chung.
Paul
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.