JP5880542B2 - マルチコアプロセッサシステムおよびスケジューリング方法 - Google Patents
マルチコアプロセッサシステムおよびスケジューリング方法 Download PDFInfo
- Publication number
- JP5880542B2 JP5880542B2 JP2013504459A JP2013504459A JP5880542B2 JP 5880542 B2 JP5880542 B2 JP 5880542B2 JP 2013504459 A JP2013504459 A JP 2013504459A JP 2013504459 A JP2013504459 A JP 2013504459A JP 5880542 B2 JP5880542 B2 JP 5880542B2
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- thread
- processor
- cpus
- processes
- 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.)
- Expired - Fee Related
Links
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/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Description
開示のマルチコアプロセッサシステムでは、通常は、負荷バランスのみを考慮してスレッド単位で負荷分散をおこなう。そして、プロセスが断片化し、プロセスに属するスレッドが複数のプロセッサに散らばって実行されたときには、任意のプロセッサを再起動させることにより、このプロセッサに割り当てられている処理を一旦他のプロセッサに分散させ、再起動させた任意のプロセッサに再度プロセスを移動するように負荷分散をおこなう。再起動するプロセッサは、プロセスの処理を他のプロセッサに一時的に全て移動させた後、再度プロセスの処理を受け入れる構成であれば良く、プロセッサの機能を一時停止させることに相当する。これにより、プロセスの断片化により複数のプロセッサに散らばったスレッドを一つのプロセッサにまとめやすくなり、単純な処理で断片化を軽減しつつプロセッサ間の負荷バランスを均等化できるようになる。
図1は、実施の形態にかかるマルチコアプロセッサシステムの構成例を示すブロック図である。図1に記載のように、マルチコアプロセッサシステム100は、複数のプロセッサ(CPU#0〜#3)101と、メモリ102とがバス103で結合された共有メモリ型のマルチコアプロセッサシステムを含む。
断片化率=割り当てプロセス数の合計/稼働プロセス数
1.プロセッサ数
プロセッサ数が多いほど断片化しやすい。したがって、この条件ではプロセッサ数が多いほど閾値を高めに設定する。
2.キャッシュサイズ
キャッシュサイズが大きければ断片化の影響は小さい。したがって、この条件ではキャッシュサイズが大きいほど閾値を低めに設定する。
3.コヒーレント操作時間
コヒーレント操作時間が短ければ断片化の影響は小さい。したがって、この条件ではコヒーレント操作時間が短いほど閾値を低めに設定する。
4.動作時間(プロセッサを停止させてから再起動させるまでの時間)
動作時間が長ければ閾値を高めに設定して再起動の頻度を下げる。
5.開示技術によりプロセスが揃う確率
プロセスが揃う確率が高ければ閾値は低めに設定する。
(断片化監視部の動作)
図3は、断片化監視部の動作処理例を示すフローチャートである。断片化監視部104では、プロセス数取得部201は、定期的にメモリ102に記憶された稼働プロセス数情報131と、プロセッサ毎の割当プロセス数情報132をそれぞれ取得する(ステップS301)。つぎに、断片化率算出部202により、取得した稼働プロセス数情報131と、割当プロセス数情報132に基づき、断片化率を算出する(ステップS302)。
図4は、OSの負荷分散動作処理例を示すフローチャートである。図3の処理により、OS110は、断片化監視部104からあるプロセッサ101に対する再起動要求を受ける(ステップS401)。これにより、OS110は、負荷分散部124に対して停止通知をおこなう(ステップS402)。そして、負荷分散部124によるスレッドの移動終了を確認する(ステップS403)。ここで、移動中のスレッドの移動終了を待ち(ステップS404:No)、スレッドの移動終了が確認されれば(ステップS404:Yes)、再起動要求を受けたプロセッサ101を再起動させ(ステップS405)、負荷分散部124に起動通知をおこない(ステップS406)、終了する。
つぎに、プロセスの断片化解消の具体的処理例について図8〜図11を用いて説明する。図8は、スレッドの理想的な割り付け状態を示す図である。単純な例として4つのプロセッサ101でそれぞれ4個のスレッドを持つプロセスが4個起動している状態として説明する。各スレッドの負荷量が均一だとすると、図8のように、一つのプロセッサ101に一つのプロセスが割り当てられている状態が理想的な状態となる。図中”A−1”とは、プロセスAに属する1番目のスレッドという意味である。他も同様で、この図ではA,B,C,Dの4つのプロセスがあり、A〜Dの4個のプロセスは、それぞれ1〜4までの4個のスレッドを持っているとする。
1.プロセッサ数:少、プロセス数:少の場合、全プロセス(スレッド)の組み合わせの探索が可能。
2.プロセッサ数:少、プロセス数:多の場合、全プロセスの組み合わせが爆発的に増大するので全探索は不可能。
3.プロセッサ数:多の場合、プロセッサ数が多いことだけでプロセスを揃えることが困難。
前記複数のCPUによって共有されるメモリと、
前記メモリに格納され、前記複数のCPUが実行しているプロセスの数を示す第1プロセス数と、前記複数のCPUのそれぞれに割り当てられたプロセスの数を示す第2プロセス数とに基づいて、前記複数のCPUへのスレッドの割り当ての変更を指示する監視ユニットと、
を含むことを特徴とするマルチコアプロセッサシステム。
を特徴とする付記1に記載のマルチコアプロセッサシステム。
前記比較部による比較結果が前記閾値を超えているときに、第1CPUにスレッドの割り当ての変更を指示すること
を特徴とする付記2に記載のマルチコアプロセッサシステム。
を特徴とする付記1または2に記載のマルチコアプロセッサシステム。
を特徴とする付記1〜4のいずれか一つに記載のマルチコアプロセッサシステム。
第1CPUに対する前記監視ユニットからの再起動要求を受けて、複数の前記CPUのうち、高負荷のCPUから順に高負荷のスレッドを前記第1CPUに再割り当てをおこなう負荷分散部を含むことを特徴とする付記3〜6のいずれか一つに記載のマルチコアプロセッサシステム。
同一プロセスに含まれる複数のスレッドが異なる複数のCPUに割り当てられる割合に基づくスレッドの再割り当ての指示に基づき、
第1CPUへのスレッドの割り当ての禁止を、第1スレッドが割り当てられた第2CPU群に指示し、
前記第1CPUに割り当てられた第2スレッドを前記第2CPU群に移行し、
前記第2CPU群に移行された前記第1スレッドと前記第2スレッドの前記第1CPUへの割り当てを許可する
ことを特徴とするスケジューリング方法。
前記第1プロセスとは異なる第2プロセスに含まれる第3スレッドを前記第1CPUに割り当てること
を特徴とする付記8に記載のスケジューリング方法。
前記第1スレッド、前記第2スレッド、または第3スレッドのいずれかのスレッドを前記第1CPUに割り当てること
を特徴とする付記8または9に記載のスケジューリング方法。
を特徴とする付記8〜10のいずれか一つに記載のスケジューリング方法。
を特徴とする付記8〜11のいずれか一つに記載のスケジューリング方法。
101 プロセッサ(CPU#0〜#3)
102 メモリ
103 バス
104 断片化監視部(監視ユニット)
110 オペレーティングシステム(OS)
121 プロセス管理部
122 スレッド管理部
123 負荷監視部
124 負荷分散部
131 稼働プロセス数情報
132 割当プロセス数情報
201 プロセス数取得部
202 断片化率算出部
203 再起動判断部
203a 比較部
204 再起動要求出力部
A〜D プロセス
Claims (10)
- 複数のCPUと、
前記複数のCPUによって共有されるメモリと、
前記メモリに格納され、前記複数のCPUが実行しているプロセスの数を示す第1プロセス数と、前記複数のCPU毎に割り当てられたプロセスの数を示す第2プロセス数とに基づいて、前記複数のCPUへのスレッドの割り当ての変更を指示する監視ユニットと、
を含むことを特徴とするマルチコアプロセッサシステム。 - 前記監視ユニットは、前記第1プロセス数に対する前記複数のCPU分合計した前記第2プロセス数の割合と、所定の閾値とを比較する比較部を含むこと
を特徴とする請求項1に記載のマルチコアプロセッサシステム。 - 前記監視ユニットは、
前記比較部による比較結果が前記閾値を超えているときに、第1CPUにスレッドの割り当ての変更を指示すること
を特徴とする請求項2に記載のマルチコアプロセッサシステム。 - 前記監視ユニットが前記複数のCPUへのスレッドの割り当て変更を指示するとき、割り当てられた所定の第2プロセス数が最も多い第1CPUに再起動要求を出力すること
を特徴とする請求項1または2に記載のマルチコアプロセッサシステム。 - 前記第1プロセス数および第2プロセス数は前記メモリに格納されること
を特徴とする請求項1〜4のいずれか一つに記載のマルチコアプロセッサシステム。 - 複数のCPUを有するマルチコアプロセッサシステムにおけるスケジューリング方法であって、
前記複数のCPUが実行しているプロセスの数を示す第1プロセス数に対する、前記複数のCPU毎に割り当てられたプロセスの数を示す第2プロセス数の割合に基づくスレッドの再割り当ての指示に基づき、
第1CPUへのスレッドの割り当ての禁止を、第1スレッドが割り当てられた第2CPU群に指示した後、
前記第1CPUに割り当てられた第2スレッドを前記第2CPU群に全て移行して前記第1CPUを再起動させた後、
前記第2CPU群に移行された前記第1スレッドと前記第2スレッドの前記第1CPUへの再割り当てを許可する
ことを特徴とするスケジューリング方法。 - 前記再割り当ての許可後に、
前記第1スレッドと前記第2スレッドとが第1プロセスに含まれるとき、
前記第1プロセスとは異なる第2プロセスに含まれる第3スレッドを前記第1CPUに割り当てること
を特徴とする請求項6に記載のスケジューリング方法。 - 前記再割り当ての許可後に、
前記第1スレッドと前記第2スレッドとが異なるプロセスに含まれるとき、
前記第1スレッド、前記第2スレッド、または第3スレッドのいずれかのスレッドを前記第1CPUに割り当てること
を特徴とする請求項6または7に記載のスケジューリング方法。 - 前記再割り当ての許可後に、
前記第1CPUの負荷と前記第2CPU群の負荷との差があらかじめ定めた所定値より大きいとき、前記第2CPU群から前記第1CPUにスレッドを移行すること
を特徴とする請求項6〜8のいずれか一つに記載のスケジューリング方法。 - 前記第1CPUと、前記第2CPU群と、前記第1CPUおよび前記第2CPU群以外に実行中のCPUがあれば当該他のCPU群を含む全てのCPUが実行しているプロセスの数と、前記第1CPUと、前記第2CPU群と、前記他のCPU群とのそれぞれのCPU毎に割り当てられたプロセスの数と、に基づいて前記割合を算出すること
を特徴とする請求項6〜9のいずれか一つに記載のスケジューリング方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/056261 WO2012124077A1 (ja) | 2011-03-16 | 2011-03-16 | マルチコアプロセッサシステムおよびスケジューリング方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2012124077A1 JPWO2012124077A1 (ja) | 2014-07-17 |
JP5880542B2 true JP5880542B2 (ja) | 2016-03-09 |
Family
ID=46830206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013504459A Expired - Fee Related JP5880542B2 (ja) | 2011-03-16 | 2011-03-16 | マルチコアプロセッサシステムおよびスケジューリング方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20140019989A1 (ja) |
JP (1) | JP5880542B2 (ja) |
WO (1) | WO2012124077A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2626786B1 (en) * | 2010-10-05 | 2016-04-20 | Fujitsu Limited | Multicore processor system, method of monitoring control, and monitoring control program |
JP6387747B2 (ja) * | 2013-09-27 | 2018-09-12 | 日本電気株式会社 | 情報処理装置、障害回避方法およびコンピュータプログラム |
US9652298B2 (en) * | 2014-01-29 | 2017-05-16 | Vmware, Inc. | Power-aware scheduling |
JP6188607B2 (ja) * | 2014-03-10 | 2017-08-30 | 株式会社日立製作所 | インデクスツリーの探索方法及び計算機 |
US20160091882A1 (en) * | 2014-09-29 | 2016-03-31 | Siemens Aktiengesellschaft | System and method of multi-core based software execution for programmable logic controllers |
US10496448B2 (en) | 2017-04-01 | 2019-12-03 | Intel Corporation | De-centralized load-balancing at processors |
US11307903B2 (en) | 2018-01-31 | 2022-04-19 | Nvidia Corporation | Dynamic partitioning of execution resources |
US10817338B2 (en) * | 2018-01-31 | 2020-10-27 | Nvidia Corporation | Dynamic partitioning of execution resources |
US20210026699A1 (en) * | 2018-03-30 | 2021-01-28 | Nec Corporation | Operation management apparatus, method, and non-transitory computer readable medium |
CN115437739A (zh) * | 2021-06-02 | 2022-12-06 | 伊姆西Ip控股有限责任公司 | 虚拟化***的资源管理方法、电子设备和计算机程序产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007316710A (ja) * | 2006-05-23 | 2007-12-06 | Nec Corp | マルチプロセッサシステム、ワークロード管理方法 |
WO2010093003A1 (ja) * | 2009-02-13 | 2010-08-19 | 日本電気株式会社 | 演算資源割当装置、演算資源割当方法、及び、演算資源割当プログラム |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5506987A (en) * | 1991-02-01 | 1996-04-09 | Digital Equipment Corporation | Affinity scheduling of processes on symmetric multiprocessing systems |
US5437032A (en) * | 1993-11-04 | 1995-07-25 | International Business Machines Corporation | Task scheduler for a miltiprocessor system |
JP3696901B2 (ja) * | 1994-07-19 | 2005-09-21 | キヤノン株式会社 | 負荷分散方法 |
US5884077A (en) * | 1994-08-31 | 1999-03-16 | Canon Kabushiki Kaisha | Information processing system and method in which computer with high load borrows processor of computer with low load to execute process |
JPH09138716A (ja) * | 1995-11-14 | 1997-05-27 | Toshiba Corp | 電子計算機 |
JP3541335B2 (ja) * | 1996-06-28 | 2004-07-07 | 富士通株式会社 | 情報処理装置及び分散処理制御方法 |
JP3006551B2 (ja) * | 1996-07-12 | 2000-02-07 | 日本電気株式会社 | 複数コンピュータ間の業務分散システム、業務分散方法および業務分散プログラムを記録した記録媒体 |
JP3266029B2 (ja) * | 1997-01-23 | 2002-03-18 | 日本電気株式会社 | マルチプロセッサシステムにおけるディスパッチング方式、ディスパッチング方法およびディスパッチングプログラムを記録した記録媒体 |
US6601084B1 (en) * | 1997-12-19 | 2003-07-29 | Avaya Technology Corp. | Dynamic load balancer for multiple network servers |
US5991792A (en) * | 1998-01-02 | 1999-11-23 | International Business Machines Corporation | Method, apparatus and computer program product for dynamically managing a thread pool of reusable threads in a computer system |
US8411298B2 (en) * | 2001-01-11 | 2013-04-02 | Sharp Laboratories Of America, Inc. | Methods and systems for printing device load-balancing |
JP2002278778A (ja) * | 2001-03-21 | 2002-09-27 | Ricoh Co Ltd | 対称型マルチプロセッサシステムにおけるスケジュール装置 |
US7287254B2 (en) * | 2002-07-30 | 2007-10-23 | Unisys Corporation | Affinitizing threads in a multiprocessor system |
US7760626B2 (en) * | 2004-03-31 | 2010-07-20 | Intel Corporation | Load balancing and failover |
US7882505B2 (en) * | 2005-03-25 | 2011-02-01 | Oracle America, Inc. | Method and apparatus for switching between per-thread and per-processor resource pools in multi-threaded programs |
US8032888B2 (en) * | 2006-10-17 | 2011-10-04 | Oracle America, Inc. | Method and system for scheduling a thread in a multiprocessor system |
US8935510B2 (en) * | 2006-11-02 | 2015-01-13 | Nec Corporation | System structuring method in multiprocessor system and switching execution environment by separating from or rejoining the primary execution environment |
JP2008158806A (ja) * | 2006-12-22 | 2008-07-10 | Matsushita Electric Ind Co Ltd | 複数プロセッサエレメントを備えるプロセッサ用プログラム及びそのプログラムの生成方法及び生成装置 |
US9021491B2 (en) * | 2010-03-15 | 2015-04-28 | International Business Machines Corporation | Dual mode reader writer lock |
-
2011
- 2011-03-16 WO PCT/JP2011/056261 patent/WO2012124077A1/ja active Application Filing
- 2011-03-16 JP JP2013504459A patent/JP5880542B2/ja not_active Expired - Fee Related
-
2013
- 2013-09-13 US US14/026,285 patent/US20140019989A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007316710A (ja) * | 2006-05-23 | 2007-12-06 | Nec Corp | マルチプロセッサシステム、ワークロード管理方法 |
WO2010093003A1 (ja) * | 2009-02-13 | 2010-08-19 | 日本電気株式会社 | 演算資源割当装置、演算資源割当方法、及び、演算資源割当プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20140019989A1 (en) | 2014-01-16 |
JPWO2012124077A1 (ja) | 2014-07-17 |
WO2012124077A1 (ja) | 2012-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5880542B2 (ja) | マルチコアプロセッサシステムおよびスケジューリング方法 | |
US9442763B2 (en) | Resource allocation method and resource management platform | |
US9571561B2 (en) | System and method for dynamically expanding virtual cluster and recording medium on which program for executing the method is recorded | |
JP5332065B2 (ja) | クラスタ構成管理方法、管理装置及びプログラム | |
KR101781063B1 (ko) | 동적 자원 관리를 위한 2단계 자원 관리 방법 및 장치 | |
JP4920391B2 (ja) | 計算機システムの管理方法、管理サーバ、計算機システム及びプログラム | |
KR101651871B1 (ko) | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 | |
US20130283286A1 (en) | Apparatus and method for resource allocation in clustered computing environment | |
WO2017020742A1 (zh) | 负载均衡方法及设备 | |
WO2015001850A1 (ja) | タスク割り当て判定装置、制御方法、及びプログラム | |
JP2008191949A (ja) | マルチコアシステムおよびマルチコアシステムの負荷分散方法 | |
US20110004656A1 (en) | Load assignment control method and load distribution system | |
JP2016126562A (ja) | 情報処理システム、管理装置、及び情報処理システムの制御方法 | |
CN110990154A (zh) | 一种大数据应用优化方法、装置及存储介质 | |
KR20100062958A (ko) | 컴퓨팅 자원들을 제어하는 기술 | |
JP2008217575A (ja) | ストレージ装置及びその構成最適化方法 | |
JP5471292B2 (ja) | 仮想マシン移動制御プログラム,仮想マシン移動制御装置および仮想マシン移動制御方法 | |
JP5435133B2 (ja) | 情報処理装置、情報処理装置の制御方法及びプログラム | |
US9367439B2 (en) | Physical memory usage prediction | |
CN107870877B (zh) | 用于在存储***中管理数据访问的方法和*** | |
CN115629854A (zh) | 分布式任务调度方法、***、电子设备和存储介质 | |
KR20150070930A (ko) | 최적 비용을 고려한 마이그레이션 자원 할당 시스템 및 할당 방법 | |
KR101932523B1 (ko) | 가상 머신에 할당된 가상 gpu 메모리의 슬롯을 동적으로 증감시키는 방법 및 이를 구현하는 컴퓨팅 장치 | |
US9503353B1 (en) | Dynamic cross protocol tuner | |
JP2014078214A (ja) | スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150324 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150525 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150707 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150907 |
|
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: 20160105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5880542 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |