JP2020077416A - 平均オブジェクト参照に基づいた、コピー・ガベージ・コレクションのためのワーク・スティーリングにおけるスピン・カウントの削減 - Google Patents
平均オブジェクト参照に基づいた、コピー・ガベージ・コレクションのためのワーク・スティーリングにおけるスピン・カウントの削減 Download PDFInfo
- Publication number
- JP2020077416A JP2020077416A JP2019201186A JP2019201186A JP2020077416A JP 2020077416 A JP2020077416 A JP 2020077416A JP 2019201186 A JP2019201186 A JP 2019201186A JP 2019201186 A JP2019201186 A JP 2019201186A JP 2020077416 A JP2020077416 A JP 2020077416A
- Authority
- JP
- Japan
- Prior art keywords
- computer
- tasks
- threads
- object references
- copy
- 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 abstract description 53
- 230000008569 process Effects 0.000 claims abstract description 17
- 230000007958 sleep Effects 0.000 claims abstract description 12
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000012545 processing Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 8
- 230000007704 transition Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
(ブロックA−201)ワーク・スティーリングでコピーする、および、
(ブロックB−202)スピン、イールドまたはスリープを伴って終了する、
が実行される。
102 システム・バス
104 プロセッサ(CPU)
106 キャッシュ
108 読み出し専用メモリ(ROM)
110 ランダム・アクセス・メモリ(RAM)
110A デックのセット
120 入出力(I/O)アダプタ
122 第1の記憶デバイス
124 第2の記憶デバイス
130 サウンド・アダプタ
132 スピーカ
140 ネットワーク・アダプタ
142 トランシーバ
150 ユーザ・インターフェース・アダプタ
152 第1のユーザ入力デバイス
154 第2のユーザ入力デバイス
156 第3のユーザ入力デバイス
160 ディスプレイ・アダプタ
162 ディスプレイ・デバイス
194 グラフィックス処理ユニット(GPU)
200 方法、シナリオ/プロセス
300 方法
Claims (14)
- 生きているオブジェクト(live object)をコピーし、スピン状態、イールド状態およびスリープ状態を含む状態を伴うコピー・ガベージ・コレクション(GC)のプロセスを実施するコンピュータ・システムにおいてGCスレッドの数を制御するための、コンピュータによって実施される方法であって、
プロセッサ・デバイスによって、現在盗むことができるタスクの数がしきい値より小さいことに応答し、オブジェクト参照の予測数に基づいて前記状態のうちの所与の1つからワーク・スティーリングでコピーするために戻ってくるGCスレッドの前記数を決定するステップであって、オブジェクト参照の前記予測数はオブジェクト参照の過去の平均数を使用して計算される、前記決定するステップと、
前記プロセッサ・デバイスによって、現在盗むことができるタスクの前記数が前記しきい値以上であることに応答し、現在盗むことができるタスクの前記数に基づいて前記状態のうちの前記所与の1つからコピー作業のために戻ってくるGCスレッドの前記数を決定するステップと、を含む、コンピュータによって実施される方法。 - オブジェクト参照の前記過去の平均数は、過去に作成された子タスクの数を示す、請求項1に記載のコンピュータによって実施される方法。
- オブジェクト参照の前記過去の平均数は、作成する子タスクの現在の数を決定するために使用される、請求項2に記載のコンピュータによって実施される方法。
- 前記状態のうちの前記所与の1つからワーク・スティーリングでコピーするために戻ってくるGCスレッドについて前記決定された数を使用して前記コピーGCのプロセスを実行することをさらに含む、請求項1に記載のコンピュータによって実施される方法。
- 複数の前記決定するステップは、前記状態のうちの1つから前記所与の状態への状態移行に応答して実行される、請求項1に記載のコンピュータによって実施される方法。
- 前記スピン状態は、スピン・ループを実行することおよびタスクを盗もうとすることを含む、請求項1に記載のコンピュータによって実施される方法。
- 前記イールド状態は、前記GCスレッドのうちの別の1つにイールドすることおよびタスクを盗もうとすることを含む、請求項1に記載のコンピュータによって実施される方法。
- 前記スリープ状態は、ある期間スリープすることおよびタスクを盗もうとすることを含む、請求項1に記載のコンピュータによって実施される方法。
- 生きているオブジェクト(live object)をコピーし、スピン状態、イールド状態およびスリープ状態を含む状態を伴うコピー・ガベージ・コレクション(GC)のプロセスにおいてGCスレッドの数を制御するためのコンピュータ処理システムであって、
プログラム・コードを記憶するためのメモリと、
現在盗むことができるタスクの数がしきい値より小さいことに応答し、オブジェクト参照の過去の平均数を使用して計算される、オブジェクト参照の予測数に基づいて前記状態のうちの所与の1つからワーク・スティーリングでコピーするために戻ってくるGCスレッドの前記数を決定するため、
および、
現在盗むことができるタスクの前記数が前記しきい値以上であることに応答し、現在盗むことができるタスクの前記数に基づいて前記状態のうちの前記所与の1つからコピー作業のために戻ってくるGCスレッドの前記数を決定するための、
前記プログラム・コードを実行するためのプロセッサ・デバイスと、を含む、コンピュータ処理システム。 - 前記コピーGCのプロセスの一部分を実施するためのデックのセットをさらに含む、請求項9に記載のコンピュータ処理システム。
- オブジェクト参照の前記過去の平均数は、過去に作成された子タスクの数を示す、請求項9に記載のコンピュータ処理システム。
- オブジェクト参照の前記過去の平均数は、作成する子タスクの現在の数を決定するために使用される、請求項11に記載のコンピュータ処理システム。
- コンピュータ・プログラムであって、請求項1ないし8のいずれか1項に記載の方法の各ステップをコンピュータに実行させるための、コンピュータ・プログラム。
- 請求項13に記載のコンピュータ・プログラムを記録した、コンピュータ可読媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/185,880 | 2018-11-09 | ||
US16/185,880 US10725817B2 (en) | 2018-11-09 | 2018-11-09 | Reducing spin count in work-stealing for copying garbage collection based on average object references |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020077416A true JP2020077416A (ja) | 2020-05-21 |
JP7306966B2 JP7306966B2 (ja) | 2023-07-11 |
Family
ID=70550511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019201186A Active JP7306966B2 (ja) | 2018-11-09 | 2019-11-06 | 平均オブジェクト参照に基づいた、コピー・ガベージ・コレクションのためのワーク・スティーリングにおけるスピン・カウントの削減 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10725817B2 (ja) |
JP (1) | JP7306966B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10719350B2 (en) * | 2017-10-10 | 2020-07-21 | Sap Se | Worker thread manager |
US10929054B2 (en) * | 2019-06-06 | 2021-02-23 | International Business Machines Corporation | Scalable garbage collection |
US11645200B2 (en) | 2020-11-24 | 2023-05-09 | International Business Machines Corporation | Reducing load balancing work stealing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007122527A (ja) * | 2005-10-31 | 2007-05-17 | Hitachi Ltd | 流量制御方法 |
JP2017142670A (ja) * | 2016-02-10 | 2017-08-17 | 株式会社日立製作所 | メモリ管理装置およびメモリ管理方法 |
US20180307417A1 (en) * | 2015-10-19 | 2018-10-25 | Huawei Technologies Co., Ltd. | Method and device for determination of garbage collector thread number and activity management in log-structured file systems |
US20180314631A1 (en) * | 2017-04-28 | 2018-11-01 | International Business Machines Corporation | Balanced double deques for eliminating memory fences in garbage collection |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9038087B2 (en) | 2008-06-18 | 2015-05-19 | Microsoft Technology Licensing, Llc | Fence elision for work stealing |
US9317339B2 (en) * | 2013-03-13 | 2016-04-19 | Oracle International Corporation | Systems and methods for implementing work stealing using a configurable separation of stealable and non-stealable work items |
US9804888B2 (en) * | 2013-03-15 | 2017-10-31 | Oracle International Corporation | System and method for implementing constrained data-driven parallelism |
US9262233B1 (en) | 2014-10-01 | 2016-02-16 | Software Ag | Second-order tuning of spin loops |
US9348658B1 (en) * | 2014-12-12 | 2016-05-24 | Intel Corporation | Technologies for efficient synchronization barriers with work stealing support |
US9760410B2 (en) * | 2014-12-12 | 2017-09-12 | Intel Corporation | Technologies for fast synchronization barriers for many-core processing |
US9886317B2 (en) | 2015-02-02 | 2018-02-06 | Oracle International Corporation | Fine-grained scheduling of work in runtime systems |
-
2018
- 2018-11-09 US US16/185,880 patent/US10725817B2/en active Active
-
2019
- 2019-11-06 JP JP2019201186A patent/JP7306966B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007122527A (ja) * | 2005-10-31 | 2007-05-17 | Hitachi Ltd | 流量制御方法 |
US20180307417A1 (en) * | 2015-10-19 | 2018-10-25 | Huawei Technologies Co., Ltd. | Method and device for determination of garbage collector thread number and activity management in log-structured file systems |
JP2017142670A (ja) * | 2016-02-10 | 2017-08-17 | 株式会社日立製作所 | メモリ管理装置およびメモリ管理方法 |
US20180314631A1 (en) * | 2017-04-28 | 2018-11-01 | International Business Machines Corporation | Balanced double deques for eliminating memory fences in garbage collection |
Also Published As
Publication number | Publication date |
---|---|
JP7306966B2 (ja) | 2023-07-11 |
US10725817B2 (en) | 2020-07-28 |
US20200151003A1 (en) | 2020-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9262160B2 (en) | Load latency speculation in an out-of-order computer processor | |
US10324836B2 (en) | Balanced double deques for eliminating memory fences in garbage collection | |
JP7306966B2 (ja) | 平均オブジェクト参照に基づいた、コピー・ガベージ・コレクションのためのワーク・スティーリングにおけるスピン・カウントの削減 | |
US20140143791A1 (en) | System, method, and apparatus for improving application-launch latencies | |
US8775778B2 (en) | Use of a helper thread to asynchronously compute incoming data | |
TWI421770B (zh) | 將處理器置於漸慢作業模式中之系統與方法 | |
US9928105B2 (en) | Stack overflow prevention in parallel execution runtime | |
US9495224B2 (en) | Switching a locking mode of an object in a multi-thread program | |
CN114816748A (zh) | 线程调度方法、装置、电子设备和存储介质 | |
US10929054B2 (en) | Scalable garbage collection | |
US9870400B2 (en) | Managed runtime cache analysis | |
US10769063B2 (en) | Spin-less work-stealing for parallel copying garbage collection | |
US9542233B1 (en) | Managing a free list of resources to decrease control complexity and reduce power consumption | |
US20230205700A1 (en) | Selective speculative prefetch requests for a last-level cache | |
KR20210025677A (ko) | 초기 리턴 예측을 갖는 분기 타겟 버퍼 | |
US20170371732A1 (en) | Method for debugging static memory corruption | |
US20150178089A1 (en) | Load synchronization with streaming thread cohorts | |
US11068250B2 (en) | Crowdsourced API resource consumption information for integrated development environments | |
CN111433738A (zh) | 控制器事件队列 | |
KR102161742B1 (ko) | 피드백 경로를 포함하는 파이프 라인 시스템 및 그 동작방법 | |
US10698716B2 (en) | Virtual machine state recorder | |
US11775337B2 (en) | Prioritization of threads in a simultaneous multithreading processor core | |
US11822471B2 (en) | Reducing write barriers in snapshot-based garbage collection | |
KR102595895B1 (ko) | 상황인식 리소스 핫플러그 관리 시스템 및 방법 | |
US9519583B1 (en) | Dedicated memory structure holding data for detecting available worker thread(s) and informing available worker thread(s) of task(s) to execute |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220418 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220512 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230228 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230525 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230613 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230629 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7306966 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |