JP5109799B2 - 情報処理システム、負荷制御方法、および負荷制御プログラム - Google Patents

情報処理システム、負荷制御方法、および負荷制御プログラム Download PDF

Info

Publication number
JP5109799B2
JP5109799B2 JP2008127799A JP2008127799A JP5109799B2 JP 5109799 B2 JP5109799 B2 JP 5109799B2 JP 2008127799 A JP2008127799 A JP 2008127799A JP 2008127799 A JP2008127799 A JP 2008127799A JP 5109799 B2 JP5109799 B2 JP 5109799B2
Authority
JP
Japan
Prior art keywords
temperature
central processing
tasks
processing units
information
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
Application number
JP2008127799A
Other languages
English (en)
Other versions
JP2009277022A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008127799A priority Critical patent/JP5109799B2/ja
Publication of JP2009277022A publication Critical patent/JP2009277022A/ja
Application granted granted Critical
Publication of JP5109799B2 publication Critical patent/JP5109799B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、複数のプロセッサを有する情報処理システムにおける負荷分散を制御する技術に関する。
近年、複数のプロセッサを有するマルチプロセッサシステムが広く使われている。例えば、複数のCPU(Central Processing Unit;中央処理装置)を有するマルチプロセッサ型の情報システムは、航空機の搭載型コンピュータやサーバ機など、高信頼性が要求される分野でも数多く採用されている。
複数のCPUを有する情報システムでは、複数のCPU間での負荷分散を工夫することにより、情報システム全体の可用性を改善することができる。高信頼性が要求される情報システムでは特に、情報システム全体の可用性の向上が求められる。
例えば、複数のCPUを使用する、ある従来のシステムは、各CPUの負荷率が均一になるよう予め設計されている。そして、アプリケーションは、静的な設計にしたがって複数のCPUに分散されて実行される。
しかし、このような制御により負荷分散を行う場合、過去の利用状態を考慮した制御を行うことができない。つまり、頻繁に使用されるCPUと使用頻度の低いCPUの間で使用状況のばらつきが発生している場合は、制御が適切でないことがある。このような従来のシステムでは、頻繁に使用される特定のCPUの故障発生率が増加することにより、システム全体の平均故障間隔が縮まり、システム全体の可用性が低下する状況が起こりうる。
また、複数のCPUに動的にアプリケーションを分散する方法も存在する。例えば、複数のコンピュータと複数のソフトウェアとを管理し、次のように動作する管理システムが知られている。
管理システムは、コンピュータによるソフトウェアの実行状況を表す稼動データと、温度分布を表す温度データとを含む配置先選定データを用いて、他のコンピュータに比べて放熱が多いと想定される過熱コンピュータと、他と比べて放熱が少ないと想定される過疎コンピュータとを抽出する。そして、管理システムは、過熱コンピュータに割り当てられたソフトウェアの少なくとも一部を、過疎コンピュータに移動させる命令を生成する。
このような管理システムによれば、特定のCPUの温度が高い状態となった場合、温度の高いCPUから温度の低いCPUに負荷を移動させることが可能である。
特開2007−179437号公報
一般に、CPUは温度上昇につれて故障率が高くなることが知られている。よって、CPUの温度に注目して動的に負荷分散を行うことは、情報システム全体の可用性を向上させる効果を持つと期待される。
しかしながら、特定の低温のCPUと特定の高温のCPUを組にして、前者から後者への負荷の移動を行うだけでは、情報システム全体としては最適な負荷の分散が達成されな
い場合がある。
そこで本発明は、情報システム全体としてより適切な負荷の分散を達成し、ひいては複数のCPUを有する情報システム全体の可用性を向上させることを目的とする。
本発明の一態様によれば、情報処理システムが提供される。該情報処理システムは、複数の中央処理装置と、温度検出手段と、第1および第2の記憶手段と、負荷制御指示手段とを備える。
前記温度検出手段は、前記複数の中央処理装置それぞれについて温度を検出し、前記温度を示す温度情報を出力する。
前記第1の記憶手段は、前記複数の中央処理装置それぞれについて、個々のタスクの割り当てに応じて予測される負荷率を示す負荷率情報を記憶する。前記第2の記憶手段は、前記複数の中央処理装置それぞれについて、タスクの割り当てによって生じる負荷率と現在の温度とに応じて予測される将来の温度を表す温度特性情報を記憶する。
前記負荷制御指示手段は、実行すべき複数のタスクを前記複数の中央処理装置に割り当てる。
すなわち、前記負荷制御指示手段は、前記複数のタスクの前記複数の中央処理装置への割り当て方の複数のパターンを作成する。そして、前記負荷制御指示手段は、作成した前記複数のパターンのそれぞれについて、前記温度情報と前記負荷率情報と前記温度特性情報に基づいて、前記複数の中央処理装置それぞれの温度を予測する。そして、前記負荷制御指示手段は、前記複数の中央処理装置についてそれぞれ予測した前記温度のうちの最高温度が、予め定められた基準に照らして低いと見なされるために前記基準に適合する1つの適合パターンを、前記複数のパターンの中から選択する。さらに、前記負荷制御指示手段は、前記適合パターンにしたがって前記複数のタスクを前記複数の中央処理装置に割り当てる。
本発明の別の態様によれば、上記情報処理システムにおいて行われる負荷制御方法が提供され、また、該負荷制御方法を実現するためのプログラムが提供される。
開示の技術によれば、複数の中央処理装置を備える情報システム全体として、より適切にタスクが割り当てられ、より適切に負荷が分散される。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図1は、第1実施形態の情報処理システムの構成図である。
図1の情報処理システム12は、nを2以上の整数として、n個のCPU#1〜#nと、n個の温度センサ#1〜#nと、負荷制御指示部10と、記憶部11とを備える。CPU#1〜#nは、n個すべてが同じ種類でもよく、複数の異なる種類のCPUが混在していてもよい。
負荷制御指示部10は、CPU#1〜#nと類似の、ALU(Arithmetic Logic Unit)やレジスタなどを備えたプロセッサにより実現される。負荷制御指示部10は、例えば不図示の不揮発性メモリに予め格納されたプログラムに従って動作することにより、後述のように複数のタスクをCPU#1〜#nに割り当てる処理を実行する。なお、負荷制御指示部10が実行するプログラムは、ネットワークあるいはコンピュータ読み取り可能な可搬型記憶媒体を介してプログラム提供者から提供されてもよい。
記憶部11は、第1実施形態では、不揮発性で書き換え可能な半導体メモリにより実現される。ただし、記憶部11は、ハードディスク装置などの磁気記憶装置とRAM(Random Access Memory)の組み合わせにより実現されてもよく、その他の種類の記憶装置によって実現されてもよい。
第1実施形態では、図1に示したすべての要素が1枚の基板上に実装されているが、図1の各要素が複数の基板に分かれて実装される実施形態も可能である。また、第1実施形態では、CPU#1〜#nと温度センサ#1〜#nと負荷制御指示部10はバスで互いに接続されており、負荷制御指示部10と記憶部11の間もバスで接続されている。
なお、CPU#1〜#nの接続されたバスにさらに記憶部11が接続される実施形態も可能である。いずれにしても、負荷制御指示部10は、直接または間接にCPU#1〜#nおよび記憶部11に接続可能であり、温度センサ#1〜#nから温度情報を直接受け取るか、または記憶部11もしくはCPU#1〜#nを介して間接的に温度情報を受け取ることができる。
なお、記憶部11の一部が情報処理システム12の共有メモリとして使われてもよく、あるいは、記憶部11とは別の不図示の共有メモリとして用いられるRAMを情報処理システム12がさらに備えていてもよい。情報処理システム12はさらに、図1には不図示の入力装置、出力装置、通信インターフェイスなどを備えていてもよい。
CPU#1〜#nはそれぞれ自分自身の活動を監視しており、CPU使用率を「負荷率」としてバスを介して負荷制御指示部10に出力する。多くのOS(Operating System)において、CPUで実行されるタスクごとにCPU使用率を出力するコマンドが用意されているので、そのような既存のコマンドを利用することができる。負荷制御指示部10は、バスを介してCPU#1〜#nから負荷率を取得する。
ここで、整数jを1≦j≦nとすると、各jについて、温度センサ#jはCPU#jの温度を検出し、CPU#jの温度を示す温度情報を、バスを介して負荷制御指示部10に出力する。よって、n個の温度センサ#1〜#nが全体として、CPU#1〜#nそれぞれに関する温度情報を出力する温度検出手段または温度検出器として機能する。
負荷制御指示部10は、温度センサ#1〜#nからバスを介して温度情報を取得し、取得した温度情報を監視する。そして、負荷制御指示部10は、実行すべき複数のタスクを、温度情報および記憶部11に記憶されたその他の情報に基づいてCPU#1〜#nに割り当てる。
記憶部11は、負荷制御指示部10がタスクの割り当て方を決定するのに必要な各種の情報を記憶している。内容の詳細は第1実施形態をさらに具体化した第2実施形態において後述するが、記憶部11が記憶する情報は、負荷制御指示部10によって参照され、更新される。
負荷制御指示部10によるタスクの割り当ての概要は以下のとおりである。
負荷制御指示部10は、複数のタスクの割り当て方の複数のパターンについて、それぞれCPU#1〜#nの将来の温度を予測し、複数のパターンの中でCPU#1〜#nの温度分布がより均一なパターンを選択する。以下、複数のタスクのCPU#1〜#nへの割り当て方のパターンを「配置パターン」という。
負荷制御指示部10は、好ましくは、複数の配置パターンの中でCPU#1〜#nの温
度の均一性が最も高い配置パターンを選択する。なお、実行すべきタスクの数が多い場合や、CPUの数nが多い場合には、すべての配置パターンを調べ尽くすことは非現実的である。よって、負荷制御指示部10は、組み合わせ最適化問題の解法として知られる適切なアルゴリズムを利用して、限定された数の配置パターンの中でCPU#1〜#nの温度の均一性が最も高い配置パターンを最適な配置パターンとして選択してもよい。
負荷制御指示部10は、選択した配置パターンにしたがって複数のタスクのそれぞれをCPU#1〜#nのいずれかに割り当てる負荷制御指示を行う。このような割り当てを負荷制御指示部10が繰り返すことで、定期的に、または不定期にタスクの再配置が行われるので、恒常的に適切な負荷の分散が実現され、情報処理システム12全体としての可用性が高まる。
ここで、CPU#1〜#nの温度が均一であるとは、換言すれば、CPU#1〜#nの温度のばらつきが少ないことである。また、多くの場合、CPU#1〜#nの温度が均一であるほど、CPU#1〜#nのうちの最高温度は低い。したがって、CPUの温度上昇につれてCPUの故障率が上昇することを考慮すると、次のことが成り立つ。
すなわち、CPU#1〜#nのうちの最高温度が低いほど、CPU#1〜#nのいずれかに故障が発生する確率が下がり、情報処理システム12全体としての故障発生率が低下し、情報処理システム12全体としての可用性が高まる。
つまり、負荷制御指示部10は、CPU#1〜#nのうちの最高温度が低いことを温度の均一性の指標として用いて、CPU#1〜#nの温度がなるべく均一になるように、複数のタスクを分散させてCPU#1〜#nに配置する。その結果、局所的な最適化ではなく、情報処理システム12全体としての負荷分散の最適化が行われると期待される。よって、CPU#1〜#nのすべてについて過熱を避けることができ、情報処理システム12全体の可用性が高まる。
このように、第1実施形態によれば、CPUの温度情報を用いることによって情報処理システム12の可用性が改善される。よって、高信頼性を求められる情報処理システムや、故障の発生したCPUを取り替えることが容易でない情報処理システムに適用するのに第1実施形態は好適である。例えば、航空機に搭載される情報処理システムは、高信頼性が求められ、しかも故障したCPUなどのハードウェアの取り替えが容易ではないので、高可用性が求められる。図1の情報処理システム12は、航空機に搭載されて利用されてもよい。
続いて、図1の第1実施形態においてn=4である場合を、第2実施形態として、図2〜図8を参照しながら説明する。
図2は、第2実施形態のある時点での情報処理システムの状態を示す図である。第2実施形態では、予め指定された間隔Aで定期的に、第1実施形態と同様にして負荷制御指示部10がタスクの割り当てを実行する。この間隔Aを以下では「周期時間A」という。周期時間Aの長さは、タスクの実行によってCPUの温度が変化する速さ、タスクを異なるCPUに移動させるために必要なコスト、タスク実行要求の発生頻度などを考慮して、実施形態に応じて適宜定めることができる。
図2に示した「ある時点」とは、周期時間Aを単位とした第m周期の終了時点である(mは1以上の整数)。つまり、図2は、第(m+1)周期の始めに負荷制御指示部10がタスクの割り当てを行うための負荷制御を実行する直前の状態を示している。
具体的には、図2は、情報処理システム12の構成と、第m周期の終了時点におけるタ
スクの配置パターンと、第m周期の終了時点における記憶部11内の温度・負荷率情報データベースの内容を例示している。図2の情報処理システム12の構成は、図1においてn=4である場合と同じなので説明を省略する。
図2では、7個のタスクA〜GがCPU#1〜#4に分散して割り当てられている。すなわち、具体的には、CPU#1にはタスクA、B、C、Dが割り当てられ、CPU#2にはタスクE、Fが割り当てられ、CPU#3にはタスクGが割り当てられ、CPU#4には何もタスクが割り当てられていない。タスクの割り当ては、記憶部11内の温度・負荷率情報データベースに記憶されている。
温度・負荷率情報データベースは、各CPUの番号に、割り当てられたタスクの識別子と、CPUの温度と、CPUの負荷率とを対応づけて管理するデータベースである。図2では、「CPU番号」、「タスク」、「温度」、「負荷率」という4列を有する表形式で温度・負荷率情報データベースを表現しているが、温度・負荷率情報データベースの形式は任意である。
上記のとおり現在が第m周期の終了時点であるとすると、温度・負荷率情報データベースの内容は、第m周期の開始時点で負荷制御指示部10により登録された内容である。すなわち、「タスク」列は、第m周期の開始時点で負荷制御指示部10が各CPUに割り当てたタスクを示す。「温度」列は、第m周期の開始時点で各温度センサが検出した各CPUの温度の実測値を示す。「負荷率」列は、「タスク」列に示されるタスクの割り当てによって各CPUにおいて第m周期に生じると予測された負荷率を示す。詳しくは後述するが、負荷率の予測は、負荷制御指示部10が記憶部11内の情報を参照して第m周期の開始時点に行っている。
図2の例では、CPU#1は、タスクA〜Dが割り当てられたことによって負荷率が100%になると予測された。同様に、CPU#2はタスクE〜Fによって負荷率が70%になると予測され、CPU#3はタスクGによって負荷率が50%になると予測された。また、CPU#4に割り当てられたタスクはないので、CPU#4は負荷率が0%になると予測された。これらの予測された負荷率が温度・負荷率情報データベースに登録され、記憶されている。
CPU#1〜#4は、第m周期の開始時点で負荷制御指示部10に割り当てられたタスクを、それぞれ第m周期において実行する。割り当てられたタスクの実行により、CPU#1〜#4それぞれの負荷率は変化する。
CPU#1〜#4は、上記のとおりそれぞれ自分自身の活動を監視しており、第m周期における負荷率を第m周期の終了時点に負荷制御指示部10にそれぞれ出力する。予測に含まれる誤差のため、第m周期におけるCPU#1〜#4の実際の負荷率は、第m周期の開始時点に予測されて温度・負荷率情報データベースに記憶された負荷率とは異なることもある。
第m周期が終了すると、第(m+1)周期の開始時点において、負荷制御指示部10がタスクの割り当てを行う。タスクの割り当ての結果の状態について図3を参照して先に説明し、割り当てに関する具体的な動作は図4とともに後述する。
図3は、第2実施形態においてタスクの割り当てが行われた後の情報処理システムの状態を示す図である。具体的には、図3は、図2と同様の形式で、情報処理システム12の構成と、再割り当て後の第(m+1)周期におけるタスクの配置パターンと、第(m+1)周期の開始時点でタスクの再割り当てが行われた後の温度・負荷率情報データベースの内容を例示している。
図2と図3で異なる点は、タスクの配置パターンと、温度・負荷率情報データベースの内容である。なお、図2と図3に示すとおり、第m周期の開始時点でのCPU#1〜#4の温度と、第(m+1)周期の開始時点でのCPU#1〜#4の温度は同じであるが、これは偶然である。
第(m+1)周期の開始時点において、負荷制御指示部10は、タスクBとDがCPU#1からCPU#4へと移動し、タスクCがCPU#1からCPU#3へと移動し、タスクFがCPU#2からCPU#4へと移動するように、タスクの割り当てを行う。その結果、図3に示すように、第(m+1)周期においては、CPU#1にはタスクAのみが割り当てられ、CPU#2にはタスクEのみが割り当てられ、CPU#3にはタスクCとGが割り当てられ、CPU#4にはタスクB、D、Fが割り当てられる。この割り当てにしたがって予測されるCPU#1〜#4の負荷率は、図3の温度・負荷率情報データベースに示したとおり、それぞれ25%、40%、60%、95%である。
このようなタスク割り当ては、第(m+1)周期の開始時点において負荷制御指示部10がCPU#1〜#4の温度がなるべく均一になるような配置パターンを選択した結果である。CPU#1〜#4の温度が均一であるほど、特定のCPUの温度が突出して高いという状況は減るので、特定のCPUが過熱により故障するという事態の発生確率も減り、情報処理システム12全体としての故障発生率も減る。すなわち、CPU#1〜#4の温度が均一であるほど、情報処理システム12全体としての可用性が高い。
また、図2と図3の例から理解されるとおり、負荷制御指示部10は、特定の2つのCPU間でのみタスクを移動させるのではない。負荷制御指示部10は、例えば、最高温のCPU#1と最低温のCPU#4という特定の組み合わせだけを考慮して、前者から後者へのタスクの移動のみを指示するわけではない。負荷制御指示部10は、複数のタスクの配置パターン同士の比較に基づいて、CPU#1〜#4が全体として均一な温度になるように、任意のCPUから任意のCPUへのタスクの移動を指示する。
続いて、上記で説明したようなタスクの割り当てが具体的にどのように行われるかを、図4のフローチャートと、図5〜図8の各種情報を参照しながら説明する。
図4は、第2実施形態における負荷制御指示部10による処理の流れを示すフローチャートである。負荷制御指示部10による負荷の割り当て制御は、周期時間Aごとに繰り返し行われる。
ステップS101において、周期時間Aが経過したか否かを負荷制御指示部10が判断し、経過していれば処理はステップS102に進む。周期時間Aが経過していなければステップS101が繰り返される。以下、説明の便宜上、第m周期においてステップS101が繰り返され、周期時間Aが経過して第(m+1)周期の開始時点になったため、ステップS102に処理が移行したものとして説明を続ける。
ステップS102において、負荷制御指示部10は、温度センサ#1〜#4から、CPU#1〜#4の温度を示す温度情報を取得する。負荷制御指示部10はさらに、CPU#1〜#4から、第m周期におけるタスクの割り当てによって実際に生じたタスクごとの負荷率を取得する。実際に生じたタスクごとの負荷率は、上記のとおり、OSが提供する周知のコマンドにより取得することもできる。
続いてステップS103において、負荷制御指示部10は、ステップS102で取得した情報を記憶部11に登録する。ここで、ステップS103の処理に関係する情報につい
て図5と図6を参照して説明する。
図5は、処理量情報データベースの例を示す図である。処理量情報は、タスクの種類ごとに、タスクの実行に必要な処理量を示す情報であり、記憶部11内の処理量情報データベースに記憶されている。図5の処理量情報は、A〜Gという7種類のタスクそれぞれの処理量を示す。処理量は、個々のCPUの性能に依存しない共通の単位で表される数値である。
図6は、処理能力情報データベースの例を示す図である。処理能力情報は、情報処理システム12に含まれるすべてのCPU#1〜#4について、それぞれの処理能力を数値で表した情報であり、記憶部11内の処理能力情報データベースに記憶されている。処理能力情報は、CPUの製品仕様などから定まる。
第2実施形態では、図6に示すように、すべてのCPU#1〜#4の処理能力が等しいが、実施形態によっては、CPU#1〜#4の処理能力が互いに異なっていてもよい。また、第2実施形態のようにすべてのCPU#1〜#4の処理能力が等しいことが予め判明している場合は、同じ処理量のタスクをどのCPUが実行しても負荷率は同じなので、処理能力情報データベースを省略することも可能である。
なお、図2と図3に示した温度・負荷率情報データベースにおける負荷率は、以下のようにして負荷制御指示部10が計算した値である。
例えば、図2において、CPU#1にはタスクA、B、C、Dが割り当てられており、それぞれの処理量は、図5によれば、25、25、10、40である。また、図6によれば、CPU#1の処理能力は100である。したがって、負荷制御指示部10は、記憶部11から処理量情報と処理能力情報を読み取り、割り当てられたタスクの処理量の和を処理能力で割り、パーセンテージを求めるために100を掛ける。具体的には、負荷制御指示部10は式(1)の計算を行う。
(25+25+10+40)/100×100=100(%) (1)
式(1)の計算により、図2の温度・負荷率情報データベースにおけるCPU#1の負荷率として、100(%)なる値が算出される。すなわち、記憶部11は、各CPUについてこのように算出された、個々のタスクの割り当てに応じて予測される負荷率を示す負荷率情報を記憶する前記第1の記憶手段として機能する。
ここで図4のステップS103の説明に戻ると、負荷制御指示部10は、後の処理のために温度・負荷率情報データベースの「温度」の列の内容、すなわち第m周期の開始時点における各CPUの温度を示す温度情報を退避する。そして、負荷制御指示部10は、ステップS102で取得した温度情報の値を、温度・負荷率情報データベースの「温度」の列に書き込み、さらに、必要に応じて図5の処理量情報データベースを更新する。
例えば、図2の例では、第m周期においてCPU#1にはタスクA、B、C、Dが割り当てられている。よって、ステップS102において負荷制御指示部10は、タスクA、B、C、Dそれぞれによって生じた負荷率を、CPU#1から取得している。例えば、タスクAに関する負荷率は、図5および図6から25%と予測されていたわけだが、ステップS102では実際には23%という値が取得されるかもしれない。
このように、予測値と実測値に差がある場合、あるいは、その差が予め決められた許容範囲よりも大きい場合、負荷制御指示部10は、図5の処理量情報データベースを更新する。すなわち、処理能力は変化しないという前提のもとでは、予測値と実測値の差は処理量の見積もりの誤差に起因すると考えられる。第m周期における実際の処理量は、ステッ
プS102で取得した負荷率の実測値(パーセンテージで表されている場合は実測値を100で割って割合に換算した値)と処理能力の積である。
よって、負荷制御指示部10はステップS103において、タスクごとに、第m周期における実際の処理量を計算し、処理量情報データベースの値と計算した実際の処理量との差を算出する。そして、算出した差が予め決められた許容範囲よりも大きい場合、負荷制御指示部10は、処理量情報データベースにおける当該タスクの処理量の値を更新する。
更新後の値は、計算した実際の処理量でもよく、計算した実際の処理量と更新前の処理量情報データベースの値との加重平均などでもよい。負荷制御指示部10は、同じ種類のタスクが実行されるたびに、実際の処理量を履歴として蓄積し、履歴を加味して処理量情報データベースを更新してもよい。例えば、履歴に基づいて過去の平均的な処理量を処理量情報データベースが保持してもよい。
こうしてステップS103において温度・負荷率情報データベースの「温度」と処理量情報データベースへの情報の登録が行われると、処理はステップS104に移行する。ここで、ステップS104の処理に使われる相関表について図7を参照して説明する。
図7は、温度特性情報を表す相関表の第1の例を示す図である。温度特性情報は、タスクの割り当てによって生じる負荷率と現在の温度とに応じて予測される将来の温度、すなわち温度特性を表し、記憶部11に格納される。つまり、記憶部11は、温度特性情報を記憶する第2の記憶手段としても機能する。
第1実施形態と同様に第2実施形態でも、負荷制御指示部10は、配置パターンを決定するために、複数の配置パターンについて、CPU#1〜#4の温度変化を予測する。図7の相関表は、この予測に利用される。予測の結果に基づいて、負荷制御指示部10は、複数の配置パターンの中で、CPU#1〜#4の最高温度が最も低いと予測された配置パターンにしたがってタスクの割り当てを行う。
第2実施形態では、温度特性情報は、予測される温度を直接表す値(温度予測値)により表され、さらに、図7のような相関表の形式で記憶されている。しかし、負荷率と現在の温度から将来の温度を予測する式に用いられる1つ以上の係数により温度特性情報が表される実施形態も可能である。
また、第2実施形態では、すべてのCPU#1〜#4が同じ温度特性を有することを仮定している。よって、1枚の相関表だけが記憶部11に記憶され、1枚の相関表によって、4個のCPU#1〜#4すべての温度特性情報が表される。しかし、個々のCPU#1〜#4が異なる温度特性を有するという仮定のもとで、個々のCPU#1〜#4にそれぞれ対応する4枚の相関表を記憶部11が記憶する実施形態も可能である。いずれの仮定の方が実情に即しているかは、実施形態による。
図7において、各行は現在のCPUの温度に対応し、各列はCPUの負荷率に対応する。また、例えば、30℃の行の20%の列のセルの値は31℃なので、このセルは、「ある周期の開始時点で30℃のCPUに、合計で20%の負荷率が予測される1個以上のタスクを割り当てると、周期の終了時点にはCPUが31℃になっているだろう」という予測を示す。なお、負荷率0%の列は、タスクを割り当てない場合の予測を示す。
このように、図7の相関表は、負荷率の離散的な値と現在の温度の離散的な値との組み合わせに、周期時間Aの経過後に予測される温度を対応づけた情報からなっている。したがって負荷率や現在の温度に端数がある場合は、相関表を用いた予測には適当な補間が必
要である。
例えば、現在のCPUの温度が35℃で、割り当てようとするタスクによって生じると予測された負荷率が合計で25%のとき、負荷制御指示部10は、例えば、下記の(2)〜(5)に示す隣接する4つのセルの値x1〜x4を用いた補間を行うことにより、周期の終了時点でのCPUの温度を予測する。
x1=31℃(30℃の行、20%の列のセルZ1の値) (2)
x2=33℃(30℃の行、30%の列のセルZ2の値) (3)
x3=39℃(40℃の行、20%の列のセルZ3の値) (4)
x4=41℃(40℃の行、30%の列のセルZ4の値) (5)
補間の具体的な方法は任意であり、線形補間でもよく、上記4個のセルZ1〜Z4以外のセルの値をさらに用いて非線形の補間をしてもよい。以下、説明の便宜上、特に断らない限り、温度の予測は隣接する4つのセルの値を用いた線形補間によるものとする。
ここで図4の説明に戻ると、以上のように利用される相関表が、ステップS104において更新される。すなわち、ステップS104で負荷制御指示部10は、ステップS103で更新した、図5の処理量情報データベースと図3の温度・負荷率情報データベースの更新内容を、図7の相関表に反映させる。
例えば、第m周期の開始時点でCPU#1の温度が30℃であり、第m周期でのCPU#1の負荷率の実測値が30%であると第(m+1)周期のステップS102で判明していた、と仮定する。この場合、「30℃」と「30%」という値に完全に一致する値の行と列が図7の相関表に存在するので、負荷制御指示部10は、ステップS104において相関表の30℃の行の30%のセルZ2を更新する。
更新の方法は実施形態によって異なる。例えば、負荷制御指示部10は、セルZ2の値を、ステップS102で取得した第(m+1)周期の開始時点におけるCPU#1の温度Xに更新してもよい。あるいは、負荷制御指示部10は、現在の相関表のセルZ2の値x2(=33℃)と、実測値である上記温度Xとの加重平均などを計算し、計算した値にセルZ2を更新してもよい。
また、例えば、第m周期の開始時点でCPU#1の温度が35℃だったとして、第m周期でのCPU#1の負荷率の実測値が25%であり、第(m+1)周期の開始時点でCPU#1の温度が36℃であるとステップS102で判明していた、と仮定する。このように、直前の周期(この例では第m周期)の開始時点における温度または直前の周期における負荷率の少なくとも一方に端数がある場合、負荷制御指示部10は、ステップS104において相関表の複数のセルを更新する。
この例の場合、温度(35℃)と負荷率(25%)の双方に端数があるので、温度と負荷率の組み合わせに対応するセルは、上記と同じ4つのセルZ1〜Z4である。そこで、第(m+1)周期におけるステップS104では、これら4つのセルZ1〜Z4の値を負荷制御指示部10が更新する。
更新の方法は実施形態によって異なる。例えば、負荷制御指示部10は、次のようにしてセルZ1〜Z4を更新する。すなわち、負荷制御指示部10は、セルZ1の周囲の8個のセルと、いずれも実測値である温度(35℃)と負荷率(25%)の組み合わせに対応づけられる変化後の温度(36℃)とを利用して、適当な補間を行う。そして、負荷制御指示部10は、セルZ1を、補間により算出した値に更新する。負荷制御指示部10は、セルZ2〜Z4についても同様にして、更新すべきセルの周囲の8個のセルと実測値とを
用いた補間を行って、更新する。
なお、上記の例において、相関表の更新に利用される実測値は、以下のようにして取得されたものである。
・第m周期の開始時点における温度(35℃)は、ステップS102で退避されている。
・第m周期の負荷率(25%)は、ステップS102でCPU#1から取得されている。
・第(m+1)周期の開始時点における温度、すなわち、第m周期でのタスクの実行によって変化したCPU#1の温度(36℃)は、ステップS102で温度センサ#1から取得されている。
また、図5の処理量データベースは、第m周期の負荷率に応じてステップS103で更新されているので、見方を変えれば、第m周期の負荷率に基づくステップS104の相関表の更新は、処理量データベースの更新内容を相関表にも反映させることである。
以上のようにして、負荷制御指示部10は、ステップS104においてCPU#1に関して相関表の更新を行う。
なお、第2実施形態では、CPU#1〜#4の温度特性が同じであると仮定しているため、記憶部11は1枚の相関表のみを記憶している。したがって、ステップS104において負荷制御指示部10は、同じ図7の1枚の相関表に対して、上記と同様にしてさらにCPU#2〜#4に関しても更新を行う。
なお、CPU#1〜#4の温度特性が異なるという仮定を採用する実施形態では、記憶部11は、各CPUに対応する4枚の相関表を記憶している。したがって、そのような実施形態では、ステップS104において負荷制御指示部10は、各CPU#jに関して当該CPU#jの相関表を更新する(1≦j≦4)。
このように、第2実施形態では相関表が随時更新されるため、経時変化による温度特性の変化にも対応可能である。例えば、情報処理システム12の提供者は、出荷時のCPU#1〜#4の温度特性を予め調査し、調査結果を初期状態の相関表として記憶部11に記憶させておく。情報処理システム12の運用につれてCPU#1〜#4の温度特性が変化すると、変化につれて相関表も随時更新され、相関表は最新の温度特性を反映した状態に保たれる。
こうしてステップS104における相関表の更新が完了すると、処理はステップS105に移行する。ステップS105では負荷制御指示部10が、第m周期で実行されたが未完了のタスクと新たに第(m+1)周期で実行を開始すべきタスクとを、第(m+1)周期で実行すべき全体の所要負荷として認識する。
情報処理システム12において、タスクの実行要求は、タスクの割り当てを制御する負荷制御指示部10に対してなされる。また、CPU#1〜#4は、タスクが完了すると負荷制御指示部10に対して完了を報告する。したがって、負荷制御指示部10は、未完了のタスクと開始すべきタスクを把握することができる。
続いて、ステップS106からステップS111において、負荷制御指示部10は、第(m+1)周期における配置パターンを決定するための処理を実行し、決定した配置パターンに基づいてステップS112でCPU#1〜#4にタスクを割り当てる。
配置パターンの組み合わせの数は、CPUの個数と実行すべきタスクの数に応じて爆発的に増えるため、最適な配置パターンを探索するために全配置パターンを調べ尽くすことは多くの場合において非現実的である。そこで、第2実施形態では、組み合わせ最適化問題への解法として利用される遺伝的アルゴリズムを利用する。ステップS106からステップS111の処理は、遺伝的アルゴリズムによる処理である。
ステップS106において、負荷制御指示部10は、タスクの配置パターンの初期集団を生成する。例えば、Sを所定の正整数として、負荷制御指示部10はステップS106において(S−1)個のランダムな配置パターンを生成し、さらに第m周期における実際の配置パターンを加えて、全部でS個の配置パターンを含む初期集団を生成する。以下、初期集団の世代を第1世代とする。
なお、集団の大きさを規定する所定の数Sは、実施形態に応じて適宜決めることができる。また、配置パターンの遺伝子型、すなわち各配置パターンを具体的にどのようなデータ形式で表現するか、ということも、実施形態に応じて任意である。
続いて、ステップS107において、現世代の集団に含まれるS個の配置パターンのそれぞれについて、負荷制御指示部10は、適応度を計算する。
すなわち、負荷制御指示部10は、各配置パターンについて、当該配置パターンを第(m+1)周期で採用した場合の、第(m+1)周期の終了時点における各CPUの温度を予測する。そして、負荷制御指示部10は、各CPUに対して予測した温度のうちの最高温度Mを取得する。取得した最高温度Mが低いほど、CPU#1〜#4の温度は均一であり、好ましい配置パターンである。
第2実施形態では簡単のため、各配置パターンの適応度として、最高温度Mそのものを利用する。最高温度Mの値が小さいほど、適応度が高いと評価される。なお、最高温度Mの値が小さいほど適応度を高く評価する任意の評価関数を適応度として利用する実施形態も可能である。
なお、例えばランダムに生成された配置パターンの中には、あるCPUにおいて負荷率が100%を超えるようなものが存在するかもしれない。よって、負荷制御指示部10は、負荷率が100%を超えるCPUを含む配置パターンに対しては、例外処理として、実際のCPUの温度としてはあり得ない極端に高い温度を適応度の値として与える。その結果、負荷率が100%を超えるCPUを含む配置パターンは極端に低く評価されるので、以後の処理において、そのような配置パターンの存在を無視しても差し支えない。
温度の予測については、図7とともに既に説明したが、ここで別の例を用いてステップS107における計算を簡単に例示する。
図8は、温度特性情報を表す相関表の第2の例と2つの配置パターンを示す図である。相関表の形式は図7の第1の例と同様なので説明を省略する。なお、図8は、3つのCPU#1〜#3を備えた情報処理システムにおける例である。
配置パターン20は、第m周期における実際の配置パターンであり、初期集団にも含まれる。配置パターン20においては、CPU#1にタスクAとBが、CPU#2にタスクCが、CPU#3にタスクDが、それぞれ割り当てられている。タスクA〜Dによって生じる負荷率は、図示のとおり、それぞれ20%、30%、40%、50%である。また、配置パターン21は、現世代の集団に含まれるある1つの配置パターンであり、CPU#1にタスクAとDが、CPU#2にタスクCが、CPU#3にタスクBが、それぞれ割り当てられている。
なお、簡単のため、CPU#1〜#3の処理能力は等しく、処理能力情報データベースは誤差を含まず、第m周期と第(m+1)周期のいずれも、実行すべきタスクはタスクA〜Dの4つであると仮定する。
また、第(m+1)周期の開始時点でのCPU#1〜#3の温度は、それぞれ50℃、55℃、60℃であったとする。これらの温度は、ステップS102で取得され、ステップS103で温度・負荷率情報データベースに温度情報として書き込まれているので、ステップS107において負荷制御指示部10が参照することができる。
また、図5と同様の処理量情報データベースおよび図6と同様の処理能力データベースから、負荷制御指示部10は、ステップS107においてタスクA〜DそれぞれがCPU#1〜#3それぞれに生じさせる負荷率を算出することができる。
よって、現世代の集団に配置パターン20と21が含まれる場合、ステップS107において負荷制御指示部10は、以下の(1)〜(3)の処理を行って各配置パターンの適応度を計算する。
(1)配置パターン20の適応度の計算
(1−1)負荷制御指示部10は、CPU#1に関して、タスクAとBにより生じる負荷率(50%=20%+30%)を計算し、図8の相関表において温度50℃の行と負荷率50%の列が交叉するセルの値53℃を取得する。
(1−2)同様にして、負荷制御指示部10は、CPU#2に関して相関表から値55℃を取得し、CPU#3に関して相関表から値59℃を取得する。
(1−3)取得した値53℃、55℃、59℃のうちの最大温度は59℃なので、負荷制御指示部10は、配置パターン20の適応度として値59℃を取得する。
(2)配置パターン21の適応度の計算
(2−1)負荷制御指示部10は、上記と同様にして、CPU#1〜#3に関して、それぞれ相関表から値57℃、55℃、56℃を取得する。
(2−2)負荷制御指示部10は、最大温度57℃を配置パターン21の適応度として取得する。配置パターン21の適応度の値57℃は、配置パターン20の適応度の値59℃より小さいので、配置パターン21の方が配置パターン20よりも適応度が高く、好ましい。
(3)その他の配置パターンの適応度の計算
上記と同様にして、負荷制御指示部10は、現世代のすべての配置パターンについて適応度を計算する。なお、図7に関して説明したように、負荷制御指示部10は、必要に応じて補間を行う。
以上、図8を参照しながら図4のステップS107の詳細について説明したので、ここで図4の説明に戻ると、続いてステップS108で、負荷制御指示部10は、終了条件が満たされたか否かを判断する。終了条件が満たされていれば処理はステップS112に進み、満たされていなければ処理はステップS109に進む。ステップS108における終了条件とは、遺伝的アルゴリズムの世代交代を終了すべきか否かを示す条件である。
具体的には、第2実施形態では、予め決めた数Nを用いて、負荷制御指示部10が次のように判断する。すなわち、負荷制御指示部10は、現世代を含む直近のN世代にわたって集団内で最良の適応度が変化していなければ、終了条件が満たされたと判断し、そうでなければ、終了条件が満たされていないと判断する。ここでは最高温度Mそのものが適応度として用いられるので、各配置パターンについて取得された最高温度Mのうち集団内で最低の値が直近のN世代にわたって変化していなければ、終了条件が満たされたと負荷制
御指示部10は判断する。
なお、解が収束しない場合の例外処理のために、世代交代が規定回数を超えた場合も、終了条件が満たされたと負荷制御指示部10が判断するようにしてもよい。
ステップS108で終了条件が満たされていないと判断すると、負荷制御指示部10は、ステップS109〜ステップS111で次世代の集団を生成する。
すなわち、負荷制御指示部10は、ステップS109において現世代の集団の中から、次世代の集団の親となる配置パターンを選択する。ここで、現世代の集団の大きさは初期集団の大きさSと等しい。例えば、Gは0<G<100なる所定の値であるとして、負荷制御指示部10は、ステップS109において、適応度の高い順に上位G%の配置パターンを選択してもよい。ステップS109における選択すなわち淘汰の戦略は、任意である。
続いて、ステップS110において、負荷制御指示部10は、ステップS109で選択した配置パターンを親として交叉を行い、次世代のS個の配置パターンを生成する。例えば、負荷制御指示部10は、適応度の高い配置パターンほど多数回の交叉をして、より多くの子供を残すように制御してもよい。交叉の方法は、配置パターンの遺伝子型などを考慮して適宜決めることができ、1点交叉その他の任意の方法を採用することができる。また、エリート戦略を採ってもよく、すなわち、現世代において適応度が特に高い一部の配置パターンそのものを次世代の配置パターンとして残してもよい。
続いて、ステップS111において、負荷制御指示部10は、ステップS110で生成した次世代のS個の配置パターンに、所定の確率で突然変異を起こさせる。突然変異の確率や、突然変異の方法も、実施形態に応じて任意に決めることができる。ステップS111の完了後のS個の配置パターンからなる集団が、次世代の集団である。ステップS111の完了後、処理はステップS107に戻り、ステップS107〜ステップS111を繰り返すことで世代交代を重ねる。
他方、ステップS108で終了条件を満たすと判断された場合は、世代交代が終了し、処理がステップS112に移行する。ステップS112では、現世代の集団に含まれるS個の配置パターンのうち、最も適応度の高い配置パターン、すなわち、適応度として利用される最高温度Mの値が最低の配置パターンを、負荷制御指示部10が選択する。そして、負荷制御指示部10は、選択した配置パターンにしたがってCPU#1〜#4にタスクを割り当てる。こうして第(m+1)周期の始めにおけるタスクの割り当てが終了すると、処理はステップS101に戻る。
以上、第2実施形態について説明したので、続いて、図9を参照して第3実施形態について説明する。
図9は、第3実施形態におけるタスクの割り当ての効果を示すグラフである。第3実施形態は、図1の第1実施形態においてn=2の場合であり、簡単のため、同じ性能CPU#1〜#2が使われる。また、負荷制御指示部10によるタスクの割り当ての効果を明らかにするため、図9には、時刻Tまでは負荷制御指示部10が何も制御をしない場合の、CPU#1〜#2の温度と負荷率の推移の例を示した。
図9に示したとおり、時刻Tまでは、CPU#1の温度がCPU#2の温度よりも大幅に高い状態が続いている。
時刻Tに負荷制御指示部10が制御を開始すると、CPU#1〜#2へのタスクの割り当て方が変わる。時刻Tの直後では、楕円Pで囲んだ部分に示すように、温度の低いCPU#2へ割り当てられるタスクが増え、CPU#2の負荷率が急増する。また、負荷率の
上昇よりも緩やかだが、CPU#2の温度も、時刻Tからはっきりと上昇し始める。
図9には特に各周期を明示していないが、図4と同様に負荷制御指示部10は周期ごとにタスクの割り当てを行う。したがって、次第にCPU#1〜#2の負荷率はともに、2個のCPU#1〜#2に平均して必要な負荷率Lに近づく。この「必要な負荷率L」は、実行すべきタスクに必要な処理量と、2個のCPU#1〜#2の処理能力により規定される。
また、CPU#1〜#2の負荷率がともに必要な負荷率Lに近づいた時点では、楕円Qで囲んだ部分に示すように、CPU#1〜#2の温度の差は、時刻T以前と比べて小さくなっており、CPU#1〜#2の温度の均一化が進んでいる。つまり、負荷制御指示部10がタスクの割り当てを制御することにより、複数のCPUの温度の均一化による情報処理システム12全体の可用性の向上が見込まれる。
以上、第1〜第3実施形態について説明したが、いずれも次の効果を有する。すなわち、複数のCPU#1〜#nの温度が不均一な状態で情報処理システム12が使用され続ける状況が減る。換言すると、一部のCPUのみが突出して高温で使用されることで過熱による故障に見舞われて故障発生間隔が短くなってしまう、という状況が減る。つまり、故障発生間隔が短いCPUが減る。したがって、情報処理システム12全体としての可用性および信頼性が向上する。
また、上記のいずれの実施形態も、特定のCPUの組の間でタスクを移動するのではなく、複数の配置パターン同士の比較に基づいて複数のタスクが割り当てられる。よって、上記実施形態の情報システム12を従来のシステムと比較すると、情報システム12全体としてより適切にタスクが割り当てられ、より適切に負荷が分散される。
なお、本発明は上記の実施形態に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
変形の第1の観点は、CPUの能力や温度特性が同一か否かという点に関する。
例えば、すべてのCPU#1〜#nの処理能力が等しい場合には、図6の処理能力情報データベースを省略する実施形態が可能である。この場合、負荷制御指示部10は、例えば、タスクの処理量を、パーセンテージで表される上記の負荷率の代わりに利用することができる。
あるいは、上記のとおり、個々のCPUにそれぞれ対応する複数の相関表を記憶部11が記憶してもよい。複数の相関表を利用することにより、個々のCPUの元々の温度特性の違いに対応することができるだけでなく、元々は同じ温度特性を有する複数のCPUが、経時変化の影響で異なる温度特性を持つように変化した場合にも対応することができる。
変形の第2の観点は、最適な配置パターンを探索する方法に関する。
実施形態によっては、負荷制御指示部10は、遺伝的アルゴリズムを利用する代わりに、組み合わせ可能なすべての配置パターンを網羅的に探索して、CPUの最高温度Mが最も低くなる配置パターンを取得することもできる。網羅的な探索は、CPUの個数が少ない場合や、実行すべきタスクが少ない場合に特に好適である。また、遺伝的アルゴリズム以外にも、組み合わせ最適化問題の解法として知られる任意の適当なアルゴリズムを利用することが可能である。
変形の第3の観点は、タスクの割り当てのために複数の配置パターンの候補の中から1
つの配置パターンを選択する基準に関する。実施形態によっては、必ずしも負荷制御指示部10が最適な配置パターンを選択する必要はない。例えば、探索量を減らすために、何らかの基準に適合する配置パターンの中から任意の配置パターンを負荷制御指示部10が選択してもよい。
変形の第2の観点から見てどのようなアルゴリズムが使われるにしろ、負荷制御指示部10が、第(m+1)周期のタスクの割り当て方を示す配置パターンの複数の候補の中から1つの配置パターンを選択し、選択した配置パターンにしたがってタスクの割り当てを行うことは共通である。したがって、負荷制御指示部10は、探索範囲であるそれら複数の配置パターンを任意の順序で調べて、各CPUについて予測した温度のうちの最高温度Mが予め定められた基準に照らして低いと見なされるような配置パターンを、基準に適合する配置パターンとして選択してもよい。
例えば、情報処理システム12に使われるCPUの仕様などから、ある閾値U以下の温度ならばCPUの動作が保証されている場合がある。そのような場合、負荷制御指示部10が利用する探索アルゴリズムによらず、負荷制御指示部10は、第(m+1)周期の開始時点において第(m+1)周期のタスクの割り当て方を決めるために次のようにして配置パターンを選択することができる。すなわち、負荷制御指示部10は、探索範囲に含まれる複数の配置パターンを任意の順序で調べて、最高温度Mが閾値U以下であるという条件を満たす、最初に見つかった配置パターンを選択してもよい。
例えば、アルゴリズムとして網羅的探索を採用する場合、探索範囲は組み合わせ可能なすべての配置パターンを含む。
また、遺伝的アルゴリズムにおいては、探索範囲は、第1世代から現世代までの各世代の集団の和集合である。例えば、図4のステップS108を、「現世代の集団の中に、最高温度Mが閾値U以下の配置パターンがある」または「現世代を含む直近のN世代にわたって集団内で最良の適応度が変化していない」という条件が満たされれば「終了条件が満たされた」と負荷制御指示部10が判断するように、第2実施形態を変形することが可能である。
変形の第4の観点は、タスクの割り当てを行うタイミングに関する。
周期時間Aの長さは実施形態に応じて様々であり、一定の周期時間Aで繰り返しタスクの割り当てを行うのではなく、不定期にタスクの割り当てを行ってもよい。
また、タスクの実行要求が生じるタイミングは様々であり、情報処理システム12の用途などによってタスクの性格も様々である。第m周期の途中で実行を要求された場合に、第(m+1)周期の開始時点まで実行開始を延期しても差し支えないタスクも存在するし、要求され次第すぐに実行すべきタスクも存在する。
例えば、第m周期において図2のようにタスクが割り当てられて実行されている場合に、第m周期の途中で新たなタスクHの実行要求が負荷制御指示部10に対してなされることがある。例えば、タスクHがバッチ処理であれば、負荷制御指示部10は、第m周期の間はタスクHを待機状態としておき、第(m+1)周期の開始時点ではじめてタスクHの割り当てを決定することもできる。しかし、タスクHの性質によっては、実行要求のあった第m周期の途中からすぐにタスクHを実行すべき場合がある。
この場合、負荷制御指示部10は、例えば、以下の(1)と(2)のいずれかの方法を選んで動作してもよい。
(1)負荷制御指示部10は、各CPUの処理能力とタスクHの所要処理量から、各CPUについてタスクHによって生じる負荷率hを計算する。そして、負荷制御指示部10は
、「温度・負荷率情報データベースに登録された負荷率に、計算された負荷率hを足した合計負荷率が、100%以下である」という条件を満たすいずれかのCPUにタスクHを割り当てる。
なお、負荷制御指示部10は、相関表を参照して、タスクHの割り当てによる各CPUの温度変化を予測し、上記条件を満たすCPUのうち予測された温度が最も低いCPUにタスクHを割り当ててもよい。あるいは、より単純に、負荷制御指示部10は、温度・負荷率情報データベースに記憶された温度情報のみを参照して、上記条件を満たすCPUのうち最も低温のCPUにタスクHを割り当ててもよい。
この(1)の方法だと、第m周期の間は、既存のタスクA〜Gの割り当てに変化がないので、情報処理システム12全体としてタスクA〜Hの最適な割り当てが実現されないことがある。しかし、もしタスクHの実行が第(m+1)周期の開始時点でも完了していなければ、第(m+1)周期の開始時点で、情報処理システム12全体としての最適な割り当てが実現される。タスクの移動にかかるコストと、周期時間Aの長さのバランスによっては、この(1)の方法が好ましい。
(2)負荷制御指示部10は、すぐに実行すべきタスクHの実行要求を受け付けると、第m周期の途中であっても、実行中の既存のタスクA〜Gと新たなタスクHとをあわせた8つのタスクA〜H全体の割り当てをしなおす。すなわち、この(2)の方法は、図4のステップS101を、「周期時間Aが経過したか、または、すぐに実行すべきタスクの実行要求を受け付けた場合は、ステップS102に移行する」というステップに変更した方法である。
最後に、さらに下記の付記を開示する。
(付記1)
複数の中央処理装置と、
前記複数の中央処理装置それぞれについて温度を検出し、前記温度を示す温度情報を出力する温度検出手段と、
前記複数の中央処理装置それぞれについて、個々のタスクの割り当てに応じて予測される負荷率を示す負荷率情報を記憶する第1の記憶手段と、
前記複数の中央処理装置それぞれについて、タスクの割り当てによって生じる負荷率と現在の温度とに応じて予測される将来の温度を表す温度特性情報を記憶する第2の記憶手段と、
実行すべき複数のタスクを前記複数の中央処理装置に割り当てる負荷制御指示手段とを備え、
前記負荷制御指示手段は、
前記複数のタスクの前記複数の中央処理装置への割り当て方の複数のパターンを作成し、
作成した前記複数のパターンのそれぞれについて、前記温度情報と前記負荷率情報と前記温度特性情報に基づいて、前記複数の中央処理装置それぞれの温度を予測し、
前記複数の中央処理装置についてそれぞれ予測した前記温度のうちの最高温度が、予め定められた基準に照らして低いと見なされるために前記基準に適合する1つの適合パターンを、前記複数のパターンの中から選択し、
前記適合パターンにしたがって前記複数のタスクを前記複数の中央処理装置に割り当てる、
ことを特徴とする情報処理システム。
(付記2)
前記負荷制御指示手段は、前記複数のタスクの割り当てを行う際にさらに、前記温度情報が表す前記複数の中央処理装置の実際の温度変化に基づいて前記温度特性情報を更新することを特徴とする付記1に記載の情報処理システム。
(付記3)
前記基準に適合する前記適合パターンとは、前記複数のパターンのうち前記最高温度が最低のパターンであることを特徴とする付記1に記載の情報処理システム。
(付記4)
前記基準に適合する前記適合パターンとは、予測した前記温度のうちの最高温度が予め定められた閾値よりも低いパターンであることを特徴とする付記1に記載の情報処理システム。
(付記5)
前記負荷制御指示手段は、前記複数の中央処理装置それぞれについて予測した前記温度のうちの最高温度が低いほど適応度が高いと評価する適応度を用いた遺伝的アルゴリズムにより、前記パターンの選択を行うことを特徴とする付記1に記載の情報処理システム。(付記6)
前記温度特性情報は、所定の期間における前記負荷率と前記所定の期間の開始時点の温度である前記現在の温度とに応じて、前記所定の期間の経過後に予測される温度を、前記複数の中央処理装置それぞれについて示す情報であることを特徴とする付記1に記載の情報処理システム。
(付記7)
前記負荷制御指示手段は、前記所定の期間で繰り返し、前記複数の中央処理装置への複数のタスクの割り当てを行うことを特徴とする付記6に記載の情報処理システム。
(付記8)
前記温度特性情報は、前記負荷率の離散的な値と前記現在の温度の離散的な値との組み合わせに、前記所定の期間の経過後に予測される前記温度を対応づけた情報であり、
前記負荷制御指示手段は、離散的に表された前記負荷率と前記現在の温度とを用いた補間により、前記複数のパターンのそれぞれについて前記複数の中央処理装置それぞれの温度を予測する、
ことを特徴とする付記6に記載の情報処理システム。
(付記9)
前記負荷制御指示手段は、
前記複数のタスクの割り当てを行う際にさらに、
前記温度情報が表す前記複数の中央処理装置の実際の温度変化に基づいて、
前記温度特性情報において、前記負荷率の前記値または前記現在の温度の前記値が隣接する複数の前記組み合わせに対応づけられた、それぞれの前記温度の値を更新する、
ことを特徴とする付記8に記載の情報処理システム。
(付記10)
前記温度検出手段は、前記複数の中央処理装置それぞれの近傍に配置された複数の温度センサであることを特徴とする付記1に記載の情報処理システム。
(付記11)
前記複数の中央処理装置のうちの1つが前記負荷制御手段を兼ねることを特徴とする付記1に記載の情報処理システム。
(付記12)
前記負荷率情報は、各タスクにかかる処理量と各中央処理装置の処理能力とから計算された値を含むことを特徴とする付記1に記載の情報処理システム。
(付記13)
複数の中央処理装置、前記複数の中央処理装置それぞれの温度を示す温度情報を出力する温度検出器、および記憶装置を含む情報処理システムに備えられた負荷制御装置が、
前記温度検出器から出力された前記温度情報を読み取り、
前記複数の中央処理装置それぞれについて、個々のタスクの割り当てに応じて予測される負荷率を示す負荷率情報を、前記記憶装置から読み取り、
前記複数の中央処理装置それぞれについて、タスクの割り当てによって生じる負荷率と現在の温度とに応じて予測される将来の温度を表す温度特性情報を、前記記憶装置から読
み取り、
実行すべき複数のタスクの前記複数の中央処理装置への割り当て方の複数のパターンを作成し、
作成した前記複数のパターンのそれぞれについて、前記温度情報と前記負荷率情報と前記温度特性情報に基づいて、前記複数の中央処理装置それぞれの温度を予測し、
前記複数の中央処理装置についてそれぞれ予測した前記温度のうちの最高温度が、予め定められた基準に照らして低いと見なされるために前記基準に適合する1つの適合パターンを、前記複数のパターンの中から選択し、
前記適合パターンにしたがって前記複数のタスクを前記複数の中央処理装置に割り当てる、
ことを特徴とする負荷制御方法。
(付記14)
複数の中央処理装置、前記複数の中央処理装置それぞれの温度を示す温度情報を出力する温度検出器、および記憶装置を含む情報処理システムに備えられた負荷制御装置に、
前記温度検出器から出力された前記温度情報を読み取るステップと、
前記複数の中央処理装置それぞれについて、個々のタスクの割り当てに応じて予測される負荷率を示す負荷率情報を、前記記憶装置から読み取るステップと、
前記複数の中央処理装置それぞれについて、タスクの割り当てによって生じる負荷率と現在の温度とに応じて予測される将来の温度を表す温度特性情報を、前記記憶装置から読み取るステップと、
実行すべき複数のタスクの前記複数の中央処理装置への割り当て方の複数のパターンを作成するステップと、
作成した前記複数のパターンのそれぞれについて、前記温度情報と前記負荷率情報と前記温度特性情報に基づいて、前記複数の中央処理装置それぞれの温度を予測するステップと、
前記複数の中央処理装置についてそれぞれ予測した前記温度のうちの最高温度が、予め定められた基準に照らして低いと見なされるために前記基準に適合する1つの適合パターンを、前記複数のパターンの中から選択するステップと、
前記適合パターンにしたがって前記複数のタスクを前記複数の中央処理装置に割り当てるステップと、
を実行させることを特徴とする負荷制御プログラム。
第1実施形態の情報処理システムの構成図である。 第2実施形態のある時点での情報処理システムの状態を示す図である。 第2実施形態においてタスクの割り当てが行われた後の情報処理システムの状態を示す図である。 第2実施形態における負荷制御指示部による処理の流れを示すフローチャートである。 処理量情報データベースの例を示す図である。 処理能力情報データベースの例を示す図である。 温度特性情報を表す相関表の第1の例を示す図である。 温度特性情報を表す相関表の第2の例と2つの配置パターンを示す図である。 第3実施形態におけるタスクの割り当ての効果を示すグラフである。
符号の説明
10 負荷制御指示部
11 記憶部
12 情報処理システム
20、21 配置パターン

Claims (5)

  1. 複数の中央処理装置と、
    前記複数の中央処理装置それぞれについて温度を検出し、前記温度を示す温度情報を出力する温度検出手段と、
    前記複数の中央処理装置それぞれについて、個々のタスクの割り当てに応じて予測される負荷率を示す負荷率情報を記憶する第1の記憶手段と、
    前記複数の中央処理装置それぞれについて、0個以上のタスクの割り当てによって生じる合計負荷率と現在の温度とに応じて予測される将来の温度を表す温度特性情報を記憶する第2の記憶手段と、
    実行する対象の複数のタスクを前記複数の中央処理装置に割り当てる負荷制御指示手段とを備え、
    前記負荷制御指示手段は、
    前記複数のタスクの前記複数の中央処理装置への割り当て方の複数のパターンを作成し、
    作成した前記複数のパターンのそれぞれについて前記複数の中央処理装置それぞれの温度を
    当該中央処理装置について前記温度検出手段が出力した前記温度情報により示される前記温度を、前記現在の温度に当てはめるとともに、
    当該パターンにおいて当該中央処理装置に割り当てられるタスクがない場合は、0を前記合計負荷率に当てはめ、当該パターンにおいて当該中央処理装置に1個以上のタスクが割り当てられる場合は、当該1個以上のタスクの各々について前記負荷率情報により示される各負荷率の合計を前記合計負荷率に当てはめて、
    前記温度特性情報を用いて予測し、
    前記複数の中央処理装置についてそれぞれ予測した前記温度のうちの最高温度が、予め定められた基準に適合する1つの適合パターンを、前記複数のパターンの中から選択し、
    前記適合パターンにしたがって前記複数のタスクを前記複数の中央処理装置に割り当てる、
    ことを特徴とする情報処理システム。
  2. 前記負荷制御指示手段は、前記複数のタスクの割り当てを行う際にさらに、前記温度情報が表す前記複数の中央処理装置の実際の温度変化に基づいて前記温度特性情報を更新することを特徴とする請求項1に記載の情報処理システム。
  3. 前記温度特性情報は、所定の期間における前記合計負荷率と前記所定の期間の開始時点の温度である前記現在の温度とに応じて、前記所定の期間の経過後に予測される温度を、前記複数の中央処理装置それぞれについて示す情報であることを特徴とする請求項1または2に記載の情報処理システム。
  4. 複数の中央処理装置、前記複数の中央処理装置それぞれの温度を示す温度情報を出力する温度検出器、および記憶装置を含む情報処理システムに備えられた負荷制御装置が、
    前記温度検出器から出力された前記温度情報を読み取り、
    前記複数の中央処理装置それぞれについて、個々のタスクの割り当てに応じて予測される負荷率を示す負荷率情報を、前記記憶装置から読み取り、
    前記複数の中央処理装置それぞれについて、0個以上のタスクの割り当てによって生じる合計負荷率と現在の温度とに応じて予測される将来の温度を表す温度特性情報を、前記記憶装置から読み取り、
    実行する対象の複数のタスクの前記複数の中央処理装置への割り当て方の複数のパターンを作成し、
    作成した前記複数のパターンのそれぞれについて前記複数の中央処理装置それぞれの温度を
    当該中央処理装置について前記温度検出器が出力した前記温度情報により示される前記温度を、前記現在の温度に当てはめるとともに、
    当該パターンにおいて当該中央処理装置に割り当てられるタスクがない場合は、0を前記合計負荷率に当てはめ、当該パターンにおいて当該中央処理装置に1個以上のタスクが割り当てられる場合は、当該1個以上のタスクの各々について前記負荷率情報により示される各負荷率の合計を前記合計負荷率に当てはめて、
    前記温度特性情報を用いて予測し、
    前記複数の中央処理装置についてそれぞれ予測した前記温度のうちの最高温度が、予め定められた基準に適合する1つの適合パターンを、前記複数のパターンの中から選択し、
    前記適合パターンにしたがって前記複数のタスクを前記複数の中央処理装置に割り当てる、
    ことを特徴とする負荷制御方法。
  5. 複数の中央処理装置、前記複数の中央処理装置それぞれの温度を示す温度情報を出力する温度検出器、および記憶装置を含む情報処理システムに備えられた負荷制御装置に、
    前記温度検出器から出力された前記温度情報を読み取るステップと、
    前記複数の中央処理装置それぞれについて、個々のタスクの割り当てに応じて予測される負荷率を示す負荷率情報を、前記記憶装置から読み取るステップと、
    前記複数の中央処理装置それぞれについて、0個以上のタスクの割り当てによって生じる合計負荷率と現在の温度とに応じて予測される将来の温度を表す温度特性情報を、前記記憶装置から読み取るステップと、
    実行する対象の複数のタスクの前記複数の中央処理装置への割り当て方の複数のパターンを作成するステップと、
    作成した前記複数のパターンのそれぞれについて前記複数の中央処理装置それぞれの温度を
    当該中央処理装置について前記温度検出器が出力した前記温度情報により示される前記温度を、前記現在の温度に当てはめるとともに、
    当該パターンにおいて当該中央処理装置に割り当てられるタスクがない場合は、0を前記合計負荷率に当てはめ、当該パターンにおいて当該中央処理装置に1個以上のタスクが割り当てられる場合は、当該1個以上のタスクの各々について前記負荷率情報により示される各負荷率の合計を前記合計負荷率に当てはめて、
    前記温度特性情報を用いて予測するステップと、
    前記複数の中央処理装置についてそれぞれ予測した前記温度のうちの最高温度が、予め定められた基準に適合する1つの適合パターンを、前記複数のパターンの中から選択するステップと、
    前記適合パターンにしたがって前記複数のタスクを前記複数の中央処理装置に割り当てるステップと、
    を実行させることを特徴とする負荷制御プログラム。

JP2008127799A 2008-05-15 2008-05-15 情報処理システム、負荷制御方法、および負荷制御プログラム Expired - Fee Related JP5109799B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008127799A JP5109799B2 (ja) 2008-05-15 2008-05-15 情報処理システム、負荷制御方法、および負荷制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008127799A JP5109799B2 (ja) 2008-05-15 2008-05-15 情報処理システム、負荷制御方法、および負荷制御プログラム

Publications (2)

Publication Number Publication Date
JP2009277022A JP2009277022A (ja) 2009-11-26
JP5109799B2 true JP5109799B2 (ja) 2012-12-26

Family

ID=41442395

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008127799A Expired - Fee Related JP5109799B2 (ja) 2008-05-15 2008-05-15 情報処理システム、負荷制御方法、および負荷制御プログラム

Country Status (1)

Country Link
JP (1) JP5109799B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110138395A1 (en) * 2009-12-08 2011-06-09 Empire Technology Development Llc Thermal management in multi-core processor
JP2013178592A (ja) * 2010-05-06 2013-09-09 Hitachi Ltd 情報処理システムの運用管理装置および運用管理方法
JP5648397B2 (ja) 2010-09-28 2015-01-07 富士通株式会社 計算処理システム、そのジョブ分散配置方法及びジョブ分散配置プログラム
JP6384321B2 (ja) * 2014-12-26 2018-09-05 富士通株式会社 ジョブ割当プログラム、方法及び装置
CN108228337B (zh) * 2016-12-22 2021-08-27 财团法人工业技术研究院 中央处理单元的配置方法及适用此方法的服务器
JP7359078B2 (ja) 2020-05-27 2023-10-11 株式会社デンソー プロセッサ
CN113707192B (zh) * 2021-09-01 2023-02-28 合肥兆芯电子有限公司 存储器温控调频方法及存储器温控调频系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058520A (ja) * 2001-08-09 2003-02-28 Mitsubishi Heavy Ind Ltd コンピュータの配置方法
JPWO2003083693A1 (ja) * 2002-04-03 2005-08-04 富士通株式会社 分散処理システムにおけるタスクスケジューリング装置
JP2005141669A (ja) * 2003-11-10 2005-06-02 Nippon Telegr & Teleph Corp <Ntt> グリッドコンピューティング及びグリッドコンピューティングにおける負荷分散方法
JP2007241376A (ja) * 2006-03-06 2007-09-20 Fujitsu Ten Ltd 情報処理装置

Also Published As

Publication number Publication date
JP2009277022A (ja) 2009-11-26

Similar Documents

Publication Publication Date Title
JP5109799B2 (ja) 情報処理システム、負荷制御方法、および負荷制御プログラム
US9715408B2 (en) Data-aware workload scheduling and execution in heterogeneous environments
JP3805344B2 (ja) プロセッサ、情報処理装置およびプロセッサの制御方法
JP6083300B2 (ja) プログラム、並列演算方法および情報処理装置
CN103226467B (zh) 数据并行处理方法、系统及负载均衡调度器
JP6075226B2 (ja) プログラム、仮想マシン管理方法および情報処理装置
US9015726B2 (en) Scheduling jobs of a multi-node computer system based on environmental impact
JP6816078B2 (ja) 拡張可能なマルチ車両タスクのためのシステムおよび方法
US9384053B2 (en) Task allocation optimization system, task allocation optimization method, and non-transitory computer readable medium storing task allocation optimization program
CN104781795A (zh) 存储层的动态选择
WO2015001850A1 (ja) タスク割り当て判定装置、制御方法、及びプログラム
US8214521B2 (en) Systems and methods for changing computational tasks on computation nodes to minimize processing time variation
JP2010244181A (ja) 仮想マシン管理システム,仮想マシン配置設定方法及びそのプログラム
JP2013239095A (ja) 仮想マシン配置装置および仮想マシン配置方法
KR102391510B1 (ko) 인공지능 기반 it 인프라 장비의 사전 장애 예측 방법, 장치 및 시스템
JP5773142B2 (ja) 計算機システムの構成パターンの算出方法及び構成パターンの算出装置
EP3295300B1 (en) System and method for determining concurrency factors for dispatch size of parallel processor kernels
Salmasnia et al. Joint production and preventive maintenance scheduling for a single degraded machine by considering machine failures
JP2022500768A (ja) 熱負荷予測方法、装置、読み取り可能な媒体及び電子機器
JP2020187417A (ja) 物性予測装置及び物性予測方法
CN112154416B (zh) 虚拟机配置方法以及用于实施该方法的虚拟机配置装置
CN112328395A (zh) 一种云资源容量规划方法和系统
Schmidt et al. Latin hypercube sampling-based Monte Carlo simulation: extension of the sample size and correlation control
JP7234702B2 (ja) 情報処理装置、コンテナ配置方法及びコンテナ配置プログラム
Gao A bottleneck detection-based tabu search algorithm for the buffer allocation problem in manufacturing systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120618

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120924

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees