Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7792860B2 - 計算システム、計算システムの制御方法及びプログラム - Google Patents
[go: Go Back, main page]

JP7792860B2 - 計算システム、計算システムの制御方法及びプログラム - Google Patents

計算システム、計算システムの制御方法及びプログラム

Info

Publication number
JP7792860B2
JP7792860B2 JP2022086739A JP2022086739A JP7792860B2 JP 7792860 B2 JP7792860 B2 JP 7792860B2 JP 2022086739 A JP2022086739 A JP 2022086739A JP 2022086739 A JP2022086739 A JP 2022086739A JP 7792860 B2 JP7792860 B2 JP 7792860B2
Authority
JP
Japan
Prior art keywords
amount
calculation
allocated
task
load
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.)
Active
Application number
JP2022086739A
Other languages
English (en)
Other versions
JP2023174081A (ja
Inventor
宜宏 砂田
幸大 栗本
佑樹 矢野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Heavy Industries Ltd
Original Assignee
Mitsubishi Heavy Industries Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Heavy Industries Ltd filed Critical Mitsubishi Heavy Industries Ltd
Priority to JP2022086739A priority Critical patent/JP7792860B2/ja
Publication of JP2023174081A publication Critical patent/JP2023174081A/ja
Application granted granted Critical
Publication of JP7792860B2 publication Critical patent/JP7792860B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Multi Processors (AREA)
  • Supply And Distribution Of Alternating Current (AREA)

Description

本開示は、計算システム、計算システムの制御方法及びプログラムに関する。
複数のコアを有するシステムに関して、電力消費が少ないコアを選択してタスクを割り当てることにより、コアの温度限界に達しないように各タスクをスケジューリングしたり、コアの動作周波数を調整することにより、コアの温度限界に達しないように制御したりする方法が提案されている(例えば、特許文献1)。特許文献1には、コアの温度限界に達しないようにタスクをコアに割り当てる技術は開示されているが、その際にタスクの優先度を考慮することについては開示が無い。
特許第6337121号公報
プロセッサの温度や消費電力が限界を超過することを防ぐだけではなく、タスクの優先度に応じて、各タスクに使用可能な電力を割り当てる技術が必要とされている。
本開示は、上記課題を解決することができる計算システム、計算システムの制御方法及びプログラムを提供する。
本開示の計算システムは、複数のタスクの全体に対して割り当て可能なプロセッサの最大電力を算出する手段と、前記タスクの各々が要求する計算量を割り当てたときに、割り当てた前記計算量の合計に基づく電力が前記最大電力を超過するかどうかを判定する手段と、前記最大電力を超過すると判定される場合、前記タスクに当該タスクの優先度に応じた前記計算量を割り当てる手段と、割り当てられた前記計算量に基づいて前記タスクの負荷を調整する手段とを備える。
本開示の計算システムの制御方法は、複数のタスクの全体に対して割り当て可能なプロセッサの最大電力を算出するステップと、前記タスクの各々が要求する計算量を割り当てたときに、割り当てた前記計算量の合計に基づく電力が前記最大電力を超過するかどうかを判定するステップと、前記最大電力を超過すると判定される場合、前記タスクに当該タスクの優先度に応じた前記計算量を割り当てるステップと、割り当てられた前記計算量に基づいて前記タスクの負荷を調整するステップと、を有する。
本開示のプログラムは、コンピュータを、複数のタスクの全体に対して割り当て可能なプロセッサの最大電力を算出する手段、前記タスクの各々が要求する計算量を割り当てたときに、割り当てた前記計算量の合計に基づく電力が前記最大電力を超過するかどうかを判定する手段、前記最大電力を超過すると判定される場合、前記タスクに当該タスクの優先度に応じた前記計算量を割り当てる手段、割り当てられた前記計算量に基づいて前記タスクの負荷を調整する手段、として機能させる。
上述の計算システム、計算システムの制御方法及びプログラムによれば、プロセッサの温度や消費電力が限界を超過することを防ぎつつ、タスクの優先度に応じて各タスクに電力を割り当てることができる。
実施形態に係る計算システムの一例を示すブロック図である。 実施形態に係る負荷調整の方法を例示する図である。 実施形態に係る設定情報の一例を示す図である。 実施形態に係る計算量の割当処理の一例を示すフロー図である。 実施形態に係るアプリの実行処理の一例を示すフロー図である。 実施形態に係る負荷調整の一例を示す図である。 実施形態に係る計算量の割当処理の他の例を示すフロー図である。 実施形態に係る計算システムのハードウェア構成の一例を示す図である。
<実施形態>
以下、本開示の計算装置について、図1~図8を参照して説明する。以下の説明では、同一または類似の機能を有する構成に同一の符号を付す。そして、それら構成の重複する説明は省略する場合がある。
(システム構成)
図1は、実施形態に係る計算システムの一例を示すブロック図である。
計算システム1は、コンピュータによって構成されており、1つ又は複数のプロセッサを備えている。計算システム1は、GPU(Graphics Processing Unit)2と、記憶部3と、コントローラ100と、アプリケーションプログラム10、20、・・・、N0(以下、アプリケーションプログラムを単に“アプリ”と記載する場合がある。)を備えている。GPU2は、プロセッサの一例である。計算システム1では、コントローラ100と、N個のアプリ10~N0が稼働する。コントローラ100とアプリ10~N0は何れもソフトウェアであって、GPU2が、記憶部3に記憶されたプログラムを実行することにより実現される。
コントローラ100は、アプリ10~N0の優先度に応じて、アプリ10~N0の実行タスクに優先度に見合った電力を割り当てるタスクスケジューリングシステムである。電力とは、GPU2がアプリ10~N0のタスクを実行するために使用する電力である。例えば、アプリ10にある電力を割り当てると、GPU2は、その電力の範囲でアプリ10を実行する。GPU2が使用する電力は、GPU2が実行する命令の数、言い換えれば計算量に置き換えることができる。コントローラ100は、アプリ10~N0に各アプリの優先度に応じた計算量を割り当てる。コントローラ100は、可視化部101と、温度監視部102と、割当部103と、通信部104とを備える。
可視化部101は、アプリ10~N0への計算量の割り当て状況を可視化し、割り当て状況を示した情報や図、グラフなどを表示装置4へ出力する。例えば、アプリ10に100%の計算量、アプリ20に50%の計算量、アプリN0に1%の計算量を割り当てる場合、可視化部101は、アプリ10、20、N0への割当量100%、50%、1%を出力する。
温度監視部102は、計算システム1が備えるGPU2の温度を監視する。一般にGPU2にはコア温度を測定する温度計が搭載されており、この温度計のデータを取得することでGPU2の温度を監視することができる。
割当部103は、温度監視部102が取得したGPU2の温度が上限値を超過しないように、アプリ10~N0に計算量を割り当てる。一般にGPU2の温度が上限値を超過しそうになると、GPU2の周波数を低下させて温度上昇を抑制する制御が提供されている。このような制御の場合、アプリ10~N0の処理全体が遅延する可能性がある。アプリ10~N0の中には、優先度が高く、処理を遅延させることが好ましくないものが存在する。本実施形態では、アプリ10~N0の優先度に応じて、優先度が高いアプリには、多くの計算量を割り当てて、処理が滞りなく、あるいは処理の精度を落とすことなく実行させ、その一方で優先度が低いアプリに割り当てる計算量を低下させ、GPU2の温度上昇を抑制する又は温度を低下させる制御を行う。
通信部104は、アプリ10~N0と通信を行う。例えば、通信部104は、アプリ10~N0の各々から計算量の要求を取得し、アプリ10~N0の各々へ各アプリに割り当てる計算量を通知する。
アプリ10は、負荷調整部11と、通信部12とを備える。
通信部12は、コントローラ100と通信を行う。例えば、通信部12は、所定のタイミングで、コントローラ100へ所望する計算量を要求し、その要求に対して、コントローラ100によって割り当てられた計算量を取得する。
負荷調整部11は、通信部12が取得した計算量に基づいて、アプリ10の負荷が、割り当てられた計算量に見合うよう調整する。負荷調整の方法の一例を図2に示す。負荷調整の方法として、処理頻度や処理負荷を調整する方法が挙げられる。例えば、負荷調整部11は、計算量の割り当てが多い(優先度が高い)場合は処理頻度を高く設定し、計算量の割り当てが少ない(優先度が低い)場合は処理頻度を低く設定する。また、例えば、アプリ10が計算処理を行うアプリの場合、負荷調整部11は、計算量の割り当てが多ければ計算精度を高くし、計算量の割り当てが少なければ計算精度を低くする。また、例えば、アプリ10が画像処理を行うアプリの場合、負荷調整部11は、計算量の割り当てが多ければ、情報量が多い画像(例えば、解像度が高い画像又は広い範囲の画像)を処理するようにし、計算量の割り当てが少なければ、情報量が少ない画像(例えば、解像度が低い画像又は狭い範囲の画像)を処理するようにする。これら負荷を調整する機構がアプリ10~N0には組み込まれている。
例えば、コントローラ100によって割り当てられた計算量が50%の場合、負荷調整部11は、アプリ10の実行を遅延(所定時間待機してその後実行)させる(処理頻度を低く設定する例)。また、コントローラ100によって割り当てられた計算量がさらに低く、所定値以下の場合(例えば、1%等)、負荷調整部11は、所定時間だけアプリ10の実行をスキップする(処理頻度を低く設定する例)。また、例えば、コントローラ100によって割り当てられた計算量が50%の場合、負荷調整部11は、50%の処理負荷で処理を実行する。例えば、アプリ10が画像処理を行うアプリであれば、画像処理の負荷が50%となるように、100%の計算量が割り当てられる場合と比較して処理対象の画像のうちの一部に限定して画像処理を行ったり、解像度が低い画像を画像処理したりして処理を軽減させる(処理負荷を軽減する例)。例えば、アプリ10がニューラルネットワークを使用した計算を行うアプリであれば、計算負荷が50%となるように、100%の計算量を割り当てられたときに使用するニューラルネットワークと比較して、計算精度を抑えたニューラルネットワークを使用して計算を行う(処理負荷を軽減する例)。なお、ここで例示した50%は、一例であって50%に限定されない。例えば、60%や40%であってもよい。このことは以下においても同様である。
割り当てられた計算量に対して実行する処理はアプリごとに予め定められており、その処理が実行できるようにアプリ10や実行環境が構成されている。
例えば、計算量50%が割り当てられたときに所定時間処理を遅延させる場合、アプリ10のソースコードやアプリ10が読み込む設定ファイルには、計算量50%と対応付けて遅延時間(例えば、1つの処理サイクルの実行に要する時間)が記述され、計算量50%が割り当てられた際には、アプリ10は、この遅延時間だけ待機した後に、1つの処理サイクルだけ処理を実行するよう構成されている。また、アプリ10は、1つの処理サイクルだけ処理を実行すると、所望する計算量をコントローラ100へ要求するように構成されている。計算量50%での動作中にGPU2の負荷が軽減されて温度が低下していれば、この要求に対して、アプリ10に、例えば100%の計算量が割り当てられる可能性が生じる。この例における計算量に応じた遅延時間だけ待機する処理や、1つの処理サイクルの実行後に所望する計算量をコントローラ100へ要求する処理などは、負荷調整部11の機能である。なお、1つの処理サイクルとは、ひとまとまりの処理であって、例えば、アプリ10が画像処理であれば、アプリ10が1つの画像ファイルを取得して、一連の画像処理を実行し終えるまでを、1つの処理サイクルとすることができる。
処理頻度を調整するタイプの負荷調整部において、所定値より低い計算量が割り当てられた場合、アプリ10のソースコードや設定ファイルには計算量の割り当てが所定値より低い際の待機時間が記述されており、この待機時間だけ処理を実行せずに待機し、待機解除後にアプリ10の処理を実行することなく(つまり、処理をスキップする。)、所望する計算量をコントローラ100へ要求するように構成されている。所定値より低い計算量割り当てに対し通常の待機を行わないのは、例えば、計算量の割り当てが1%であった場合、待機時間が通常の処理周期の99回分となるためである。この場合、GPU2の温度が低下して計算量割り当てが増加したとしても、直ちに処理を再開できない。これを防ぐため、短時間待機して処理をスキップ後、再度、割り当て可能な計算量をコントローラ100へ問い合わせる。この例におけるスキップ処理や、スキップ後直ちに所望の計算量をコントローラ100へ要求する処理などは、負荷調整部11の機能である。
また、割り当てられた計算量に応じて処理負荷を変更する場合、アプリ10は、割り当てられる計算量に応じた画像処理を実行したり、ニューラルネットワークを使用した計算を実行したりするように構成されている。また、アプリ10は、計算量に応じた処理負荷で1つの処理サイクルだけ処理を実行すると、所望する計算量をコントローラ100へ要求するように構成されている。割り当てられた計算量に応じて、処理負荷を切り替える処理や、所望の計算量をコントローラ100へ要求する処理などは、負荷調整部11の機能である。
アプリ20は、負荷調整部21と、通信部22とを備える。アプリN0は、負荷調整部N1と、通信部N2とを備える。負荷調整部21、N1の機能は、負荷調整部11と同様である。通信部22、N2の機能は、通信部12と同様である。
記憶部3は、諸々の情報を記憶している。例えば、記憶部3は、アプリ10~N0の優先度、アプリ10~N0に割り当てる計算量とGPU2の消費電力の対応関係を示す設定情報を記憶している。この設定情報の一例を図3に示す。例えば、現在、アプリ10、アプリ20がそれぞれ計算量100%で稼働していて、温度監視部102が監視している現在のGPU2の温度がT1であるとする。ここで、新たにアプリN0が起動し、アプリN0が100%の計算量を要求したとする。すると、割当部103は、記憶部3が記憶する図3の設定情報を参照して、アプリN0に100%の計算量を割り当てることにより、x9(w)の消費電力が発生することを算出する。割当部103は、所定の換算式や関数等に基づいて、x9(w)の消費電力の増加がもたらすGPU2の温度上昇を計算し、温度T1に温度上昇分を加算することにより、アプリN0に100%の計算量を割り当てることが可能かどうか(つまり、アプリN0に100%の計算量を割り当てることにより、GPU2の温度限界を超過しないかどうか)を判断することができる。
(割当処理)
次に図4を参照して、アプリ10~N0に割り当てる計算量の算出方法について説明する。図4は、実施形態に係る計算量の割当処理の一例を示すフロー図である。
まず、割当部103が、割り当て可能な電力を算出する(ステップS1)。例えば、割当部103は、アプリ10~N0が稼働していない状態で温度監視部102が監視したGPU2の温度とGPU2の温度上限値の差を算出する。割当部103は、算出した差の温度上昇に必要なGPU2の消費電力を算出し、この値をアプリ10等に割り当て可能な電力とする。次に、割当部103は、要求に応じて計算量を割り当てる(ステップS2)。例えば、計算システム1では、アプリ10、アプリ20、アプリN0の3つのアプリがこれから稼働するところであるとする。また、アプリ10、アプリ20、アプリN0はそれぞれ100%の計算量の割り当てを要求しているとする。割当部103は、要求に応じて、アプリ10に計算量100%を割り当て、アプリ20に計算量100%を割り当て、アプリN0に計算量100%を割り当てたときの消費電力を、図3に例示した設定情報に基づいて計算する。この例の場合には、x3+x6+x9(w)となる。次に割当部103は、計算量の総需要に対応する消費電力が、ステップS1で算出した割り当て可能な電力を超過しているかどうかを判定する(ステップS3)。超過しない場合(ステップS3;No)、各アプリに要求通りの計算量を割り当て、計算量の割り当てを完了する(ステップS7)。
超過する場合(ステップS3;Yes)、割当部103は、優先度が低いアプリへ割り当てる計算量を、最低計算量を下限として、総電力が割り当て可能電力を超過しなくなるまで低下させる(ステップS4)。最低計算量とは、例えば、図3に例示する設定情報の“最低限必要な周期での動作に必要な最低計算量”の値である。この例の場合、割当部103は、優先度低のアプリN0へ割り当てる計算量を、最低計算量の50%を下限として低下させる。割り当てる計算量は、要求した計算量と最低計算量の間で任意に設定することができる。割当部103は、割り当てた計算量に対応する消費電力を算出する。割り当てる計算量が最低計算量の場合、消費電力は、x3+x6+x8(w)となる。次に割当部103は、計算量の総需要(ステップS4の割り当て後の総需要)に対応する消費電力が割り当て可能な電力を超過しているかどうかを判定する(ステップS5)。上記の例の場合、割当部103は、計算量の総需要に対応する消費電力であるx3+x6+x8(w)が、割り当て可能な電力を超過しているかどうかを判定する。超過しない場合(ステップS5;No)、ステップS4で割り当てた計算量をアプリ10~N0に割り当てて、計算量の割り当てを完了する(ステップS7)。
超過する場合(ステップS5;Yes)、割当部103は、優先度が低いアプリへ割り当てる計算量を制限なく低下させる(ステップS6)。例えば、割当部103は、アプリN0へ割り当てる計算量を0%まで低下させる。図4に例示する処理フローでは、優先度が低いアプリへ割り当てる計算量を制限なく低下させることにより、計算量の割り当てを完了しているが、割当処理の態様は、これに限定されない。例えば、アプリ10~N0に割り当てる電力の合計が、割り当て可能な電力の範囲に収まるまで、優先度の低いアプリの順に、ステップS3以降の処理を繰り返してもよい。この場合、ステップS4では、これまでに計算量を低下させたアプリの次に優先度の低いアプリを対象として、それらのアプリに割り当てる計算量を最低計算量へ低下させ(ステップS4)、それでも総需要が割り当て可能な電力を超過する場合には(ステップS5;Yes)、割り当てる計算量を制限なく低下させる(ステップS6)。割当部103は、全アプリへ割り当てた計算量の合計に対応する電力(つまり、総需要)が、割り当て可能な電力の範囲内に収まるまで、優先度の低いアプリから順にステップS3以降の処理を繰り返し実行し、割り当て処理を終了する。
なお、既にアプリ10、20が稼働していて、アプリN0をこれから起動するような場合にも、図4を参照して説明したような上記処理を実行してアプリN0への割当量を算出することができる。
(アプリの実行処理)
次にアプリ10とコントローラ100を例にアプリの実行処理について説明する。
図5は、実施形態に係るアプリの実行処理の一例を示すフロー図である。
アプリ10の負荷調整部11が、通信部12を通じて、所望の計算量(例えば100%)をコントローラ100へ要求する(ステップS11)。コントローラ100では、通信部104が計算量の要求を取得する。次に割当部103が、アプリ10~N0に割り当てる計算量を算出する割当処理を実行する(ステップS12)。この処理については図4で説明したとおりである。通信部12は、アプリ10に割り当てる計算量を、アプリ10へ通知する(ステップS13)。アプリ10では、通信部12が、割り当てられた計算量を取得し、その値を負荷調整部11へ出力する。次に負荷調整部11は、アプリ10の負荷調整を行う(ステップS14)。
図6に負荷調整の一例を示す。図6(a)は、計算量100%が割り当てられたときのアプリ10の実行状況を示している。処理サイクル1の実行に先立ち、計算量の要求(ステップS11)と、計算量の割り当て(ステップS12)が実行される。計算量100%が割り当てられたので、負荷調整部11は、直ちに処理サイクル1を実行する。処理サイクル1が完了すると、計算量の要求と割り当てが実行され、計算量100%が割り当てられたので、負荷調整部11は、引き続いて処理サイクル2を実行する。これ以降も、1つの処理サイクルが終了する度に計算量の要求と割り当てが実行されて計算量100%が割り当てられた場合には、負荷調整部11は、処理サイクル3、4を実行する。
図6(b)は、計算量50%が割り当てられたときのアプリ10の実行状況を示している。最初に計算量の要求と割り当てが実行され、計算量50%が割り当てられる。負荷調整部11は、所定時間(例えば、遅延なく処理サイクル1を実行し、その後、計算量の要求と割り当てを実行した場合の全時間)だけ待機し、その後、処理サイクル1を実行する。これにより、計算量100%が割り当てられたときと比較して、1処理サイクル分遅延して、処理サイクル1が実行される。つまり、計算量100%が割り当てられた場合には処理サイクル1と処理サイクル2が実行される時間Tに、計算量50%が割り当てられた場合には、その半分の処理サイクル1だけが実行される。その後の計算量割り当てでも50%が割り当てられた場合には、同様のサイクルで処理が実行される。
図6(c)は、計算量1%が割り当てられ、後に計算量100%が割り当てられたときのアプリ10の実行状況を示している。最初に計算量の要求と割り当てが実行され、計算量1%が割り当てられる。負荷調整部11は、所定時間だけ待機し、その後、アプリ10の処理を実行すること無く計算量の要求を行う。アプリ10の処理が実行されないので、GPU2の温度は低下する。その結果、何回目かの計算量の要求時には一定以上の計算量(この例では計算量100%)が割り当てられる可能性がある。計算量100%が割り当てられた場合、負荷調整部11は、これまで実行すること無くスキップしていた処理サイクル1を実行する。その後の計算量割り当てでも100%が割り当てられた場合には、負荷調整部11は、処理サイクル2を実行する。また、スキップ後の計算量の割り当ては100%でなくても、一定以上であれば処理は再開される。例えば、割り当てられた計算量が50%の場合、図6(b)で説明したような態様でアプリ10の処理が再開される。
図6で説明した負荷調整は一例である。他の例として、アプリ10が画像処理を実行するアプリであれば、同一のアルゴリズムで様々な解像度の画像や様々な大きさの画像に対応できることも多い。このような場合には、様々な解像度の画像を用意しておき、割り当てられた計算量に応じた解像度の画像を処理したり、画像の一部のみを対象として画像処理を行ったりすることで処理負荷を調整することができる。
また、アプリ10が計算を実行するアプリであれば、同一の目的を達成するための計算精度の異なるプログラム類を複数用意しておき、それらを切り替えることによって負荷調整を行ってもよい。例えば、ニューラルネットワークを用いた計算では、多くの場合、精度と処理速度がトレードオフの関係にあり、計算量と精度の異なる複数のニューラルネットワークが用意されている場合が多い。このような場合には、割り当てられた計算量に応じた精度のニューラルネットワークを選択して処理を実行することにより、処理負荷を調整することができる。また、例えば、最適化計算などにおいて、パラメータを調整することで、計算精度を変更することができる。このような場合、割り当てられた計算量に応じてパラメータを調整することにより、負荷調整を行ってもよい。画像処理や計算精度を調整することによって処理負荷を調整する場合、図6(b)、図6(c)の例のように処理周期を崩すことなくアプリ10等を実行することができる。
(ラウンドロビン方式)
また、図4の説明では、優先度の低いアプリから順に割り当てる計算量を低下させることとしたが、このようにして計算量を割り当てると、優先度の高いアプリが所望の性能を発揮しやすくなる反面、優先度の低いアプリの処理が著しく遅延してしまう可能性がある。これを防ぐために、各アプリに割り当てられる電力が優先度に応じた割合となるように計算量を割り当てるラウンドロビン方式によって割当処理を行ってもよい。ラウンドロビン方式による割当処理の一例を図7に示す。図7は、実施形態に係る計算量の割当処理の他の例を示すフロー図である。図4と同じ処理については同じ符号を付し、簡単に説明する。まず、割当部103が、割り当て可能な電力を算出する(ステップS1)。次に、割当部103は、要求に応じて計算量を割り当てる(ステップS2)。次に割当部103は、計算量の総需要に対応する消費電力が割り当て可能な電力を超過しているかどうかを判定する(ステップS3)。超過しない場合(ステップS3;No)、各アプリに要求通りの計算量を割り当て、割り当てを完了する(ステップS7)。
超過する場合(ステップS3;Yes)、割当部103は、優先度に応じた計算量を割り当てる(ステップS4A)。例えば、優先度高は100%、優先度中は80%、優先度低は50%といった優先度に応じた割り当ての割合が予め定められていて、割当部103は、この予め定められた割合の情報に基づいて、優先度高のアプリへ100%の計算量を割り当て、優先度中のアプリへ80%の計算量を割り当て、優先度低のアプリへ50%の計算量を割り当てる。次に割当部103は、計算量の総需要(ステップS4Aの割り当て後の総需要)に対応する消費電力が割り当て可能な電力を超過しているかどうかを判定する(ステップS5)。超過しない場合(ステップS5;No)、ステップS4Aで割り当てた計算量をアプリ10~N0に割り当てて、割り当てを完了する(ステップS7)。
超過する場合(ステップS5;Yes)、割当部103は、計算量の割合を維持したまま各アプリに割り当てる計算量を低下させる(ステップS6A)。例えば、割当部103は、優先度高のアプリへ100%×0.9の計算量を割り当て、優先度中のアプリへ80%×0.9の計算量を割り当て、優先度低のアプリへ50%×0.9の計算量を割り当てる。次に割当部103は、計算量の総需要(ステップS6Aの割り当て後の総需要)に対応する消費電力が割り当て可能な電力を超過しているかどうかを判定する(ステップS6B)。超過しない場合(ステップS6B;No)、ステップS6Aで割り当てた計算量をアプリ10~N0に割り当てて、計算量の割り当てを完了する(ステップS7)。超過する場合(ステップS6B;Yes)、割当部103は、ステップS6Aからの処理を繰り返す。例えば、上の例の場合、割当部103は、優先度高のアプリへ100%×0.9×0.9の計算量を割り当て、優先度中のアプリへ80%×0.9×0.9の計算量を割り当て、優先度低のアプリへ50%×0.9×0.9の計算量を割り当てる。ラウンドロビン方式によれば、割り当て可能な電力が少ない場合であっても、優先度が低いアプリに対してある程度の割り振りを行うことができる。
(適用例)
次に本実施形態の計算システム1の適用例について説明する。例えば、計算システム1は自動運転車両の制御装置に適用することができる。例えば、自動運転車両における路面認識のアプリをアプリ20(優先度中)、障害物検知のアプリをアプリ10(優先度高)、ドライバー状態認識のアプリをアプリN0(優先度低)とする。車両などの移動体に搭載するGPU2は排熱の制約から最大性能で使用し続けることができない場合が多い。そこで、通常時は処理性能を制限した計算量を路面認識(アプリ20)、障害物検知(アプリ10)、ドライバー状態認識(アプリN0)のそれぞれに設定して自動運転を行う。これにより、GPU2の温度は低く保たれる。そして、障害物検知(アプリ10)により、進路上に障害物が検知されると、そのような状況で最も優先度が高い障害物検知のアプリ10への電力割り当て(計算量割り当て)を増大させ、GPU2を最大性能で動作させる。このように、通常時は処理性能を落としてGPU2の発熱を抑え、必要な時にGPU2の温度が上がり切るまでの時間限定で通常時より多くの計算量を割り当てるような制御を行ってもよい。またこのとき、外気温や元々のGPU2の温度などの条件により温度が上昇しすぎる場合は、優先度の低いドライバー状態認識(アプリN0)への割り当てを減らすことによって、障害物検知(アプリ10)へ割り当てる計算量を確保することができる。
(効果)
以上説明したように、本実施形態によれば、プロセッサの温度が制限値を超過することを防ぎつつ、アプリの優先度に応じて、そのアプリの実行に必要な計算量(即ち電力)を当該アプリへ割り当てることができる。
また、上記の実施形態では、例えば、図3に例示する設定情報にて、アプリの優先度を定めておくこととしたが、例えば、計算量の要求時(ステップS11)に所望する計算量とともに優先度をコントローラ100に通知するようにしてもよい。コントローラ100は、通知された優先度に基づいて、計算量の割り当てを行う。これにより、適用例で例示したような、状況に応じてアプリの優先度が変化するような場面にも対応した電力配分が可能となる。
図8は、実施形態に係る計算システムのハードウェア構成の一例を示す図である。
コンピュータ900は、プロセッサ901、主記憶装置902、補助記憶装置903、入出力インタフェース904、通信インタフェース905を備える。計算システム1は、コンピュータ900に実装される。そして、上述した各機能は、プログラムの形式で補助記憶装置903に記憶されている。プロセッサ901は、プログラムを補助記憶装置903から読み出して主記憶装置902に展開し、当該プログラムに従って上記処理を実行する。また、プロセッサ901は、プログラムに従って、記憶領域を主記憶装置902に確保する。また、プロセッサ901は、プログラムに従って、処理中のデータを記憶する記憶領域を補助記憶装置903に確保する。
なお、計算システム1の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各機能部による処理を行ってもよい。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、CD、DVD、USB等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、このプログラムが通信回線によってコンピュータ900に配信される場合、配信を受けたコンピュータ900が当該プログラムを主記憶装置902に展開し、上記処理を実行しても良い。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
以上のとおり、本開示に係るいくつかの実施形態を説明したが、これら全ての実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これらの実施形態及びその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
<付記>
各実施形態に記載の計算システム、計算システムの制御方法及びプログラムは、例えば以下のように把握される。
(1)第1の態様に係る計算システムは、複数のタスク(アプリ10~N0の実行タスク)の全体に対して割り当て可能なプロセッサの最大電力を算出する手段と(S1)、前記タスクの各々が要求する計算量を割り当てたときに、割り当てた前記計算量の合計に基づく電力が前記最大電力を超過するかどうかを判定する手段と(S3)、前記最大電力を超えると判定される場合、前記タスクに当該タスクの優先度に応じた前記計算量を割り当てる手段と(S4、S6、S4A、S6A)、割り当てられた前記計算量に基づいて前記タスクの負荷を調整する手段と(S14)、を備える。
これにより、プロセッサの最大電力が限界を超過することを防ぎつつ、タスクの優先度に応じて各タスクに電力を割り当てることができる。
(2)第2の態様に係る計算システムは、(1)の計算システムであって、前記計算量を割り当てる手段は、前記優先度が低い前記タスクから順に、前記計算量の合計に基づく電力が前記最大電力を超過しなくなるまで、割り当てる前記計算量を低下させる(図4)。
これにより、優先度の高いタスクには多くの電力を割り当てることができる。
(3)第3の態様に係る計算システムは、(1)の計算システムであって、前記計算量を割り当てる手段は、前記優先度が高い前記タスクにより多くの前記計算量が割り当てられるように設定された優先度に応じた前記計算量の割り当ての割合に基づいて、複数の前記タスクの各々に前記計算量を割り当てる(図7)。
これにより、優先度の高いタスクに多くの電力を割り当てるだけでなく、優先度の低いタスクにも一定以上の電力を割り当てることができる。
(4)第4の態様に係る計算システムは、(1)~(3)の計算システムであって、前記負荷は、前記タスクの実行頻度(処理頻度)である。
これにより、割り当てられた計算量に応じた頻度でタスクを実行することができる。
(5)第5の態様に係る計算システムは、(4)の計算システムであって、前記負荷を調整する手段は、前記タスクに割り当てられた計算量に基づいて、当該タスクを遅延またはスキップさせる。
タスクに割り当てられた計算量が少ない場合、遅延またはスキップすることにより、プロセッサの消費電力を抑制することができる。
(6)第6の態様に係る計算システムは、(1)~(3)の計算システムであって、前記負荷は、前記タスクに割り当てる計算処理の負荷である。
これにより、割り当てられた計算量に応じた負荷で処理を実行することができる。
(7)第7の態様に係る計算システムは、(6)の計算システムであって、前記計算処理は、画像処理であって、前記優先度が高い前記タスクには情報量が多い画像を処理させる。
処理対象の画像の解像度や大きさ等を調整することにより計算処理の負荷を調整することができる。
(8)第8の態様に係る計算システムは、(6)の計算システムであって、前記タスクごとに同一の目的を達成する計算精度が異なる複数の処理を用意しておき、前記優先度が高い前記タスクには前記計算精度が高い処理を実行させる。
計算精度を調整することにより計算処理の負荷を調整することができる。
(9)第9の態様に係る計算システムの制御方法は、複数のタスクの全体に対して割り当て可能なプロセッサの最大計算量を算出するステップと、前記タスクの各々が要求する計算量を割り当てたときに、割り当てた前記計算量の合計が前記最大計算量を超えるかどうかを判定するステップと、前記最大計算量を超えると判定される場合、前記タスクの優先度に応じた前記計算量を割り当てるステップと、割り当てられた前記計算量に基づいて前記タスクの負荷を調整するステップと、を有する。
(10)第10の態様に係るプログラムは、コンピュータを、複数のタスクの全体に対して割り当て可能なプロセッサの最大計算量を算出する手段、前記タスクの各々が要求する計算量を割り当てたときに、割り当てた前記計算量の合計が前記最大計算量を超えるかどうかを判定する手段、前記最大計算量を超えると判定される場合、前記タスクの優先度に応じた前記計算量を割り当てる手段、割り当てられた前記計算量に基づいて前記タスクの負荷を調整する手段、として機能させる。
1・・・計算システム
2・・・GPU
3・・・記憶部
4・・・表示装置
10、20、N0・・・アプリ(アプリケーションプログラム)
11、21、N1・・・負荷調整部
12、22、N2・・・通信部
100・・・コントローラ
101・・・可視化部
102・・・温度監視部
103・・・割当部
104・・・通信部
900・・・コンピュータ
901・・・プロセッサ
902・・・主記憶装置
903・・・補助記憶装置
904・・・入出力インタフェース
905・・・通信インタフェース

Claims (10)

  1. 複数のタスクの全体に対して割り当て可能なプロセッサの最大電力を算出する手段と、
    前記タスクの各々が要求する計算量を割り当てたときに、割り当てた前記計算量の合計に基づく電力が前記最大電力を超過するかどうかを判定する手段と、
    前記最大電力を超過すると判定される場合、前記タスクに当該タスクの優先度に応じた前記計算量を割り当てる手段と、
    割り当てられた前記計算量に基づいて前記タスクの負荷を調整する手段と、
    を備える計算システム。
  2. 前記計算量を割り当てる手段は、前記優先度が低い前記タスクから順に、前記計算量の合計に基づく電力が前記最大電力を超過しなくなるまで、割り当てる前記計算量を低下させる、
    請求項1に記載の計算システム。
  3. 前記計算量を割り当てる手段は、前記優先度が高い前記タスクにより多くの前記計算量が割り当てられるように設定された優先度に応じた前記計算量の割り当ての割合に基づいて、複数の前記タスクの各々に前記計算量を割り当てる、
    請求項1に記載の計算システム。
  4. 前記負荷は、前記タスクの実行頻度である、
    請求項1、請求項2、請求項3の何れかに記載の計算システム。
  5. 前記負荷を調整する手段は、前記タスクに割り当てられた計算量に基づいて、当該タスクを遅延またはスキップさせる、
    請求項4に記載の計算システム。
  6. 前記負荷は、前記タスクに割り当てる計算処理の負荷である、
    請求項1、請求項2、請求項3の何れかに記載の計算システム。
  7. 前記計算処理は、画像処理であって、前記優先度が高い前記タスクには情報量が多い画像を処理させる、
    請求項6に記載の計算システム。
  8. 前記タスクごとに同一の目的を達成する計算精度が異なる複数の処理を用意しておき、
    前記優先度が高い前記タスクには前記計算精度が多い処理を実行させる、
    請求項6に記載の計算システム。
  9. 複数のタスクの全体に対して割り当て可能なプロセッサの最大電力を算出するステップと、
    前記タスクの各々が要求する計算量を割り当てたときに、割り当てた前記計算量の合計に基づく電力が前記最大電力を超過するかどうかを判定するステップと、
    前記最大電力を超過すると判定される場合、前記タスクに当該タスクの優先度に応じた前記計算量を割り当てるステップと、
    割り当てられた前記計算量に基づいて前記タスクの負荷を調整するステップと、
    を有する計算システムの制御方法。
  10. コンピュータを、
    複数のタスクの全体に対して割り当て可能なプロセッサの最大電力を算出する手段、
    前記タスクの各々が要求する計算量を割り当てたときに、割り当てた前記計算量の合計に基づく電力が前記最大電力を超過するかどうかを判定する手段、
    前記最大電力を超過すると判定される場合、前記タスクに当該タスクの優先度に応じた前記計算量を割り当てる手段、
    割り当てられた前記計算量に基づいて前記タスクの負荷を調整する手段、
    として機能させるためのプログラム。
JP2022086739A 2022-05-27 2022-05-27 計算システム、計算システムの制御方法及びプログラム Active JP7792860B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022086739A JP7792860B2 (ja) 2022-05-27 2022-05-27 計算システム、計算システムの制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022086739A JP7792860B2 (ja) 2022-05-27 2022-05-27 計算システム、計算システムの制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2023174081A JP2023174081A (ja) 2023-12-07
JP7792860B2 true JP7792860B2 (ja) 2025-12-26

Family

ID=89031185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022086739A Active JP7792860B2 (ja) 2022-05-27 2022-05-27 計算システム、計算システムの制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP7792860B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122337A (ja) 2005-10-27 2007-05-17 Sonac Kk 演算装置
JP2007208460A (ja) 2006-01-31 2007-08-16 Casio Hitachi Mobile Communications Co Ltd 通信機能付き電子機器、処理制御方法、及び、処理制御プログラム
US20150348226A1 (en) 2014-05-30 2015-12-03 Apple Inc. Selective gpu throttling
US20220044043A1 (en) 2019-07-31 2022-02-10 Huawei Technologies Co.,Ltd. Integrated circuit and sensor data processing method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122337A (ja) 2005-10-27 2007-05-17 Sonac Kk 演算装置
JP2007208460A (ja) 2006-01-31 2007-08-16 Casio Hitachi Mobile Communications Co Ltd 通信機能付き電子機器、処理制御方法、及び、処理制御プログラム
US20150348226A1 (en) 2014-05-30 2015-12-03 Apple Inc. Selective gpu throttling
US20220044043A1 (en) 2019-07-31 2022-02-10 Huawei Technologies Co.,Ltd. Integrated circuit and sensor data processing method

Also Published As

Publication number Publication date
JP2023174081A (ja) 2023-12-07

Similar Documents

Publication Publication Date Title
US8782657B2 (en) Dynamic creation and destruction of IO resources based on actual load and resource availability
JP5598229B2 (ja) ジョブ分散処理システム、情報処理装置及びプログラム
US8307370B2 (en) Apparatus and method for balancing load in multi-core processor system
US7979603B2 (en) Storage system and method for controlling activation of command
JP7109549B2 (ja) サービスフロアの品質に基づくメモリ帯域幅のスケジューリング
US20100199283A1 (en) Data processing unit
US20220222129A1 (en) System for parallel processing middleware node application algorithms using threads
JP7146622B2 (ja) 半導体装置、温度制御装置、及び方法
WO2014061141A1 (ja) 並列計算装置
US9417924B2 (en) Scheduling in job execution
CN112817722A (zh) 一种基于优先级的分时调度方法、终端及存储介质
US9740530B2 (en) Decreasing the priority of a user based on an allocation ratio
US11100019B2 (en) Semiconductor device and bus generator
CN112559176B (zh) 一种指令处理方法和装置
JP7792860B2 (ja) 計算システム、計算システムの制御方法及びプログラム
KR20230021495A (ko) 멀티코어 프로세서에서 태스크 스케줄링을 위한 방법 및 장치
US11093291B2 (en) Resource assignment using CDA protocol in distributed processing environment based on task bid and resource cost
CN119336510B (zh) 一种计算内核动态调度系统及方法
JP2005092780A (ja) リアルタイムプロセッサシステム及び制御方法
US20240231946A9 (en) Process allocation control device, process allocation control method, and recording medium storing process allocation control program
US9971614B2 (en) Information processing apparatus and method of controlling the same
CN114626056A (zh) 在多核结构的电子控制单元中执行的方法及计算装置
US11068425B2 (en) Semiconductor device and bus generator
JP6156379B2 (ja) スケジューリング装置、及び、スケジューリング方法
CN102789433A (zh) 存储器管理设备、存储器管理方法以及控制程序

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20250106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20251022

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: 20251118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251216

R150 Certificate of patent or registration of utility model

Ref document number: 7792860

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150