什麼是NUMA(非均勻記憶體存取)
Non-Uniform Memory Access 的縮寫。有離核心近與離核心遠的記憶體,存取遠處記憶體需要較長時間的架構。將資料與執行緒放在同一側會比較快。
日文名稱: NUMA
「NUMA(非均勻記憶體存取)」出現在3領域的4道練習題中(多核心與同步, 效能評估與效能剖析, DRAM等)。
這個名詞所屬的領域: 多核心與同步
Non-Uniform Memory Access 的縮寫。有離核心近與離核心遠的記憶體,存取遠處記憶體需要較長時間的架構。將資料與執行緒放在同一側會比較快。
日文名稱: NUMA
「NUMA(非均勻記憶體存取)」出現在3領域的4道練習題中(多核心與同步, 效能評估與效能剖析, DRAM等)。
這個名詞所屬的領域: 多核心與同步
正確答案:B. 有離核心近的記憶體與遠的記憶體,存取遠處的記憶體需要較多時間
在具有多個CPU插槽的伺服器等系統中,各插槽有直接連接的記憶體,而存取其他插槽的記憶體則要經過插槽之間的連線。因此,遠處的記憶體比近處的記憶體慢,頻寬也較小。所有記憶體在單一位址空間中看起來是一體的,所以程式可以直接運作,但把資料與執行緒放在同一側可以提升效能。
正確答案:C. 只用一個執行緒將大型陣列初始化為0的話,整個陣列會全部放在同一個節點,其他節點的執行緒就得使用遠處的記憶體
僅以malloc配置並不會分配實體頁面,而是在第一次寫入時發生的分頁錯誤(page fault)中,將頁面放在該執行緒所在節點的記憶體。因此,若以一個執行緒進行初始化,整個陣列都會集中在那個節點,在平行運算時,各執行緒負責的部分大多會落在遠處的記憶體。若初始化也以與運算相同的分工平行進行,各部分就會被放在負責它的執行緒附近。
移動後的核心快取中沒有所需的資料,而在NUMA系統中,也可能移到離放置資料的記憶體較遠的插槽(socket)上。
在多核心或NUMA系統上測量效能時,有時會將執行緒固定在特定的核心上(設定親和性,affinity),其理由下列何者正…在具有多顆CPU的伺服器中,會形成直接連接到各CPU的記憶體速度較快的NUMA架構。
在現今多數電腦用處理器中,控制DRAM的記憶體控制器位於何處?統一記憶體(Unified memory) 互斥鎖(Mutex) 比較並交換(Compare-and-swap) 目錄式一致性(Directory-based coherence) 交易式記憶體(Transactional memory) 死結(Deadlock) 自旋鎖(Spinlock) 屏障同步(Barrier synchronization) 原子指令(Atomic instruction) 記憶體一致性模型(Memory consistency model)