以下、図面を用いて実施形態が説明される。
図1は、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムの一実施形態を示す。図1に示す情報処理装置IPEは、ジョブ割当装置10と、ジョブ割当装置10に接続されたROM(Read Only Memory)20およびRAM(Random Access Memory)30とを有する。また、情報処理装置IPEは、複数のCPU(Central Processing Unit;CPU1、CPU2、CPU3、CPU4)と、CPU1−CPU4のそれぞれに接続されたメモリMEMとを有する。CPUは、ジョブを実行する演算処理装置の一例である。例えば、各メモリMEMは、CPUが実行するプログラムおよびCPUが実行するジョブで扱うデータ等を記憶する。例えば、CPU1−CPU4は、互いに同じ仕様(品種、クロック周波数、電源電圧等)で動作し、共通のジョブを実行する場合のCPU1−CPU4の発熱量はほぼ同じである。なお、情報処理装置IPEが有するCPUの数は、4つに限定されない。
さらに、情報処理装置IPEは、冷却液の循環装置40と、循環装置40とCPU1−CPU4との間に接続され冷却液が流れる供給路50とを有する。冷却液は、CPUが発生する熱を吸収する冷媒の一例である。なお、供給路50には、冷却液の代わりに冷却ガス等の気体が流れてもよい。なお、供給路50は、CPU1−CPU4の各々に接触される。供給路50に示す網掛けは、冷却液を示す。各CPUと供給路50との接触部分の構造の例は、図3に示される。
例えば、循環装置40は、供給路50に冷却液を送出するポンプPと、CPU1−CPU4が発生する熱を吸収した冷却液を冷却する熱交換器HEとを有する。ポンプPから出力される冷却液は、循環装置40の出口OUTから供給路50に出力され、CPU1−CPU4をこの順で冷却し、循環装置40の入口INに戻される。例えば、CPU1の供給路50上での位置は、CPU2−CPU4に比べて出口OUTに近く、CPU2の供給路50上での位置は、CPU3−CPU4に比べて出口OUTに近く、CPU3の供給路50上での位置は、CPU4に比べて出口OUTに近い。入口INに戻された冷却液は、熱交換器HEで熱交換された後、ポンプPの駆動力により再び出口OUTから出力される。図1では、循環装置40を介して環状に接続された供給路50内における冷却液の流れの方向を矢印で示す。
循環装置40と、供給路50と、供給路50を流れる冷却液とは、CPU1−CPU4を冷却する冷却系である。例えば、情報処理装置IPEは、空調装置により冷却可能な部屋に設置される。なお、冷却液を循環させることなく供給路50に供給する供給装置が、循環装置40の代わりに設けられてもよい。この場合、冷却液の供給装置は、熱交換器HEを持たない。
ROM20は、ジョブ割当装置10が実行するプログラムPGMと、CPU1−CPU4の供給路50上での配置の順序を示す情報が格納されたテーブルTBL2とを格納する領域を有する。RAM30は、ROM20から転送されるプログラムPGMを格納する領域と、テーブルTBL3とを格納する領域を有する。テーブルTBL3には、ROM20から転送されるテーブルTBL2に含まれる情報と、CPU1−CPU4の稼働状況を示す情報とが格納される。プログラムPGMは、ジョブ割当装置10により実行され、CPU1−CPU4が実行するジョブをCPU1−CPU4に割り当てる情報処理装置IPEの制御プログラムの一例である。例えば、ROM20からRAM30へのプログラムPGMとテーブルTBL2に格納された情報との転送は、情報処理装置IPEの電源の投入時に実行される。
例えば、ジョブ割当装置10は、ネットワークNWを介してCPU1−CPU4に接続される。ネットワークNWは、通信経路の一例である。ジョブ割当装置10は、RAM30に格納されたプログラムPGMを実行するプロセッサPROCを有し、プロセッサPROCの動作により、ジョブをCPUに割り当て、ネットワークNWを介して割り当てたジョブをCPUのいずれかに投入する。この際、ジョブ割当装置10は、テーブルTBL3に格納された情報を参照し、ジョブを割り当てるCPUを決定する。ジョブ割当装置10がジョブをCPUに割り当てる制御は、図4および図5で説明される。例えば、ジョブは、情報処理装置IPEを使用するユーザ装置等の上位装置から供給される。
図2は、図1に示すROM20およびRAM30に格納される情報の例を示す。
ROM20に割り当てられるテーブルTBL2は、CPU1−CPU4の供給路50上での位置を示す情報である搭載位置を格納する領域を有する。例えば、”搭載位置”の領域には、循環装置40における冷却液を出力する出口OUTに近い順序を示す番号が格納される。図2に示す例では、他のCPU2−CPU4に比べて出口OUTに近いCPU1に対応する”搭載位置”の領域に”1”が格納される。また、他のCPU1−CPU3に比べて出口OUTに遠いCPU4に対応する”搭載位置”の領域に”4”が格納される。
RAM30に割り当てられるテーブルTBL3は、テーブルTBL2から転送される”搭載位置”の情報を格納する領域と、CPU1−CPU4の稼働状態を示す情報が格納される領域とを有する。図1で説明したように、”搭載位置”の情報は、情報処理装置IPEの電源の投入時にテーブルTBL2からテーブルTBL3に転送される。
”稼働状態”の領域は、ジョブ割当装置10がCPU1−CPU4にジョブを投入するときに”稼働”を示す状態に設定され、ジョブの終了時に”未稼働”を示す状態に設定される。図2では、”未稼働”に設定された領域は網掛けで示される。なお、”稼働状態”の領域には、例えば、”稼働”を示す”1”または”未稼働”を示す”0”が格納されてもよい。
図3は、図1に示すCPU(CPU1−CPU4)と供給路50との接触部分の構造を示す。例えば、供給路50は、サーマルシートまたはグリス等の熱伝導性を有する部材60を介してCPUの表面と接触する平坦状の拡張部55を有する。例えば、拡張部55は、クーリングプレートまたは水冷ジャケットと称される。CPU1−CPU4に接触する拡張部55は、互いに同じ形状を有しており、CPU1−CPU4との接触面積は互いに等しい。供給路50において、拡張部55を除く部分は、例えば管形状を有し、管形状の部分の内径は位置によらず一定である。例えば、CPUは、プリント基板70上にはんだ付けされる。図3において、冷却液が流れる方向は矢印で示される。なお、拡張部55は、部材60を介することなく、CPUに直接接触されてもよい。
循環装置40の出口OUTから供給路50に出力され拡張部55に流れ込んだ冷却液は、熱伝導性を有する部材60を介してCPUが発生する熱を吸収する。熱の吸収により温度が上昇した冷却液は、拡張部55から出力され、循環装置40の入口INに向けて流れる。
例えば、循環装置40が出力する冷却液の単位時間当たりの流量は一定であり、供給路50の管形状の部分を流れる冷却液の流速は一定である。このため、CPU1−CPU4に接触する各拡張部55を流れる冷却液の温度が同じ場合、CPU1−CPU4が発生する熱量のうち冷却液に吸収される熱量は互いに同じであり、冷却液によるCPU1−CPU4の冷却効率は、互いに同じである。
温度が均一の平板上を流れる液体が層流の場合、レイノルズ数Reを”ul/ν”、プラントル数Prをν/αとすると、式(1)の関係が知られている。
Q=0.664Re1/2Pr1/3(λ/l)(Ts−Tf)S …(1)
レイノルズ数Reにおいて、uは冷却液の流速、lはスケール長、νは冷却液の動粘性係数である。例えば、スケール長lは、拡張部55等においてCPUと接触する部分を流路の長さに換算した値である。プラントル数Prにおいて、αは温度伝導率である。λ、ν、αは、物質固有の値であり、若干の温度依存性を持つ。式(1)において、QはCPUが発生する熱量のうち冷却液により吸収される吸熱量、λは液体の熱伝導率、TsはCPUの温度、Tfは液体の温度、Sは液体が流れる拡張部55等とCPUとの接触面積である。
CPUの温度Tsが所定の温度を超えると、CPUは正常に動作することが困難になる。式(1)より、CPUの温度Tsを所定の温度以下に保つために許容される吸熱量Qは、冷却液の液温Tfの上昇とともに減少する。
CPU1と接触する拡張部55から出力される冷却液は、CPU2と接触する拡張部55に流れ込み、CPU2と接触する拡張部55から出力される冷却液は、CPU3と接触する拡張部55に流れ込む。このため、CPU1と接触する拡張部55に流れ込む冷却液の温度Tfは、CPU2と接触する拡張部55に流れ込む冷却液の温度Tfより低い。CPU2と接触する拡張部55に流れ込む冷却液の温度Tfは、CPU3と接触する拡張部55に流れ込む冷却液の温度Tfより低い。このため、共通の供給路50に接触するCPU1−CPU4の各々に許容される発熱量Qは、循環装置40の出口OUTに近いCPUほど大きい。換言すれば、循環装置40の出口OUTに近い拡張部55ほど、CPUを冷却する能力が高い。したがって、図2に示すテーブルTBL3の”搭載位置”に格納された値は、数字が小さい程、CPUを冷却する能力が高いことを示す。すなわち、図1に示すCPUの冷却構造では、CPU1を冷却する能力は、CPU2を冷却する能力より高く、CPU2を冷却する能力は、CPU3を冷却する能力より高く、CPU3を冷却する能力は、CPU4を冷却する能力より高い。
図4は、図1に示すジョブ割当装置10がCPUに投入するジョブの例を示す。図4に示す例では、ジョブ割当装置10は、10個のジョブJ1−J10をCPU1−CPU4のいずれかに割り当て、割り当てたジョブを投入する。図4の下側に示すテーブルTBL3(図1)の”稼働状態”の領域は、”0”が”未稼働”を示し、”1”が”稼働”を示す。図4では、テーブルTBL3における”1”(すなわち、”稼働”)を示す”稼働状態”の領域は、網掛けで示される。”未稼働”のCPUは、ジョブを実行していないジョブ未実行演算処理装置の一例である。
まず、ジョブが投入されない初期状態において、テーブルTBL3の”稼働状態”の領域は、全て”未稼働”(すなわち、”0”)に設定される。ジョブ割当装置10は、ジョブJ1の投入の指示を上位装置から受ける。ジョブ割当装置10は、テーブルTBL3を参照し、”未稼働”のCPU1−CPU4のうち、”搭載位置”の値が最も小さいCPU1にジョブJ1を割り当て、割り当てたジョブを投入する(図4(a))。
次に、ジョブ割当装置10は、ジョブJ2の投入の指示を上位装置から受ける。ジョブ割当装置10は、テーブルTBL3を参照し、”未稼働”のCPU2−CPU4のうち、”搭載位置”の値が最も小さいCPU2にジョブJ2を割り当て、割り当てたジョブを投入する(図4(b))。
次に、ジョブ割当装置10は、ジョブJ3の投入の指示を上位装置から受ける。ジョブJ3の投入の指示を受けた時点で、CPU1は、ジョブJ1の実行を完了し、CPU1に対応する”稼働状態”の領域は、”0”に設定されている(図4(c))。ジョブ割当装置10は、テーブルTBL3を参照し、”未稼働”のCPU1、CPU3、CPU4のうち、”搭載位置”の値が最も小さいCPU1にジョブJ3を割り当て、割り当てたジョブを投入する(図4(d))。
次に、ジョブ割当装置10は、ジョブJ4の投入の指示を上位装置から受ける。ジョブ割当装置10は、テーブルTBL3を参照し、”未稼働”のCPU3、CPU4のうち、”搭載位置”の値が最も小さいCPU3にジョブJ4を割り当て、割り当てたジョブを投入する(図4(e))。次に、ジョブ割当装置10は、ジョブJ5の投入の指示を上位装置から受ける。ジョブ割当装置10は、テーブルTBL3を参照し、”未稼働”のCPUがCPU4のため、CPU4にジョブJ5を割り当て、割り当てたジョブを投入する(図4(f))。なお、”未稼働”のCPUがない場合、ジョブ割当装置10は、ジョブの投入を待機する処理を実行する。
この後、ジョブ割当装置10は、ジョブJ6、J7、J8、J9、J10の投入の指示を上位装置から受ける毎に、テーブルTBL3を参照する。そして、ジョブ割当装置10は、”未稼働”のCPUのうち、”搭載位置”の値が最も小さいCPUにジョブJ6、J7、J8、J9、J10を割り当てる。図4に網掛けで示されるように、冷却能力が高い拡張部55(図3)に接触するCPUによるジョブの実行頻度は、冷却能力が低い拡張部55に接触するCPUによるジョブの実行頻度よりも高くなる。
これにより、例えば、ジョブがCPU1−CPU4にランダムに割り当てられる場合に比べて、CPU1−CPU4で発生する熱を効率的に冷却液に吸収させることができる。したがって、ジョブがCPU1−CPU4にランダムに割り当てられる場合に比べて、情報処理装置IPEが設置される部屋にCPU1−CPU4から放出される熱量を削減することができる。この結果、情報処理装置IPEが設置される部屋を冷却する空調装置で消費される電力を抑制することができる。
また、図1に示す情報処理装置IPEでは、温度が許容値を超えたCPUは、動作が困難になるため、各CPU1−CPU4のいずれか1つの温度が許容値を超えた場合、情報処理装置IPEは、ジョブの実行を継続することが困難になる。この実施形態では、冷却能力が低い拡張部55に接触するCPUによるジョブの実行頻度は、冷却能力が高い拡張部55に接触するCPUによるジョブの実行頻度に比べて低くなる。このため、冷却能力が低い拡張部55に接触するCPUの温度が許容値を超える可能性を低くすることができる。すなわち、CPU1−CPU4の温度が許容値を超えることにより、情報処理装置IPEに障害が発生することを抑止することができる。
図5は、図1に示すジョブ割当装置10がジョブの投入時に実行する処理の例を示す。図5に示すフローは、ジョブ割当装置10がプログラムPGMを実行することで処理される。すなわち、図5は、情報処理装置IPEの制御方法および情報処理装置IPEの制御プログラムの例を示す。図5に示すフローは、上位装置から受けるジョブの投入の指示に基づき開始される。
まず、ステップS102において、上位装置からジョブの投入の指示を受けたジョブ割当装置10は、テーブルTBL3を参照して、未稼働のCPUを検索する。例えば、図2に示すテーブルTBL3では、CPU3、CPU4が未稼働であることが検索される。次に、ステップS104において、ジョブ割当装置10は、未稼働のCPUがあるか否かを判定する。未稼働のCPUがある場合、処理はステップS122に移行され、未稼働のCPUがない場合、処理はステップS150に移行される。
ステップS122において、ジョブ割当装置10は、テーブルTBL3を参照して、未稼働のCPUに対応する”搭載位置”の情報を読み出し、最も値が小さい”搭載位置”に対応するCPUにジョブを割り当てる。すなわち、ジョブ割当装置10は、ジョブを実行していないCPUがあるとき、出口OUT側に位置するCPUからジョブを割り当てる。例えば、図2に示すテーブルTBL3では、ジョブはCPU3に割り当てられる。次に、ステップS140において、ジョブ割当装置10は、ステップS122で割り当てたジョブをCPUに投入する。
次に、ステップS142において、ジョブ割当装置10は、テーブルTBL3において、ジョブを投入したCPUに対応する”稼働状態”の領域を、”稼働”(すなわち、”1”)に設定し、処理を終了する。例えば、図2に示すテーブルTBL3では、ジョブが投入されたCPU3に対応する”稼働状態”の情報が、”未稼働”から”稼働”に変更される。一方、未稼働のCPUがない場合、ステップS150において、ジョブ割当装置10は、ジョブの投入を待機する処理を実行し、処理を終了する。
図6は、図1に示すジョブ割当装置10がジョブの終了時に実行する処理の例を示す。図6に示すフローは、ジョブ割当装置10がプログラムPGMを実行することで処理される。すなわち、図6は、情報処理装置IPEの制御方法および情報処理装置IPEの制御プログラムの例を示す。図6に示すフローは、CPUが実行しているジョブの終了に基づき開始される。
まず、ステップS162において、ジョブ割当装置10は、テーブルTBL3において、ジョブが終了したCPUに対応する”稼働状態”の領域を”未稼働”(すなわち、”0”)に設定する。次に、ステップS164において、ジョブ割当装置10は、図5に示すステップS150で待機させたジョブがあるか否かを判定する。待機中のジョブがある場合、処理は図5のステップS102に移行され、CPUのいずれかにジョブが投入される。待機中のジョブがない場合、処理は終了する。なお、図6のステップS164に示す処理は、図9に示すステップS250、図12、図14および図15に示すステップS350、および図19に示すステップS450で待機させたジョブがある場合にも実行される。
以上、図1から図6に示した実施形態では、ジョブ割当装置10は、未稼働のCPUの供給路50上での位置に基づいてCPUにジョブを割り当てるため、従来に比べてCPUが発生する熱を効率的に冷却液に吸収させることができる。この結果、情報処理装置IPEが設置される部屋を冷却する空調装置の消費電力を抑制することができ、情報処理装置IPEの稼働により消費される電力を抑制することができる。また、ジョブ割当装置10は、冷却効率に基づきCPUにジョブを割り当てるため、CPUの過熱により情報処理装置IPEに障害が発生することを抑止することができる。
図7は、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムの別の実施形態を示す。図1から図6に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図1に示す情報処理装置IPEaは、図1に示すジョブ割当装置10の代わりにジョブ割当装置10Aを有する。
ROM20には、図1に示すプログラムPGMの代わりにプログラムPGMaが格納され、図1に示すテーブルTBL2は割り当てられない。RAM30には、図1に示すプログラムPGMの代わりにプログラムPGMaが格納され、図1に示すテーブルTBL3の代わりにテーブルTBL3aが割り当てられる。テーブルTBL3aに格納される情報の例は、図8に示される。また、情報処理装置IPEaは、複数のCPU(CPU1、CPU2、CPU3)と、CPU1−CPU3のそれぞれに接続されたメモリMEMとを有する。
例えば、RAM30に格納されるプログラムPGMaは、情報処理装置IPEaの電源の投入時にROM20から転送される。ROM20からRAM30に転送されたプログラムPGMaは、ジョブ割当装置10Aにより実行される。プログラムPGMaは、CPU1−CPU3にジョブを割り当てる情報処理装置IPEaの制御プログラムの一例である。
さらに、情報処理装置IPEaは、CPU1−CPU3のそれぞれに対応して、冷却液の循環装置41、42、43と、冷却液が流れる供給路51、52、53と、温度センサTS(TS1、TS2、TS3)とを有する。すなわち、CPU1−CPU3の各々は、互いに独立して動作する循環装置41、42、43により供給路51、52、53に循環される冷却液により冷却される。なお、CPUの数、供給路51、52、53の数は、3個に限定されない。また、情報処理装置IPEaに設けられる循環装置41、42、43の数は3個に限定されず、例えば、1つの循環装置が、3つの供給路51、52、53のそれぞれに冷却液を供給してもよい。
循環装置41と供給路51と供給路51を流れる冷却液とは、CPU1を冷却する冷却系である。循環装置42と供給路52と供給路52を流れる冷却液とは、CPU2を冷却する冷却系である。循環装置43と供給路53と供給路53を流れる冷却液とは、CPU3を冷却する冷却系である。
例えば、循環装置41、42、43は、図1に示す循環装置40と同一または同様の装置である。CPU1と供給路51との接触部分の構造、CPU2と供給路52との接触部分の構造、およびCPU3と供給路53との接触部分の構造は、図3に示す構造と同一または同様である。
温度センサTS1、TS2、TS3は、循環装置41、42、43の入口INのそれぞれに戻る冷却液の温度を計測する。すなわち、温度センサTS1、TS2、TS3は、CPU1、CPU2、CPU3が発生する熱を吸収することにより温度が上昇した冷却液の温度を計測する。温度センサTS1、TS2、TS3は、ネットワークNWを介してジョブ割当装置10に接続される。ジョブ割当装置10は、温度センサTS1、TS2、TS3が計測した冷却液の温度を監視し、冷却液の温度が低い冷却系ほど、CPUを冷却する能力が高いと判断する。
なお、CPU1と入口INとの間の供給路51を流れる冷却液の温度は、ほぼ一定である。同様に、CPU2と入口INとの間の供給路52を流れる冷却液の温度は、ほぼ一定であり、CPU3と入口INとの間の供給路53を流れる冷却液の温度は、ほぼ一定である。このため、温度センサTS1、TS2、TS3のそれぞれは、CPU1、CPU2、CPU3のそれぞれと入口INとの間の任意の位置に配置されてもよい。あるいは、温度センサTS1、TS2、TS3のそれぞれは、循環装置41、42、43のそれぞれの内部に配置されてもよい。
図8は、図7に示すRAM30に格納される情報の例を示す。図2と同一または同様の要素については、詳細な説明は省略する。RAM30に割り当てられるテーブルTBL3aは、CPU1−CPU3の稼働状態を示す情報が格納される領域と、CPU1−CPU3に接続される供給路51、52、53を流れる冷却液の温度を相対的に示す”液温情報”が格納される領域とを有する。”稼働状態”の領域には、図2と同様に、”稼働”または”未稼働”を示す情報が格納される。
例えば、”液温情報”の領域には、温度センサTS1、TS2、TS3で計測された冷却液の温度に基づき、温度が低い順序を示す番号が格納される。図8に示す例では、CPU1を冷却する冷却液の温度は、CPU2、CPU3を冷却する冷却液のそれぞれの温度より低く、CPU3を冷却する冷却液の温度は、CPU2を冷却する冷却液の温度より低い。
CPU1−CPU3は、互いに独立した供給路51、52、53を流れる冷却液により冷却される。このため、冷却液の温度は、例えば、稼働頻度が他のCPUの稼働頻度より高いCPUほど高くなりやすく、あるいは、実行するジョブが他のCPUが実行するジョブより複雑なCPUほど高くなりやすい。
例えば、図7に示すジョブ割当装置10Aは、ジョブの投入頻度より高い所定の頻度で、温度センサTS1、TS2、TS3が計測する冷却液の温度を取得し、取得した温度に基づき、”液温情報”の領域に相対的な温度を示す番号を格納する。
図9は、図7に示すジョブ割当装置10Aがジョブの投入時に実行する処理の例を示す。図5と同一または同様の処理については、詳細な説明は省略する。図9に示すフローは、ジョブ割当装置10AがプログラムPGMaを実行することで処理される。すなわち、図9は、情報処理装置IPEaの制御方法および情報処理装置IPEaの制御プログラムの例を示す。
ステップS202、S204、S240、S242、S250の処理は、図5に示すステップS102、S104、S140、S142、S150の処理と同一または同様である。図9に示す処理は、上位装置から受けるジョブの投入の指示に基づき開始され、あるいは、図6で説明した処理と同様に、ステップS250で待機させたジョブがある場合に開始される。
ジョブの投入時に未稼働のCPUがある場合、ステップS206において、ジョブ割当装置10Aは、図8に示すテーブルTBL3aを参照し、未稼働のCPUを含む冷却系を流れる冷却液の温度を示す情報を取得する。例えば、図8に示すテーブルTBL3aでは、ジョブ割当装置10Aは、CPU1、CPU2、CPU3のそれぞれに対応する液温情報として、”1”、”3”、”2”を取得する。
次に、ステップS220において、ジョブ割当装置10Aは、ステップS206で取得した情報に基づいて、冷却液の温度が最も低い冷却系に接続されたCPUにジョブを割り当てる。例えば、図8に示すテーブルTBL3aでは、ジョブ割当装置10Aは、液温情報に格納された数値が最も小さい冷却系に接続されたCPU1にジョブを割り当てることを決定する。そして、図5と同様に、ステップS240において、ジョブ割当装置10Aは、CPUにジョブを投入する。
以上、図7から図9に示す実施形態では、複数の供給路51、52、53を流れる冷却液のそれぞれによりCPUを冷却する場合、ジョブ割当装置10Aは、冷却液の温度に応じて、ジョブを割り当てるCPUを決定する。これにより、図1から図6に示す実施形態と同様に、情報処理装置IPEaの稼働により消費される電力を抑制することができ、CPUの過熱により情報処理装置IPEaに障害が発生することを抑止することができる。
図10は、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムの別の実施形態を示す。図1から図9に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図10に示す情報処理装置IPEbは、図7に示すジョブ割当装置10Aの代わりに、ジョブ割当装置10Bを有する。
ROM20には、図1に示すプログラムPGMの代わりにプログラムPGMbが格納され、図1に示すテーブルTBL2の代わりにテーブルTBL2bが割り当てられる。RAM30には、図1に示すプログラムPGMの代わりにプログラムPGMbが格納され、図1に示すテーブルTBL3の代わりにテーブルTBL3bが割り当てられる。テーブルTBL2b、TBL3bの例は、図11に示される。例えば、RAM30に格納されるプログラムPGMbは、情報処理装置IPEbの電源の投入時にROM20から転送される。
また、情報処理装置IPEbは、供給路51、52、53の各々に接触された複数のCPU(CPU11−CPU14、CPU21−CPU24、CPU31−CPU34)を有する。各CPUは、メモリMEMに接続される。図10に示す情報処理装置IPEbの冷却系の構成は、図7に示す冷却系の各々に複数のCPUを接触させたことを除き、図7と同様である。なお、各供給路51、52、53が冷却するCPUの数は、4個に限定されない。また、各供給路51、52、53が冷却するCPUの数は、互いに相違してもよい。
ROM20からRAM30に転送されたプログラムPGMbは、ジョブ割当装置10Bにより実行される。プログラムPGMbは、CPU11−CPU14、CPU21−CPU24、CPU31−CPU34にジョブを割り当てる情報処理装置IPEbの制御プログラムの一例である。
図11は、図10に示すROM20およびRAM30に格納される情報の例を示す。図2および図8と同一または同様の要素については、詳細な説明は省略する。
ROM20に割り当てられるテーブルTBL2bは、冷却系(すなわち、供給路51、52、53)毎に、CPUの供給路51(または52、53)上での位置を示す情報(搭載位置)を格納する領域を有する。
RAM30に割り当てられるテーブルTBL3bは、”搭載位置”の情報を格納する領域と、各CPUの稼働状態を示す情報が格納される領域と、各冷却系を流れる冷却液の温度を相対的に示す”液温情報”が格納される領域とを有する。”搭載位置”の情報は、例えば、情報処理装置IPEbの電源の投入時に、テーブルTBL2bからテーブルTBL3bに転送される。
図12は、図10に示すジョブ割当装置10Bがジョブの投入時に実行する処理の例を示す。図5および図9と同一または同様の処理については、詳細な説明は省略する。図12に示すフローは、ジョブ割当装置10BがプログラムPGMbを実行することで処理される。すなわち、図12は、情報処理装置IPEbの制御方法および情報処理装置IPEbの制御プログラムの例を示す。
ステップS302、S304、S306、S340、S342、S350の処理は、図9に示すステップS202、S204、S206、S240、S242、S250の処理と同一または同様である。図12に示す処理は、上位装置から受けるジョブの投入の指示に基づき開始され、あるいは、図6で説明した処理と同様に、ステップS350で待機させたジョブがある場合に開始される。
ジョブの投入時に未稼働のCPUがある場合、ステップS306において、ジョブ割当装置10Bは、図11に示すテーブルTBL3bを参照し、未稼働のCPUを含む冷却系を流れる冷却液の温度を示す情報を取得する。例えば、図11に示すテーブルTBL3bでは、ジョブ割当装置10Bは、CPU1、CPU2、CPU3のそれぞれに対応する液温情報として、”2”、”3”、”1”を取得する。
次に、ステップS321において、ジョブ割当装置10Bは、ステップS306で取得した情報に基づいて、冷却液の温度が他の冷却系の冷却液の温度より低い冷却系を選択する。
次に、ステップS322において、ジョブ割当装置10Bは、図5に示すステップS122と同様に、テーブルTBL3bを参照して、未稼働のCPUに対応する”搭載位置”の情報を読み出す。例えば、図11に示すテーブルTBL3bでは、ジョブ割当装置10Bは、液温情報が”1”である冷却系に接続されたCPU31−CPU34のうち、未稼働のCPU32、CPU34の”搭載位置”の情報を読み出す。そして、ジョブ割当装置10Bは、”搭載位置”に格納された値が最も小さいCPUにジョブを割り当てる。例えば、図11に示すテーブルTBL3bでは、ジョブ割当装置10Bは、CPU32、CPU34のうち、”搭載位置”に格納された値が小さいCPU32にジョブを割り当てる。次に、ステップS340において、ジョブ割当装置10Aは、ステップS322で割り当てたジョブをCPUに投入する。
以上、図10から図12に示す実施形態では、供給路51−53を流れる各冷却液により複数のCPUを冷却する場合、ジョブ割当装置10Bは、冷却液の温度と、未稼働のCPUの供給路51−53上での位置とに応じて、CPUにジョブを割り当てる。これにより、図1から図9に示す実施形態と同様に、情報処理装置IPEbの稼働により消費される電力を抑制することができ、CPUの過熱により情報処理装置IPEbに障害が発生することを抑止することができる。
図13は、情報処理装置の別の実施形態におけるROM20およびRAM30に格納される情報の例を示す。図13に示す実施形態における情報処理装置の構成は、ROM20およびRAM30に格納される情報が異なることを除き、図10に示す情報処理装置IPEbと同様である。
ROM20には、図11に示すプログラムPGMbの代わりにプログラムPGMdが格納される。ROM20に割り当てられるテーブルTBL2bに格納される情報は、図11に示すテーブルTBL2bに格納される情報と同じである。RAM30には、図11に示すプログラムPGMbの代わりにプログラムPGMdが格納され、図11に示すテーブルTBL3bの代わりにテーブルTBL3dが割り当てられる。例えば、RAM30に格納されるプログラムPGMdは、情報処理装置IPEbの電源の投入時にROM20から転送される。ROM20からRAM30に転送されたプログラムPGMdは、図10に示すジョブ割当装置10Bにより実行される。プログラムPGMdは、CPU11−CPU14、CPU21−CPU24、CPU31−CPU34にジョブを割り当てる情報処理装置IPEbの制御プログラムの一例である。
RAM30に割り当てられるテーブルTBL3dは、温度センサTS1、TS2、TS3が計測した冷却液の温度を示す情報が、”液温情報”の領域に格納されることを除き、図11に示すテーブルTBL3bと同様である。例えば、RAM30に格納される”搭載位置”の情報は、情報処理装置IPEbの電源の投入時にROM20のテーブル2bから転送される。
図14は、図13に示すROM20およびRAM30を有する情報処理装置のジョブ割当装置がジョブの投入時に実行する処理の例を示す。図14において、図5、図9および図12と同一または同様の処理については、詳細な説明は省略する。例えば、図14に示すフローは、図10に示す情報処理装置IPEbのジョブ割当装置10Bがプログラムを実行することで処理される。すなわち、図14は、情報処理装置IPEbの制御方法および情報処理装置IPEbの制御プログラムの例を示す。
図14に示すフローは、ステップS306、S321の間にステップS308が追加されることを除き、図12に示すフローと同様である。例えば、図13に示すテーブルTBL3dでは、ジョブ割当装置10Bは、ステップS306において、3つの冷却系の冷却液の温度を示す液温情報として、”32℃”、”37℃”、”28℃”を取得する。
ステップS308では、ジョブ割当装置10Bは、未稼働のCPUを含む冷却系において、テーブルTBL3dに格納された冷却液の温度を示す”液温情報”が閾値以下か否かを判定する。例えば、閾値は35℃(摂氏35度)である。なお、閾値は、CPUに許容される最大温度および循環装置41、42、43の冷却能力等に応じて決められ、35℃に限定されない。例えば、図13に示すテーブルTBL3dでは、ジョブ割当装置10Bは、未稼働のCPUが接続された3つの冷却系の液温情報が示す液温と閾値とを比較する。液温が閾値以下である”32℃”、”28℃”の冷却系があるため、ジョブ割当装置10Bは、ステップS321以下の処理を実行する。
これに対して、ジョブ割当装置10Bは、全ての冷却系の液温が閾値を超えている場合、処理をステップS350に移行する。これにより、閾値を超えた冷却液の温度が、ジョブの投入によりさらに上昇することを抑止することができる。この結果、CPUの過熱により情報処理装置IPEbに障害が発生することを抑止することができる。なお、冷却液の温度が閾値以下の冷却系が1つの場合、ステップS321の処理は省略されてもよい。また、ジョブ割当装置10Bは、冷却系のいずれかの液温が閾値を超える場合、処理をステップS250に移行してもよい。
なお、ステップS308は、図9に示すステップS206とS220との間に追加されてもよい。この場合、図8に示すテーブルTBL3aは、”液温情報”として、温度センサTS1、TS2、TS3が計測した冷却液の温度を示す情報を記憶する。
以上、図13から図14に示す実施形態では、図10から図12に示す実施形態と同様に、情報処理装置IPEbの稼働により、情報処理装置IPEbが設置される部屋を冷却する空調装置で消費される電力を抑制することができる。さらに、図13から図14に示す実施形態では、冷却液の温度が閾値を超える場合、ジョブの投入は抑制されるため、閾値を超えた冷却液の温度が、ジョブの投入によりさらに上昇することを抑止することができる。すなわち、冷却液の温度を直接監視してジョブの投入を制御することで、CPUの過熱により情報処理装置IPEbに障害が発生することを抑止することができる。
図15は、情報処理装置の別の実施形態におけるジョブ割当装置がジョブの投入時に実行する処理の例を示す。図15において、図5、図9、図12および図14と同一または同様の処理については、詳細な説明は省略する。
図15に示す処理を実行するジョブ割当装置を有する情報処理装置の構成は、ROM20およびRAM30に格納されるプログラムが異なることを除き、図10に示す情報処理装置IPEbと同様である。すなわち、図15は、情報処理装置IPEbの制御方法および情報処理装置IPEbの制御プログラムの例を示す。
図15に示すフローは、ステップS322、S340の間にステップS330、S332が追加されることを除き、図14に示すフローと同様である。ステップS330では、ジョブ割当装置10Bは、ジョブの投入により変化するCPUの発熱量の変化を予測し、発熱量の変化による冷却液の温度の変化を予測する。
例えば、ジョブ割当装置10Bは、RAM30に保持された過去に投入したジョブによるCPUの発熱量の変化を示す情報に基づき、CPUの発熱量の変化を予測する。例えば、CPUの発熱量は、ジョブの実行によりCPUが消費する電力量に基づき算出される。また、ジョブ割当装置10Bは、RAM30に保持された過去に投入したジョブによる冷却液の温度の変化を示す情報に基づき、冷却液の温度の変化を予測する。
次に、ステップS332において、ジョブ割当装置10Bは、予測したジョブ投入後の冷却液の温度が、閾値(例えば、35℃(摂氏35度))以下の場合、ステップS340においてジョブを投入する。ジョブ割当装置10Bは、予測したジョブ投入後の冷却液の温度が閾値を超える場合、ジョブの投入を抑制し、ステップS350の待機処理を実行する。
過去に投入したジョブによるCPUの発熱量の変化および冷却液の温度の変化に基づき、ジョブの投入による冷却液の温度の変化を予測することで、ジョブの投入により冷却液の温度が閾値を超えることを抑止することができる。これにより、ステップS308の処理と同様に、CPUの過熱により情報処理装置IPEbに障害が発生することを抑止することができる。なお、冷却液の温度の変化の予測が、実際の冷却液の温度の変化とほぼ一致する場合、ステップS308の判定は、省略してもよい。また、ステップS330、S332は、図9に示すステップS220とS240との間に追加されてもよい。この場合、図8に示すテーブルTBL3aは、”液温情報”として、温度センサTS1、TS2、TS3が計測した冷却液の温度を示す情報を記憶する。
以上、図15に示す実施形態では、図10から図12に示す実施形態と同様に、情報処理装置IPEbの稼働により消費される電力を抑制することができる。また、図13から図14に示す実施形態と同様に、CPUの過熱により情報処理装置IPEbに障害が発生することを抑止することができる。
図16は、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムの別の実施形態を示す。図1から図15に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図16に示す情報処理装置IPEeは、図10に示すジョブ割当装置10Bの代わりに、ジョブ割当装置10Eを有する。ジョブ割当装置10Eは、1つのジョブを複数のCPUに割り当てる機能を有する。すなわち、1つのジョブは、複数のCPUを占有する。例えば、情報処理装置IPEeは、ジョブ割当装置10Bの代わりにジョブ割当装置10Eを有することと、ROM20およびRAM20に格納される情報が異なることを除き、図10に示す情報処理装置IPEbと同様である。
ROM20には、図10に示すプログラムPGMbの代わりにプログラムPGMeが格納され、図1に示すテーブルTBL2bの代わりにテーブルTBL2fが割り当てられる。RAM30には、図10に示すプログラムPGMbの代わりにプログラムPGMeが格納され、図1に示すテーブルTBL3bの代わりにテーブルTBL3e、TBL3fが割り当てられる。テーブルTBL3eの例は、図17に示され、テーブルTBL2f、TBL3fの例は、図18に示される。
例えば、RAM30に格納されるプログラムPGMeは、情報処理装置IPEeの電源の投入時にROM20から転送される。ROM20からRAM30に転送されたプログラムPGMeは、ジョブ割当装置10Eにより実行される。プログラムPGMeは、CPU11−CPU14、CPU21−CPU24、CPU31−CPU34に投入するジョブを割り当てる情報処理装置IPEeの制御プログラムの一例である。例えば、ROM20からRAM30へのプログラムPGMeの転送は、情報処理装置IPEeの電源の投入時に実行される。
図17は、図16に示すRAM30に割り当てられるテーブルTBL3eに格納される情報の例を示す。図13と同一または同様の要素については、詳細な説明は省略する。図17の左側には、テーブルTBL3eに格納される情報の一例が示され、図17の右側には、テーブルTBL3eに格納される情報の他の例が示される。
テーブルTBL3eは、各CPUの稼働状態を示す情報が格納される領域と、各冷却系を流れる冷却液の温度を示す”液温情報”が格納される領域とを有する。すなわち、テーブルTBL3eは、”搭載位置”を示す情報を格納する領域を持たないことを除き、図13に示すテーブルTBL3dと同様である。図17の左側のテーブルTBL3eは、CPU13、CPU22、CPU32が未稼働である例を示し、図17の右側のテーブルTBL3eは、CPU13、CPU22、CPU31が未稼働である例を示す。
図18は、図16に示すROM20およびRAM30に割り当てられるテーブルTBL2f、TBL3fに格納される情報の例を示す。例えば、テーブルTBL2fの情報は、情報処理装置IPEeの電源の投入時に、テーブルTBL3fに転送される。テーブルTBL2f、TBL3fに格納される情報は、互いに同じであるため、以下では、テーブルTBL2fについて説明される。なお、図18のテーブルTBL2f、TBL3f内に示す太線の四角および太線の円は、図19に示すフローの説明に用いるために付しており、テーブルTBL2f、TBL3fに格納される情報ではない。
テーブルTBL2fは、情報処理装置IPEeに搭載される2つのCPU間で情報の通信する場合の通信性能を示す情報を格納する領域を有する。CPU間での情報の通信は、ネットワークNWを介して実行されてもよく、ネットワークNW以外の通信経路を介して互いに接続されてもよい。
図18に示す例では、テーブルTBL2fには、数値で示される通信性能が格納される。各数値は、CPUのいずれかが情報を送信してから、CPUの他のいずれかが情報を受信するまでの時間(レイテンシ)を示す。このため、通信性能は、値が小さいほど高く、値が大きいほど低い。なお、テーブルTBL2fに格納される通信性能を示す情報は、CPUのいずれかが情報を送信してから、CPUの他のいずれかが情報を受信するまでのクロックサイクル数でもよい。
なお、情報処理装置IPEeは、CPUとメモリMEMとを含む複数のノード(情報処理装置)がスイッチを介してメッシュ接続またはトーラス接続され、並列計算機システムとして動作してもよい。この場合、2つのノード間での通信は、所定数のスイッチを介して実行される。
図16に示すジョブ割当装置10Eは、例えば、1つのジョブを2つのCPUに実行させるため、テーブルTBL2fには、2つのCPU間の通信性能を示す情報が格納される。例えば、ジョブ割当装置10Eが、1つのジョブを3つのCPUに実行させる場合、テーブルTBL2fには、3つのCPU間の通信性能を示す情報が格納される。ジョブ割当装置10Eが、1つのジョブを4つのCPUに実行させる場合、テーブルTBL2fには、4つのCPU間の通信性能を示す情報が格納される。あるいは、ジョブを実行させるCPUの数がジョブのサイズに応じて変更される場合、テーブルTBL2fには、2つのCPU間、3つのCPU間、および4つのCPU間のそれぞれの通信性能を示す情報が格納されてもよい。
図19は、図16に示すジョブ割当装置10Eがジョブの投入時に実行する処理の例を示す。図19において、図5と同一または同様の処理については、詳細な説明は省略する。例えば、図19に示すフローは、図16に示す情報処理装置IPEeのジョブ割当装置10EがプログラムPGMeを実行することで処理される。すなわち、図19は、情報処理装置IPEeの制御方法および情報処理装置IPEeの制御プログラムの例を示す。
ステップS402、S440、S442、S450の処理は、図5に示すステップS102、S140、S142、S150の処理と同一または同様である。図19に示す処理は、上位装置から受けるジョブの投入の指示に基づき開始され、あるいは、図6で説明した処理と同様に、ステップS450で待機させたジョブがある場合に開始される。
まず、ステップS402において、上位装置からジョブの投入の指示を受けたジョブ割当装置10Eは、図17に示すテーブルTBL3eを参照して、未稼働のCPUを検索する。次に、ステップS410において、ジョブ割当装置10Eは、未稼働のCPUの数が、ジョブを投入するCPUの数以上か否かを判定する。すなわち、ジョブ割当装置10Eは、ジョブが投入可能か否かを判定する。例えば、この実施形態では、図18に示すテーブルTBL3fが使用されるため、ジョブ割当装置10Eは、未稼働のCPUの数が”2”以上であるか否かを判定する。例えば、図17に示すテーブルTBL3e(左側、右側とも)では、未稼働のCPUの数は、”3”である。
未稼働のCPUの数が、ジョブを投入するCPUの数以上の場合、処理はステップS412に移行され、未稼働のCPUの数が、ジョブを投入するCPUの数に満たない場合、処理はステップS450に移行される。ステップS450では、図5に示すステップS150と同様に、ジョブ割当装置10Eは、ジョブの投入を待機する処理を実行し、処理を終了する。図17に示すテーブルTBL3eでは、未稼働のCPUの数(すなわち、”3”)は、ジョブを投入するCPUの数(すなわち、”2”)以上であるため、処理はステップS412に移行される。
ステップS412において、ジョブ割当装置10Eは、図18に示すテーブルTBL3fを参照し、未稼働の2つのCPU間での通信性能を示す情報を取得する。例えば、未稼働のCPUが図17の左側に示すテーブルTBL3eにより示される場合、ジョブ割当装置10Eは、図18に円で囲った通信性能を示す情報を取得する。未稼働のCPUが図17の右側に示すテーブルTBL3eにより示される場合、ジョブ割当装置10Eは、図18に四角で囲った通信性能を示す情報を取得する。
次に、ステップS414において、ジョブ割当装置10Eは、未稼働の2つのCPU間のそれぞれにおける通信性能のうち、他より通信性能が高いCPUの組み合わせを検索する。未稼働の2つのCPUは、ジョブを実行していないジョブ未実行演算処理装置群の一例である。例えば、ステップS412においてジョブ割当装置10Eが、図18に円で囲った通信性能を示す情報を取得した場合、3つの円で示される3つの組み合わせのうち、通信性能が最も高い(すなわち”4”)CPU22とCPU32の組み合わせが選択される。また、ステップS412においてジョブ割当装置10Eが、図18に四角で囲った通信性能を示す情報を取得した場合、3つの四角で示される3つの組み合わせのうち、通信性能が最も高い(すなわち”5”)2つの組み合わせが選択される。すなわち、CPU13とCPU22の組み合わせと、CPU22とCPU32の組み合わせとが選択される。
次に、ステップS416において、ジョブ割当装置10Eは、通信性能が他より高い組み合わせが複数あるか否かを判定する。例えば、図18に円で示すように、通信性能が他より高い組み合わせが1つの場合(CPU22とCPU32の組み合わせ)、処理はステップS440に移行される。一方、図18に四角で示すように、通信性能が他より高い組み合わせが複数ある場合(CPU13とCPU22の組み合わせと、CPU22とCPU32の組み合わせ)、処理はステップS418に移行される。
ステップS418において、ジョブ割当装置10Eは、図17に示すテーブルTBL3eの参照結果に基づき、ステップS414で検索された複数の組み合わせの各々において、未稼働のCPUのそれぞれを含む冷却系の液温情報を加算する。例えば、図17の右側に示すテーブルTBL3eに格納された情報に基づき、ジョブ割当装置10Eが図18に四角で囲った通信性能を示す情報を取得したとする。すなわち、ジョブ割当装置10Eは、ステップS414において、通信性能を示す情報が”5”であるCPU13、CPU22の組み合わせと、CPU22、CPU31の組み合わせとを選択する。この場合、ジョブ割当装置10Eは、CPU13を含む冷却系の液温(32℃)とCPU22を含む冷却系の液温(30℃)を加算し、”62℃”を得る。また、ジョブ割当装置10Eは、CPU22を含む冷却系の液温(30℃)とCPU31を含む冷却系の液温(28℃)を加算し、”58℃”を得る。
次に、ステップS420において、ジョブ割当装置10Eは、ステップS418で加算した液温情報が示す液温の合計が、他の液温の合計より小さい組み合わせ選択する。例えば、図17の右側に示すテーブルTBL3eに格納された情報に基づき、ジョブ割当装置10Eが図18に四角で囲った通信性能を示す情報を取得した場合、液温の合計が小さいCPU22、CPU31の組み合わせが選択される。すなわち、ジョブ割当装置10Eは、液温の合計が、他の液温の合計より小さいCPU22、CPU31の組み合わせにジョブを割り当てる。そして、ステップS440において、ジョブ割当装置10Eは、選択した組み合わせの2つのCPUにジョブを投入する。
以上、図16から図19に示す実施形態では、ジョブ割当装置10Eは、ジョブを実行させる複数のCPU間の通信性能に応じてジョブを投入するCPUの組み合わせの候補を検索する。そして、ジョブ割当装置10Eは、検索したCPUの組み合わせの候補毎に冷却液の温度の合計を求め、温度の合計値が低い候補にジョブを投入する。これにより、1つのジョブを複数のCPUに実行させる場合にも、情報処理装置IPEeの稼働により消費される電力を抑制することができ、CPUの過熱により情報処理装置IPEeに障害が発生することを抑止することができる。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。