JP2016503205A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2016503205A5 JP2016503205A5 JP2015549660A JP2015549660A JP2016503205A5 JP 2016503205 A5 JP2016503205 A5 JP 2016503205A5 JP 2015549660 A JP2015549660 A JP 2015549660A JP 2015549660 A JP2015549660 A JP 2015549660A JP 2016503205 A5 JP2016503205 A5 JP 2016503205A5
- Authority
- JP
- Japan
- Prior art keywords
- update
- counter
- data structure
- value
- selecting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims 33
- 230000004044 response Effects 0.000 claims 16
- 230000000977 initiatory Effects 0.000 claims 9
- 230000005055 memory storage Effects 0.000 claims 2
- 241000735244 Libocedrus plumosa Species 0.000 claims 1
- 230000001808 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 230000001419 dependent Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 claims 1
- 238000007667 floating Methods 0.000 claims 1
Claims (17)
- 方法であって、
1つ以上計算ノードによって実行され、前記計算ノードの各々は少なくとも1つのプロセッサコアとメモリとを含み、方法は、
共用カウンタをインクリメントする1つ以上の演算を含むマルチスレッドアプリケーションの実行を始めるステップを備え、前記共用カウンタは、前記マルチスレッドアプリケーションの複数のスレッドによってアクセス可能なデータ構造として実施され、方法はさらに、
前記マルチスレッドアプリケーションの所与のスレッドにより、前記共用カウンタをターゲットとしたインクリメント演算を開始するステップと、
前記開始するステップに応答し、前記データ構造を更新するか、またはいつ更新するかを判定するステップと、前記データ構造を更新するという判定に応答し、前記データ構造に格納された値を更新するステップとを備え、
前記データ構造を更新するか、またはいつ更新するかを判定するステップ、または、前記データ構造に格納された値を更新するステップは、現在または過去の前記共用カウンタの競合の量に応じて前記判定または前記更新を行なう複数の技術のうちの1つを選択するステップを含む、方法。 - 前記判定または前記更新を行なう複数の技術のうち1つを選択するステップは、以前の前記共用カウンタをインクリメントする試みによってリトライ限界条件が満たされたかに依存する、または、前記更新によって満たされるかに依存する、請求項1に記載の方法。
- 前記判定または前記更新を行なう複数の技術のうち1つを選択するステップは、前記開始するステップに応答して前記共用カウンタをインクリメントする試みの失敗が既に所定の最大数を超えたかに依存する、請求項1または2に記載の方法。
- 前記判定または前記更新を行なう複数の技術のうち1つを選択するステップは、競合管理ポリシーに依存する、請求項1〜3のいずれか1項に記載の方法。
- 前記データ構造は、カウント値部分とノード識別子部分とを含み、
前記更新を行なう複数の技術のうちの1つを選択するステップは、
前記データ構造の前記カウント値部分のみが更新される技術、または
前記データ構造の前記カウント値部分および前記ノード識別子部分の両方が更新される技術、のうちの1つを選択するステップを含む、請求項1〜4のいずれか1項に記載の方法。 - 前記データ構造は、
カウント値またはポインタ値を格納するカウンタ部分と、
前記カウンタ部分がカウント値またはポインタ値を格納するかの指標とを含み、前記カウンタ部分に格納されたポインタ値は、1つ以上の値を含む代替カウンタ構造を識別し、
前記更新を行なう複数の技術のうちの1つを選択するステップは、
前記カウンタ部分がカウント値を格納し、前記更新が前記カウンタ部分に格納された前記カウント値をインクリメントすることを含む技術、または
前記カウンタ部分がポインタ値を格納し、前記更新が前記ポインタ値によって識別された前記代替カウンタ構造における前記値の1つを更新することを含む技術、のうちの1つを選択するステップを含む、請求項1〜4のいずれか1項に記載の方法。 - 前記更新を行なう複数の技術のうちの1つを選択するステップは、
前記開始するステップに応答して前記更新が正確なカウント値をインクリメントすることを含む技術、または
予測カウント値が更新確率値から計算可能であり、前記更新が現在値に等しい確率を用いて前記開始するステップに応答して前記更新確率値を更新することを含む技術、のうちの1つを選択するステップを含む、請求項1〜6のいずれか1項に記載の方法。 - 前記データ構造は、前記正確なカウント値および前記更新確率値の両方を格納し、
前記方法はさらに、
前記複数のスレッドのうちの1つにより、前記共用カウンタをターゲットとしたリード演算を開始するステップと、
前記複数のスレッドのうちの1つが前記リード演算を開始するステップに応答して、前記共用カウンタの予測値と前記正確なカウント値とからなる集合を含む前記共用カウンタの復号値を生成するステップと、
前記共用カウンタの複合値を返すステップとを備える、請求項7に記載の方法。 - 前記データ構造は、確率的カウンタ値の表現を格納し、前記共用カウンタの予測値は前記確率的カウンタ値の前記表現から計算可能であり、前記更新は、後続のインクリメント演算を開始するステップに応答して前記データ構造に格納された前記確率的カウンタ値の前記表現が更新される前記確率の減少をもたらし、
前記更新を行なう複数の技術のうちの1つを選択するステップは、
前記共用カウンタの高い競合に応答し、前記共用カウンタの競合が低い時よりも、前記確率的カウンタ値の前記表現が更新される確率が減少する頻度が大きくなる技術を選択するステップ、または
前記共用カウンタの低い競合に応答し、前記共用カウンタの競合が高い時よりも、前記確率的カウンタ値の前記表現が更新される確率が減少する頻度が小さくなる技術を選択するステップを含む、請求項1〜4のいずれか1項に記載の方法。 - 前記データ構造は、仮数部分と指数部分とを含む確率的カウンタ値の2進浮動小数点表現を格納し、
前記更新を行なう複数の技術のうちの1つを選択するステップは、前記データ構造の前記仮数部分のみが更新される技術、または前記データ構造の前記仮数部分および前記指数部分の両方が更新される技術、のうちの1つを選択するステップを含む、請求項1〜4のいずれか1項に記載の方法。 - 前記判定を行なう複数の技術のうちの1つを選択するステップは、
前記共用カウンタの低い競合に応答して、前記判定が無条件に前記更新を行なうことになる技術を選択するステップ、または
前記共用カウンタの高い競合に応答して、前記共用カウンタに関連付けられた更新確率値に前記判定が依存する技術を選択するステップを含む、請求項1〜4のいずれか1項に記載の方法。 - 前記判定を行なう複数の技術のうちの1つを選択するステップは、
前記共用カウンタの低い競合に応答して、前記判定が無条件に前記更新を遅れなく行なうことになる技術を選択するステップ、または
前記共用カウンタの高い競合に応答して、前記データ構造をいつ更新するかを判定することが更新優先度指標に依存する技術を選択するステップを含む、請求項1〜4のいずれか1項に記載の方法。 - システムであって、
1つ以上のプロセッサと、
メモリ格納プログラム命令とを含み、前記メモリ格納プログラム命令が前記1つ以上のプロセッサ上で実行されると、前記1つ以上のプロセッサは、
共用カウンタをインクリメントする1つ以上の演算を含むマルチスレッドアプリケーションの実行を始め、前記共用カウンタは、前記マルチスレッドアプリケーションの複数のスレッドによってアクセス可能なデータ構造として実施され、前記1つ以上のプロセッサはさらに、
前記マルチスレッドアプリケーションの所与のスレッドにより、前記共用カウンタをターゲットとしたインクリメント演算を開始し、
前記開始することに応答して、前記データ構造を更新するか、またはいつ更新するかを判定し、
前記データ構造を更新するという判定に応答して、前記データ構造に格納された値を更新し、
前記データ構造を更新するか、またはいつ更新するかの前記判定、または、前記データ構造に格納された値の前記更新は、現在または過去の前記共用カウンタの競合の量に応じて前記判定または前記更新を行なう複数の技術のうちの1つを選択することを含む、システム。 - 前記データ構造は、カウント値部分とノード識別子部分とを含み、
前記更新を行なう複数の技術のうちの1つを選択することは、
前記データ構造の前記カウント値部分のみが更新される技術、または
前記データ構造の前記カウント値部分および前記ノード識別子部分の両方が更新される技術、のうちの1つを選択することを含む、請求項13に記載のシステム。 - 前記データ構造は、前記共用カウンタの前記値を集合的に表わす正確なカウント値と更新確率値とを格納し、
前記更新を行なう複数の技術のうちの1つを選択することは、
前記開始することに応答して前記正確なカウント値をインクリメントすることを前記更新することが含む技術、または
予測カウント値が前記更新確率値に少なくとも部分的に基づいて計算可能であり、前記更新することが、現在値に等しい確率を用いて前記開始に応答して更新確率値を更新する技術、のうちの1つを選択することを含む、請求項13または14に記載のシステム。 - 前記データ構造は確率的カウンタ値の表現を格納し、前記共用カウンタの予測値は前記確率的カウンタ値の表現から計算可能であり、前記更新は、後続のインクリメント演算の開始に応答して、前記データ構造に格納される前記確率的カウンタ値の前記表現が更新される確率が減少することになり、
前記更新を行なう複数の技術のうちの1つを選択することは、
前記共用カウンタの高い競合に応答して、前記共用カウンタの競合が低い時よりも、前記確率的カウンタ値の前記表現が更新される確率が減少する頻度が大きくなる技術を選択すること、または
前記共用カウンタの低い競合に応答して、前記共用カウンタの競合が高い時よりも、前記確率的カウンタ値の前記表現が更新される確率が減少する頻度が小さくなる技術を選択することを含む、請求項13または14に記載のシステム。 - コンピュータ読み取り可能プログラムであって、前記プログラムが1つ以上のコンピュータ上で実行されると、前記1つ以上のコンピュータは、
共用カウンタをインクリメントする1つ以上の演算を含むマルチスレッドアプリケーションの実行を始め、前記共用カウンタは、前記マルチスレッドアプリケーションの複数のスレッドによってアクセス可能なデータ構造として実施され、前記1つ以上のコンピュータはさらに、
前記マルチスレッドアプリケーションの所与のスレッドにより、前記共用カウンタをターゲットとしたインクリメント演算を開始し、
前記開始することに応答して、前記データ構造を更新するか、またはいつ更新するかを判定し、
前記データ構造を更新するという判定に応答して、前記データ構造に格納された値を更新し、
前記データ構造を更新するか、またはいつ更新するかの前記判定、または前記データ構造に格納された値の前記更新は、現在または過去の前記共用カウンタの競合の量に応じて前記判定または前記更新を行なう複数の技術のうちの1つを選択することを含む、コンピュータ読み取り可能プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/722,811 | 2012-12-20 | ||
US13/722,811 US9183048B2 (en) | 2012-12-20 | 2012-12-20 | System and method for implementing scalable contention-adaptive statistics counters |
PCT/US2013/076316 WO2014100295A1 (en) | 2012-12-20 | 2013-12-19 | System and method for implementing scalable contention-adaptive statistics counters |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2016503205A JP2016503205A (ja) | 2016-02-01 |
JP2016503205A5 true JP2016503205A5 (ja) | 2017-01-19 |
JP6333848B2 JP6333848B2 (ja) | 2018-05-30 |
Family
ID=49956406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015549660A Active JP6333848B2 (ja) | 2012-12-20 | 2013-12-19 | スケーラブル競合適応性を有する統計カウンタを実施するシステムおよび方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9183048B2 (ja) |
EP (1) | EP2936311B1 (ja) |
JP (1) | JP6333848B2 (ja) |
CN (1) | CN105103130B (ja) |
WO (1) | WO2014100295A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9613119B1 (en) * | 2013-03-14 | 2017-04-04 | Nutanix, Inc. | Unique identifiers for data replication, migration, failover operations and failback operations |
JP6195342B2 (ja) * | 2013-03-27 | 2017-09-13 | キヤノン株式会社 | 情報処理装置およびメモリアクセス制御方法 |
US9825884B2 (en) | 2013-12-30 | 2017-11-21 | Cavium, Inc. | Protocol independent programmable switch (PIPS) software defined data center networks |
US9413357B2 (en) | 2014-06-11 | 2016-08-09 | Cavium, Inc. | Hierarchical statistically multiplexed counters and a method thereof |
US10685042B2 (en) | 2014-12-22 | 2020-06-16 | Amazon Technologies, Inc. | Identifying join relationships based on transactional access patterns |
US10120905B2 (en) * | 2014-12-22 | 2018-11-06 | Amazon Technologies, Inc. | Efficient determination of join paths via cardinality estimation |
JP6295990B2 (ja) * | 2015-03-31 | 2018-03-20 | 京セラドキュメントソリューションズ株式会社 | 電子機器および情報処理プログラム |
US20160378471A1 (en) * | 2015-06-25 | 2016-12-29 | Intel IP Corporation | Instruction and logic for execution context groups for parallel processing |
US9477471B1 (en) * | 2015-07-07 | 2016-10-25 | Versa Networks, Inc. | Maintaining lock-free, high frequency, high performance counters in software |
WO2019197487A1 (en) | 2018-04-10 | 2019-10-17 | Netrounds Ab | Measuring metrics of a computer network |
CN112131267B (zh) * | 2020-08-14 | 2023-10-03 | 北京达佳互联信息技术有限公司 | 计数处理方法、装置、服务器和计数处理系统 |
KR102253362B1 (ko) | 2020-09-22 | 2021-05-20 | 쿠팡 주식회사 | 전자 장치 및 이를 이용한 정보 제공 방법 |
CN113032160B (zh) * | 2021-03-11 | 2024-01-30 | 腾讯科技(深圳)有限公司 | 一种数据同步的管理方法以及相关装置 |
US20230034933A1 (en) * | 2021-07-30 | 2023-02-02 | Advanced Micro Devices, Inc. | Thread forward progress and/or quality of service |
US11663128B1 (en) * | 2022-01-20 | 2023-05-30 | Dell Products L.P. | Techniques for performing metadata updates for cache consistency |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6701447B1 (en) * | 2000-09-06 | 2004-03-02 | International Business Machines Corporation | System for delaying the counting of occurrences of a plurality of events occurring in a processor until the disposition of the event has been determined |
US6940852B1 (en) | 2000-12-26 | 2005-09-06 | Juniper Networks, Inc. | Probabilistic counter |
US7765214B2 (en) | 2005-05-10 | 2010-07-27 | International Business Machines Corporation | Enhancing query performance of search engines using lexical affinities |
EP2069930A4 (en) * | 2006-10-05 | 2012-05-30 | Waratek Pty Ltd | ADVANCED CONTENT DETECTION |
US20080127214A1 (en) * | 2006-10-05 | 2008-05-29 | Holt John M | Contention detection with counter rollover |
JP5407783B2 (ja) * | 2009-11-13 | 2014-02-05 | 株式会社リコー | 情報処理装置、情報処理方法、及び情報処理プログラム |
WO2011113828A1 (en) * | 2010-03-16 | 2011-09-22 | International Business Machines Corporation | Diagnostic data capture in a computing environment |
US8931088B2 (en) | 2010-03-26 | 2015-01-06 | Alcatel Lucent | Adaptive distinct counting for network-traffic monitoring and other applications |
-
2012
- 2012-12-20 US US13/722,811 patent/US9183048B2/en active Active
-
2013
- 2013-12-19 EP EP13821290.7A patent/EP2936311B1/en active Active
- 2013-12-19 WO PCT/US2013/076316 patent/WO2014100295A1/en active Application Filing
- 2013-12-19 JP JP2015549660A patent/JP6333848B2/ja active Active
- 2013-12-19 CN CN201380072247.8A patent/CN105103130B/zh active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2016503205A5 (ja) | ||
JP2016506577A5 (ja) | ||
US11182213B2 (en) | Application program management method and device | |
US9639280B2 (en) | Ordering memory commands in a computer system | |
US20160026573A1 (en) | Using a decrementer interrupt to start long-running hardware operations before the end of a shared processor dispatch cycle | |
KR102424121B1 (ko) | 프리-페치 유닛, 그것을 포함하는 장치 및 그것의 동작 방법 | |
JP2016502212A5 (ja) | ||
WO2015157068A1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
JP2013542530A5 (ja) | ||
JP2018534675A (ja) | 再マッピング同期によるタスクサブグラフの加速化 | |
CN109308191B (zh) | 分支预测方法及装置 | |
US9471383B2 (en) | Task allocation in a computing environment | |
JP2016509281A5 (ja) | ||
CN104424361A (zh) | 自动定义热存储和大工作负载 | |
KR102571623B1 (ko) | 초기 리턴 예측을 갖는 분기 타겟 버퍼 | |
US10621008B2 (en) | Electronic device with multi-core processor and management method for multi-core processor | |
KR20120003088A (ko) | 결정적 프로그레스 인덱스를 이용한 스레드 프로그레스 트래킹 방법 및 장치 | |
US11144428B2 (en) | Efficient calculation of performance data for a computer | |
CN107562527B (zh) | 一种rtos上的smp的实时任务调度方法 | |
US9489246B2 (en) | Method and device for determining parallelism of tasks of a program | |
WO2017086986A1 (en) | Partitioned graph processing | |
US20180011795A1 (en) | Information processing apparatus and cache information output method | |
US9563484B2 (en) | Concurrent computing with reduced locking requirements for shared data | |
EP3850480A1 (en) | Controlling accesses to a branch prediction unit for sequences of fetch groups | |
US20180121209A1 (en) | Adaptive mechanisms to improve boot performance |