JP2016503205A5 - - Google Patents

Download PDF

Info

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
Application number
JP2015549660A
Other languages
English (en)
Other versions
JP2016503205A (ja
JP6333848B2 (ja
Filing date
Publication date
Priority claimed from US13/722,811 external-priority patent/US9183048B2/en
Application filed filed Critical
Publication of JP2016503205A publication Critical patent/JP2016503205A/ja
Publication of JP2016503205A5 publication Critical patent/JP2016503205A5/ja
Application granted granted Critical
Publication of JP6333848B2 publication Critical patent/JP6333848B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (17)

  1. 方法であって、
    1つ以上計算ノードによって実行され、前記計算ノードの各々は少なくとも1つのプロセッサコアとメモリとを含み、方法は、
    共用カウンタをインクリメントする1つ以上の演算を含むマルチスレッドアプリケーションの実行を始めるステップを備え、前記共用カウンタは、前記マルチスレッドアプリケーションの複数のスレッドによってアクセス可能なデータ構造として実施され、方法はさらに、
    前記マルチスレッドアプリケーションの所与のスレッドにより、前記共用カウンタをターゲットとしたインクリメント演算を開始するステップと、
    前記開始するステップに応答し、前記データ構造を更新するか、またはいつ更新するかを判定するステップと、前記データ構造を更新するという判定に応答し、前記データ構造に格納された値を更新するステップとを備え、
    前記データ構造を更新するか、またはいつ更新するかを判定するステップ、または、前記データ構造に格納された値を更新するステップは、現在または過去の前記共用カウンタの競合の量に応じて前記判定または前記更新を行なう複数の技術のうちの1つを選択するステップを含む、方法。
  2. 前記判定または前記更新を行なう複数の技術のうち1つを選択するステップは、以前の前記共用カウンタをインクリメントする試みによってリトライ限界条件が満たされたかに依存する、または、前記更新によって満たされるかに依存する、請求項1に記載の方法。
  3. 前記判定または前記更新を行なう複数の技術のうち1つを選択するステップは、前記開始するステップに応答して前記共用カウンタをインクリメントする試みの失敗が既に所定の最大数を超えたかに依存する、請求項1または2に記載の方法。
  4. 前記判定または前記更新を行なう複数の技術のうち1つを選択するステップは、競合管理ポリシーに依存する、請求項1〜3のいずれか1項に記載の方法。
  5. 前記データ構造は、カウント値部分とノード識別子部分とを含み、
    前記更新を行なう複数の技術のうちの1つを選択するステップは、
    前記データ構造の前記カウント値部分のみが更新される技術、または
    前記データ構造の前記カウント値部分および前記ノード識別子部分の両方が更新される技術、のうちの1つを選択するステップを含む、請求項1〜4のいずれか1項に記載の方法。
  6. 前記データ構造は、
    カウント値またはポインタ値を格納するカウンタ部分と、
    前記カウンタ部分がカウント値またはポインタ値を格納するかの指標とを含み、前記カウンタ部分に格納されたポインタ値は、1つ以上の値を含む代替カウンタ構造を識別し、
    前記更新を行なう複数の技術のうちの1つを選択するステップは、
    前記カウンタ部分がカウント値を格納し、前記更新が前記カウンタ部分に格納された前記カウント値をインクリメントすることを含む技術、または
    前記カウンタ部分がポインタ値を格納し、前記更新が前記ポインタ値によって識別された前記代替カウンタ構造における前記値の1つを更新することを含む技術、のうちの1つを選択するステップを含む、請求項1〜4のいずれか1項に記載の方法。
  7. 前記更新を行なう複数の技術のうちの1つを選択するステップは、
    前記開始するステップに応答して前記更新が正確なカウント値をインクリメントすることを含む技術、または
    予測カウント値が更新確率値から計算可能であり、前記更新が現在値に等しい確率を用いて前記開始するステップに応答して前記更新確率値を更新することを含む技術、のうちの1つを選択するステップを含む、請求項1〜6のいずれか1項に記載の方法。
  8. 前記データ構造は、前記正確なカウント値および前記更新確率値の両方を格納し、
    前記方法はさらに、
    前記複数のスレッドのうちの1つにより、前記共用カウンタをターゲットとしたリード演算を開始するステップと、
    前記複数のスレッドのうちの1つが前記リード演算を開始するステップに応答して、前記共用カウンタの予測値と前記正確なカウント値とからなる集合を含む前記共用カウンタの復号値を生成するステップと、
    前記共用カウンタの複合値を返すステップとを備える、請求項7に記載の方法。
  9. 前記データ構造は、確率的カウンタ値の表現を格納し、前記共用カウンタの予測値は前記確率的カウンタ値の前記表現から計算可能であり、前記更新は、後続のインクリメント演算開始するステップに応答して前記データ構造に格納された前記確率的カウンタ値の前記表現が更新される前記確率の減少をもたらし、
    前記更新を行なう複数の技術のうちの1つを選択するステップは、
    前記共用カウンタの高い競合に応答し、前記共用カウンタの競合が低い時よりも、前記確率的カウンタ値の前記表現が更新される確率が減少する頻度が大きくなる技術を選択するステップ、または
    前記共用カウンタの低い競合に応答し、前記共用カウンタの競合が高い時よりも、前記確率的カウンタ値の前記表現が更新される確率が減少する頻度が小さくなる技術を選択するステップを含む、請求項1〜4のいずれか1項に記載の方法。
  10. 前記データ構造は、仮数部分と指数部分とを含む確率的カウンタ値の2進浮動小数点表現を格納し、
    前記更新を行なう複数の技術のうちの1つを選択するステップは、前記データ構造の前記仮数部分のみが更新される技術、または前記データ構造の前記仮数部分および前記指数部分の両方が更新される技術、のうちの1つを選択するステップを含む、請求項1〜4のいずれか1項に記載の方法。
  11. 前記判定を行なう複数の技術のうちの1つを選択するステップは、
    前記共用カウンタの低い競合に応答して、前記判定が無条件に前記更新を行なうことになる技術を選択するステップ、または
    前記共用カウンタの高い競合に応答して、前記共用カウンタに関連付けられた更新確率値に前記判定が依存する技術を選択するステップを含む、請求項1〜4のいずれか1項に記載の方法。
  12. 前記判定を行なう複数の技術のうちの1つを選択するステップは、
    前記共用カウンタの低い競合に応答して、前記判定が無条件に前記更新を遅れなく行なうことになる技術を選択するステップ、または
    前記共用カウンタの高い競合に応答して、前記データ構造をいつ更新するかを判定することが更新優先度指標に依存する技術を選択するステップを含む、請求項1〜4のいずれか1項に記載の方法。
  13. システムであって、
    1つ以上のプロセッサと、
    メモリ格納プログラム命令とを含み、前記メモリ格納プログラム命令が前記1つ以上のプロセッサ上で実行されると、前記1つ以上のプロセッサは、
    共用カウンタをインクリメントする1つ以上の演算を含むマルチスレッドアプリケーションの実行を始め、前記共用カウンタは、前記マルチスレッドアプリケーションの複数のスレッドによってアクセス可能なデータ構造として実施され、前記1つ以上のプロセッサはさらに、
    前記マルチスレッドアプリケーションの所与のスレッドにより、前記共用カウンタをターゲットとしたインクリメント演算を開始し、
    前記開始することに応答して、前記データ構造を更新するか、またはいつ更新するかを判定し、
    前記データ構造を更新するという判定に応答して、前記データ構造に格納された値を更新し、
    前記データ構造を更新するか、またはいつ更新するかの前記判定、または、前記データ構造に格納された値の前記更新は、現在または過去の前記共用カウンタの競合の量に応じて前記判定または前記更新を行なう複数の技術のうちの1つを選択することを含む、システム。
  14. 前記データ構造は、カウント値部分とノード識別子部分とを含み、
    前記更新を行なう複数の技術のうちの1つを選択することは、
    前記データ構造の前記カウント値部分のみが更新される技術、または
    前記データ構造の前記カウント値部分および前記ノード識別子部分の両方が更新される技術、のうちの1つを選択することを含む、請求項13に記載のシステム。
  15. 前記データ構造は、前記共用カウンタの前記値を集合的に表わす正確なカウント値と更新確率値とを格納し、
    前記更新を行なう複数の技術のうちの1つを選択することは、
    前記開始することに応答して前記正確なカウント値をインクリメントすることを前記更新することが含む技術、または
    予測カウント値が前記更新確率値に少なくとも部分的に基づいて計算可能であり、前記更新することが、現在値に等しい確率を用いて前記開始に応答して更新確率値を更新する技術、のうちの1つを選択することを含む、請求項13または14に記載のシステム。
  16. 前記データ構造は確率的カウンタ値の表現を格納し、前記共用カウンタの予測値は前記確率的カウンタ値の表現から計算可能であり、前記更新は、後続のインクリメント演算の開始に応答して、前記データ構造に格納される前記確率的カウンタ値の前記表現が更新される確率が減少することになり、
    前記更新を行なう複数の技術のうちの1つを選択することは、
    前記共用カウンタの高い競合に応答して、前記共用カウンタの競合が低い時よりも、前記確率的カウンタ値の前記表現が更新される確率が減少する頻度が大きくなる技術を選択すること、または
    前記共用カウンタの低い競合に応答して、前記共用カウンタの競合が高い時よりも、前記確率的カウンタ値の前記表現が更新される確率が減少する頻度が小さくなる技術を選択することを含む、請求項13または14に記載のシステム。
  17. ンピュータ読み取り可能プログラムであって、前記プログラムが1つ以上のコンピュータ上で実行されると、前記1つ以上のコンピュータは、
    共用カウンタをインクリメントする1つ以上の演算を含むマルチスレッドアプリケーションの実行を始め、前記共用カウンタは、前記マルチスレッドアプリケーションの複数のスレッドによってアクセス可能なデータ構造として実施され、前記1つ以上のコンピュータはさらに、
    前記マルチスレッドアプリケーションの所与のスレッドにより、前記共用カウンタをターゲットとしたインクリメント演算を開始し、
    前記開始することに応答して、前記データ構造を更新するか、またはいつ更新するかを判定し、
    前記データ構造を更新するという判定に応答して、前記データ構造に格納された値を更新し、
    前記データ構造を更新するか、またはいつ更新するかの前記判定、または前記データ構造に格納された値の前記更新は、現在または過去の前記共用カウンタの競合の量に応じて前記判定または前記更新を行なう複数の技術のうちの1つを選択することを含む、コンピュータ読み取り可能プログラム
JP2015549660A 2012-12-20 2013-12-19 スケーラブル競合適応性を有する統計カウンタを実施するシステムおよび方法 Active JP6333848B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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