Linux

Linux 多處理器支持

  • March 24, 2022

我正在閱讀以下論文。在這篇論文中,作者在第一頁的最後一段中爭辯說 Unix/Linux “在單個節點中支持多處理器已經奮鬥了十年”。我不明白這句話的真正含義。為什麼在 Unix/Linux 中支持多處理器如此困難?是 Unix/Linux 的體系結構讓這變得困難嗎?

在引用上方幾行的“年齡”段落中,該論文提供了四個參考:

十年來,Linux 一直在努力充分利用多核

$$ 14, 20, 22, 34 $$.

這些參考文獻分別是:

  • Linux 網路堆棧中的縮放(核心文件的一部分),它描述了在多處理器系統上提高網路性能的各種技術;
  • Silas Boyd-Wickizer、Austin T. Clements、Yandong Mao、Aleksey Pesterev、M. Frans Kaashoek、Robert Morris 和 Nickolai Zeldovich。2010. 對多核 Linux 可擴展性的分析。在第 9 屆 USENIX 作業系統設計和實施會議(加拿大不列顛哥倫比亞省溫哥華)的論文集中 (OSDI'10)。USENIX 協會,美國,1-16。
  • Chansup Byun、Jeremy Kepner、William Arcand、David Bestor、William Bergeron、Matthew Hubbell、Vijay Gadepally、Michael Houle、Michael Jones、Anne Klein 等。2019. 為互動式數據分析優化 Xeon Phi。在*2019 年 IEEE 高性能極限計算會議 (HPEC)*上。IEEE,1-6。
  • Jean-Pierre Lozi、Baptiste Lepers、Justin Funston、Fabien Gaud、Vivien Quéma 和 Alexandra Fedorova。2016. Linux 調度程序:浪費核心的十年。在第十一屆歐洲電腦系統會議(倫敦,英國)*(EuroSys ‘16)*的論文集中。電腦協會,紐約,紐約,美國,第 1 條,16 頁。https://doi.org/10.1145/2901318.2901326

我不熟悉所有四個參考文獻,但第一個暗示網路限制,最後一個給出了調度程序錯誤的範例,即使有可執行的執行緒等待,也會導致可用核心保持空閒。

因此,關於評論含義的問題的答案似乎是,當在具有多個處理器(或核心)的系統上執行時,Linux 核心中的性能不太理想(委婉地說)的記錄實例。

這是一個見仁見智的問題,但我認為多處理器支持被證明很困難(在 UNIX 和 Linux 中)的主要原因是許多人很難理解並發性,而且這兩個系統都是從非並發系統開始的,並且有無需進行重大重新設計即可添加對並發架構的支持——在 Linux 中,首先使用臭名昭著的 Big Kernel Lock。我認為 UNIX 或 Linux 的體系結構本身是否在正確支持並發平台方面引入了基本問題的問題尚未解決,至少在對稱多處理系統中是這樣。

(您可能會發現作業系統是時候重新發現硬體了。)

引用自:https://unix.stackexchange.com/questions/696680