(57)【要約】【課題】マルチプロセッサ計算機システムにおいて、プロセッサの温度上昇による性能低下を防止する。【解決手段】ある単位のプロセッサにメモリが対応付けられており、他の単位のプロセッサに対応するメモリに対しても、各プロセッサからアクセス可能であるマルチプロセッサ計算機システム１であって、全てのメモリを単一のメモリ空間としてアドレス割付制御を行うメモリマップ制御手段５０と、各プロセッサの温度を検出する温度検出手段１０と、プロセッサとメモリとの距離に基づいて、ジョブが使用するデータが格納されたメモリに最も近いプロセッサへ、ジョブの割付の要求を行うジョブメモリマップ解析手段３０と、ジョブメモリマップ解析手段３０と温度検出手段１０の情報に基づいて、あるしきい値以下の温度のプロセッサからジョブメモリマップ解析手段３０の要求に最も近いプロセッサへのジョブ割り当てを制御するスケジューラ２０と、を備える。【選択図】図１
2006277637.tif 000002
【特許請求の範囲】
【請求項１】
ある単位のプロセッサにメモリが対応付けられており、他の単位のプロセッサに対応するメモリに対しても、当該他のプロセッサの制御系を介してアクセスすることで、全てのプロセッサが全てのメモリにアクセス可能であるマルチプロセッサ計算機システムであって、
前記全てのメモリを単一のメモリ空間としてアドレス割付制御を行うメモリマップ制御手段と、
前記各プロセッサの温度を検出する温度検出手段と、
プロセッサとメモリとの距離に基づいて、ジョブが使用するデータが格納されたメモリに最も近いプロセッサへ、ジョブの割付の要求を行うジョブメモリマップ解析手段と、
前記ジョブメモリマップ解析手段と温度検出手段の情報に基づいて、あるしきい値以下の温度のプロセッサからジョブメモリマップ解析手段の要求に最も近いプロセッサへのジョブ割り当てを制御するスケジューラ手段と、
を備えることを特徴とするマルチプロセッサ計算機システム。
【請求項２】
前記スケジューラ手段のジョブ割り当て履歴を記憶するジョブ割当履歴記憶手段を備え、前記ジョブメモリマップ解析手段が要求するジョブ割付と異なるプロセッサへジョブ割当が行われる状態が継続している場合に、前記スケジューラ手段にジョブ実行の一時停止を指令し、ジョブ割り当て要求の多いデータがより低温のプロセッサに対応付けられたメモリに格納されるように、データの再配置をメモリマップ制御手段に指令する温度ジョブ履歴管理手段を有する請求項１に記載のマルチプロセッサ計算機システム。
【請求項３】
前記ジョブメモリ解析手段におけるジョブ割付の要求が、ジョブが割り付けられたプロセッサとそのジョブが使用するメモリの距離を、各プロセッサに割り付けられるすべてのジョブで合計した値が最小になるような割付である請求項１又は２に記載のマルチプロセッサ計算機システム。
【請求項４】
ある単位のプロセッサにメモリが対応付けられており、他の単位のプロセッサに対応するメモリに対しても、当該他のプロセッサの制御系を介してアクセスすることで、全てのプロセッサが全てのメモリにアクセス可能であるマルチプロセッサ計算機システムにおいて、コンピュータを、
前記全てのメモリを単一のメモリ空間としてアドレス割付制御を行うメモリマップ制御手段と、
前記各プロセッサの温度を検出する温度検出手段と、
プロセッサとメモリとの距離に基づいて、ジョブが使用するデータが格納されたメモリに最も近いプロセッサへ、ジョブの割付の要求を行うジョブメモリマップ解析手段と、
前記ジョブメモリマップ解析手段と温度検出手段の情報に基づいて、あるしきい値以下の温度のプロセッサからジョブメモリマップ解析手段の要求に最も近いプロセッサへのジョブ割り当てを制御するスケジューラ手段と、
して機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数個のプロセッサを有するマルチプロセッサ計算機システムにおいて、複数個のプロセッサへジョブを割り当てるジョブスケジューリング方法、及びそのジョブスケジューリング方法を有するマルチプロセッサ計算機システムに関する。
【背景技術】
【０００２】
従来、電子計算機のプロセッサには半導体素子が使われるのが一般的である。半導体素子に電流が流れると、内部損失によって熱が発生する。半導体素子の接合部温度（ジャンクション温度）が許容値を超えると機能劣化や故障の原因となり、著しい場合は半導体素子が破壊される。
【０００３】
電子計算機の性能を決める要因として、メモリアクセスによる遅延、いわゆるノイマンボトルネックがあるが、メモリアクセス速度を速くして、プロセッサの動作クロック周波数を上げていくと、スイッチング動作の消費電力が増加し、半導体素子の接合部温度が許容値を超えることになる。
【０００４】
そのため、接合部温度が許容値を超えない範囲にクロック周波数を制限しなければならず、動作速度をそれ以上速くできないという問題が発生する。
【０００５】
そこで、プロセッサ毎の負荷状況を比較して、負荷の軽いプロセッサにジョブを割り当てる方法（特許文献１参照）がある。また、プロセッサの温度を監視して、一定以上の温度になったプロセッサは、その動作クロック周波数を下げる方法、及び温度の低いプロセッサにジョブを割り当てる方法が提案されている（特許文献２参照）。
【０００６】
一方、電子計算機の処理能力を高めるために複数のプロセッサを備えるマルチプロセッサ計算機システムが使用されている。マルチプロセッサ計算機システムでは、近年、論理共有メモリによる容易な並列プログラミングと、物理分散メモリによる性能スケーラビリティを両立させる並列計算機として、分散共有メモリ型並列計算機(ＤＳＭ：Distributed Shared Memory processor computer)が注目されている。ＤＳＭでは、他プロセッサの物理メモリも自プロセッサの物理メモリと同様に通常のメモリ参照命令でアクセスできるが、前者は後者に比較して時間がかかる、という特性を持つ。このため、ＤＳＭ上で十分な性能を得るには、データをどのプロセッサに配置するかを決めるデータ分散が重要である。
【０００７】
データ分散には、次のような方法が提案されている。特許文献３の方法は、メモリアクセス装置は、複数のコマンドキューと、スケジューラと、スケジューラからの管理情報を用いてメモリアクセスを実行するメモリアクセス部と、１つのコマンドキューへのメモリアクセス要求の発信頻度を用いて、スケジューラに対して帯域変更を要求する制御部とインタフェース部とから構成される。各プロセッサの負荷変動に追随したメモリアクセス処理が可能になる、共有メモリシステムである。
【０００８】
特許文献４は、分散メモリ方式、もしくは、プロセッサとメモリ間の距離によってプロセッサからメモリへのアクセス速度に差がある共有メモリ方式のマルチプロセッサ計算機システムにおいて、１つのソースプログラムを複数のプロセッサにより分担して並列実行する際、ソースプログラム中の１つの配列データを複数のプロセッサのメモリへ分割して割り当てる方法を提案する。その方法によれば、並列実行用プログラムを容易に記述することが可能になると同時に、データ参照時のデータ転送時間を削減することができる。命令部の各プロセッサへの分割と配列データの分割とを一致させることにより、配列データと命令における繰り返し回数が異なっていても、各プロセッサにおいて、問題なく並列実行を行うことができる。
【０００９】
現在のプロセッサでは、ある温度以上になると、クロックダウンして動作することで、さらなる温度上昇を抑制する機能を有するものがある。しかしながら、このプロセッサを用いて複数のプロセッサを有するシステムを構築した場合、温度上昇を検出してクロックダウンしたプロセッサにジョブが割り当てられ、期待される性能が得られない場合があるという問題があった。この問題解決のために、前述したとおりプロセッサの温度を監視し、温度の低いプロセッサに優先的にジョブを割り当てる方式が提案されてきた。しかし、この方式によるジョブ割り当てでは、分散したメモリを単一のアドレス空間として扱う方式のマルチプロセッサシステムにおいてはジョブがアクセスするメモリとジョブが割り当てられたＣＰＵとの論理的距離が遠くなることによりメモリアクセスに遅延が生じ、性能が低下する場合があるという問題があった。
【特許文献１】特開２００１−１４７９０８号公報
【特許文献２】特開２００４−２４０６６９号公報
【特許文献３】特開２００４−１２６６９４号公報
【特許文献４】特開平６−１３１３１３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、上記事情に鑑みてなされたものであり、複数のプロセッサを有し、分散したメモリを単一のアドレス空間として扱うことのできるマルチプロセッサ計算機システムにおいて、プロセッサの温度上昇による性能低下を防止することを目的とする。
【課題を解決するための手段】
【００１１】
本発明のマルチプロセッサ計算機システムは、ある単位のプロセッサにメモリが対応付けられており、他の単位のプロセッサに対応するメモリに対しても、当該他のプロセッサの制御系を介してアクセスすることで、全てのプロセッサが全てのメモリにアクセス可能であるマルチプロセッサ計算機システムであって、
前記全てのメモリを単一のメモリ空間としてアドレス割付制御を行うメモリマップ制御手段と、
前記各プロセッサの温度を検出する温度検出手段と、
プロセッサとメモリとの距離に基づいて、ジョブが使用するデータが格納されたメモリに最も近いプロセッサへ、ジョブの割付の要求を行うジョブメモリマップ解析手段と、
前記ジョブメモリマップ解析手段と温度検出手段の情報に基づいて、あるしきい値以下の温度のプロセッサからジョブメモリマップ解析手段の要求に最も近いプロセッサへのジョブ割り当てを制御するスケジューラ手段と、
を備えることを特徴とする。
【００１２】
また、本発明のマルチプロセッサ計算機システムは、前記スケジューラ手段のジョブ割り当て履歴を記憶するジョブ割当履歴記憶手段を備え、前記ジョブメモリマップ解析手段が要求するジョブ割付と異なるプロセッサへジョブ割当が行われる状態が継続している場合に、前記スケジューラ手段にジョブ実行の一時停止を指令し、ジョブ割り当て要求の多いデータがより低温のプロセッサに対応付けられたメモリに格納されるように、データの再配置をメモリマップ制御手段に指令する温度ジョブ履歴管理手段を有することを特徴とする。
【００１３】
本発明のマルチプロセッサ計算機システムは、前記ジョブメモリ解析手段におけるジョブ割付の要求が、ジョブが割り付けられたプロセッサとそのジョブが使用するメモリの距離を、各プロセッサに割り付けられるすべてのジョブで合計した値が最小になるような割付であることが好ましい。
【００１４】
本発明のマルチプロセッサ計算機システムにおけるコンピュータプログラムは、ある単位のプロセッサにメモリが対応付けられており、他の単位のプロセッサに対応するメモリに対しても、当該他のプロセッサの制御系を介してアクセスすることで、全てのプロセッサが全てのメモリにアクセス可能であるマルチプロセッサ計算機システムにおいて、コンピュータを、
前記全てのメモリを単一のメモリ空間としてアドレス割付制御を行うメモリマップ制御手段と、
前記各プロセッサの温度を検出する温度検出手段と、
プロセッサとメモリとの距離に基づいて、ジョブが使用するデータが格納されたメモリに最も近いプロセッサへ、ジョブの割付の要求を行うジョブメモリマップ解析手段と、
前記ジョブメモリマップ解析手段と温度検出手段の情報に基づいて、あるしきい値以下の温度のプロセッサからジョブメモリマップ解析手段の要求に最も近いプロセッサへのジョブ割り当てを制御するスケジューラ手段と、
して機能させることを特徴とする。
【発明の効果】
【００１５】
本発明のマルチプロセッサ計算機システムによれば、不適切なプロセッサへのジョブ割り当てによる性能低下を防止することができる。また、不適切なプロセッサへのジョブ割り当てが連続することによる性能低下を抑制することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の一実施の形態に係るマルチプロセッサ計算機システムを、図面を参照して説明する。
【００１７】
（実施の形態１）
図１は、本発明の実施の形態１に係るマルチプロセッサ計算機システムの論理的構成を示すブロック図である。図２は、本発明の実施の形態１に係るマルチプロセッサ計算機システムの一実施例を示すブロック図である。
【００１８】
本実施の形態１に係るマルチプロセッサ計算機システム１は、図１に示すように、複数のプロセッサ（ＣＰＵ）６１、６２、６３を備え、それぞれのプロセッサにメモリ８１、８２、８３が対応付けられている。本実施の形態１では、理解を容易にするために、プロセッサの数が３の場合について説明するが、本発明はプロセッサの数に制限されるものではない。各プロセッサ６１、６２、６３はそれぞれメモリコントローラ（ＭＭＣ）７１、７２、７３を介してメモリにアクセスする。各プロセッサは対応付けられたメモリ以外に、他のプロセッサに対応付けられたメモリにプロセッサ間接続を通じてアクセスすることができる。プロセッサ６１，６２，６３にはその温度を検出する手段として、温度検出手段（温度センサ）１０が備えられている。温度検出手段１０が検出した温度情報は、スケジューラ２０に送られる。一方、ジョブメモリマップ解析手段３０は、例えば、専用コントローラチップ（専用プロセッサチップ）等から構成され、各ジョブが使用するデータ（各ジョブのプログラムを含む）が格納されたメモリ８１，８２，８３とプロセッサ６１、６２，６３との距離（アクセスの時間）を算出し、データが格納されているメモリに近い順にジョブを割り当てるべきプロセッサを選定する。ジョブメモリマップ解析手段３０のプロセッサ選定情報は、スケジューラ２０に読み込まれる。そして、スケジューラ２０は、プロセッサ６１、６２，６３の温度とジョブメモリマップ解析手段３０のプロセッサ選定情報から、ジョブを割り当てるべきプロセッサを選択して、ジョブをプロセッサ６１、６２，６３に割り当てる。
【００１９】
ジョブをプロセッサに割り当てた結果は、温度ジョブ履歴管理手段４０に蓄積される。温度ジョブ履歴管理手段４０は、例えば、履歴記憶用のメモリを内蔵する専用コントローラチップ（専用プロセッサチップ）から構成され、ジョブの割当履歴から、メモリ８１、８２、８３の再配置（リマップ）が必要かどうかを判断する。メモリマップ制御手段５０が温度ジョブ履歴管理手段４０と各メモリコントローラ７１、７２、７３に連携している。メモリマップ制御手段５０は、専用コントローラチップ（専用プロセッサチップ）から構成され、データをメモリのどこに格納するかをメモリコントローラ７１、７２、７３に指令する。温度ジョブ履歴管理手段４０が、メモリリマップが必要と判断すると、メモリマップ制御手段５０に指令して、データの再配置が行われる。
【００２０】
その他、マルチプロセッサ計算機システム１は、予備メモリ８４とそのメモリコントローラ７４を備える。予備メモリ８４とそのメモリコントローラ７４は、各プロセッサ６１、６２、６３からアクセスすることができて、メモリリマップを行うときに、メモリの内容を一時待避させるために用いられる。また、各プロセッサに対応付けられたメモリ又はメモリコントローラに障害があったときに、それらの代替をする。
【００２１】
図２は、図１に示すマルチプロセッサ計算機システム１のハードウェア構成の一例を示すブロック図である。マルチプロセッサ計算機システム１は、図２に示すように、制御部２、主記憶部３、入出力部５、制御チャネル６及び温度センサ入力部１１を備える。主記憶部３、入出力部５、制御チャネル６及び温度センサ入力部１１はいずれも内部バスＢを介して制御部２に接続されている。
【００２２】
複数のプロセッサ６１〜６３にはそれぞれ、メモリコントローラ７１〜７３を介して、メモリ８１〜８３が接続されている。各プロセッサ６１〜６３は、後述する制御バス７を経由して他のプロセッサに通信することができて、他のプロセッサに対応づけられたメモリの内容を他のプロセッサ経由で読み書き（アクセス）することができる。
【００２３】
１つのプロセッサからメモリへの距離は、例えば次のように定義される。１つのプロセッサから他のプロセッサまでに経由する制御バス又はネットワークのリンクの数だけ、それぞれのデータ転送レートの逆数を合計した数値をプロセッサとメモリの距離とする。データ転送レートが全て等しい場合は、経由するプロセッサの数又はネットワークのリンク数（これらをホップ数ともいう）で定義することもできる。
【００２４】
制御部２はＣＰＵ（Central Processing Unit）等から構成され、内部の論理回路及び／又はコード化されたプログラムに従って、後述するジョブメモリマップ解析、ジョブのスケジューラ、温度ジョブ履歴管理、メモリマップ制御などの処理を実行する。
【００２５】
主記憶部３はＲＡＭ（Random-Access Memory）等から構成され、各プロセッサ６１〜６３の温度、各メモリ８１〜８３領域へ格納されているデータの配置、各プロセッサ６１〜６３へのジョブの割当及びその履歴等を記憶し、制御部２の作業領域として用いられる。
【００２６】
入出力部５はキーボードおよびマウスなどのポインティングデバイス等と、キーボードおよびポインティングデバイス等を内部バスＢに接続するインターフェース装置から構成されている。入出力部５を介して、ジョブの入力、ジョブの開始、実行、終了などの指令、ジョブの状況モニタ指令などが入力され、制御部２に供給される。
【００２７】
制御チャネル６は、制御部２と各プロセッサ６１〜６３を接続し、制御部２の指令又はデータを各プロセッサ６１〜６３に伝達し、各プロセッサ６１〜６３からのデータを制御部２に伝える。制御チャネル６を介して、ジョブが各プロセッサ６１〜６３に入力され、ジョブの実行が指示される。また、メモリマップ制御、すなわちメモリ８１〜８３へのデータの格納及びメモリ８１〜８３からのデータの読み出しが指示される。
【００２８】
各プロセッサ６１〜６３には、温度センサ１２が備えられている。各温度センサ１２は温度検出ライン８を通じて温度センサ入力部１１に接続している。制御部２は温度センサ入力部１１を介して、各プロセッサ６１〜６３の温度を検出することができる。
【００２９】
次に、図１及び図２に示すマルチプロセッサ計算機システム１の動作を、図３〜６を参照して説明する。なお、上述のように、マルチプロセッサ計算機システム１の動作は、制御部２が主記憶部３、入出力部５、制御チャネル６、温度センサ入力部１１及び各プロセッサ６１〜６３と協働して行う。
【００３０】
図３は、本発明の実施の形態に係るマルチプロセッサ計算機システム１において、各プロセッサ６１〜６３の温度によって、各プロセッサの動作クロック周波数を制御する動作の一例を示すフローチャートである。図４は、本発明の実施の形態に係るマルチプロセッサ計算機システム１のジョブメモリ解析の動作の一例を示すフローチャートである。図５は、本発明の実施の形態に係るマルチプロセッサ計算機システム１のジョブ割当の動作の一例を示すフローチャートである。
【００３１】
図３に示すように、制御部２は各プロセッサ６１〜６３の温度を順に検出し、プロセッサの温度が所定のしきい値を超えている場合は、そのプロセッサの動作クロック周波数を下げる。図３では、プロセッサの数をｍとしている。制御部２は変数ｉを１に初期化して（ステップＳ３１）、ｉ番目のプロセッサの温度を、温度センサ入力部１１を介して読み込む（ステップＳ３２）。検出したｉ番目のプロセッサの温度がしきい値以下であるとき（ステップＳ３３からＮＯに分岐）は、制御部２は制御チャネル６を介して、ｉ番目のプロセッサの動作クロック周波数を正常な値にし（ステップＳ３４）、プロセッサの温度がしきい値を超えている場合（ステップＳ３３からＹＥＳに分岐）は、動作クロック周波数を正常な値から規定の値に下げる（ステップＳ３５）。次に、変数ｉをインクリメントして（ステップＳ３６）、変数ｉがプロセッサの数ｍを超えていなければ（ステップＳ３７）、次のプロセッサの温度を検出する。この動作を繰り返して、すべてのプロセッサの温度を検出し、各プロセッサの温度に応じて、そのプロセッサの動作クロック周波数を制御する。
【００３２】
あるジョブの開始がオペレーティングシステム又は他のジョブから指令されたとき、あるいはジョブの開始が入出力部５から入力されたとき、制御部２はそのジョブをいずれかのプロセッサに割り当てる。そのジョブが使用するデータが格納されたメモリにもっとも近い空きプロセッサの候補を選ぶ（本発明では、ジョブを割り付けるという）。ジョブが使用するデータには、そのジョブ自身のプログラムが含まれる。図４に示すように、そのジョブが使用するデータが格納されているメモリを調べる（ステップＳ４１）。他のジョブを実行していない空きのプロセッサすべてについて、そのジョブが使用するメモリとそのプロセッサとの距離を計算する（ステップＳ４２）。空きプロセッサすべてについて、プロセッサとジョブが使用するメモリとの距離が小さい順に空きプロセッサの番号を並べて、ジョブメモリマップ解析結果を得る（ステップＳ４３）。
【００３３】
次に、制御部２は、プロセッサとジョブが使用するメモリとの距離が小さい順に並べられた空きプロセッサのなかから、プロセッサの温度が低いものを選定して、ジョブをそのプロセッサに割り当てる。図５に示すように、制御部２はジョブメモリマップ解析結果を読み込む（ステップＳ５１）。図５では、空きプロセッサの数をｎとしている。制御部２は変数ｉを１に初期化して（ステップＳ５２）、ｉ番目のプロセッサの温度がしきい値を超えているかどうか判定する（ステップＳ５３）。ｉ番目のプロセッサの温度がしきい値を超えている場合（ステップＳ５３からＹＥＳに分岐）は、変数ｉをインクリメントして（ステップＳ５４）、変数ｉが空きプロセッサの数を超えていなければ（ステップＳ５５からＮＯに分岐）次のプロセッサの温度がしきい値を超えているかどうか判定する（ステップＳ５３）。ｉ番目のプロセッサの温度がしきい値を超えていなければ（ステップＳ５３からＮＯに分岐）、そのプロセッサは動作クロックが下げられていないので、そのプロセッサにジョブを割り当てる（ステップＳ５６）。
【００３４】
このようにして制御部２は、ジョブメモリマップ解析結果から、プロセッサとジョブが使用するメモリとの距離が小さい順に、空きプロセッサの温度がしきい値を超えているかどうかを判定し、温度がしきい値を超えていないプロセッサのうち、ジョブが使用するメモリとの距離が最も小さいプロセッサにジョブを割り当てる。
【００３５】
空きプロセッサの温度が全て、しきい値を超えている場合（ステップＳ５５からＹＥＳに分岐）は、本実施の形態では、ジョブが使用するメモリに最も近いプロセッサ（すなわちジョブメモリマップ解析結果の１番目のプロセッサ）に、ジョブを割り当てる（ステップＳ５７）。この場合、ジョブを割り当てず、又はジョブを割り当てた上で、温度の低いプロセッサがないことを警告するようにしてもよい。
【００３６】
最後に制御部２は、ジョブとそのジョブを割り当てたプロセッサとを、ジョブ割り当て履歴に登録する（ステップＳ５８）。図６は、ジョブ割り当て履歴の表の一例を示す図である。ジョブ割り当て履歴は例えば、図６に示すように、ジョブを割り当てた時刻、ジョブを識別するＩＤ、空きプロセッサのうちジョブが使用するメモリに最も近いプロセッサ（割付要求ＣＰＵ）、実際に割り当てたプロセッサ（割当ＣＰＵ）、及び割り当てたプロセッサのそのときの動作クロック周波数を含む。割当ＣＰＵの動作クロックを履歴に含むのは、割り当てたプロセッサの温度がしきい値を超えていたかどうかが判定できるからである。図５のステップＳ５７の場合のように、空きプロセッサの温度が全てしきい値をこえている場合に、割付プロセッサと割当プロセッサが同じであっても、動作クロック周波数が低い場合があり得る。
【００３７】
上述のとおり、本発明によれば、ジョブ毎に、プロセッサの温度と、メモリとの論理的距離関係が最適なプロセッサへの割り当てを要求し、そのプロセッサへの割り当てができない場合には、要求に近いプロセッサを割り当てるので、不適切なＣＰＵへのジョブ割り当てによる性能低下を防止することができる。
【００３８】
上述したように、空きプロセッサのうち、ジョブが使用するメモリに最も近いプロセッサから、動作クロック周波数が正常なものが選択されて、ジョブが割り当てられる。ジョブの割当が繰り返し行われると、ジョブが使用するメモリに近いプロセッサの温度が高い場合があり、動作クロック周波数が正常で、かつ使用するメモリに近いプロセッサにジョブが割り当てられるとは限らない。そこで本発明では、ジョブが使用するメモリに最も近いプロセッサと、実際にジョブが割り当てられたプロセッサとが異なるケースが連続した場合に、ジョブ割当履歴に基づいて、メモリをリマップする。
【００３９】
本発明のジョブ割当履歴に基づいてメモリリマップを行う動作について説明する。図７は、本発明の実施の形態に係るマルチプロセッサ計算機システム１における、ジョブ割当履歴によってメモリリマップを行う動作の一例を示すフローチャートである。本実施の形態では、ジョブが使用するメモリに最も近いプロセッサと、実際にジョブが割り当てられたプロセッサとが異なるケースが連続してｋ回発生した場合に、メモリをリマップする。メモリリマップを起動するための、異なるプロセッサ割当連続発生回数ｋはマルチプロセッサ計算機システム１の構成に合わせて、適当な回数に設定することができる。
【００４０】
制御部２は、ジョブが使用するメモリに最も近い空きプロセッサ（割付プロセッサという）と異なるプロセッサに、連続してジョブ割当が行われた回数を表す変数ｉを１に初期化する（ステップＳ７１）。次に制御部２は、例えば前記図５に示す動作で、新たなジョブをプロセッサに割り当て、ジョブ割当履歴に登録する（ステップＳ７２）。割当プロセッサが割付プロセッサと同じである場合（ステップＳ７３でＹＥＳに分岐）、さらに割当プロセッサの動作クロック周波数が正常であるかダウンしているかを判定する（ステップＳ７４）。割当プロセッサの動作クロック周波数が正常である場合（ステップＳ７４からＮＯに分岐）は、フローチャートの最初に戻って変数ｉを初期値１にする（ステップＳ７１）。
【００４１】
ステップＳ７３で、割当プロセッサが割付プロセッサと異なる場合（ステップＳ７３からＮＯに分岐）、変数ｉをインクリメントする（ステップＳ７５）。ステップＳ７４で割当プロセッサの動作クロック周波数がダウンしていた場合（ステップＳ７４からＹＥＳに分岐）も、変数ｉをインクリメントする（ステップＳ７５）。次いで、変数ｉがまだ所与の回数ｋを超えていなければ（ステップＳ７６からＮＯに分岐）、変数ｉをそのまま保持して次のジョブ割当を行う（ステップＳ７２）。変数ｉが所与の回数ｋを超えている場合（ステップＳ７６からＹＥＳに分岐）は、ジョブの実行を停止して、メモリリマップを行う（ステップＳ７７）。
【００４２】
メモリリマップは、アクセス頻度の高いデータが温度の低いプロセッサに対応するメモリに格納されるように、データを配置する。その時点で割り当てられているジョブが使用するデータを、そのジョブが割り当てられているプロセッサに対応するメモリに格納するように優先順位をつけてもよい。
【００４３】
このようにメモリリマップを行うことによって、アクセス頻度の高いデータが、温度の低いプロセッサに対応するメモリに格納されるので、ジョブが使用するメモリに近く、かつ温度の低いプロセッサに、そのジョブが割り当てられる確率が高くなり、結果としてマルチプロセッサ計算機システム１の処理能力が高くなるのである。
【００４４】
（実施の形態２）
図８は、本発明の実施の形態２に係るマルチプロセッサ計算機システム１の論理的構成を示すブロック図である。図９は、本発明の実施の形態２に係るマルチプロセッサ計算機システム１の一実施例を示すブロック図である。
【００４５】
本実施の形態２に係るマルチプロセッサ計算機システム１は、図８及び９に示すように、マルチプロセッサ計算機システム１が、複数のプロセッサを有する複数のノードから構成され、ノード間がネットワークで接続されており、１つのノードから他のノードのメモリにはネットワーク９０を経由してアクセスする点で、実施の形態１と異なる。本実施の形態２は、制御部２等の構成は実施の形態１と同じであり、同様の構成については説明を省略する。
【００４６】
本実施の形態２では、各プロセッサは対応付けられたメモリ以外に、他のプロセッサに対応付けられたメモリにネットワーク９０を通じてアクセスすることができる。各プロセッサに備えられた温度検出手段１０、メモリに近い順にジョブを割り当てるべきプロセッサを選定するジョブメモリマップ解析手段３０、検出した温度情報が送られ、ジョブを割り当てるべきプロセッサを選択して、ジョブをプロセッサに割り当てるスケジューラ２０、ジョブの割当履歴から、メモリ８１、８２、８３の再配置（リマップ）が必要かどうかを判断する温度ジョブ履歴管理手段４０、及びデータをメモリのどこに格納するかをメモリコントローラ７１、７２、７３に指令するメモリマップ制御手段５０は、実施の形態１と同様である。
【００４７】
図９は、図８に示すマルチプロセッサ計算機システム１のハードウェア構成の一例を示すブロック図である。図９は、図８の各プロセッサ６１、６２、６３が、それぞれ共有メモリ８１、８２、８３を備える複数のプロセッサから構成されるノード５１〜５３の場合を示している。ノード５１〜５３は１つのプロセッサから構成される場合もあるし、図２のように複数のプロセッサから構成される場合もある。図９では、図８のプロセッサ６２、メモリコントローラ７２、メモリ８２に該当するノードの記載を、紙幅の都合で省略している。
【００４８】
マルチプロセッサ計算機システム１は、図９に示すように、制御部２、主記憶部３、外部記憶部４、入出力部５、制御チャネル６及び温度センサ入力部１１を備える。主記憶部３、外部記憶部４、入出力部５、制御チャネル６及び温度センサ入力部１１はいずれも内部バスＢを介して制御部２に接続されている。
【００４９】
各ノード５１〜５３は、それぞれ、１つ又は複数のプロセッサ６１〜６３、メモリ８１〜８３、入出力部９１〜９３から構成される。メモリ８１〜８３及び入出力部９１〜９３はノード内の各プロセッサ６１〜６３にクロスバＣを介して接続されている。ノード内の複数のプロセッサ６１〜６３は、ノード内のメモリ８１〜８３をそれぞれ共有している。入出力部９１〜９３はノード間のネットワーク９０に接続されている。各ノードのプロセッサ６１〜６３は、入出力部９１〜９３及びネットワーク９０を介して、他のノードのメモリにアクセスすることができる。図８のメモリコントローラ７１、７２、７３は、クロスバＣ及びそれを制御するプロセッサ上のプログラムから構成される。
【００５０】
１つのノード内のプロセッサから他のノードのメモリへの距離は、例えば次のように定義される。１つのノードから他のノードまでに経由するノード又はネットワークのリンクの数だけ、それぞれのデータ転送レートの逆数を合計した数値をプロセッサとメモリの距離とする。データ転送レートが全て等しい場合は、経由するノードの数又はネットワークのリンク数（これらをホップ数ともいう）で定義することもできる。
【００５１】
制御部２はＣＰＵ（Central Processing Unit）等から構成され、外部記憶部４に記憶されているプログラムに従って、後述するジョブメモリマップ解析、ジョブのスケジューラ、温度ジョブ履歴管理、メモリマップ制御などの処理を実行する。制御部２は、実施の形態１と同様に、内部の論理回路及び／又はコード化されたプログラムから構成されていてもよい。
【００５２】
主記憶部３はＲＡＭ（Random-Access Memory）等から構成され、外部記憶部４に記憶されているプログラムをロードし、制御部２の作業領域として用いられる。
【００５３】
外部記憶部４は、フラッシュメモリ、ハードディスク、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Digital Versatile Disc Random-Access Memory）、ＤＶＤ−ＲＷ（Digital Versatile Disc Rewritable）等の不揮発性メモリから構成され、前記の処理を制御部２に行わせるためのプログラムを予め記憶し、また、制御部２の指示に従って、このプログラムが記憶するデータを制御部２に供給し、制御部２から供給されたデータを記憶する。
【００５４】
入出力部５はキーボードおよびマウスなどのポインティングデバイス等と、キーボードおよびポインティングデバイス等を内部バスＢに接続するインターフェース装置から構成されている。入出力部５を介して、ジョブの入力、ジョブの開始、実行、終了などの指令、ジョブの状況モニタ指令などが入力され、制御部２に供給される。
【００５５】
制御チャネル６は、制御部２と各プロセッサ６１〜６３を接続し、制御部２の指令又はデータを各プロセッサ６１〜６３に伝達し、各プロセッサ６１〜６３からのデータを制御部２に伝える。制御チャネル６を介して、ジョブが各プロセッサ６１〜６３に入力され、ジョブの実行が指示される。また、メモリマップ制御、すなわちメモリ８１〜８３へのデータの格納及びメモリ８１〜８３からのデータの読み出しが指示される。
【００５６】
各プロセッサ６１〜６３には、温度センサ１２が備えられている。各温度センサ１２は温度検出ライン８を通じて温度センサ入力部１１に接続している。制御部２は温度センサ入力部１１を介して、各プロセッサ６１〜６３の温度を検出することができる。
【００５７】
制御チャネル６は、制御部２と各ノード５１〜５３のプロセッサ６１〜６３を接続し、制御部２の指令又はデータを各ノード５１〜５３に伝達し、各ノード５１〜５３からのデータを制御部２に伝える。制御チャネル６を介して、ジョブが各ノード５１〜５３に入力され、ジョブの実行が指示される。また、メモリマップ制御、すなわちメモリ８１〜８３へのデータの格納及びメモリ８１〜８３からのデータの読み出しが指示される。
【００５８】
各プロセッサ６１〜６３には、温度センサ１２が備えられている。各温度センサ１２は温度検出ライン８を通じて温度センサ入力部１１に接続している。制御部２は温度センサ入力部１１を介して、各ノード５１〜５３のプロセッサ６１〜６３の温度を検出することができる。
【００５９】
本実施の形態２は、マルチプロセッサ計算機システム１が、複数のプロセッサを有する複数のノードから構成され、ノード間がネットワーク９０で接続されており、１つのノードから他のノードのメモリにはネットワーク９０を経由してアクセスする点で、実施の形態１と異なる。そのため、本実施の形態２では、プロセッサとメモリとの距離がネットワーク９０の構成に合わせて計算されるが、本実施の形態２におけるクロック周波数制御、メモリ解析、ジョブ割当及びメモリリマップは実施の形態１と全く同様に行われる。
【００６０】
従って、ジョブ毎に、プロセッサの温度と、メモリとの論理的距離関係が最適なプロセッサへの割り当てを要求し、そのプロセッサへの割り当てができない場合には、要求に近いプロセッサを割り当てるので、不適切なＣＰＵへのジョブ割り当てによる性能低下を防止することができる、という効果も同様である。また、メモリリマップを行うことによって、ジョブが使用するメモリに近く、かつ温度の低いプロセッサに、そのジョブが割り当てられる確率が高くなり、結果としてマルチプロセッサ計算機システム１の処理能力が高くなる、という同様の効果を奏することができる。
【００６１】
実施の形態１及び実施の形態２について、前記のハードウエア構成やフローチャートは一例であり、任意に変更及び修正が可能である。
【００６２】
制御部２、主記憶部３、外部記憶部４、入出力部５、内部バスＢなどから構成されるジョブ割当処理を行う中心となる部分は、専用のシステムによらず、１つのプロセッサとメモリの組（実施の形態１の場合）又は１つのノード（実施の形態２の場合）を用いて実現してもよい。例えば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読みとり可能な記録媒体（フレキシブルディスク、CD-ROM、DVD-ROM等）に格納して配布し、当該コンピュータプログラムをマルチプロセッサ計算機システムの１つのプロセッサ又はノードにインストールすることにより、前記の処理を実行する装置を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のマルチプロセッサ計算機システムがダウンロード等することで本発明のマルチプロセッサ計算機システム１を構成してもよい。
【００６３】
前記制御部の機能を１つのプロセッサ又はノードで実現するのでなく、複数のプロセッサ又はノードに当該プログラムを分散して配置し、その複数のプロセッサ又はノードが協働して前記機能を実現してもよい。
【００６４】
また、前記の各機能を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【００６５】
また、搬送波に上述のコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施の形態１に係るマルチプロセッサ計算機システムの論理的構成を示すブロック図である。
【図２】本発明の実施の形態１に係るマルチプロセッサ計算機システムの一例を示すブロック図である。
【図３】本発明の実施の形態に係るマルチプロセッサ計算機システムにおいて、プロセッサの温度によってプロセッサの動作クロック周波数を制御する動作の一例を示すフローチャートである。
【図４】本発明の実施の形態に係るマルチプロセッサ計算機システムのジョブメモリ解析の動作の一例を示すフローチャートである。
【図５】本発明の実施の形態に係るマルチプロセッサ計算機システムのジョブ割当の動作の一例を示すフローチャートである。
【図６】本発明の実施の形態に係るマルチプロセッサ計算機システムにおける、ジョブ割当履歴の表の一例を示す図である。
【図７】本発明の実施の形態に係るマルチプロセッサ計算機システムにおける、ジョブ割当履歴によってメモリリマップを行う動作の一例を示すフローチャートである。
【図８】本発明の実施の形態２に係るマルチプロセッサ計算機システムの論理的構成を示すブロック図である。
【図９】本発明の実施の形態２に係るマルチプロセッサ計算機システムの一実施例を示すブロック図である。
【符号の説明】
【００６７】
１  マルチプロセッサ計算機システム
２  制御部
３  主記憶部
４  外部記憶部
５  入出力部
６  制御チャネル
７  制御バス
８  温度検出ライン
１０  温度検出手段
１１  温度センサ入力部
１２  温度センサ
２０  スケジューラ
３０  ジョブメモリマップ解析手段
４０  温度ジョブ履歴管理手段
５０  メモリマップ制御手段
５１、５３  ノード
６１、６２、６３  プロセッサ
７１、７２、７３  メモリコントローラ
８１、８２、８３  メモリ
９０  ネットワーク
９１、９３  入出力部
Ｂ  内部バス
Ｃ  クロスバ
【図１】
2006277637.tif 000003
【図２】
2006277637.tif 000004
【図３】
2006277637.tif 000005
【図４】
2006277637.tif 000006
【図５】
2006277637.tif 000007
【図６】
2006277637.tif 000008
【図７】
2006277637.tif 000009
【図８】
2006277637.tif 000010
【図９】
2006277637.tif 000011