NUMA与英特尔下一代Xeon处理器学习心得(4)
生活随笔
收集整理的這篇文章主要介紹了
NUMA与英特尔下一代Xeon处理器学习心得(4)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在傳統SMP系統上,所有CPU都以同樣的方式通過一個共享內存控制器來訪問內存,各CPU之間也是通過它來進行交流,所以很容易造成擁堵。而一個內存控制器所能夠管理的內存數量也是非常有限的。此外,通過唯一的hub訪問內存造成的延遲也是非常高的。 ? 在NUMA結構下,每個計算機不再只有唯一的內存控制器,而是把整個系統分成多個節點。每個節點分別有自己的處理器和內存。系統中所有的節點都通過全互聯的方式連接。所以,每當在系統中增加新的節點,系統所能夠支持的內存和帶寬都會增加,具有非常好的擴展性。 ? 下面就講講NUMA的內存組織 ? 在NUMA系統中,每個CPU可以訪問兩種內存:本地內存(Local Memory)和遠端內存(Remote Memory)。和CPU在同一個節點的內存稱為本地內存,訪問延遲非常低。和CPU在不同節點上的內存叫做遠端內存,CPU需要通過節點互聯方式訪問,所以訪問延遲要比訪問本地內存長。 ? 從軟件的角度來看,遠端內存和本地內存是以同樣的方式訪問的。理論上講,NUMA系統可以被軟件視為與SMP同樣的系統,不區分本地和遠端內存。但是如果追求更好的性能,這個區別還是需要被考慮的。 ? 經實驗,對于常規的內存操作,如清空(Memset),塊復制(Memcpy),流讀寫(Stream),指針追溯(Pointer Chase)等操作來說,本地內存的訪問速度要遠遠優于遠端內存。 ? 由于 NUMA 同時使用本地內存和遠端內存,因此,訪問某些內存區域的時間會比訪問其他內存區域的要長。本地內存和遠端內存通常用于引用當前正在運行的線程。本地內存是指與當前正在運行線程的 CPU 位于同一節點上的內存。任何不屬于當前正在運行的線程所在的節點的內存均為遠端內存。訪問遠端內存的開銷與訪問本地內存的開銷比率稱為 NUMA 比率。如果 NUMA 比率為 1,則它是對稱多處理 (SMP)。比率越高,訪問其他節點內存的開銷就越大。不支持 NUMA 的 應用程序有時在 NUMA 硬件上的執行效果非常差。 ? 由于訪問本地內存和遠端內存的開銷是有區別的,所以在NUMA模式下,如果每個線程更多的是訪問本地內存,那么性能相比而言會有一定提升。
轉載于:https://blog.51cto.com/intelisn/130482
總結
以上是生活随笔為你收集整理的NUMA与英特尔下一代Xeon处理器学习心得(4)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ISA Server 2004防火墙的基
- 下一篇: quickreport 加急!!!