2013-02-03 38 views

回答

3

Nehalem處理器使用QuickPath Interconnect (QPI)進行處理器間/節點/包通信。在一個NUMA system中,每個節點都有自己的本地內存,它與系統中的其他節點共享。當程序的working set適合L1緩存並且是隻讀的時,NUMA節點擁有內存並不重要。當核心獲取緩存未命中並且內存由另一個節點擁有時,需要NUMA節點之間的通信。但是,這並不意味着訪問另一個節點所擁有的內存比較慢,這取決於另一個節點是否將其緩存在與其本地內存相關的緩存中,英特爾稱之爲最後級緩存(LLC)。核心訪問該節點本地的內存位置比訪問另一個節點擁有的內存要快,但是隻有在兩個節點上的LLC未命中時纔會訪問該內存。訪問另一個節點上LLC的內存比訪問本地節點上的內存要快,這是因爲內存比CPU慢得多,並且QPI針對這種通信進行了優化。大多數系統不打算試圖減少處理器之間的通信,因爲,正如你可以想象的那樣,這不是一個簡單的問題 - 它需要設置線程對內核的親和力,設置該線程的內存工作集與本地內存的親和性的節點。您可以在Drepper Ulrich's paper中閱讀更多關於此的內容,請搜索NUMA。在本文中,Ulrich將QPI稱爲通用系統接口(CSI),這是公佈之前的英特爾QPI名稱。

+0

非常感謝你,將其作爲我的項目,並一直給我帶來很多頭痛。 –

相關問題