JP2013140593A - 一又は複数のタスクを実行するために使用するシステム及び方法 - Google Patents
一又は複数のタスクを実行するために使用するシステム及び方法 Download PDFInfo
- Publication number
- JP2013140593A JP2013140593A JP2013000082A JP2013000082A JP2013140593A JP 2013140593 A JP2013140593 A JP 2013140593A JP 2013000082 A JP2013000082 A JP 2013000082A JP 2013000082 A JP2013000082 A JP 2013000082A JP 2013140593 A JP2013140593 A JP 2013140593A
- Authority
- JP
- Japan
- Prior art keywords
- task
- queue
- threads
- manager
- processing engine
- 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 title claims abstract description 82
- 238000012545 processing Methods 0.000 claims abstract description 92
- 238000009825 accumulation Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 description 7
- 235000003642 hunger Nutrition 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000037351 starvation Effects 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
Abstract
【解決手段】タスク配分メトリックが、プロセッサ14に関連する負荷バランスが第1閾値を下回ることを示す場合に、タスクが再入可能タスクであるか否かを決定し、タスクが再入可能タスクである場合に、停止基準が満たされたか否かを決定し、停止基準が満たされておらず、タスクが再入可能タスクである場合にタスクをタスクのキュー26に再入させ、タスク配分メトリックが、少なくとも一つのプロセッサ14に関連するコア29のアフィニティが第2閾値を下回ることを示す場合に、タスクがメインタスクであるか否かを決定し、タスクがメインタスクでない場合に、停止基準が満たされたか否かを決定し、停止基準が満たされており、タスクがメインタスクでない場合に、タスクに関連する親タスクをスレッド31にプルする。
【選択図】図1
Description
12 メモリ
14 プロセッサ
16 プレゼンテーションインターフェース
18 入力インターフェース
20 ユーザ
22 コンピュータが読取可能な媒体
24 処理エンジン
25 キューマネージャ
27 タスクマネージャ
29 処理コア
31 スレッド
100 方法
200 方法
Claims (10)
- 少なくとも一つの処理エンジン(24)によってタスクを実行するために使用するコンピュータによって実行される方法であって、
少なくとも一つの処理エンジン(24)を有する少なくとも一つプロセッサ(14)に関連するタスク配分メトリックを決定するステップであって、前記少なくとも一つの処理エンジン(24)が一又は複数のスレッド(31)を有する、決定するステップと、
前記タスクを前記一又は複数のスレッド(31)のうちの一つに割り当てるステップと、
前記タスク配分メトリックが、前記少なくとも一つのプロセッサ(14)に関連する負荷バランスが第1閾値を下回ることを示す場合、前記少なくとも一つの処理エンジン(24)によって、前記タスクが前記少なくとも一つの処理エンジン(24)に関連する前記一又は複数のスレッド(31)のうちの任意の一つに以前割り当てられた再入可能タスクであるか否かを決定するステップと、
前記タスクが再入可能タスクである場合、前記少なくとも一つの処理エンジン(24)によって、停止基準が満たされたか否かを決定するステップと、
前記停止基準が満たされておらず、前記タスクが再入可能タスクである場合に、前記少なくとも一つの処理エンジン(24)に関連するタスクのキュー(26)に前記タスクを再入させるステップと、
前記タスク配分メトリックが、前記少なくとも一つのプロセッサ(14)に関連するコア(29)アフィニティが第2閾値を下回ることを示す場合、前記少なくとも一つの処理エンジン(24)によって、前記タスクがメインタスクであるか否かを決定するステップと、
前記タスクがメインタスクでない場合、前記少なくとも一つの処理エンジン(24)によって停止基準が満たされたか否かを決定するステップと、
前記停止基準が満たされており、前記タスクがメインタスクでない場合、前記タスクに関連する親タスクを前記一又は複数のスレッド(31)の前記一つにプルするステップ
を含む方法。 - 前記タスクが再入可能タスクである場合に前記停止基準が満たされたか否かを決定するステップが、前記タスクに従属するマルチプルサブタスクのうちの少なくとも一つが完了したか否かを決定し、前記タスクをタスクのキュー(26)に再入させた後で、前記一又は複数のスレッド(31)のうちの前記一つを解放することを含む、請求項1に記載の方法。
- 前記タスクが再入可能タスクでない場合に、前記タスクは複数のサブタスクに分解可能であるか否かを決定し、前記タスクが分解可能である場合に、前記少なくとも一つの処理エンジン(24)によって前記タスクの複数のサブタスクを前記キュー(26)に挿入することをさらに含む、請求項1又は2に記載の方法。
- 前記停止基準が満たされた場合に、前記少なくとも一つの処理エンジン(24)によって少なくとも一つの蓄積タスクを実行し、前記親タスクを前記一又は複数のスレッド(31)のうちの前記一つにプルした後で、前記親タスクに関連する少なくとも一つの蓄積タスクを実行することをさらに含む、請求項1乃至3のいずれか1項に記載の方法。
- 前記タスクがメインタスクでない場合に前記停止基準が満たされたか否かを決定するステップが、前記タスクに従属するマルチプルサブタスクのそれぞれが完了したか否かを決定することを含み、前記停止基準が満たされておらず、前記タスクがメインタスクでない場合、前記タスクをタスクのキュー(26)に再入させた後で、前記タスクの状態を完了に設定し、前記一又は複数のスレッド(31)のうちの前記一つを解放することをさらに含む、請求項1乃至4のいずれか1項に記載の方法。
- 前記タスクがメインタスクか否かを決定する前に、前記タスクが複数のサブタスクに分割可能であるか否かを決定し、前記タスクが分割可能である場合、前記タスクの前記複数のサブタスクをタスクのキュー(26)に挿入することをさらに含む、請求項5に記載の方法。
- タスクの実行において使用するコンピューティング装置であって、前記コンピューティング装置は、
タスクのキュー(26)を記憶するメモリ(12)装置と、
前記メモリ(12)装置に結合し、一又は複数のスレッドを有する少なくとも一つの処理エンジン(24)を含むプロセッサ(14)であって、前記少なくとも一つの処理エンジン(24)はタスクマネージャ(27)とキューマネージャ(25)を含み、前記キューマネージャ(25)はタスクの前記キュー(26)を管理するように構成されており、前記タスクマネージャ(27)は前記プロセッサ(14)に関連するタスク配分メトリックを決定し、前記タスクを前記一又は複数のスレッド(31)のうちの前記一つに割り当てるように構成されている前記プロセッサ(14)を含み、
前記タスクマネージャ(27)は、前記タスク配分メトリックが、前記プロセッサ(14)に関連する負荷バランスが第1閾値を下回ることを示す場合に、前記タスクが、前記一又は複数のスレッド(31)のうちの任意の一つに以前割り当てられた再入可能タスクであるか否かを決定し、前記タスクが再入可能タスクである場合、停止基準が満たされたか否かを決定し、停止基準が満たされておらず、前記タスクが再入可能タスクである場合に、前記タスクをタスクのキュー(26)に前記キューマネージャ(25)を介して再入させるように構成されており、
前記タスクマネージャ(27)は、タスク配分メトリックが、前記プロセッサ(14)に関連するコア(29)アフィニティが第2閾値を下回ることを示す場合に、前記タスクがメインタスクであるか否かを決定し、前記タスクがメインタスクでない場合に、停止基準が満たされたか否かを決定し、停止基準が満たされており、前記タスクがメインタスクではない場合に、前記タスクに関連する親タスクを一又は複数のスレッド(31)のうちの前記一つにプルするように構成されている、コンピューティング装置。 - 前記タスクマネージャ(27)がさらに、前記タスクが再入可能タスクでない場合に、前記タスクが複数のサブタスクに分解可能であるか否かを決定するようにさらに構成されており、前記タスクマネージャ(27)がさらに、前記タスクが分解可能である場合に、前記キューマネージャ(25)を介して、前記タスクの前記複数のサブタスクを前記キュー(26)に挿入するように構成されている、請求項7に記載のコンピューティング装置。
- 前記タスクマネージャ(27)がさらに、前記複数のサブタスクのうちの一つを前記一又は複数のスレッド(31)のうちの2番目のスレッドに割り当てて、前記複数のサブタスクのうちの前記一つが再入可能タスクであるか否かを決定するように構成されており、
前記タスクマネージャ(27)がさらに、前記停止基準が満たされた時に、少なくとも一つの蓄積タスクを実行するように構成されている、請求項7又は8に記載のコンピューティング装置。 - 前記タスクマネージャ(27)がさらに、前記タスクがメインタスクであるか否かを決定する前に、前記タスクが複数のサブタスクに分解可能であるか否かを決定するように構成されており、前記タスクマネージャ(27)がさらに、前記タスクが分解可能である場合に、前記キューマネージャ(25)を介して前記タスクの前記複数のサブタスクを前記キュー(26)に挿入するように構成されており、前記タスクマネージャ(27)がさらに、前記親タスクを前記一又は複数のスレッド(31)のうちの前記一つにプルした後で、前記親タスクに関連する少なくとも一つの蓄積タスクを実行するように構成されている、請求項7に記載のコンピューティング装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/344,474 | 2012-01-05 | ||
US13/344,474 US8621479B2 (en) | 2012-01-05 | 2012-01-05 | System and method for selecting task allocation method based on load balancing and core affinity metrics |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2013140593A true JP2013140593A (ja) | 2013-07-18 |
JP2013140593A5 JP2013140593A5 (ja) | 2013-12-19 |
JP5718378B2 JP5718378B2 (ja) | 2015-05-13 |
Family
ID=47754263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013000082A Active JP5718378B2 (ja) | 2012-01-05 | 2013-01-04 | 一又は複数のタスクを実行するために使用するシステム及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8621479B2 (ja) |
EP (1) | EP2613257B1 (ja) |
JP (1) | JP5718378B2 (ja) |
CN (1) | CN103279388B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017090961A (ja) * | 2015-11-02 | 2017-05-25 | キヤノン株式会社 | 情報処理装置およびその制御方法、並びにプログラム |
JP2020161014A (ja) * | 2019-03-28 | 2020-10-01 | 富士通株式会社 | 情報処理装置および実行制御プログラム |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130332910A1 (en) * | 2012-05-22 | 2013-12-12 | Nec Laboratories America, Inc. | Dynamic livelock analysis of multi-threaded programs |
CN103593240B (zh) * | 2013-11-08 | 2016-11-23 | 华为技术有限公司 | 一种优化的调度方法及管理设备 |
CN105893147A (zh) * | 2016-03-29 | 2016-08-24 | 乐视控股(北京)有限公司 | 多任务队列管理方法、设备及系统 |
DE102016222375A1 (de) * | 2016-11-15 | 2018-05-17 | Robert Bosch Gmbh | Vorrichtung und Verfahren zum Bearbeiten von Aufträgen |
US20190102274A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Utilization Metrics for Processing Engines |
CN108920258A (zh) * | 2018-06-26 | 2018-11-30 | 北京中电普华信息技术有限公司 | 一种事务处理方法及应用服务中间件 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5872972A (en) * | 1996-07-05 | 1999-02-16 | Ncr Corporation | Method for load balancing a per processor affinity scheduler wherein processes are strictly affinitized to processors and the migration of a process from an affinitized processor to another available processor is limited |
US20040054999A1 (en) * | 2002-08-30 | 2004-03-18 | Willen James W. | Computer OS dispatcher operation with virtual switching queue and IP queues |
JP2008047126A (ja) * | 2006-08-15 | 2008-02-28 | Internatl Business Mach Corp <Ibm> | 精密なcpu消費量データを用いてアフィニティをディスパッチする負荷バランサ |
US20090187915A1 (en) * | 2008-01-17 | 2009-07-23 | Sun Microsystems, Inc. | Scheduling threads on processors |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020099759A1 (en) | 2001-01-24 | 2002-07-25 | Gootherts Paul David | Load balancer with starvation avoidance |
US20030037091A1 (en) * | 2001-08-09 | 2003-02-20 | Kozo Nishimura | Task scheduling device |
US7441101B1 (en) | 2003-12-10 | 2008-10-21 | Cisco Technology, Inc. | Thread-aware instruction fetching in a multithreaded embedded processor |
US7793299B2 (en) * | 2005-08-30 | 2010-09-07 | International Business Machines Corporation | System and method for scheduling tasks for execution |
US8296727B2 (en) * | 2005-10-14 | 2012-10-23 | Oracle Corporation | Sub-task mechanism for development of task-based user interfaces |
US8356284B2 (en) | 2006-12-28 | 2013-01-15 | International Business Machines Corporation | Threading model analysis system and method |
US7895415B2 (en) | 2007-02-14 | 2011-02-22 | Intel Corporation | Cache sharing based thread control |
US8407674B2 (en) | 2008-02-08 | 2013-03-26 | International Business Machines Corporation | Detecting thread starvation |
US8239699B2 (en) * | 2009-06-26 | 2012-08-07 | Intel Corporation | Method and apparatus for performing energy-efficient network packet processing in a multi processor core system |
US8381216B2 (en) | 2010-03-05 | 2013-02-19 | Microsoft Corporation | Dynamic thread pool management |
CN101923491A (zh) * | 2010-08-11 | 2010-12-22 | 上海交通大学 | 多核环境下线程组地址空间调度和切换线程的方法 |
CN102184125B (zh) * | 2011-06-02 | 2013-11-13 | 首都师范大学 | 异构多核环境下基于程序行为在线分析的负载均衡方法 |
-
2012
- 2012-01-05 US US13/344,474 patent/US8621479B2/en active Active
- 2012-12-20 EP EP12198684.8A patent/EP2613257B1/en active Active
-
2013
- 2013-01-04 JP JP2013000082A patent/JP5718378B2/ja active Active
- 2013-01-05 CN CN201310002305.1A patent/CN103279388B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5872972A (en) * | 1996-07-05 | 1999-02-16 | Ncr Corporation | Method for load balancing a per processor affinity scheduler wherein processes are strictly affinitized to processors and the migration of a process from an affinitized processor to another available processor is limited |
US20040054999A1 (en) * | 2002-08-30 | 2004-03-18 | Willen James W. | Computer OS dispatcher operation with virtual switching queue and IP queues |
JP2008047126A (ja) * | 2006-08-15 | 2008-02-28 | Internatl Business Mach Corp <Ibm> | 精密なcpu消費量データを用いてアフィニティをディスパッチする負荷バランサ |
US20090187915A1 (en) * | 2008-01-17 | 2009-07-23 | Sun Microsystems, Inc. | Scheduling threads on processors |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017090961A (ja) * | 2015-11-02 | 2017-05-25 | キヤノン株式会社 | 情報処理装置およびその制御方法、並びにプログラム |
JP2020161014A (ja) * | 2019-03-28 | 2020-10-01 | 富士通株式会社 | 情報処理装置および実行制御プログラム |
JP7197794B2 (ja) | 2019-03-28 | 2022-12-28 | 富士通株式会社 | 情報処理装置および実行制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
US8621479B2 (en) | 2013-12-31 |
JP5718378B2 (ja) | 2015-05-13 |
EP2613257B1 (en) | 2020-02-19 |
US20130179891A1 (en) | 2013-07-11 |
CN103279388A (zh) | 2013-09-04 |
CN103279388B (zh) | 2016-04-06 |
EP2613257A1 (en) | 2013-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5718378B2 (ja) | 一又は複数のタスクを実行するために使用するシステム及び方法 | |
US11036553B2 (en) | Preempting or traversing allocated resource applications based on job priority and resource demand information | |
US11550627B2 (en) | Hardware accelerated dynamic work creation on a graphics processing unit | |
US9009734B2 (en) | Application level speculative processing | |
US9330430B2 (en) | Fast queries in a multithreaded queue of a graphics system | |
US10552213B2 (en) | Thread pool and task queuing method and system | |
US8914805B2 (en) | Rescheduling workload in a hybrid computing environment | |
JP5650952B2 (ja) | マルチコア/スレッドのワークグループ計算スケジューラ | |
US8549524B2 (en) | Task scheduler for cooperative tasks and threads for multiprocessors and multicore systems | |
US20120011389A1 (en) | Selectively increasing throughput of a cpu core | |
US20120089968A1 (en) | Runtime agnostic representation of user code for execution with selected execution runtime | |
JP2013506179A (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
JP5803972B2 (ja) | マルチコアプロセッサ | |
US9600250B2 (en) | Declarative programming model with a native programming language | |
KR20110075296A (ko) | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 | |
JP2015106298A (ja) | タスク割り付けプログラム及びタスク割り付け方法 | |
US20130125131A1 (en) | Multi-core processor system, thread control method, and computer product | |
JP2014056425A (ja) | データ管理装置、データ管理システム、処理割当方法および処理割当プログラム | |
US9612907B2 (en) | Power efficient distribution and execution of tasks upon hardware fault with multiple processors | |
US11061730B2 (en) | Efficient scheduling for hyper-threaded CPUs using memory monitoring | |
CN112445614A (zh) | 一种线程数据的存储管理方法、计算机设备及存储介质 | |
US20080313652A1 (en) | Notifying user mode scheduler of blocking events | |
US9645637B2 (en) | Managing a free list of resources to decrease control complexity and reduce power consumption | |
JP6584655B2 (ja) | フリップキューの管理に基づくグラフィックスコンテキストのスケジューリング | |
CN114661475A (zh) | 一种用于机器学习的分布式资源调度方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131030 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150204 |
|
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: 20150217 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150318 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5718378 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |