(57)【要約】【課題】計算機の処理性能の低下を抑える情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラムを提供する。【解決手段】ジョブ情報取得部１１は、各ノード２の温度を取得する。ジョブ情報取得部１１は、１つ又は複数のノード２により実行される所定処理をノード２のいずれかに実行させた場合の所定処理を実行したノード２の第１上昇温度及び所定処理を実行したノード２以外のノード２の第２上昇温度を取得する。ジョブ実行制御部１３は、温度情報取得部１４により取得された各ノード２の温度、並びに、ジョブ情報取得部１１により取得された第１上昇温度及び第２上昇温度を基に、所定処理を実行させるノード２を決定する。【選択図】図２
2019046041.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算処理装置のそれぞれの温度を取得する温度情報取得部と、
１つ又は複数の前記演算処理装置により実行される所定処理を前記演算処理装置のいずれかに実行させた場合の前記所定処理を実行した前記演算処理装置の第１上昇温度及び前記所定処理を実行した前記演算処理装置以外の演算処理装置の第２上昇温度を取得する上昇温度取得部と、
前記温度情報取得部により取得された各前記演算処理装置の温度、並びに、前記上昇温度取得部により取得された前記第１上昇温度及び前記第２上昇温度を基に、前記所定処理を実行させる演算処理装置を決定する実行制御部と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記上昇温度取得部は、所定の演算処理装置の温度が上昇した場合に温度が上昇する被影響演算処理装置を予め記憶し、前記所定の演算処理装置に前記所定処理を実行させた場合、前記所定の演算処理装置の前記第１上昇温度及び前記被影響演算処理装置の前記第２上昇温度を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記実行制御部は、前記所定処理を実行させた場合に各前記実行制御部の温度が、各前記演算処理装置のそれぞれの許容温度以内に収まるように前記所定処理を実行させる演算処理装置を決定することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記実行制御部は、前記演算処理装置が有する資源の情報を予め有し、前記所定処理が使用する量の資源を有する演算処理装置の中から、前記所定処理を実行する前記演算処理装置を決定することを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記実行制御部は、複数の前記所定処理を前記演算処理装置に実行させる場合、予め決められた各所定処理の優先度にしたがって各所定処理を実行する前記演算処理装置を決定することを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
複数の演算処理装置及び管理装置を有する情報処理システムであって、
前記管理装置は、
各前記演算処理装置の温度を取得する温度情報取得部と、
１つ又は複数の前記演算処理装置により実行される所定処理を前記演算処理装置のいずれかに実行させた場合の前記所定処理を実行した前記演算処理装置の第１上昇温度及び前記所定処理を実行した前記演算処理装置以外の演算処理装置の第２上昇温度を取得する上昇温度取得部と、
前記温度情報取得部により取得された各前記演算処理装置の温度、並びに、前記上昇温度取得部により取得された前記第１上昇温度及び前記第２上昇温度を基に、前記所定処理を実行させる演算処理装置を決定する実行制御部と
を備えたことを特徴とする情報処理システム。
【請求項７】
複数の演算処理装置を管理する情報処理装置の制御方法であって、
各前記演算処理装置の温度を取得し、
１つ又は複数の前記演算処理装置により実行される所定処理を前記演算処理装置のいずれかに実行させた場合の前記所定処理を実行した前記演算処理装置の第１上昇温度を取得し、
前記所定処理を実行した前記演算処理装置以外の演算処理装置の第２上昇温度を取得し、
各前記演算処理装置の温度、並びに、前記第１上昇温度及び前記第２上昇温度を基に、前記所定処理を実行させる演算処理装置を決定する
ことを特徴とする情報処理装置の制御方法。
【請求項８】
複数の演算処理装置を管理する情報処理装置の制御プログラムであって、
各前記演算処理装置の温度を取得し、
１つ又は複数の前記演算処理装置により実行される所定処理を前記演算処理装置のいずれかに実行させた場合の前記所定処理を実行した前記演算処理装置の第１上昇温度を取得し、
前記所定処理を実行した前記演算処理装置以外の演算処理装置の第２上昇温度を取得し、
各前記演算処理装置の温度、並びに、前記第１上昇温度及び前記第２上昇温度を基に、前記所定処理を実行させる演算処理装置を決定する
処理をコンピュータに実行させることを特徴とする情報処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラムに関する。
【背景技術】
【０００２】
近年、高度情報化社会の到来に伴い大量のデータが取り扱われるようになり、多数の計算機を有する大規模計算環境を計算に用いることが増加している。例えば、大規模計算環境では、各計算機に１つ又は複数のジョブが投入され、それぞれの計算機が実行するジョブを統合することで複雑な演算処理が実現される。
【０００３】
ここで、ジョブとは、プログラムにおける１つのまとまった仕事を行う処理の単位である。また、ここではジョブを投入することができる物理的なかたまり、すなわちジョブの投入単位となる１つの装置をノードと呼ぶ。例えば、ＣＰＵ（Central  Processing  Unit）やＣＰＵソケットといった物理的コンポーネントを複数有する計算機の場合、各物理コンポーネントに対してジョブが投入されるのであれば、その物理コンポーネント１つが１つのノードである。計算機として１つの筐体に複数のノードを搭載したサーバ装置は、マルチノードサーバと呼ばれる。例えば、マルチノードサーバには、例えば、１つの筐体に前面に４ノード、背面に４ノード配置できる装置がある。
【０００４】
このような大規模計算環境では、多数の計算機が同一室内に設置され一括管理されることが多い。このような状況下では、計算機から多量の熱が発生して処理性能が低下する原因になるおそれがある。
【０００５】
そこで、適切な動作のために各計算機には温度の上限が設定されている。一般的に、ノードの動作周波数が高いほど、計算機は高い性能を発揮することが可能である。また、プログラムを実行することで、計算機の温度は上昇する。温度が上昇すると、計算機は、温度の上限を超えないように、ノードの動作周波数の上昇を抑えて温度の上昇を回避する。ただし、ノードの動作周波数が低く抑えられた場合、計算機の処理性能は低下してしまう。そのため、計算機は、温度制約を受けない範囲でノードが動作するように、プログラムを実行することが好ましい。
【０００６】
このように演算装置の温度を抑えるための冷却方式として、空冷方式と水冷方式という２つの冷却方式が考えられる。
【０００７】
さらに、温度制約を有する計算機を動作させる技術として、演算時の各物理コンポーネントの熱特性を事前に計測し、計測した熱特性に基づいて熱閾値を超えないように各物理コンポーネントへのタスクの割り当てを行う従来技術がある。また、タスクの割り当てに応じて予測される負荷率及び温度特性情報を予め記憶し、複数のタスクの割り当て方を示す配置パターンの中で最高温度が低い配置パターンを選択してタスクを割り当てる従来技術がある。また、周囲温度、内部温度及びＣＰＵの負荷を基に、各ノードコンピュータの限界温度内の許容処理量を算出し、許容処理量以内の作業を各ノードコンピュータに配分する従来技術がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−２８５１２３号公報
【特許文献２】特開２００９−２７７０２２号公報
【特許文献３】特開２００５−１４１６６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、空冷方式及び水冷方式の何れの冷却方式であっても、冷却媒体を流して各ノードの冷却を行うため、冷却媒体の流れの上流側が下流側に比べて温度が低い状態となる。例えば、水冷方式では、上流側のノードが熱くなった場合、上流側のノードを冷やすことで水が多くの熱を奪われるため、下流側のノードを冷やし難くなり、下流側のノードが熱くなる。ここで、水冷において冷却媒体に複数の流路がある場合、１つの流路において上流側のノードの発熱により、下流側のノードの温度が上昇しても、他の流路の下流側のノードの温度はそれほど上昇しない。また、下流側のノードが熱くなっても、上流側のノードがその影響を受けて温度が上昇することはない。空冷の場合、例えば前面から背面に空気を流すことが考えられるが、その場合も空気の流れの下流側のノードは上流側のノードの発熱の影響を受けて温度が上昇する。このように冷却媒体の流路に対するノードの搭載位置により、温度の依存関係が生じる。そのため、冷却媒体の流路に対するノードの搭載位置を考慮せずに各ノードの動作を制御しても、ノードの温度が温度閾値を超えるおそれがあり、計算機の処理性能の低下を抑えることは困難である。
【００１０】
この点、計測した熱特性に基づいて熱閾値を超えないようにタスクの割り当てを行う従来技術では、冷却媒体の流路に対するノードの搭載位置を考慮しておらず、計算機の処理性能の低下を抑えることは困難である。これは、タスクの配置パターンの中で最高温度が低い配置パターンを選択する従来技術及び許容処理量以内の作業を各ノードコンピュータに配分する従来技術の何れでも同様である。
【００１１】
開示の技術は、上記に鑑みてなされたものであって、計算機の処理性能の低下を抑える情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願の開示する情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラムの一つの態様において、温度情報取得部は、複数の演算処理装置のそれぞれの温度を取得する。上昇温度取得部は、１つ又は複数の前記演算処理装置により実行される所定処理を前記演算処理装置のいずれかに実行させた場合の前記所定処理を実行した前記演算処理装置の第１上昇温度及び前記所定処理を実行した前記演算処理装置以外の演算処理装置の第２上昇温度を取得する。実行制御部は、前記温度情報取得部により取得された各前記演算処理装置の温度、並びに、前記上昇温度取得部により取得された前記第１上昇温度及び前記第２上昇温度を基に、前記所定処理を実行させる演算処理装置を決定する。
【発明の効果】
【００１３】
１つの側面では、本発明は、計算機の処理性能の低下を抑えることができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、情報処理システムの概略構成図である。
【図２】図２は、管理ノードのブロック図である。
【図３】図３は、実施例１に係るノード情報テーブルの一例の図である。
【図４】図４は、実施例１に係るジョブ情報テーブルの一例の図である。
【図５】図５は、ジョブＸを割り当てた状態のノード情報テーブルを表す図である。
【図６】図６は、ジョブＹを割り当てた状態のノード情報テーブルを表す図である。
【図７】図７は、ジョブＺを割り当てた状態のノード情報テーブルを表す図である。
【図８】図８は、実施例１に係る管理ノードによるジョブの割り当て処理のフローチャートである。
【図９】図９は、実施例２に係るノード情報テーブルの一例の図である。
【図１０】図１０は、実施例２に係るジョブ情報テーブルの一例の図である。
【図１１】図１１は、実施例３に係るジョブ情報テーブルの一例の図である。
【図１２】図１２は、管理ノードのハードウェア構成図である。
【発明を実施するための形態】
【００１５】
以下に、本願の開示する情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラムが限定されるものではない。
【実施例１】
【００１６】
図１は、情報処理システムの概略構成図である。図１に示すように、本実施例に係る情報処理システム１００は、管理ノード１及び複数のノード２を有する。管理ノード１とノード２とはネットワーク３により接続される。ネットワーク３は、例えば、Ｉｎｆｉｎｉｂａｎｄ（登録商標）などである。
【００１７】
ノード２は、ジョブの投入単位である。例えば、１台の計算機の中に複数のＣＰＵが搭載されている場合、各ＣＰＵそれぞれにジョブが投入可能であれば、各ＣＰＵがノード２となる。また、１台の計算機に１つのジョブが投入される場合であれば、各計算機がノード２となる。
【００１８】
ノード２は、投入されたジョブを実行する。複数のノード２により１つのジョブが実行されてもよいし、１つのノード２により１つのジョブが実行されてもよい。また、ノード２は、それぞれが異なるジョブを実行することもできる。このノード２が、「演算処理装置」の一例にあたる。
【００１９】
管理ノード１は、ノード２に対するジョブの割り当ての決定及び割り当てたノード２へのジョブの投入を行うジョブスケジューラを実行する。具体的には、管理ノード１は、操作者からノード２に実行させるジョブの入力を受ける。そして、管理ノード１は、入力されたジョブを実行させるノード２を選択してジョブを割り当てる。そして、管理ノード１は、ジョブを割り当てたノード２に対してジョブを投入して実行させる。この管理ノード１が、「情報処理装置」の一例にあたる。
【００２０】
次に、図２を参照して、管理ノード１によるノード２へのジョブの割り当てについて説明する。図２は、管理ノード１のブロック図である。管理ノード１は、ジョブ情報取得部１１、記憶部１２、ジョブ実行制御部１３及び温度情報取得部１４を有する。
【００２１】
記憶部１２は、ハードディスクなどの記憶装置である。記憶部１２は、予め操作者から入力されたノード情報テーブル１２１及びジョブ情報テーブル１２２を有する。
【００２２】
図３は、実施例１に係るノード情報テーブルの一例の図である。ノード情報テーブル１２１は、図３に示すように、ノード２毎の許容温度、現在温度、予想温度及び実行ジョブの登録欄を有する。ここでは、１台の計算機の中に前面に４台のノード２が配置され是面に配置された各ノード２と対応する背面の位置に４台のノード２が配置される場合で説明する。すなわち、計算機を前面側から見た場合、前面のノード２とそれぞれに対応する背面のノード２とは重なった状態となる。また、冷却媒体は、計算機の前面から背面に向けて流れる。以下では、計算機の前面、すなわち冷却媒体の流路の上流にあたる位置に配置されたノード２を、上流ノードと言う。また、計算機の背面、すなわち冷却媒体の流路の下流にあたる位置に配置されたノード２を、下流ノードと言う。さらに、計算機に配置された８つのノード２をそれぞれノード＃１〜＃８とする。
【００２３】
ノード情報テーブル１２１では、１つの筐体に格納されたノード２が１つのグループとされる。さらに、上流ノードの温度上昇は、その上流ノードに対応する下流ノードに影響を与える。そこで、ノード情報テーブル１２１では、影響を与える側の上流ノードと影響を与えられる側の下流ノードとが、それぞれ別のまとまりとして登録される。
【００２４】
さらに、ノード情報テーブル１２１では、影響と与える上流ノードと影響を与えられる下流ノードとが対応するように上下に登録される。そして、ノード情報テーブル１２１における影響と与える影響側である上流ノードと影響を与えられる被影響側である下流ノードとの組を温度影響範囲という。ここで、本実施例では、配置位置が前後となる上流ノードと下流ノードの組を温度影響範囲としたが、温度影響範囲はこれに限らない。例えば、上流ノードに対して前後となる下流ノードに加えてその下流ノードに隣接する下流ノードも、上流ノードの温度上昇の影響を受けるのであれば、それらの隣接する下流ノードも含めて温度影響範囲とされる。温度影響範囲、並びに、影響範囲における影響側のノード２及び被影響側のノード２の指定は、操作者から入力される情報である。
【００２５】
図３では、ノード２を１列に並べることで温度影響範囲を表したが、温度依存関係がある影響側と被影響側とを分けて表すことができれば、他の方法で表してもよい。例えば、温度影響範囲が重複する場合などは、影響範囲が重複するノードを１か所で表し、その情報へのリンクを複数個所に設定するなどしてもよい。本実施例では、温度影響範囲における上流ノードが影響側のノード２であり、下流ノードが被影響側のノード２である。この下流ノードなどの被影響側のノード２が、「被影響演算処理装置」の一例にあたる。そして、温度影響範囲、並びに、影響範囲における影響側のノード２及び被影響側のノード２の情報が、「所定の演算処理装置の温度が上昇した場合に温度が上昇する被影響演算処理部」の情報の一例にあたる。
【００２６】
ノード情報テーブル１２１における許容温度は、各ノード２の温度の上限値である。許容温度は、各ノード２の仕様にしたがって予め登録される。また、現在温度は、各ノード２の現在の計測温度である。また、予想温度は、各ノード２が、ジョブを実行した場合に達する温度である。また、実行ジョブは、各ノード２に割り当てられたジョブである。
【００２７】
また、図４は、実施例１に係るジョブ情報テーブルの一例の図である。ジョブ情報テーブル１２２は、各ジョブの使用ノード数、温度上昇及び被影響側上昇温度が登録される。温度上昇は、ノード２がそのジョブを実行した場合の温度上昇を表す。また、被影響側温度上昇は、温度影響範囲にある影響側のノード２がそのジョブを実行した場合の、被影響側のノード２の温度上昇を表す。例えば、ジョブＸをノード＃１が実行した場合、ノード＃１の温度は２０℃上昇し、ノード＃５の温度は１０℃上昇する。ジョブ情報テーブル１２２は、例えば、ジョブを事前に実行した場合の温度上昇及び被影響側上昇温度が登録される。他には、ジョブ情報テーブル１２２は、過去に実行した各ジョブの実行履歴に含まれる温度上昇及び被影響側上昇温度が登録されてもよい。ジョブ情報テーブル１２２における温度上昇及び被影響側上昇温度が、「第１上昇温度」及び「第２上昇温度」の一例にあたる。
【００２８】
ここで、本実施例では、前後に配置された上流ノードと下流ノードとが温度影響範囲に含まれるため、被影響側上昇温度として１種類の温度を設定した。ただし、被影響側のノード２が複数ありそれぞれが異なる影響を受ける場合、影響に応じて異なる種類の被影響側温度上昇を設定することが好ましい。
【００２９】
ジョブ情報取得部１１は、各ジョブを事前にノード２に実行させ、その場合の温度上昇及び被影響側上昇温度を取得する。そして、ジョブ情報取得部１１は、取得した各ジョブを実行した場合の温度上昇及び被影響側上昇温度を記憶部１２のジョブ情報テーブル１２２へ登録する。この他にも、ジョブ情報取得部１１は、過去に実行したジョブの実行履歴から温度上昇及び被影響側上昇温度を取得してジョブ情報テーブル１２２に登録してもよい。
【００３０】
ジョブ情報取得部１１は、ジョブを受け付ける。ここで、ジョブ情報取得部１１は、操作者からジョブの実行指示を受けることでジョブの受け付けてもよいし、予め登録されたジョブの情報を決められたタイミングで読み込むことでジョブを受け付けてもよい。次に、ジョブ情報取得部１１は、受け付けたジョブのジョブ名を取得する。そして、ジョブ情報取得部１１は、取得したジョブ名に対応する使用ノード数、温度上昇及び被影響側上昇温度をジョブ情報テーブル１２２から取得する。そして、ジョブ情報取得部１１は、ジョブ名、使用ノード数、温度上昇及び被影響側上昇温度をジョブ実行制御部１３へ出力する。このジョブ情報取得部１１が、「上昇温度取得部」の一例にあたる。
【００３１】
温度情報取得部１４は、各ノード２から現在の計測温度を定期的に収集する。例えば、温度情報取得部１４は、ＣＰＵ情報を保持するレジスタＭＳＲ（Model  Specific  Register）から温度情報を取得することができる。他にも、温度情報取得部１４は、ハードウェアの各種センサ情報の取得や遠隔操作を行うためのインタフェースであるＩＰＭＩ（Intelligent  Platform  Management  Interface）から温度情報を取得することができる。そして、温度情報取得部１４は、各ノード２の現在の計測温度をノード情報テーブル１２１の各ノード２の現在温度の欄に登録する。
【００３２】
ジョブ実行制御部１３は、実行するジョブのジョブ名、使用ノード数、温度上昇及び被影響側上昇温度の入力をジョブ情報取得部１１から受ける。以下では、入力されたジョブ名を有するジョブを受付ジョブという。
【００３３】
ジョブ実行制御部１３は、ノード情報テーブル１２１に登録された各ノード２の中でジョブを実行していないノード２を選択し、現在温度に温度上昇の値を加算して、受付ジョブを実行させた場合の各ノード２の温度を算出する。そして、ジョブ実行制御部１３は、ジョブを実行していないノード２の中から、受付ジョブを実行させた場合に許容温度を超えないノード２を抽出する。以下では、この抽出したノード２を、「使用可能ノード」という。
【００３４】
次に、ジョブ実行制御部１３は、使用可能ノードの中から受付ジョブの使用ノード数のノード２を選択する。例えば、ジョブ実行制御部１３は、現在温度が低い順にノード２を選択する。ただし、このノード２の選択は他の方法でもよく、例えば、影響側のノード２又は被影響側のノード２のいずれかからまとめて選んでもよいし、予めノード２に振られた番号の若い順に選んでもよい。以下では、ジョブ実行制御部１３により選択されたノード２を、「割当候補ノード」という。
【００３５】
次に、ジョブ実行制御部１３は、割当候補ノードの中に影響側のノード２があり、且つその影響側のノード２の温度影響範囲に含まれる被影響側のノード２が存在するか否かを判定する。同じ温度影響範囲にある影響側及び被影響側のノード２が割当候補ノードに存在する場合、被影響側のノード２の上昇後の温度に被影響側上昇温度の値を加算する。ここで、割当候補ノードの中の１つのノード２が割当候補ノードの中の複数の影響側のノード２に対する被影響側のノード２である場合、割当候補ノードに含まれる影響側のノード２に応じて、被影響側のノード２の温度に被影響側上昇温度が加算される。そして、ジョブ実行制御部１３は、割当候補ノードに含まれる被影響側のノード２の中で許容温度を超えるノード２が存在するか否かを判定する。許容温度を超えるノード２が存在する場合、ジョブ実行制御部１３は、使用可能ノードの中から他の組み合わせの割当候補ノードを選択してここまでの処理を繰り返す。
【００３６】
許容温度を超えるノード２が存在しない場合、ジョブ実行制御部１３は、割当候補ノードの中に影響側のノード２が存在するか否かを判定する。影響側のノード２が存在する場合、ジョブ実行制御部１３は、そのノード２の温度影響範囲にあり且つ割当候補ノードに含まれないノード２を特定する。そして、ジョブ実行制御部１３は、特定したノード２の現在温度に被影響側上昇温度の値を加算する。そして、ジョブ実行制御部１３は、加算結果が許容温度を超えるか否かを判定する。加算結果が許容温度を超える場合、ジョブ実行制御部１３は、使用可能ノードの中から他の組み合わせの割当候補ノードを選択してここまでの処理を繰り返す。
【００３７】
これに対して、加算結果が許容温度を超えない場合、ジョブ実行制御部１３は、割当候補ノードに対して受付ジョブを割り当てることを決定する。そして、ジョブ実行制御部１３は、ノード情報テーブル１２１の、受付ジョブを割り当てるノード２の現在温度に受付ジョブを実行した場合の温度上昇を加算した値を予想温度に登録する。さらに、ジョブ実行制御部１３は、受付ジョブを割り当てるノード２の中に影響側のノード２がある場合、そのノード２の温度影響範囲にある被影響側のノード２の予想温度を算出して登録する。具体的には、被影響側のノード２に既に予想温度が登録されている場合、ジョブ実行制御部１３は、影響側のノード２の受付ジョブの実行による被影響側上昇温度を被影響側のノード２の既登録の予想温度に加えた値を新たな予想温度として登録する。これに対して、被影響側のノード２に素手の予想温度が登録されていない場合、ジョブ実行制御部１３は、影響側のノード２の受付ジョブの実行による被影響側上昇温度を被影響側のノード２の現在温度に加えた値を予想温度として登録する。
【００３８】
ここで、いずれかのノード２の温度が許容温度を超えてしまうため、受付ジョブの割り当てが困難な場合、ジョブ実行制御部１３は、各ノード２の温度が低下して受付ジョブの割り当てが行えるようになるまで待機する。その後、ジョブ実行制御部１３は、上述した使用可能ノードの抽出、候補ノード判定の選択及び受付ジョブの割り当ての可否の判定を再度行う。このジョブ実行制御部１３が、「実行制御部」の一例にあたる。そして、受付ジョブが、「所定処理」の一例にあたる。
【００３９】
ここで、図３、４及び５〜７を参照して、ジョブ実行制御部１３によるジョブの割り当ての一例について説明する。図５は、ジョブＸを割り当てた状態のノード情報テーブルを表す図である。図６は、ジョブＹを割り当てた状態のノード情報テーブルを表す図である。図７は、ジョブＺを割り当てた状態のノード情報テーブルを表す図である。ここでは、各ノード２が図３のノード情報テーブル１２１で表される状態の場合で説明する。また、ジョブ情報取得部１１が図４に示すジョブ情報テーブル１２２に登録されたジョブＸ、ジョブＹ、ジョブＺの順にジョブを受け付けた場合で説明する。さらに、ここでは、ジョブ実行制御部１３は、ジョブの実行による温度上昇が大きい場合は上流ノードへの割り当てを優先し、ジョブの実行による温度上昇が小さい場合は下流ノードへの割り当てを優先する。例えば、ジョブ実行制御部１３は、温度上昇が１０℃以上の場合にジョブの実行による温度上昇が大きいと判定する。
【００４０】
ジョブ実行制御部１３は、ジョブＸの情報の入力をジョブ情報取得部１１から受ける。ジョブＸの温度上昇は１０℃であり、ジョブ実行制御部１３は、上流ノードへの割り当てを優先する。図３に示すようにジョブＸを投入前のノード＃１の現在温度は３０℃であり、許容温度が７５℃である。そして、ジョブＸを実行させた場合の温度上昇は２０℃であり、被影響側上昇温度は１０℃である。そこで、ジョブ実行制御部１３は、ノード＃１の現在温度に温度上昇を加算してジョブＸをノード＃１に実行させた場合の予想温度を５０℃と求める。ノード＃１にジョブＸを実行させた場合の予想温度は許容温度より低いので、ジョブ実行制御部１３は、ノード＃１をジョブＸの割当候補ノードとする。さらに、ジョブ実行制御部１３は、上流ノードであるノード＃１の温度影響範囲にある下流ノードであるノード＃５の現在温度に被影響側上昇温度を加算してジョブＸをノード＃１に実行させた場合のノード＃５の予想温度を４３℃と求める。ジョブＸをノード＃１に実行させた場合のノード＃５は予想温度は許容温度より低いので、ジョブ実行制御部１３は、ノード＃１にジョブＸを割り当てることを決定する。そして、ジョブ実行制御部１３は、ノード＃１の予想温度及び実行ジョブを登録し、さらにノード＃５の予想温度を登録する。これにより、ノード情報テーブル１２１は、図５の状態となる。
【００４１】
次に、ジョブ実行制御部１３は、ジョブＹの情報の入力をジョブ情報取得部１１から受ける。ジョブＹの温度上昇は５℃であり、ジョブ実行制御部１３は、下流ノードへの割り当てを優先する。ジョブ実行制御部１３は、図５に示すジョブＹを投入前のノード＃５〜＃８の現在温度にジョブＹを実行させた場合の温度上昇である５℃を加算してジョブＹをノード＃５〜＃８に実行させた場合の予想温度を求める。ノード＃５〜＃８にジョブＹを実行させた場合の予想温度は許容温度より低いので、ジョブ実行制御部１３は、ノード＃５〜＃８をジョブＹの割当候補ノードとする。ここで、ノード＃５〜＃８は下流ノードであり影響側のノード２にはならないので、ジョブ実行制御部１３は、そのままノード＃５〜＃８にジョブＹを割り当てることを決定する。そして、ジョブ実行制御部１３は、ノード＃５〜＃８の予想温度及び実行ジョブを登録する。これにより、ノード情報テーブル１２１は、図６の状態となる。
【００４２】
さらに、ジョブ実行制御部１３は、ジョブＺの情報の入力をジョブ情報取得部１１から受ける。ここでは、この時がノード＃１におけるジョブＸの実行完了の直後の場合で説明する。この時、ノード＃１の温度は図６の状態から変化して現在温度が５０℃に達しているものとする。この場合、ノード＃１の現在温度にジョブＺの温度上昇である３０℃を加算すると８０℃となり、許容温度を超えてしまう。そこで、ジョブ実行制御部１３は、使用可能ノードからノード＃１を外す。
【００４３】
そして、ジョブ実行制御部１３は、図６に示すジョブＺを投入前のノード＃２及び＃３の現在温度にジョブＺを実行させた場合の温度上昇である３０℃を加算してジョブＺをノード＃２及び＃３に実行させた場合の予想温度を求める。ノード＃２及び＃３にジョブＺを実行させた場合の予想温度は許容温度より低いので、ジョブ実行制御部１３は、ノード＃２及び＃３をジョブＹの割当候補ノードとする。さらに、ジョブ実行制御部１３は、上流ノードであるノード＃１及び＃３の温度影響範囲にある下流ノードであるノード＃６及び＃７の予想温度に被影響側上昇温度を加算してジョブＺをノード＃２及び＃３に実行させた場合のノード＃６及び＃７の予想温度を４９℃と求める。ジョブＺをノード＃２及び＃３に実行させた場合のノード＃６及び＃７の予想温度は許容温度より低いので、ジョブ実行制御部１３は、ノード＃２及び＃３にジョブＺを割り当てることを決定する。そして、ジョブ実行制御部１３は、ノード＃２及び＃３の予想温度及び実行ジョブを登録し、さらにノード＃６及び＃７の予想温度を登録する。これにより、ノード情報テーブル１２１は、図７の状態となる。
【００４４】
次に、図８を参照して、本実施例に係る管理ノード１によるジョブの割り当て処理について説明する。図８は、実施例１に係る管理ノードによるジョブの割り当て処理のフローチャートである。
【００４５】
ジョブ情報取得部１１は、予め決められた各ジョブを事前にノード２に実行させ、各ジョブを実行した場合の温度上昇及び被影響側上昇温度を取得する。そして、ジョブ情報取得部１１は、取得した温度上昇及び被影響側上昇温度を登録することでジョブ情報テーブル１２２を作成し、記憶部１２に格納させる（ステップＳ１）。
【００４６】
また、記憶部１２は、操作者から入力された温度影響範囲及び各ノード２の許容温度を登録したノード情報テーブル１２１を格納する（ステップＳ２）。
【００４７】
その後、ジョブ情報取得部１１は、ジョブを受け付ける（ステップＳ３）。そして、ジョブ情報取得部１１は、受付ジョブのジョブ名を取得する。次に、ジョブ情報取得部１１は、取得したジョブ名に対応する使用ノード数、温度上昇及び被影響側上昇温度をジョブ情報テーブル１２２から取得する。そして、ジョブ情報取得部１１は、ジョブ名、使用ノード数、温度上昇及び被影響側上昇温度をジョブ実行制御部１３へ出力する。
【００４８】
また、温度情報取得部１４は、各ノード２から計測温度を取得する。そして、温度情報取得部１４は、取得した各ノード２の計測温度を現在温度に登録してノード情報テーブル１２１を更新する（ステップＳ４）。
【００４９】
ジョブ実行制御部１３は、ジョブ名、使用ノード数、温度上昇及び被影響側上昇温度の入力をジョブ情報取得部１１から受ける。また、ジョブ実行制御部１３は、各ノード２の温度影響範囲、現在温度及び許容温度をノード情報テーブル１２１から取得する。そして、ジョブ実行制御部１３は、実行するジョブの使用ノード数のノード２にジョブを投入した場合に、グループ内の全てのノード２が許容温度を超えないようにジョブの割り当て処理を実行する（ステップＳ５）。
【００５０】
そして、ジョブ実行制御部１３は、ジョブが投入可能なノード２が存在するか否かを判定する（ステップＳ６）。ジョブが投入可能なノード２が存在しない場合（ステップＳ６：否定）、ジョブ実行制御部１３は、ステップＳ５に戻り、ノード２の温度が下がりジョブが投入可能なノード２が存在するようになるまで待機する。
【００５１】
ジョブが投入可能なノード２が存在する場合（ステップＳ６：肯定）、ジョブ実行制御部１３は、ジョブを割り当てるノード２を決定する。そして、ジョブ実行制御部１３は、ジョブを割り当てたノード２の実行ジョブ及びジョブを実行させた場合の各ノード２の予想温度をノード情報テーブル１２１へ登録する。その後、ジョブ実行制御部１３は、ジョブを割り当てたノード２へジョブを投入して実行させる（ステップＳ７）。
【００５２】
以上に説明したように、本実施例に係る管理ノードは、ジョブを実行させた場合の各ノードの予想温度を、温度影響範囲内の影響側のノードがジョブを実行した場合の被影響側のノードの温度上昇を考慮して求める。これにより、ノード間の温度上昇の依存関係を考慮した適切な予測温度を求めることができ、各ノードの温度を許容温度内に収めることができる。すなわち、各ノードの動作周波数の抑制を回避することができ、計算機の処理性能の低下を抑えることができる。
【実施例２】
【００５３】
次に、実施例２について説明する。本実施例に係る管理ノードは、ジョブの使用資源も考慮してジョブを割り当てるノードを決定することが実施例１と異なる。本実施例に係る管理ノードも図２のブロック図で表される。以下の説明では、実施例１と同様の各部の動作については説明を省略する。
【００５４】
本実施例に係るノード情報テーブル１２１は、図９に示すように各ノード２の使用可能メモリ量及び使用可能コア数が登録される。図９は、実施例２に係るノード情報テーブルの一例の図である。
【００５５】
ジョブ情報取得部１１は、指定されたジョブを事前にノード２に実行させ、使用ノード数、温度上昇、被影響側上昇温度、メモリ使用量及び使用コア数を取得する。そして、ジョブ情報取得部１１は、取得した使用ノード数、温度上昇、被影響側上昇温度、メモリ使用量及び仕様コア数を登録して、図１０に示すようなジョブ情報テーブル１２２を作成する。図１０は、実施例２に係るジョブ情報テーブルの一例の図である。
【００５６】
ジョブ実行制御部１３は、ノード情報テーブル１２１に登録されたノード２のうちジョブを実行していないノード２の中から、ジョブ情報取得部１１から入力された受付ジョブのメモリ使用量と使用コア数を満たすことが可能なノード２の組み合わせを選択する。
【００５７】
ここで、受付ジョブのメモリ使用量と使用コア数を満たすことが可能なノード２の組み合わせを選択することが困難な場合、ジョブ実行制御部１３は、ジョブを実行中のノード２のジョブの実行が完了するまで待機する。そして、ジョブ実行制御部１３は、ジョブを実行していないノード２の中から、受付ジョブのメモリ使用量と使用コア数を満たすことが可能なノード２の組み合わせを選択することを繰り返す。
【００５８】
次に、ジョブ実行制御部１３は、現在温度、温度上昇、被影響側上昇温度及び温度影響範囲を用いて、選択した各組み合わせのノード２に受付ジョブを実行させた場合の、ノード情報テーブル１２１に登録された各ノード２の予測温度を求める。そして、ジョブ実行制御部１３は、選択した各組み合わせのノード２に受付ジョブを実行させた場合に、ノード情報テーブル１２１に登録された各ノード２の中で許容温度を超えるノード２が存在するか否かを判定する。
【００５９】
ジョブ実行制御部１３は、許容温度を超えるノード２が存在する組み合わせを受付ジョブの割り当ての候補から外す。受付ジョブの割り当ての候補となるノード２の組み合わせが存在しない場合、ジョブ実行制御部１３は、各ノード２の現在温度が低下するまで待機し、その後、受付ジョブの割り当てを再度行う。そして、ジョブ実行制御部１３は、残ったノード２の組み合わせの中から受付ジョブを割り当てるノード２の組み合わせを決定する。その後、ジョブ実行制御部１３は、割り当てたノード２に受付ジョブを投入し実行させる。
【００６０】
以上に説明したように、本実施例に係る管理ノードは、ジョブの使用資源を満たすノードの組み合わせのうちのジョブ実行時に各ノードが許容温度を超えないノードの組み合わせの中からジョブを割り当てるノードの組み合わせを決定する。これにより、確実にジョブを実行可能なノードを選択することで、より適切なジョブの割り当てを行うことができ、計算機の効率的な利用が可能となる。
【実施例３】
【００６１】
次に、実施例３について説明する。本実施例に係る管理ノードは、ジョブの優先度も考慮してジョブを割り当てるノードを決定することが実施例１と異なる。本実施例に係る管理ノードも図２のブロック図で表される。以下の説明では、実施例１と同様の各部の動作については説明を省略する。
【００６２】
ジョブ情報取得部１１は、操作者から各ジョブの優先度の入力を受ける。そして、ジョブ情報取得部１１は、ジョブ情報テーブル１２２に登録された各ジョブに対してそれぞれの優先度を登録する。これにより、ジョブ情報取得部１１は、図１１に示すジョブ情報テーブル１２２を作成する。図１１は、実施例３に係るジョブ情報テーブルの一例の図である。
【００６３】
ジョブ実行制御部１３は、受付ジョブのジョブ名、使用ノード数、温度上昇及び被影響側上昇温度に加えて優先度の入力をジョブ情報取得部１１から受ける。そして、ジョブ実行制御部１３は、受付ジョブの優先度が高い場合、受付ジョブを割り当て可能なノード２の中で温度の低い順にノード２の割り当てを行う。ここで、ジョブ実行制御部１３は、予め優先度の高低を判定する閾値を有し、その閾値よりも優先度が高ければ受付ジョブの優先度が高いと判定する。また、優先度を用いたジョブの区分は高低の２つでなくてもよく、ジョブ実行制御部１３は、優先度を用いてジョブを３つ以上の区分に分け、それぞれの区分に応じた温度を有するノード２を割り当ててもよい。
【００６４】
また、複数のジョブを同時に受け付けた場合又は複数のジョブが割り当て待ちの状態の場合、ジョブ実行制御部１３は、優先度の高いジョブに対して先に割り当てを行う。例えば、ジョブ実行制御部１３は、ジョブＺの実行指示をジョブ情報取得部１１から受け、その後、ジョブＺの割り当て前にジョブＹの実行指示をジョブ情報取得部１１から受けた場合を説明する。この場合、ジョブ実行制御部１３は、ジョブＹ及びＺを割り当て待ちの状態で待機させる。そして、ジョブＹがジョブＺより優先度が高いので、ジョブ実行制御部１３は、ジョブＹの割り当てが可能になるまで待機し、その後ジョブＹをノード２に割り当てた後に、ジョブＺの割り当てを行う。
【００６５】
また、実施例２のようにジョブの使用資源を考慮した割り当てを行う場合にも、ジョブ実行制御部１３は、優先度に応じたジョブの割り当てを行うことができる。例えば、複数のジョブを同時に受け付けた場合又は複数のジョブが割り当て待ちの状態の場合、ジョブ実行制御部１３は、優先度が高いジョブへの資源の割り当てを優先して行う。
【００６６】
以上に説明したように、本実施例に係る管理ノードは、ジョブの優先度に応じてノードへのジョブの割り当てを行う。これにより、操作者が指定する優先度でジョブを実行することが可能となり、計算機のより効率的な利用が可能となる。
【００６７】
（ハードウェア構成）
図１２は、管理ノードのハードウェア構成図である。図１２に示すように、管理ノード１は、ＣＰＵ９１、メモリ９２、ハードディスク９３、通信装置９４、出力装置９５及び入力装置９６を有する。ＣＰＵ９１は、バスにより、メモリ９２、ハードディスク９３、通信装置９４、出力装置９５及び入力装置９６に接続される。
【００６８】
メモリ９２は、主記憶装置である。ハードディスク９３は、補助記憶装置である。例えば、ハードディスク９３が、ノード情報テーブル１２１及びジョブ情報テーブル１２２を格納することにより記憶部１２の機能を実現する。また、ハードディスク９３は、図２に例示したジョブ情報取得部１１、ジョブ実行制御部１３及び温度情報取得部１４の機能を実現するためのプログラムを含む各種プログラムを格納する。
【００６９】
通信装置９４は、ノード２との通信インタフェースを有する装置である。ＣＰＵ９１は、通信装置９４を介してノード２と通信を行う。
【００７０】
出力装置９５は、例えばモニタなどである。また、入力装置９６は、例えばキーボードやマウスなどである。操作者は、出力装置９５及び入力装置９６を用いて、ＣＰＵ９１に対して命令や情報などの入力を行う。
【００７１】
ＣＰＵ９１は、図２に例示したジョブ情報取得部１１、ジョブ実行制御部１３及び温度情報取得部１４の機能を実現するためのプログラムを含む各種プログラムをハードディスク９３から読み出し、メモリ９２上に展開して実行する。これにより、ＣＰＵ９１及びメモリ９２は、図２に例示したジョブ情報取得部１１、ジョブ実行制御部１３及び温度情報取得部１４の機能を実現する。
【符号の説明】
【００７２】
１  管理ノード
２  ノード
３  ネットワーク
１１  ジョブ情報取得部
１２  記憶部
１３  ジョブ実行制御部
１４  温度情報取得部
１００  情報処理システム
１２１  ノード情報テーブル
１２２  ジョブ情報テーブル
【図１】
2019046041.tif 000003
【図２】
2019046041.tif 000004
【図３】
2019046041.tif 000005
【図４】
2019046041.tif 000006
【図５】
2019046041.tif 000007
【図６】
2019046041.tif 000008
【図７】
2019046041.tif 000009
【図８】
2019046041.tif 000010
【図９】
2019046041.tif 000011
【図１０】
2019046041.tif 000012
【図１１】
2019046041.tif 000013
【図１２】
2019046041.tif 000014