(57)【要約】【課題】温度センサから得られる温度分布情報をもとにジョブスケジューリングを行うことにより、熱問題を解決するとともに、省エネルギーを実現し、システム全体のランニングコストを下げること。【解決手段】計算機には温度センサ１０，１１，１２，１３が内蔵され、温度監視デーモン１００ｂ，１０１ｂ，１０２ｂ，１０３ｂは上記温度センサから値を読みとり、スケジューラ計算機１１０上の温度情報管理サーバ１１０ａに伝達する。温度情報管理サーバ１１０ａは温度情報管理テーブルを用いて、温度情報を管理する。スケジューラ１１０ｂは新規ジョブを計算機１００，１０１，１０２，１０３上に投入する前に、この温度情報管理テーブルを参照して最も温度の低い計算機を検索して、その計算機に対してジョブを投入する。また、上記温度に基づき各計算機のジョブを割り付け直すようにしてもよい。【選択図】　　　　　図１
2004126968.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機をネットワークを介して結合した並列計算機システムにおけるジョブスケジューリング装置であって、
上記並列計算機システムを構成する各々の計算機に温度センサを設け、
上記ジョブスケジューリング装置は、上記温度センサによって取得した値をもとにジョブの投入先計算機を決定する
ことを特徴としたジョブスケジューリング装置。
【請求項２】
複数の計算機をネットワークを介して結合した並列計算機システムにおけるジョブスケジューリング装置であって、
上記並列計算機システムを構成する各々の計算機に温度センサと、現在システムで実行中のジョブを監視する監視装置とを設け、
上記ジョブスケジューリング装置は、上記監視装置による監視結果と、上記温度センサによって取得した値をもとに、実行中のジョブを他の計算機に割り付け直す
ことを特徴としたジョブスケジューリング装置。
【請求項３】
複数の計算機をネットワークを介して結合した並列計算機システムにおけるジョブスケジューリング装置であって、
上記並列計算機システムを構成する各々の計算機に温度センサを備え、
上記ジョブスケジーリング装置が、並列計算機システムを構成する各計算機に分散配置されており、
上記ジョブスケジーリング装置は、近傍の計算機間で温度情報を交換し、取得した温度情報に基づき、実行中のジョブを近傍の計算機に割り付け直す
ことを特徴とするジョブスケジューリング装置。
【請求項４】
上記並列計算機システムを構成する各々の計算機は、冷却装置を備え、
上記ジョブスケジューリング装置は、上記温度センサによって取得した値を基に上記冷却装置を制御する
ことを特徴とする請求項１，２または請求項３のジョブスケジューリング装置。
【請求項５】
複数の計算機をネットワークを介して結合した並列計算機システムにおけるジョブスケジューリングプログラムであって、
上記ジョブスケジューリングプログラムは、並列計算機システムを構成する各々の計算機に設けられた温度センサによって取得した値をもとにジョブの投入先計算機を決定する処理をコンピュータに実行させる
ことを特徴とするジョブスケジューリングプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分散メモリ型並列計算機やＰＣクラスタに代表される並列計算機システムでのジョブスケジューリング装置に関する。
【０００２】
【従来の技術】
従来、並列計算機システムにおけるジョブスケジューリングと言えば、各計算機の負荷を均等化することで実行性能の改善を目指したものがほとんどであった（例えば特許文献１，特許文献２，特許文献３参照）。
【０００３】
【特許文献１】
特開平１１−３１２１４９号公報
【特許文献２】
特開２００１−１４２８６号公報
【特許文献３】
特開平８−８３２５７号公報
【０００４】
【発明が解決しようとする課題】
従来のジョブスケジューリングでは性能にのみ着目している。しかし、大規模な並列計算機システムを構築する場合、性能以外にも熱、設置スペースなどの問題も解決しなくては実用化は難しい。
設置スペースの問題については、部品を小型化し、拡張性を犠牲にして高密度な計算機を構築することで改善できる。ただし、その場合は小さいスペースにより多くの熱源が存在することになるため、熱問題がさらに深刻になる。
この結果、十分に排熱しきれないために、システムに障害をきたし、結局は性能低下につながることも十分に有り得る。冷却装置を強力にすることで解決する方法があるが、やみくもにシステム全体を冷却したのではコストが嵩んでしまう。つまり、数千、数万といった超並列計算機システムにおいては、従来方式の性能に加えて計算機の温度というファクタを加味してスケジューリングすべきである。
本発明は上記事情に鑑みなされたものであって、本発明の目的は、並列計算機システムを構成する各計算機に温度センサを設け、センサから得られる温度分布情報をもとにジョブスケジューリングを行うことにより、上記熱問題を解決し、省エネルギーを実現するとともに、システム全体のランニングコストを下げることである。
【０００５】
【課題を解決するための手段】
上記課題を本発明においては、次のように解決する。
（１）並列計算機システムを構成する各計算機に温度センサを設け、センサから得られる値を集計して、その温度分布情報をもとにジョブの投入先を決定する。
（２）並列計算機システムを構成する各々の計算機に温度センサと、現在システムで実行中のジョブを監視する監視装置とを設け、該監視装置による監視結果と、上記温度センサによって取得した値をもとに、実行中のジョブを他の計算機に割り付け直す。
（３）並列計算機システムを構成する各計算機に温度センサを設け、また、システム内のどの計算機上で各ジョブを実行しているのか監視する装置を設け、近傍の計算機間で温度情報を交換し、現在の実行中の計算機よりも温度の低い計算機にジョブを割り付けになおす。
（４）上記（１）〜（３）において、並列計算機システムを構成する各々の計算機は、冷却装置を設け、温度センサによって取得した値を基に上記冷却装置を制御する。
本発明の請求項１，５の発明においては、上記（１）のように並列計算機システムを構成する各計算機に温度センサを設け、センサから得られる値を集計しその温度分布情報をもとにジョブの投入先を決定しているので、システムの温度分布を把握して、最適な計算機にジョブを割り付けることが可能となる。
本発明の請求項２の発明においては、各計算機の温度センサから取得した値と現在実行しているジョブがどの計算機で実行されているかを監視し、実行中のジョブを他の計算機に割り付け直しているので、システムの温度分布を把握して、最適な計算機にジョブを割り付けることが可能となる。
本発明の請求項３の発明においては、近傍の計算機間で温度情報を交換し、現在の実行中の計算機よりも温度の低い計算機にジョブを割り付けになおしているので、局所的なスケジューリングであり、最適なジョブ再割り付けではないものの、ある程度の省エネルギーが見込め、さらにスケジューリングのオーバヘッドを抑えることが可能となる。
本発明の請求項４の発明においては、冷却装置を設け、該冷却装置をジョブスケジューリング装置から制御可能にしたので、システム状況に適した冷却強度で設定でき、過剰な電力を抑えて、コスト削減を図ることができる。
【０００６】
また、本発明においては、以下のように構成することもできる。
（イ）上記（１）と（２）を組み合わせ、監視装置による監視結果と、上記温度センサによって取得した値をもとに、ジョブの投入先計算機を決定するとともに、実行中のジョブを他の計算機に割り付け直す。
上記構成とすることにより、ジョブ投入前、投入後どちらでもジョブを制御することができるようになり、より効率的なスケジューリングが可能となる。
（ロ）上記（１）のジョブスケジューリングを行う第１のジョブスケジューリング装置と、上記（３）のジョブスケジューリングを行う第２のジョブスケジューリング装置を設けて、階層型のジョブスケジューリングを行うことにより、短いインターバルでは近傍の計算機間でのジョブスケジューリングを適用し、それよりも長いインターバルでシステム全体を対象としたジョブスケジューリングを適用することができ、スケジューリングのオーバヘッドを抑えつつ、最適化効率を上げることが可能となる。
【０００７】
【発明の実施の形態】
図１は本発明の第１の実施例を示す図である。
ネットワーク１２０によってスケジューラ計算機１１０と計算機１００，１０１，１０２，１０３が結合されている。スケジューラ計算機１１０では、温度情報管理サーバ１１０ａとジョブスケジューラ１１０ｂが走っている。各計算機には温度センサ１０，１１，１２，１３が内蔵され、また温度監視デーモン１００ａ，１０１ａ，１０２ａ，１０３ａが走っている。なお、図１では４台の計算機の場合を示しているがこの台数は任意である。
各計算機１００，１０１，１０２，１０３上の温度監視デーモン１００ｂ，１０１ｂ，１０２ｂ，１０３ｂは同機上の温度センサ１０，１１，１２，１３から値を読みとり、その結果をスケジューラ計算機１１０上の温度情報管理サーバ１１０ａに伝達する。
【０００８】
温度情報管理サーバ１１０ａでは図２に示す温度情報管理テーブルを用いて、各計算機１００，１０１，１０２，１０３の温度情報を管理する。温度情報管理テーブルは同図に示すように、各計算機１００，１０１，１０２，１０３の計算機番号と、各計算機の温度を管理するテーブルであり、このテーブルのサイズは計算機台数に比例する。
スケジューラ１１０ｂは新規ジョブを計算機１００，１０１，１０２，１０３上に投入する前に、この温度情報管理テーブルを参照して最も温度の低い計算機を検索する。
検索の結果選ばれた計算機が最も適切な計算機であり、スケジューラ１１０ｂはその計算機に対してジョブを投入する。新規ジョブが複数台の計算機を必要とする場合は、温度の低い順に必要台数分計算機を検索し、それらの計算機上にジョブを投入する。
図１ではスケジューラ計算機１１０とその他の計算機は分かれているが、計算機１００，１０１，１０２，１０３のいずれかがスケジューラ計算機１１０を兼ねても良い。
【０００９】
図３は第２実施例を示す図である。
ネットワーク２２０によってスケジューラ計算機２１０と計算機２００，　２０１，２０２，２０３が結合されている。スケジューラ計算機２１０では、ジョブ管理サーバ２１０ａ、温度情報管理サーバ２１０ｂとジョブスケジューラ２１０ｃが走っている。
各計算機２００，　２０１，２０２，２０３には温度センサ２０，２１，２２，２３が内蔵され、また温度監視デーモン２００ａ，２０１ａ，２０２ａ，２０３ａが走っている。なお、図３では４台の計算機の場合を示しているがこの台数は任意である。
各計算機２００，　２０１，２０２，２０３上の温度監視デーモン２００ａ，２０１ａ，２０２ａ，２０３ａは同機上の温度センサ２０，２１，２２，２３から値を読みとり、その結果をスケジューラ計算機２１０上の温度情報管理サーバ２１０ｂに伝達する。
温度情報管理サーバ２１０ｂでは図２に示す温度情報管理テーブルを用いて、各計算機２００，　２０１，２０２，２０３の温度情報を管理する。
【００１０】
スケジューラ２１０ｃは新規ジョブを計算機２００，　２０１，２０２，２０３上に投入する前に、この温度情報管理テーブルを参照して最も温度の低い計算機を検索する。
検索の結果選ばれた計算機が最も適切な計算機であり、スケジューラ２１０ｃはその計算機に対してジョブを投入する。新規ジョブが複数台の計算機を必要とする場合は、温度の低い順に必要台数分計算機を検索し、それらの計算機上にジョブを投入する。
この際、ジョブ管理サーバ２１０ａに図４に示すジョブ管理テーブルへのジョブ登録を通知する。ジョブ管理テーブルは、同図に示すようにジョブ番号と使用計算機を管理するテーブルである。
ジョブ管理サーバ２１０ａではスケジューラ２１０ｃからのジョブ登録以外に、各計算機２００，　２０１，２０２，２０３からジョブ終了通知を受けとってジョブ管理テーブルからのジョブ削除も行なう。
【００１１】
スケジューラ２１０ｃは定期的に現在実行中のジョブについて、最適な計算機上で実行されているかどうかチェックする。
すなわち、図４のジョブ管理テーブルに登録されている使用計算機群について、温度情報管理テーブルから温度情報を取得し、それらの計算機の温度が高いか調べる。温度が高いかどうかの判断は、閾値以上かどうか調べる絶対評価や、もしくはその他の計算機と比較する相対評価などがある。
１台でも温度が高いと判断された場合は、その計算機上のジョブを他の温度の低い計算機に移動する。その後、ジョブ情報管理テーブルの該当エントリを更新する。
図３ではスケジューラ計算機とその他の計算機は分かれているが、計算機２００，２０１，２０２，２０３のいずれかがスケジューラ計算機２１０を兼ねても良い。
【００１２】
図５は本発明の第３の実施例を示す図である。
ネットワーク３２０によって計算機３００，３０１，３０２，３０３が結合されている。各計算機３００，３０１，３０２，３０３には温度センサ３０，３１，３２，３３が内蔵され、また温度監視デーモン３００ａ，３０１ａ，３０２ａ，３０３ａ及びスケジューラ３００ｂ，３０１ｂ，３０２ｂ，３０３ｂが走っている。なお、図５では４台の計算機の場合を示しているがこの台数は任意である。
各計算機３００，３０１，３０２，３０３上の温度監視デーモン３００ａ，３０１ａ，３０２ａ，３０３ａは同機上の温度センサから値を読みとり、その結果をスケジューラ３００ｂ，３０１ｂ，３０２ｂ，３０３ｂに伝達する。スケジューラ３００ｂ，３０１ｂ，３０２ｂ，３０３ｂは定期的に隣接する計算機と温度情報を交換し、隣の計算機の温度がある温度以下、自機の温度よりもある一定値以上低い場合に、自機上のジョブをその隣接計算機に移動する。
図５ではスケジューラと温度監視デーモンが分かれているが、１つのプロセスが両方の機能を兼ねても良い。
【００１３】
図６は本発明の第４の実施例を示す図であり、本実施例は、上記第２の実施例に冷却装置を設けた実施例を示す。
ネットワーク４２０によってスケジューラ計算機４１０と計算機４００，４０１，４０２，４０３が結合されている。スケジューラ計算機４１０では、ジョブ管理サーバ４１０ａ、温度情報管理サーバ４１０ｂ、ジョブスケジューラ４１０ｃが走っている。
各計算機には温度センサ４０，４１，４２，４３、冷却装置５０，５１，５２，５３が内蔵され、また温度監視デーモン４００ａ，４０１ａ，４０２ａ，４０３ａが走っている。この冷却装置５０，５１，５２，５３はスケジューラ計算機４１０上のスケジューラ４１０ｂから制御可能である。図６では４台の計算機の場合を示しているがこの台数は任意である。
【００１４】
各計算機上の温度監視デーモン４００ａ，４０１ａ，４０２ａ，４０３ａは同機上の温度センサ４０，４１，４２，４３から値を読みとり、その結果をスケジューラ計算機４１０上の温度情報管理サーバ４１０ｂに伝達する。
温度情報管理サーバ４１０ｂでは前記図２に示す温度情報管理テーブルを用いて、各計算機４００，４０１，４０２，４０３の温度情報を管理する。
スケジューラ４１０ｃは新規ジョブを計算機４００，４０１，４０２，４０３上に投入する前に、この温度情報管理テーブルを参照して各計算機４００，４０１，４０２，４０３の温度を調べる。また、ジョブ管理サーバ４１０ａは、前記したように、ジョブ管理テーブルにより実行中のジョブを管理する。
ここで、既に計算機４００にジョブ１が、計算機４０１にジョブ２が走っているものとする。
【００１５】
この場合、スケジューラ４１０ｃは以下に説明する図７のフローチャートに従い、スケジューリングを行なう。
まず、ＣＰＵ使用率などの負荷情報を取得し（ステップＳ１）、ジョブ１、２を同一計算機にまとめてしまっても良いかどうかを性能面から判断する（ステップＳ２）。すなわちジョブ１，２の負荷の和が１００％以下であり、例えば、計算機４０１のジョブを計算機４００にまとめてしまってもよいかを判断する。
ジョブ１、２を同一計算機にまとめることができない場合には、スケジューリング処理を終了する。
【００１６】
また、ジョブ１，２を同一計算機にまとめてしまっても、性能的には問題ないとなった場合に、続いてコスト面から評価するために現在の温度、消費電力情報を取得し（ステップＳ３）、ジョブ移動時の消費電力を見積もる（ステップＳ４）。この時の見積りは、現在の冷却装置強度から、最低に落した場合と最高まで上げた場合の差分程度の単純な計算でも良い。
ジョブを同一計算機上にまとめたほうが総消費電力が下がるという結論に達した場合には、実際にジョブを移動させる（ステップＳ６）。例えば、ジョブ２を計算機４００に移動する。そして、それぞれの計算機の冷却装置の強度を適切に設定する。例えば計算機４００の冷却装置４００ｂの強度を上げ、計算機４０１の冷却装置４０１ｂの強度を下げる。
また、ジョブを同一計算機上にまとめても総消費電力が下がらない場合には、スケジューリング処理を終了する。
【００１７】
なお、上記第２、第３の実施例を組み合わせ、階層型のジョブスケジューリングを行うようにしてもよい。すなわち、並列計算機システムを構成する各々の計算機に温度センサと、温度監視デーモンと、スケジューラを設け、また、スケジューラ計算機に現在システムで実行中のジョブを監視するジョブ情報管理サーバと、スケジューラと、温度情報管理サーバを設け、上記スケジューラ計算機により、長いインターバルでシステム全体を対象とするジョブスケジューリングを行い、各並列計算機に設けたスケジューラにより、近傍の計算機間で短いインターバルでジョブスケジューリングを行うようにする。
これにより、スケジューリングのオーバヘッドを抑えつつ、最適化効率を上げることができる。
さらに、前記第１〜第３の実施例において、各並列計算機システムを構成する各々の計算機に冷却装置を設け、スケジューラにより冷却装置を制御するように構成してもよい。
【００１８】
（付記１）　複数の計算機をネットワークを介して結合した並列計算機システムにおけるジョブスケジューリング装置であって、
上記並列計算機システムを構成する各々の計算機に温度センサを設け、
上記ジョブスケジューリング装置は、上記温度センサによって取得した値をもとにジョブの投入先計算機を決定する
ことを特徴としたジョブスケジューリング装置。
（付記２）　複数の計算機をネットワークを介して結合した並列計算機システムにおけるジョブスケジューリング装置であって、
上記並列計算機システムを構成する各々の計算機に温度センサと、現在システムで実行中のジョブを監視する監視装置とを設け、
上記ジョブスケジューリング装置は、上記監視装置による監視結果と、上記温度センサによって取得した値をもとに、実行中のジョブを他の計算機に割り付け直す
ことを特徴としたジョブスケジューリング装置。
（付記３）　複数の計算機をネットワークを介して結合した並列計算機システムにおけるジョブスケジューリング装置であって、
上記並列計算機システムを構成する各々の計算機に温度センサと、現在システムで実行中のジョブを監視する監視装置とを設け、
上記ジョブスケジューリング装置は、上記監視装置による監視結果と、上記温度センサによって取得した値をもとに、ジョブの投入先計算機を決定するとともに、実行中のジョブを他の計算機に割り付け直す
ことを特徴としたジョブスケジューリング装置。
（付記４）　複数の計算機をネットワークを介して結合した並列計算機システムにおけるジョブスケジューリング装置であって、
上記並列計算機システムを構成する各々の計算機に温度センサを備え、
上記ジョブスケジーリング装置が、並列計算機システムを構成する各計算機に分散配置されており、
上記ジョブスケジーリング装置は、近傍の計算機間で温度情報を交換し、取得した温度情報に基づき、実行中のジョブを近傍の計算機に割り付け直すことを特徴とするジョブスケジューリング装置。
（付記５）　複数の計算機をネットワークを介して結合した並列計算機システムにおけるジョブスケジューリング装置であって、
上記並列計算機システムを構成する各々の計算機に温度センサと、現在システムで実行中のジョブを監視する監視装置と、
上記並列計算機を構成する各計算機のジョブスケジューリングを行う第１のジョブスケジューリング装置と、
各計算機に分散配置された第２のジョブスケジューリング装置を設け、
上記第１のジョブスケジューリング装置は、上記監視装置による監視結果と、上記温度センサによって取得した値をもとに、ジョブの投入先計算機を決定するとともに、実行中のジョブを他の計算機に割り付け直し、
上記第２のジョブスケジューリング装置は、近傍の計算機間で温度情報を交換し、取得した温度情報に基づき、実行中のジョブを近傍の計算機に割り付け直すことを特徴としたジョブスケジューリング装置。
（付記６）　上記並列計算機システムを構成する各々の計算機は、冷却装置を備え、
上記ジョブスケジューリング装置は、上記温度センサによって取得した値を基に上記冷却装置を制御する
ことを特徴とする付記１，２，３，４または付記５のジョブスケジューリング装置。
（付記７）　複数の計算機をネットワークを介して結合した並列計算機システムにおけるジョブスケジューリングプログラムであって、
上記ジョブスケジューリングプログラムは、並列計算機システムを構成する各々の計算機に設けられた温度センサによって取得した値をもとにジョブの投入先計算機を決定する処理をコンピュータに実行させる
ことを特徴とするジョブスケジューリングプログラム。
（付記８）　複数の計算機をネットワークを介して結合した並列計算機システムにおけるジョブスケジューリングプログラムであって、
上記ジョブスケジューリングプログラムは、並列計算機システムを構成する各々の計算機に設けられた温度センサによって取得した値をもとに実行中のジョブを他の計算機に割り付け直す処理をコンピュータに実行させる
ことを特徴とするジョブスケジューリングプログラム。
【００１９】
【発明の効果】
以上説明したように、本発明においては、並列計算機システムを構成する各計算機に温度センサを設け、センサから得られる温度分布情報をもとにジョブスケジューリングを行っているので、充分に排熱しきれないためシステムに障害をきたし、性能低下につながるといった問題を解決することができる。また、省エネルギーを実現でき、システム全体のランニングコストを下げることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施例を示す図である。
【図２】温度情報管理テーブルの構成例を示す図である。
【図３】本発明の第２の実施例を示す図である。
【図４】ジョブ情報管理テーブルの構成例を示す図である。
【図５】本発明の第３の実施例を示す図である。
【図６】本発明の第４の実施例を示す図である。
【図７】第４の実施例における処理を示すフローチャートである。
【符号の説明】
１００，１０１，１０２，１０３　　　　　計算機
２００，２０１，２０２，２０３　　　　　計算機
３００，３０１，３０２，３０３　　　　　計算機
４００，４０１，４０２，４０３　　　　　計算機
１２０，２２０，３２０　　　　ネットワーク
１１０，２１０，４１０　　　　スケジューラ計算機
１０〜１３，２０〜２３　　　　温度センサ
３０〜３３，４０〜４３　　　　温度センサ
５０〜５３　　　　　　　　　　冷却装置
【図１】
2004126968.tif 000003
【図２】
2004126968.tif 000004
【図３】
2004126968.tif 000005
【図４】
2004126968.tif 000006
【図５】
2004126968.tif 000007
【図６】
2004126968.tif 000008
【図７】
2004126968.tif 000009