瀏覽單個文章
NTC_TW_IT
Regular Member
 

加入日期: Jul 2014
文章: 89
引用:
作者冰的啦魔王大人
對稱式多工處理 SMP
chiounan
2014-10-30 08:38:46 1357 瀏覽
單一電腦多 CPU 核心是目前電腦的主流,而多個 CPU 的運作方式可分為不同 CPU 負擔不同工作的非對稱模式 (asymmetrical multi-processing),以及多個 CPU 分擔同一件工作的對稱模式 (symmetrical multi-processing,SMP)。如果要採用非對稱模式的話,電腦要執行的運算工作必須要先很精巧的分割,才能達到真正的效益,而這往往需要特殊的編譯器與作業系統搭配,所以不是很普遍。而另一種對稱模式則相對簡單,普遍的作業系統像是 Linux 都有支援 SMP 架構。

在 SMP 架構中,CPU 與 CPU 之間共用記憶體,所以如果缺法適當的鎖定機制,一個 CPU 所儲存的運算結果是有可能被另一個 CPU 所誤用的。這點在 user space 的程式上問題少了點,因為程式往往每次只在呼叫他的 CPU 上執行。但是對 kernel module 而言,卻可能同時被在不同 CPU 上執行的...

補充一下
關於記憶體存取部分,現在普遍常見是UMA/NUMA架構
有server board可以看一下BIOS設定,應該有這各選項才對
預設應該是關閉的,也就是說CPU能存取remote node與local node上的記憶體
舉個例來說 2顆CPU, 256GB + 256GB記憶體
關了NUMA,那麼程式可以存取一共512GB記憶體
但是跨到remote node去存取記憶體,就會走所謂的QPI或者UPI,此時會產生latency
CPU affinity, IRQ affinity或者是NUMA相關的字眼,在虛擬化平台應該很常見了才是
 
舊 2017-10-15, 01:50 PM #12
回應時引用此文章
NTC_TW_IT離線中