[發明專利]用于實現NUMA感知統計計數器的系統和方法有效
| 申請號: | 201380072254.8 | 申請日: | 2013-12-19 |
| 公開(公告)號: | CN105190560B | 公開(公告)日: | 2018-12-11 |
| 發明(設計)人: | D·戴斯;Y·列夫;M·S·莫爾 | 申請(專利權)人: | 甲骨文國際公司 |
| 主分類號: | G06F9/52 | 分類號: | G06F9/52;G06F9/50 |
| 代理公司: | 中國國際貿易促進委員會專利商標事務所 11038 | 代理人: | 羅亞男 |
| 地址: | 美國加*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 線程 遞增計數器 節點標識符 優先權 計數器 統計計數器 存儲器體系 單個節點 連續更新 數據結構 可擴展 更新 感知 延遲 饑餓 架構 風格 事務 訪問 | ||
1.一種用于實現統計計數器的方法,包括:
由多個計算節點執行以下操作,其中每個節點包括至少一個處理器核心以及存儲器:
開始包括一個或多個遞增共享計數器的操作的多線程應用的執行,其中共享計數器實現為可由在多個計算節點上執行的多線程應用的多個線程訪問的數據結構,其中該數據結構包括計數值部分和節點標識符部分;
由所述應用的給定線程啟動以該共享計數器為目標的遞增操作;及
確定是否嘗試執行遞增操作或者延遲遞增操作的執行,其中所述確定至少部分地依賴于存儲在數據結構的節點標識符部分中的值;
其中存儲在數據結構的節點標識符部分中的值指示所述多個計算節點當中特定一個節點上的一個或多個線程具有遞增共享計數器的優先權或者已經請求遞增共享計數器的優先權。
2.如權利要求1所述的方法,
其中存儲在數據結構的節點標識符部分中的值識別所述多個計算節點當中最近遞增共享計數器的線程在其上執行的特定一個節點;
其中在所識別出的計算節點上執行的線程的遞增操作比在所述多個計算節點中其它節點上執行的線程的遞增操作具有更高的優先權;及
其中所述確定包括確定存儲在數據結構的節點標識符部分中的值是否識別除給定線程在其上執行的計算節點之外的計算節點。
3.如權利要求1所述的方法,
其中存儲在數據結構的節點標識符部分中的值識別所述多個計算節點中已經請求遞增共享計數器的優先權的線程在其上執行的特定一個節點;及
其中所述確定包括確定存儲在數據結構的節點標識符部分中的值是否識別除給定線程在其上執行的計算節點之外的計算節點。
4.如權利要求1所述的方法,其中嘗試執行遞增操作包括利用單個原子操作嘗試遞增存儲在數據結構的計數值部分中的值以及在數據結構的節點標識符部分中存儲給定線程在其上執行的計算節點的標識符。
5.如權利要求4所述的方法,
其中所述確定包括確定數據結構的節點標識符部分的值指示所述多個計算節點中任何一個上都沒有線程具有遞增共享計數器的優先權或者已經請求遞增共享計數器的優先權;及
其中嘗試遞增存儲在數據結構的計數值部分中的值以及在數據結構的節點標識符部分中存儲給定線程在其上執行的計算節點的標識符是響應于遞增數據結構的計數值部分的一次或多次失敗的嘗試而執行的,而無需把值寫到數據結構的節點標識符部分。
6.如權利要求1所述的方法,還包括:
響應于確定所述多個計算節點中除給定線程在其上執行的計算節點之外的特定一個節點上的一個或多個線程具有遞增共享計數器的優先權或者已經請求遞增共享計數器的優先權:
延遲遞增操作的執行;及
嘗試在所述延遲之后執行遞增操作。
7.如權利要求1所述的方法,還包括:
響應于確定所述多個計算節點中給定線程在其上執行的一個計算節點上的線程具有遞增共享計數器的優先權或者已經請求遞增共享計數器的優先權或者所述多個計算節點當中任何一個節點上都沒有線程具有遞增共享計數器的優先權或者已經請求遞增共享計數器的優先權,嘗試無延遲地執行遞增操作。
8.如權利要求1所述的方法,還包括:
響應于確定存儲在數據結構的節點標識符中的值識別除給定線程在其上執行的計算節點之外的計算節點,給定線程在抗饑餓變量中存儲給定線程在其上執行的計算節點的標識符,以指示對遞增共享計數器的優先權的請求。
9.如權利要求8所述的方法,還包括:
在所述存儲之后,在給定線程在其上執行的計算節點上執行的線程嘗試無延遲地執行遞增操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于甲骨文國際公司,未經甲骨文國際公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201380072254.8/1.html,轉載請聲明來源鉆瓜專利網。





