對不起,問一個問題一個我知之甚少的話題,但這種想法真的被竊聽了我,我一直沒能找到在互聯網上的任何答案。「嗯並行化」算法不能由多個線程加快
背景: 我正在和我的一位計算機科學研究的朋友談話。我大多在特設的發展,所以我大部分的CS概念的理解是在功能級(我知道如何使用他們,而不是他們的工作)。他說,轉換「以及並行化」算法已經在單個線程運行到一個運行在多線程並沒有導致他期待處理速度提高一點。
推理: 我問他是什麼計算機的體系結構,他是上運行此算法,他說,16核心(非虛擬化)。根據我對多核處理器的瞭解,在多核上運行的算法的處理速度增加應該大致與其並行化程度成正比。
問題: 算法如何「正確並行化」並正確編程以在真正的多核處理器上運行,而不是多跑幾次?是否有一些我在這裏失蹤的信息,或者更可能是實施的問題?
其他的東西:我問是否這些線程可能佔用比任何單獨的內核可用的功率更大,顯然每個內核運行在3.4 GHz。這比算法所需要的要多得多,並且在運行診斷程序時,內核在運行時不會超時。
讓你的朋友編寫代碼並讓計算機發布這個特定實例的細節。對你的問題的一般回答「爲什麼隨機並行代碼不加速?」填寫了幾本教科書和研究會議。 – Novelocrat