Song song ngụ ý đồng thời nhưng không phải là cách khác phải không?


15

Tôi thường đọc rằng song song và đồng thời là những thứ khác nhau. Rất thường những người trả lời / bình luận đi xa như viết rằng họ là hai điều hoàn toàn khác nhau. Tuy nhiên, theo quan điểm của tôi, chúng có liên quan nhưng tôi muốn làm rõ điều đó.

Ví dụ: nếu tôi sử dụng CPU đa lõi và quản lý để phân chia tính toán thành x tính toán nhỏ hơn (giả sử sử dụng fork / nối) mỗi luồng chạy trong luồng riêng, tôi sẽ có một chương trình vừa thực hiện tính toán song song (vì được cho là tại bất kỳ thời điểm nào, một số luồng sẽ chạy trên một số lõi) đồng thời phải không?

Trong khi nếu tôi chỉ đơn giản sử dụng, giả sử, Java và xử lý các sự kiện UI và phát lại trên Chuỗi xử lý sự kiện cộng với việc chạy luồng duy nhất do tôi tự tạo, tôi sẽ có một chương trình đồng thời (luồng EDT + GC + luồng chính của tôi v.v.) nhưng không song song.

Tôi muốn biết liệu tôi có đúng không và nếu song song (trên hệ thống "đơn nhưng đa lõi") luôn ngụ ý đồng thời hay không?

Ngoài ra, các chương trình đa luồng có chạy trên CPU đa lõi không, nhưng các luồng khác nhau đang thực hiện tính toán hoàn toàn khác nhau được coi là sử dụng "song song"?


Câu trả lời:


13

Theo Wikipedia :

Tính toán song song là một hình thức tính toán trong đó nhiều phép tính được thực hiện đồng thời, hoạt động theo nguyên tắc các vấn đề lớn thường có thể được chia thành các vấn đề nhỏ hơn, sau đó được giải quyết đồng thời ("song song").

Đó là, song song luôn ngụ ý đồng thời.

Ngoài ra, các chương trình đa luồng có chạy trên CPU đa lõi không, nhưng các luồng khác nhau đang thực hiện tính toán hoàn toàn khác nhau được coi là sử dụng "song song"?

Bản chất của song song là một vấn đề lớn được chia thành những vấn đề nhỏ hơn để những phần nhỏ hơn có thể được giải quyết đồng thời. Các mảnh này độc lập lẫn nhau (ít nhất là ở một mức độ nào đó), nhưng chúng vẫn là một phần của vấn đề lớn hơn, hiện đang được giải quyết song song.

Bản chất của đồng thời là một số luồng (hoặc quy trình hoặc máy tính) đang làm một cái gì đó đồng thời , có thể (nhưng không nhất thiết) tương tác theo một số cách. Wikipedia một lần nữa :

Đồng thời là một thuộc tính của các hệ thống trong đó một số tính toán đang thực hiện đồng thời và có khả năng tương tác với nhau.


4
Bài đăng tuyệt vời. Song song là một tập hợp con của Đồng thời.

3
Xin lỗi, nhưng câu trả lời này không chính xác. Bạn chắc chắn có thể có sự song song mà không cần đồng thời (ví dụ: song song mức bit) và trên thực tế, hai là hai khái niệm riêng biệt. Đồng thời là về việc soạn thảo các đơn vị thực thi độc lập trong khi song song là về việc thực hiện đồng thời các tính toán có khả năng liên quan.
Kai Sellgren

@KaiSellgren: Vui lòng trích dẫn một số nguồn để hỗ trợ tuyên bố của bạn.
Joonas Pulakka

Các wikiquote đầu tiên chỉ đơn giản là hoàn toàn sai. May mắn thay, nó đã được sửa chữa một thời gian trước đây và bây giờ nó nói chính xác rằng sự song song không dựa vào sự tương tranh.
Kai Sellgren

Thật vậy, đó là những gì mục wiki hiện đang nói ( có thể có sự song song mà không cần đồng thời (chẳng hạn như song song mức bit) ). Nhưng tôi không có được điểm đó; không phải là sự song song ở cấp độ bit là điều có thể tưởng tượng nhất - nhiều thao tác được thực hiện với ít lệnh hơn, sau đó không phải là một số thao tác được thực hiện trong cùng một lệnh, tức là đồng thời, tức là đồng thời?
Joonas Pulakka

3

Mã có thể đồng thời, nhưng không song song.

Hãy tưởng tượng nhiều luồng chạy trên máy lõi đơn. Máy lõi đơn này sẽ chỉ xử lý một luồng tại thời điểm đó, do đó sẽ không có hoạt động song song. Nhưng đối với mỗi luồng, nhờ cách HĐH xử lý nhiều luồng, thì mỗi luồng cần giả định tất cả các luồng khác đang chạy cùng một lúc.


0

Song song đơn giản có nghĩa là thực hiện đồng thời nhiều nhiệm vụ; mặt khác, đồng thời là khả năng của kernel thực hiện nhiều tác vụ bằng cách liên tục chuyển đổi giữa nhiều tiến trình.

Để đạt được sự song song, điều quan trọng là hệ thống chỉ cần có nhiều lõi thì có thể đạt được sự song song một cách hiệu quả. Và có rất nhiều điểm nhấn về hiệu năng và rất nhiều chi phí phát sinh nếu thử song song trên một máy lõi đơn.

Ví dụ, hệ thống trước đó chỉ có một lõi và bộ lập lịch CPU sẽ tạo ảo giác về sự song song bằng cách liên tục chuyển đổi giữa các quy trình cho phép mỗi quá trình thực hiện tiến trình.

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.