(57)【要約】【課題】ノイズが生じたとしても、複数のＣＰＵを備えるシステムが安定的に動作できるようにするＣＰＵ負荷分散システムを提供する。【解決手段】ＣＰＵ負荷分散システムは、インタフェースを介してメモリに接続されたＣＰＵ１を複数備える。各ＣＰＵ１は、ノイズ値を検出するセンサ５を備える。また、ＣＰＵ負荷分散システムは、オペレーティングシステムに従って動作し、インタフェースにエラーが生じるときのノイズ値と検出されたノイズ値との差分が所定値以下になったときに、そのノイズ値が検出されたＣＰＵの処理負荷を軽減させるＯＳ動作手段３を備える。【選択図】図３
2010198210.tif 000002
【特許請求の範囲】
【請求項１】
インタフェースを介してメモリに接続されたＣＰＵを複数備え、
各ＣＰＵは、ノイズ値を検出するセンサを備え、
オペレーティングシステムに従って動作し、前記インタフェースにエラーが生じるときのノイズ値と検出されたノイズ値との差分が所定値以下になったときに、前記ノイズ値が検出されたＣＰＵの処理負荷を軽減させるＯＳ動作手段を備える
ことを特徴とするＣＰＵ負荷分散システム。
【請求項２】
センサが検知したノイズ値をセンサから読み取り、メモリに当該ノイズ値とインタフェースにエラーが生じるときのノイズ値との差分を測定してメモリに書き込み、メモリに対して前記差分を書き込んだことをＯＳ動作手段に通知する差分測定手段を備え、
ＯＳ動作手段は、差分測定手段からの通知に基づいて、前記差分が所定値以下になったＣＰＵの処理負荷を軽減させる
請求項１に記載のＣＰＵ負荷分散システム。
【請求項３】
差分測定手段は、メモリに対して差分を書き込んだこととともに、書き込みを行ったメモリ内のアドレスもＯＳ動作手段に通知する
請求項２に記載のＣＰＵ負荷分散システム。
【請求項４】
ＯＳ動作手段は、インタフェースにエラーが生じるときのノイズ値と検出されたノイズ値との差分が所定値以下になったＣＰＵのプロセスと、他のＣＰＵのプロセスとを入れ替えることにより、ＣＰＵの処理負荷を軽減させる
請求項１から請求項３のうちのいずれか１項に記載のＣＰＵ負荷分散システム。
【請求項５】
ＯＳ動作手段は、インタフェースにエラーが生じるときのノイズ値と検出されたノイズ値との差分がプロセスの入れ替え後に所定値より大きくならなかったＣＰＵのプロセスを、同じプロセスを実行している他のＣＰＵに分散させることにより、ＣＰＵの処理負荷を軽減させる
請求項４に記載のＣＰＵ負荷分散システム。
【請求項６】
ＯＳ動作手段は、インタフェースにエラーが生じるときのノイズ値と検出されたノイズ値との差分がプロセスの分散後に所定値より大きくならなかったＣＰＵのプロセスを当該ＣＰＵから引き剥がす
請求項５に記載のＣＰＵ負荷分散システム。
【請求項７】
インタフェースを介してメモリに接続されたＣＰＵを複数備え、各ＣＰＵがノイズ値を検出するセンサを備えるコンピュータに適用されるＣＰＵ負荷分散方法であって、
オペレーティングシステムに従って動作するＯＳ動作手段が、前記インタフェースにエラーが生じるときのノイズ値と検出されたノイズ値との差分が所定値以下になったときに、前記ノイズ値が検出されたＣＰＵの処理負荷を軽減させる
ことを特徴とするＣＰＵ負荷分散方法。
【請求項８】
差分測定手段が、センサが検知したノイズ値をセンサから読み取り、メモリに当該ノイズ値とインタフェースにエラーが生じるときのノイズ値との差分を測定してメモリに書き込み、メモリに対して前記各ノイズ値を書き込んだことをＯＳ動作手段に通知し、
ＯＳ動作手段が、差分測定手段からの通知に基づいて、前記差分が所定値以下になったＣＰＵの処理負荷を軽減させる
請求項７に記載のＣＰＵ負荷分散方法。
【請求項９】
インタフェースを介してメモリに接続されたＣＰＵであってノイズ値を検出するセンサを有するＣＰＵを複数備えるコンピュータに、
前記インタフェースにエラーが生じるときのノイズ値と検出されたノイズ値との差分が所定値以下になったときに、前記ノイズ値が検出されたＣＰＵの処理負荷を軽減させる機能
を実現させるためのＣＰＵ負荷分散プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵの負荷を分散させるＣＰＵ負荷分散システム、ＣＰＵ負荷分散方法およびＣＰＵ負荷分散プログラムに関する。
【背景技術】
【０００２】
スーパーコンピュータでは、ＣＰＵとメモリ間の高速インタフェースとして多数のチャネルを用いることが多い。そして、チャネルの状態にはばらつきがあることを前提としてシステム作りがされているが、各チャネルに対する調整後では、ノイズに対する強度は全てのチャネルで均等であるという前提でシステム構築が行われる。ここで、ノイズとは、電圧降下や気温等の外部の状況を意味する。各チャネルに対する調整の際、チャネルにエラーが生じるときのノイズ値に対して十分なマージンが確保できるように、調整が行われる。
【０００３】
また、特許文献１には、中央処理装置を二重化し、二重化された中央処理装置が異なる処理を行い、一方の中央処理装置に障害が生じたときには、他系が全ての処理を行うパケット情報転送方式が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６２−２８１６４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
エラーが生じるときのノイズ値に対してマージンを確保するような調整が出荷時に行われたとしても、スーパーコンピュータが設置されるマシン室において予期しない強いノイズが発生し、チャネルのマージン（すなわち、エラーが生じるときのノイズ値と現状のノイズ値との差）が減少することがある。この場合、そのチャネルを使用するＣＰＵに負荷の大きいジョブが割り当てられているとエラーが生じてしまうことがあった。
【０００６】
そこで、本発明は、ノイズが生じたとしても、複数のＣＰＵを備えるシステムが安定的に動作できるようにするＣＰＵ負荷分散システム、ＣＰＵ負荷分散方法およびＣＰＵ負荷分散プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明によるＣＰＵ負荷分散システムは、インタフェースを介してメモリに接続されたＣＰＵを複数備え、各ＣＰＵが、ノイズ値を検出するセンサを備え、オペレーティングシステムに従って動作し、インタフェースにエラーが生じるときのノイズ値と検出されたノイズ値との差分が所定値以下になったときに、ノイズ値が検出されたＣＰＵの処理負荷を軽減させるＯＳ動作手段を備えることを特徴とする。
【０００８】
また、本発明によるＣＰＵ負荷分散方法は、インタフェースを介してメモリに接続されたＣＰＵを複数備え、各ＣＰＵがノイズ値を検出するセンサを備えるコンピュータに適用されるＣＰＵ負荷分散方法であって、オペレーティングシステムに従って動作するＯＳ動作手段が、インタフェースにエラーが生じるときのノイズ値と検出されたノイズ値との差分が所定値以下になったときに、ノイズ値が検出されたＣＰＵの処理負荷を軽減させる
ことを特徴とする。
【０００９】
また、本発明によるＣＰＵ負荷分散プログラムは、インタフェースを介してメモリに接続されたＣＰＵであってノイズ値を検出するセンサを有するＣＰＵを複数備えるコンピュータに、インタフェースにエラーが生じるときのノイズ値と検出されたノイズ値との差分が所定値以下になったときに、ノイズ値が検出されたＣＰＵの処理負荷を軽減させる機能を実現させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ノイズが生じたとしても、複数のＣＰＵを備えるシステムを安定的に動作させることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明のＣＰＵ負荷分散システムを模式的に示すブロック図である。
【図２】本発明の処理経過の例を示すフローチャートである。
【図３】本発明の最小構成を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を図面を参照して説明する。以下の説明では、オペレーティングシステムを単にＯＳと記す。
【００１３】
図１は、本発明のＣＰＵ負荷分散システムを模式的に示すブロック図である。本発明のＣＰＵ負荷分散システムは、複数のＣＰＵ１と、診断プロセッサ２と、ＯＳ動作手段３とを備え、また、ＯＳ動作手段３は、内部テーブル４を保持している。ＣＰＵ負荷分散システムは例えばスーパーコンピュータに適用される。
【００１４】
各ＣＰＵ１は、インタフェースを介してメモリ（図示略）に接続されている。ＣＰＵとメモリとの間のインタフェースは、チャネルとも称される。ＣＰＵは、ＯＳ動作手段３の制御により、プロセスを実行する。
【００１５】
また、各ＣＰＵ１は、ノイズ値を検出するセンサ（図示略）を有している。ノイズの例として、気温、電圧降下、電磁波等が挙げられ、各センサは、例えば、温度、電圧降下量、電磁波の強さ等をノイズ値として検出する。
【００１６】
チャネル（インタフェース）にエラーが生じるノイズ値と、使用環境における現状のノイズ値との差分を、マージンと呼ぶ。このマージンが小さくなると、ＣＰＵの負荷状況によってはエラーが生じやすくなる。
【００１７】
ＯＳ動作手段３は、各ＣＰＵ１とメモリ間のチャネルのマージンの変化に応じて、各ＣＰＵ１のプロセス実行を制御する。すなわち、チャネルのマージンが減少したときに、そのＣＰＵ１の処理負荷を減少させるように、各ＣＰＵ１を制御する。ＯＳ動作手段３は、ＯＳに従って動作する。ＯＳ動作手段３は、具体的には、ＯＳに従って動作する各ＣＰＵ１によって実現されるが、図１では、便宜的に各ＣＰＵ１とは別に図示している。
【００１８】
内部テーブル４は、各ＣＰＵ１の状態を示すテーブルである。ＯＳ動作手段３は、各ＣＰＵ１の状態を、診断プロセッサ２からメモリを介して受け取り、内部テーブル４を更新する。ＯＳ動作手段３は、内部テーブル４を参照して、マージンが減少しているＣＰＵ１の処理負荷を減少させる。
【００１９】
ＯＳ動作手段３は、チャネルのマージンが減少したＣＰＵの処理負荷を、具体的に以下のような方法で減少させる。
【００２０】
第１の方法は、チャネルのマージンが所定値以下になったＣＰＵが実行しているプロセスと、他のＣＰＵが実行しているプロセスとを入れ替える（スワップする）ことで、マージンが所定値以下になったＣＰＵの処理負荷を減少させる方法である。
【００２１】
第２の方法は、チャネルのマージンが所定値以下になったＣＰＵが実行しているプロセスを、同じプロセスを実行している他のＣＰＵに分散させることで、マージンが所定値以下になったＣＰＵの処理負荷を減少させる方法である。
【００２２】
第３の方法は、チャネルのマージンが所定値以下になったＣＰＵが実行しているプロセスを、そのＣＰＵから引き剥がすことで、マージンが所定値以下になったＣＰＵの処理負荷を減少させる方法である。プロセスをＣＰＵから引き剥がすとは、ＣＰＵにそのプロセスの実行を停止させることである。
【００２３】
第１の方法を、プロセスのスワップと記し、第２の方法を、プロセスの分散と記し、第３の方法をプロセスの引き剥がしと記す。ＯＳ動作手段３は、プロセスのスワップ後もマージンが低い状態のＣＰＵに対して、プロセスの分散を行い、さらに、プロセスの分散後もマージンが低い状態のＣＰＵに対してプロセスの引き剥がしを行う。このように、ＯＳ動作手段３は、ノイズの規模に応じて、順次、プロセスのスワップ、プロセスの分散、プロセスの引き剥がしを行う。
【００２４】
ＯＳ動作手段３は、ＯＳに加えてさらにＣＰＵ負荷分散プログラムにも従って動作することで、上記の機能を実現する。
【００２５】
診断プロセッサ２は、各ＣＰＵ１のチャネルのマージンを測定し、ＯＳ動作手段３に通知する。診断プロセッサは、ＤＧＰ（diagnose processor）と称されることもある。
【００２６】
診断プロセッサ２は、各チャネルに対して、予めエンファシス調整やイコライザ調整等を行って、チャネル毎に、チャネルにエラーが生じることとなるノイズ値を測定しておく。この測定をＤＣ（direct current）電源投入時に行うと時間がかかりすぎる。そのため、ＤＣ電源をオフとしてＣＰＵ交換をした後に、ＤＣ電源をオフとしＡＣ（alternating Current ）電源をオンとした状態で、診断プロセッサ２が構成を確認し上記の調整を行って、チャネルにエラーが生じることとなるノイズ値を測定する。
【００２７】
また、診断プロセッサ２は、定期的に、各ＣＰＵ１のセンサが検出したノイズ値をセンサから読み取り、そのノイズ値と、チャネルにエラーが生じることとなるノイズ値との差分を計算して、マージンを求める。例えば、診断プロセッサ２は、センサが検出した温度をセンサから読み取り、その温度とエラーが生じる温度との差分を計算する。あるいは、センサが検出した電圧降下量を読み取り、その値とエラーが生じる電圧降下量との差分を計算してもよい。ここでは、ノイズ値として温度や電圧降下量を読み取る場合を例示したが、他のノイズ値を読み取ってマージンを計算してもよい。
【００２８】
診断プロセッサ２は、マージンが減少したと判定したときに、マージンを、メモリ内の特定の領域に記憶させ、マージンをメモリに記憶させたことをＯＳ動作手段３に通知する。この結果、ＯＳ動作手段３は、各ＣＰＵ１のマージンをメモリから読み取る。診断プロセッサ２は、チャネルのマージンが予め定められた所定値以下になったときに、マージンが減少したと判定すればよい。診断プロセッサ２からＯＳ動作手段３への通知を割り込み通知と呼ぶことができる。
【００２９】
また、診断プロセッサ２は、各ＣＰＵ１に対してステータスチェックを行い、プロセスと、そのプロセスを実行しているＣＰＵと、そのＣＰＵのチャネルとの対応を示す情報をデータベースとしてメモリに記憶させる。ＯＳ動作手段３は、各ＣＰＵ１のマージンだけでなく、このデータベースもメモリから読み取り、内部テーブル４を更新する。ＯＳ動作手段３は、内部テーブル４を参照して、マージンが減少しているＣＰＵ１の処理負荷を軽減させる。
【００３０】
診断プロセッサ２は、例えばプログラムに従って動作するプロセッサによって実現される。
【００３１】
次に、動作について説明する。
図２は、本発明の処理経過の例を示すフローチャートである。診断プロセッサ２は、各ＣＰＵの状態を確認する（ステップＳ１）。具体的には、診断プロセッサ２は、各ＣＰＵ１のセンサから、そのセンサが検出したノイズ値を読み取る。また、ステータスチェックを行い、各ＣＰＵで実行しているプロセスを把握する。診断プロセッサ２は、このステップＳ１の動作を定期的に行う。
【００３２】
ステップＳ１の後、診断プロセッサ２は、センサから読み取ったノイズ値と、チャネルにエラーが生じるノイズ値との差分を計算することによりマージンを求め、そのマージンが減少しているか否かを判定する（ステップＳ２）。このとき、マージンが所定値以下になったときに、マージンが減少したと判定すればよい。マージンが減少していなければ（ステップＳ２のＮｏ）、引き続き定期的にステップＳ１を実行する。
【００３３】
マージンが減少していれば（ステップＳ２のＹｅｓ）、診断プロセッサ２は、そのマージンをメモリの特定領域に記憶させる。また、プロセスと、そのプロセスを実行しているＣＰＵと、そのＣＰＵのチャネルとの対応を示す情報も同様にメモリに記憶させる。そして、診断プロセッサ２は、それらの情報をメモリに記憶させた旨の通知（割り込み通知）をＯＳ動作手段３に送信する（ステップＳ３）。
【００３４】
ＯＳ動作手段３は、割り込み通知を受信すると、メモリの特定領域から、診断プロセッサ２によって書き込まれたマージン等の情報を読み取り、その内容にあわせて内部テーブル４を更新する（ステップＳ４）。
【００３５】
ＯＳ動作手段３は、内部テーブルを参照して、マージンが減少しているＣＰＵのプロセスと、他のＣＰＵのプロセスとを入れ替える（ステップＳ５）。プロセスのスワップによってマージンが所定値より大きくなったならば（ステップＳ６のＹｅｓ）、引き続き定期的にステップＳ１を実行する。
【００３６】
プロセスのスワップ後もマージンが小さい状態が続いていれば（ステップＳ６のＮｏ）、ＯＳ動作手段３は、そのＣＰＵのプロセスを、同じプロセスを実行している他のＣＰＵに分散させる（ステップＳ７）。プロセスの分散によってマージンが所定値より大きくなったならば（ステップＳ８のＹｅｓ）、引き続き定期的にステップＳ１を実行する。
【００３７】
プロセスの分散後もマージンが小さい状態が続いていれば（ステップＳ８のＮｏ）、ＯＳ動作手段３は、そのＣＰＵに対してプロセスの引き剥がしを行う。すなわち、そのＣＰＵにプロセス実行を停止させる。そして、引き続き定期的にステップＳ１を実行する。
【００３８】
本発明によれば、マージンが減少したＣＰＵのインタフェース負荷が軽減させるので、ノイズが多くなっても安定した動作を実現することができる。従って、より過酷な環境下でも、コンピュータを動作させることができる。
【００３９】
また、プロセスの引き剥がしではプロセス実行を停止させるものの、プロセスのスワップやプロセスの分散ではコンピュータの処理性能は変わらない。よって、大きな性能劣化を伴わずに上記の効果を得ることができる。
【００４０】
また、上記の実施形態では、診断プロセッサ２がマージン等をメモリの特定領域に記憶させる場合を例にして説明した。診断プロセッサ２がマージンを記憶させるときに、メモリにおける記憶領域を動的に変化させてもよい。その場合、診断プロセッサ２がステップＳ３でマージン等を記憶させたメモリ内の領域のアドレスを、割り込み通知とともにＯＳ動作手段３に通知すればよい。そして、ＯＳ動作手段３は、通知されたアドレスからマージン等を読み取ればよい。診断プロセッサ２が、マージン等を記憶させる領域を動的に変化させる場合、マージンが減少していないチャネルに応じたメモリの領域に記憶させればよい。既に説明したようにＯＳ動作手段３は各ＣＰＵによって実現されている。よって、マージンが減少しているチャネルに応じたメモリに記憶させると、ＯＳ動作手段３がその領域にアクセスする際に障害が生じることがあるが、マージン等を記憶させる領域を動的に変化させることでそのような障害発生を防ぐことができる。
【００４１】
次に、本発明の最小構成について説明する。図３は、本発明の最小構成を示すブロック図である。本発明のＣＰＵ負荷分散システムは、インタフェースを介してメモリに接続されたＣＰＵ１を複数備える。各ＣＰＵ１は、ノイズ値（例えば、温度、電圧降下量等）を検出するセンサ５を備える。また、ＣＰＵ負荷分散システムは、オペレーティングシステムに従って動作し、インタフェースにエラーが生じるときのノイズ値と検出されたノイズ値との差分が所定値以下になったときに、そのノイズ値が検出されたＣＰＵの処理負荷を軽減させるＯＳ動作手段３を備える。
【００４２】
このような構成により、ノイズが生じたとしても、複数のＣＰＵを備えるシステムを安定的に動作させることができる。
【００４３】
また、上記の実施形態には、センサ５が検知したノイズ値をセンサ５から読み取り、メモリにそのノイズ値とインタフェースにエラーが生じるときのノイズ値との差分を測定してメモリに書き込み、メモリに対して差分を書き込んだことをＯＳ動作手段３に通知する差分測定手段（例えば診断プロセッサ２）を備え、ＯＳ動作手段３が、差分測定手段からの通知に基づいて、差分が所定値以下になったＣＰＵの処理負荷を軽減させる構成が開示されている。
【００４４】
また、上記の実施形態には、差分測定手段が、メモリに対して差分を書き込んだこととともに、書き込みを行ったメモリ内のアドレスもＯＳ動作手段３に通知する構成が開示されている。そのような構成により、ＯＳ動作手段３がメモリにアクセスする際の障害発生を防止できる。
【００４５】
また、上記の実施形態には、ＯＳ動作手段３が、インタフェースにエラーが生じるときのノイズ値と検出されたノイズ値との差分が所定値以下になったＣＰＵのプロセスと、他のＣＰＵのプロセスとを入れ替えることにより、ＣＰＵの処理負荷を軽減させる構成が開示されている。そのような構成によれば、性能劣化を伴わずに、システムを安定的に動作させることができる。
【００４６】
また、上記の実施形態には、ＯＳ動作手段３が、インタフェースにエラーが生じるときのノイズ値と検出されたノイズ値との差分がプロセスの入れ替え後に所定値より大きくならなかったＣＰＵのプロセスを、同じプロセスを実行している他のＣＰＵに分散させることにより、ＣＰＵの処理負荷を軽減させる構成が開示されている。そのような構成によれば、性能劣化を伴わずに、システムを安定的に動作させることができる。
【００４７】
また、上記の実施形態には、ＯＳ動作手段３が、インタフェースにエラーが生じるときのノイズ値と検出されたノイズ値との差分がプロセスの分散後に所定値より大きくならなかったＣＰＵのプロセスをＣＰＵから引き剥がす構成が開示されている。
【産業上の利用可能性】
【００４８】
本発明は、スーパーコンピュータ等のように複数のＣＰＵを有するシステムに好適に適用可能である。
【符号の説明】
【００４９】
１  ＣＰＵ
２  診断プロセッサ
３  ＯＳ動作手段
４  内部テーブル
５  センサ
【図１】
2010198210.tif 000003
【図２】
2010198210.tif 000004
【図３】
2010198210.tif 000005