![]() |
|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
![]() |
#18 (permalink) |
列管會員
![]() ![]() |
![]() 觀念的分享
NUMA (Non-Uniform Memory Access) 的設計簡化了匯流排的複雜程度, NUMA 把系統切成數個節點 (node),每個處理器及記憶體就位在某一個節點上,當處理器存取同一個節點的記憶體時,可以有較高的存取速度;而存取其他節點的記憶體時,就需要透過節點間的資料傳遞,會耗費較多時間。 ![]() 作業系統中為了提高記憶體存取的效率,會針對硬體的 NUMA 配置來設定記憶體存取的策略 (policy),並提供 NUMA 相關的程式介面 (API) 來查詢系統 NUMA 配置和修改存取策略。 以 GNU Linux 為例,作業系統的核心 (kernel) 在2.6版後,就會依據硬體架構的 NUMA 設計,進行記憶體的配置,並提供 NUMA 相關的系統呼叫函式 (system call) 供程式使用;在 /proc 這個程序虛擬檔案系統 (proc file system) 裡,也有 numa_maps 檔案可以查詢某個程序 (process) 的記憶體配置。另外也有 numactl 指令,可以查詢系統的 NUMA 狀況及改變記憶體配置的策略。 ![]() 因為 NUMA 架構的影響,當利用共享記憶體進行需要資料交換的平行計算時,如果進行計算的執行緒在不同節點的核心的話,共享記憶體存取的效率就會下降,所以需要了解每個執行緒是被那一個核心所執行。在 Linux 的環境中,要觀察目前正在執行的程式狀態可以使用 top 指令,配合-H參數可以顯示所有的執行緒,進入 top 指令的介面後,打開 Last used CPU 的資訊,就可以了解每一個執行緒是被那一個核心執行的。 參考 numactl 指令得到的 NUMA 架構資訊,可以知道每一個核心所屬的節點和每個節點的記憶體配置,利用這些資訊就能規劃執行緒與核心的分配。 ![]() 進一步對 NUMA 了解,可參考此文 http://technet.microsoft.com/zh-tw/l.../ms345345.aspx 本文參考文章 周秉誼 / 臺灣大學計算機及資訊網路中心作業管理組碩士後研究人員 http://www.cc.ntu.edu.tw/chinese/epa...01220_1508.htm |
![]() |
送花文章: 33547,
![]() |
|
|
![]() |
||||
主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
疑問 - 為何微軟更新時CPU的使用率一定是100%? 難到不能限制使用率嗎? | poss | 網路疑難應用技術研討區 | 4 | 2008-11-05 09:20 PM |
求助 - 為何Windows media plarer會把CPU變成100% | arnold0613 | 一般電腦疑難討論區 | 3 | 2007-02-28 06:42 PM |
疑問 - 不知為何電腦的cpu使用率居高不下 | 寒傲雪飲 | 硬體疑難使用問題討論區 | 7 | 2006-12-05 01:53 PM |
快報 - AMD 將大幅度調降CPU價格 | K22514 | 硬體疑難使用問題討論區 | 8 | 2006-07-23 09:48 AM |
為何我的cpu一開機使用率就百分之百? | longcat | 硬體疑難使用問題討論區 | 4 | 2003-08-14 06:15 PM |