JP2019046041A - 情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラム - Google Patents
情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラム Download PDFInfo
- Publication number
- JP2019046041A JP2019046041A JP2017167096A JP2017167096A JP2019046041A JP 2019046041 A JP2019046041 A JP 2019046041A JP 2017167096 A JP2017167096 A JP 2017167096A JP 2017167096 A JP2017167096 A JP 2017167096A JP 2019046041 A JP2019046041 A JP 2019046041A
- Authority
- JP
- Japan
- Prior art keywords
- temperature
- job
- node
- arithmetic processing
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
【課題】計算機の処理性能の低下を抑える情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラムを提供する。
【解決手段】ジョブ情報取得部11は、各ノード2の温度を取得する。ジョブ情報取得部11は、1つ又は複数のノード2により実行される所定処理をノード2のいずれかに実行させた場合の所定処理を実行したノード2の第1上昇温度及び所定処理を実行したノード2以外のノード2の第2上昇温度を取得する。ジョブ実行制御部13は、温度情報取得部14により取得された各ノード2の温度、並びに、ジョブ情報取得部11により取得された第1上昇温度及び第2上昇温度を基に、所定処理を実行させるノード2を決定する。
【選択図】図2
【解決手段】ジョブ情報取得部11は、各ノード2の温度を取得する。ジョブ情報取得部11は、1つ又は複数のノード2により実行される所定処理をノード2のいずれかに実行させた場合の所定処理を実行したノード2の第1上昇温度及び所定処理を実行したノード2以外のノード2の第2上昇温度を取得する。ジョブ実行制御部13は、温度情報取得部14により取得された各ノード2の温度、並びに、ジョブ情報取得部11により取得された第1上昇温度及び第2上昇温度を基に、所定処理を実行させるノード2を決定する。
【選択図】図2
Description
本発明は、情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラムに関する。
近年、高度情報化社会の到来に伴い大量のデータが取り扱われるようになり、多数の計算機を有する大規模計算環境を計算に用いることが増加している。例えば、大規模計算環境では、各計算機に1つ又は複数のジョブが投入され、それぞれの計算機が実行するジョブを統合することで複雑な演算処理が実現される。
ここで、ジョブとは、プログラムにおける1つのまとまった仕事を行う処理の単位である。また、ここではジョブを投入することができる物理的なかたまり、すなわちジョブの投入単位となる1つの装置をノードと呼ぶ。例えば、CPU(Central Processing Unit)やCPUソケットといった物理的コンポーネントを複数有する計算機の場合、各物理コンポーネントに対してジョブが投入されるのであれば、その物理コンポーネント1つが1つのノードである。計算機として1つの筐体に複数のノードを搭載したサーバ装置は、マルチノードサーバと呼ばれる。例えば、マルチノードサーバには、例えば、1つの筐体に前面に4ノード、背面に4ノード配置できる装置がある。
このような大規模計算環境では、多数の計算機が同一室内に設置され一括管理されることが多い。このような状況下では、計算機から多量の熱が発生して処理性能が低下する原因になるおそれがある。
そこで、適切な動作のために各計算機には温度の上限が設定されている。一般的に、ノードの動作周波数が高いほど、計算機は高い性能を発揮することが可能である。また、プログラムを実行することで、計算機の温度は上昇する。温度が上昇すると、計算機は、温度の上限を超えないように、ノードの動作周波数の上昇を抑えて温度の上昇を回避する。ただし、ノードの動作周波数が低く抑えられた場合、計算機の処理性能は低下してしまう。そのため、計算機は、温度制約を受けない範囲でノードが動作するように、プログラムを実行することが好ましい。
このように演算装置の温度を抑えるための冷却方式として、空冷方式と水冷方式という2つの冷却方式が考えられる。
さらに、温度制約を有する計算機を動作させる技術として、演算時の各物理コンポーネントの熱特性を事前に計測し、計測した熱特性に基づいて熱閾値を超えないように各物理コンポーネントへのタスクの割り当てを行う従来技術がある。また、タスクの割り当てに応じて予測される負荷率及び温度特性情報を予め記憶し、複数のタスクの割り当て方を示す配置パターンの中で最高温度が低い配置パターンを選択してタスクを割り当てる従来技術がある。また、周囲温度、内部温度及びCPUの負荷を基に、各ノードコンピュータの限界温度内の許容処理量を算出し、許容処理量以内の作業を各ノードコンピュータに配分する従来技術がある。
しかしながら、空冷方式及び水冷方式の何れの冷却方式であっても、冷却媒体を流して各ノードの冷却を行うため、冷却媒体の流れの上流側が下流側に比べて温度が低い状態となる。例えば、水冷方式では、上流側のノードが熱くなった場合、上流側のノードを冷やすことで水が多くの熱を奪われるため、下流側のノードを冷やし難くなり、下流側のノードが熱くなる。ここで、水冷において冷却媒体に複数の流路がある場合、1つの流路において上流側のノードの発熱により、下流側のノードの温度が上昇しても、他の流路の下流側のノードの温度はそれほど上昇しない。また、下流側のノードが熱くなっても、上流側のノードがその影響を受けて温度が上昇することはない。空冷の場合、例えば前面から背面に空気を流すことが考えられるが、その場合も空気の流れの下流側のノードは上流側のノードの発熱の影響を受けて温度が上昇する。このように冷却媒体の流路に対するノードの搭載位置により、温度の依存関係が生じる。そのため、冷却媒体の流路に対するノードの搭載位置を考慮せずに各ノードの動作を制御しても、ノードの温度が温度閾値を超えるおそれがあり、計算機の処理性能の低下を抑えることは困難である。
この点、計測した熱特性に基づいて熱閾値を超えないようにタスクの割り当てを行う従来技術では、冷却媒体の流路に対するノードの搭載位置を考慮しておらず、計算機の処理性能の低下を抑えることは困難である。これは、タスクの配置パターンの中で最高温度が低い配置パターンを選択する従来技術及び許容処理量以内の作業を各ノードコンピュータに配分する従来技術の何れでも同様である。
開示の技術は、上記に鑑みてなされたものであって、計算機の処理性能の低下を抑える情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラムを提供することを目的とする。
本願の開示する情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラムの一つの態様において、温度情報取得部は、複数の演算処理装置のそれぞれの温度を取得する。上昇温度取得部は、1つ又は複数の前記演算処理装置により実行される所定処理を前記演算処理装置のいずれかに実行させた場合の前記所定処理を実行した前記演算処理装置の第1上昇温度及び前記所定処理を実行した前記演算処理装置以外の演算処理装置の第2上昇温度を取得する。実行制御部は、前記温度情報取得部により取得された各前記演算処理装置の温度、並びに、前記上昇温度取得部により取得された前記第1上昇温度及び前記第2上昇温度を基に、前記所定処理を実行させる演算処理装置を決定する。
1つの側面では、本発明は、計算機の処理性能の低下を抑えることができる。
以下に、本願の開示する情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラムが限定されるものではない。
図1は、情報処理システムの概略構成図である。図1に示すように、本実施例に係る情報処理システム100は、管理ノード1及び複数のノード2を有する。管理ノード1とノード2とはネットワーク3により接続される。ネットワーク3は、例えば、Infiniband(登録商標)などである。
ノード2は、ジョブの投入単位である。例えば、1台の計算機の中に複数のCPUが搭載されている場合、各CPUそれぞれにジョブが投入可能であれば、各CPUがノード2となる。また、1台の計算機に1つのジョブが投入される場合であれば、各計算機がノード2となる。
ノード2は、投入されたジョブを実行する。複数のノード2により1つのジョブが実行されてもよいし、1つのノード2により1つのジョブが実行されてもよい。また、ノード2は、それぞれが異なるジョブを実行することもできる。このノード2が、「演算処理装置」の一例にあたる。
管理ノード1は、ノード2に対するジョブの割り当ての決定及び割り当てたノード2へのジョブの投入を行うジョブスケジューラを実行する。具体的には、管理ノード1は、操作者からノード2に実行させるジョブの入力を受ける。そして、管理ノード1は、入力されたジョブを実行させるノード2を選択してジョブを割り当てる。そして、管理ノード1は、ジョブを割り当てたノード2に対してジョブを投入して実行させる。この管理ノード1が、「情報処理装置」の一例にあたる。
次に、図2を参照して、管理ノード1によるノード2へのジョブの割り当てについて説明する。図2は、管理ノード1のブロック図である。管理ノード1は、ジョブ情報取得部11、記憶部12、ジョブ実行制御部13及び温度情報取得部14を有する。
記憶部12は、ハードディスクなどの記憶装置である。記憶部12は、予め操作者から入力されたノード情報テーブル121及びジョブ情報テーブル122を有する。
図3は、実施例1に係るノード情報テーブルの一例の図である。ノード情報テーブル121は、図3に示すように、ノード2毎の許容温度、現在温度、予想温度及び実行ジョブの登録欄を有する。ここでは、1台の計算機の中に前面に4台のノード2が配置され是面に配置された各ノード2と対応する背面の位置に4台のノード2が配置される場合で説明する。すなわち、計算機を前面側から見た場合、前面のノード2とそれぞれに対応する背面のノード2とは重なった状態となる。また、冷却媒体は、計算機の前面から背面に向けて流れる。以下では、計算機の前面、すなわち冷却媒体の流路の上流にあたる位置に配置されたノード2を、上流ノードと言う。また、計算機の背面、すなわち冷却媒体の流路の下流にあたる位置に配置されたノード2を、下流ノードと言う。さらに、計算機に配置された8つのノード2をそれぞれノード#1〜#8とする。
ノード情報テーブル121では、1つの筐体に格納されたノード2が1つのグループとされる。さらに、上流ノードの温度上昇は、その上流ノードに対応する下流ノードに影響を与える。そこで、ノード情報テーブル121では、影響を与える側の上流ノードと影響を与えられる側の下流ノードとが、それぞれ別のまとまりとして登録される。
さらに、ノード情報テーブル121では、影響と与える上流ノードと影響を与えられる下流ノードとが対応するように上下に登録される。そして、ノード情報テーブル121における影響と与える影響側である上流ノードと影響を与えられる被影響側である下流ノードとの組を温度影響範囲という。ここで、本実施例では、配置位置が前後となる上流ノードと下流ノードの組を温度影響範囲としたが、温度影響範囲はこれに限らない。例えば、上流ノードに対して前後となる下流ノードに加えてその下流ノードに隣接する下流ノードも、上流ノードの温度上昇の影響を受けるのであれば、それらの隣接する下流ノードも含めて温度影響範囲とされる。温度影響範囲、並びに、影響範囲における影響側のノード2及び被影響側のノード2の指定は、操作者から入力される情報である。
図3では、ノード2を1列に並べることで温度影響範囲を表したが、温度依存関係がある影響側と被影響側とを分けて表すことができれば、他の方法で表してもよい。例えば、温度影響範囲が重複する場合などは、影響範囲が重複するノードを1か所で表し、その情報へのリンクを複数個所に設定するなどしてもよい。本実施例では、温度影響範囲における上流ノードが影響側のノード2であり、下流ノードが被影響側のノード2である。この下流ノードなどの被影響側のノード2が、「被影響演算処理装置」の一例にあたる。そして、温度影響範囲、並びに、影響範囲における影響側のノード2及び被影響側のノード2の情報が、「所定の演算処理装置の温度が上昇した場合に温度が上昇する被影響演算処理部」の情報の一例にあたる。
ノード情報テーブル121における許容温度は、各ノード2の温度の上限値である。許容温度は、各ノード2の仕様にしたがって予め登録される。また、現在温度は、各ノード2の現在の計測温度である。また、予想温度は、各ノード2が、ジョブを実行した場合に達する温度である。また、実行ジョブは、各ノード2に割り当てられたジョブである。
また、図4は、実施例1に係るジョブ情報テーブルの一例の図である。ジョブ情報テーブル122は、各ジョブの使用ノード数、温度上昇及び被影響側上昇温度が登録される。温度上昇は、ノード2がそのジョブを実行した場合の温度上昇を表す。また、被影響側温度上昇は、温度影響範囲にある影響側のノード2がそのジョブを実行した場合の、被影響側のノード2の温度上昇を表す。例えば、ジョブXをノード#1が実行した場合、ノード#1の温度は20℃上昇し、ノード#5の温度は10℃上昇する。ジョブ情報テーブル122は、例えば、ジョブを事前に実行した場合の温度上昇及び被影響側上昇温度が登録される。他には、ジョブ情報テーブル122は、過去に実行した各ジョブの実行履歴に含まれる温度上昇及び被影響側上昇温度が登録されてもよい。ジョブ情報テーブル122における温度上昇及び被影響側上昇温度が、「第1上昇温度」及び「第2上昇温度」の一例にあたる。
ここで、本実施例では、前後に配置された上流ノードと下流ノードとが温度影響範囲に含まれるため、被影響側上昇温度として1種類の温度を設定した。ただし、被影響側のノード2が複数ありそれぞれが異なる影響を受ける場合、影響に応じて異なる種類の被影響側温度上昇を設定することが好ましい。
ジョブ情報取得部11は、各ジョブを事前にノード2に実行させ、その場合の温度上昇及び被影響側上昇温度を取得する。そして、ジョブ情報取得部11は、取得した各ジョブを実行した場合の温度上昇及び被影響側上昇温度を記憶部12のジョブ情報テーブル122へ登録する。この他にも、ジョブ情報取得部11は、過去に実行したジョブの実行履歴から温度上昇及び被影響側上昇温度を取得してジョブ情報テーブル122に登録してもよい。
ジョブ情報取得部11は、ジョブを受け付ける。ここで、ジョブ情報取得部11は、操作者からジョブの実行指示を受けることでジョブの受け付けてもよいし、予め登録されたジョブの情報を決められたタイミングで読み込むことでジョブを受け付けてもよい。次に、ジョブ情報取得部11は、受け付けたジョブのジョブ名を取得する。そして、ジョブ情報取得部11は、取得したジョブ名に対応する使用ノード数、温度上昇及び被影響側上昇温度をジョブ情報テーブル122から取得する。そして、ジョブ情報取得部11は、ジョブ名、使用ノード数、温度上昇及び被影響側上昇温度をジョブ実行制御部13へ出力する。このジョブ情報取得部11が、「上昇温度取得部」の一例にあたる。
温度情報取得部14は、各ノード2から現在の計測温度を定期的に収集する。例えば、温度情報取得部14は、CPU情報を保持するレジスタMSR(Model Specific Register)から温度情報を取得することができる。他にも、温度情報取得部14は、ハードウェアの各種センサ情報の取得や遠隔操作を行うためのインタフェースであるIPMI(Intelligent Platform Management Interface)から温度情報を取得することができる。そして、温度情報取得部14は、各ノード2の現在の計測温度をノード情報テーブル121の各ノード2の現在温度の欄に登録する。
ジョブ実行制御部13は、実行するジョブのジョブ名、使用ノード数、温度上昇及び被影響側上昇温度の入力をジョブ情報取得部11から受ける。以下では、入力されたジョブ名を有するジョブを受付ジョブという。
ジョブ実行制御部13は、ノード情報テーブル121に登録された各ノード2の中でジョブを実行していないノード2を選択し、現在温度に温度上昇の値を加算して、受付ジョブを実行させた場合の各ノード2の温度を算出する。そして、ジョブ実行制御部13は、ジョブを実行していないノード2の中から、受付ジョブを実行させた場合に許容温度を超えないノード2を抽出する。以下では、この抽出したノード2を、「使用可能ノード」という。
次に、ジョブ実行制御部13は、使用可能ノードの中から受付ジョブの使用ノード数のノード2を選択する。例えば、ジョブ実行制御部13は、現在温度が低い順にノード2を選択する。ただし、このノード2の選択は他の方法でもよく、例えば、影響側のノード2又は被影響側のノード2のいずれかからまとめて選んでもよいし、予めノード2に振られた番号の若い順に選んでもよい。以下では、ジョブ実行制御部13により選択されたノード2を、「割当候補ノード」という。
次に、ジョブ実行制御部13は、割当候補ノードの中に影響側のノード2があり、且つその影響側のノード2の温度影響範囲に含まれる被影響側のノード2が存在するか否かを判定する。同じ温度影響範囲にある影響側及び被影響側のノード2が割当候補ノードに存在する場合、被影響側のノード2の上昇後の温度に被影響側上昇温度の値を加算する。ここで、割当候補ノードの中の1つのノード2が割当候補ノードの中の複数の影響側のノード2に対する被影響側のノード2である場合、割当候補ノードに含まれる影響側のノード2に応じて、被影響側のノード2の温度に被影響側上昇温度が加算される。そして、ジョブ実行制御部13は、割当候補ノードに含まれる被影響側のノード2の中で許容温度を超えるノード2が存在するか否かを判定する。許容温度を超えるノード2が存在する場合、ジョブ実行制御部13は、使用可能ノードの中から他の組み合わせの割当候補ノードを選択してここまでの処理を繰り返す。
許容温度を超えるノード2が存在しない場合、ジョブ実行制御部13は、割当候補ノードの中に影響側のノード2が存在するか否かを判定する。影響側のノード2が存在する場合、ジョブ実行制御部13は、そのノード2の温度影響範囲にあり且つ割当候補ノードに含まれないノード2を特定する。そして、ジョブ実行制御部13は、特定したノード2の現在温度に被影響側上昇温度の値を加算する。そして、ジョブ実行制御部13は、加算結果が許容温度を超えるか否かを判定する。加算結果が許容温度を超える場合、ジョブ実行制御部13は、使用可能ノードの中から他の組み合わせの割当候補ノードを選択してここまでの処理を繰り返す。
これに対して、加算結果が許容温度を超えない場合、ジョブ実行制御部13は、割当候補ノードに対して受付ジョブを割り当てることを決定する。そして、ジョブ実行制御部13は、ノード情報テーブル121の、受付ジョブを割り当てるノード2の現在温度に受付ジョブを実行した場合の温度上昇を加算した値を予想温度に登録する。さらに、ジョブ実行制御部13は、受付ジョブを割り当てるノード2の中に影響側のノード2がある場合、そのノード2の温度影響範囲にある被影響側のノード2の予想温度を算出して登録する。具体的には、被影響側のノード2に既に予想温度が登録されている場合、ジョブ実行制御部13は、影響側のノード2の受付ジョブの実行による被影響側上昇温度を被影響側のノード2の既登録の予想温度に加えた値を新たな予想温度として登録する。これに対して、被影響側のノード2に素手の予想温度が登録されていない場合、ジョブ実行制御部13は、影響側のノード2の受付ジョブの実行による被影響側上昇温度を被影響側のノード2の現在温度に加えた値を予想温度として登録する。
ここで、いずれかのノード2の温度が許容温度を超えてしまうため、受付ジョブの割り当てが困難な場合、ジョブ実行制御部13は、各ノード2の温度が低下して受付ジョブの割り当てが行えるようになるまで待機する。その後、ジョブ実行制御部13は、上述した使用可能ノードの抽出、候補ノード判定の選択及び受付ジョブの割り当ての可否の判定を再度行う。このジョブ実行制御部13が、「実行制御部」の一例にあたる。そして、受付ジョブが、「所定処理」の一例にあたる。
ここで、図3、4及び5〜7を参照して、ジョブ実行制御部13によるジョブの割り当ての一例について説明する。図5は、ジョブXを割り当てた状態のノード情報テーブルを表す図である。図6は、ジョブYを割り当てた状態のノード情報テーブルを表す図である。図7は、ジョブZを割り当てた状態のノード情報テーブルを表す図である。ここでは、各ノード2が図3のノード情報テーブル121で表される状態の場合で説明する。また、ジョブ情報取得部11が図4に示すジョブ情報テーブル122に登録されたジョブX、ジョブY、ジョブZの順にジョブを受け付けた場合で説明する。さらに、ここでは、ジョブ実行制御部13は、ジョブの実行による温度上昇が大きい場合は上流ノードへの割り当てを優先し、ジョブの実行による温度上昇が小さい場合は下流ノードへの割り当てを優先する。例えば、ジョブ実行制御部13は、温度上昇が10℃以上の場合にジョブの実行による温度上昇が大きいと判定する。
ジョブ実行制御部13は、ジョブXの情報の入力をジョブ情報取得部11から受ける。ジョブXの温度上昇は10℃であり、ジョブ実行制御部13は、上流ノードへの割り当てを優先する。図3に示すようにジョブXを投入前のノード#1の現在温度は30℃であり、許容温度が75℃である。そして、ジョブXを実行させた場合の温度上昇は20℃であり、被影響側上昇温度は10℃である。そこで、ジョブ実行制御部13は、ノード#1の現在温度に温度上昇を加算してジョブXをノード#1に実行させた場合の予想温度を50℃と求める。ノード#1にジョブXを実行させた場合の予想温度は許容温度より低いので、ジョブ実行制御部13は、ノード#1をジョブXの割当候補ノードとする。さらに、ジョブ実行制御部13は、上流ノードであるノード#1の温度影響範囲にある下流ノードであるノード#5の現在温度に被影響側上昇温度を加算してジョブXをノード#1に実行させた場合のノード#5の予想温度を43℃と求める。ジョブXをノード#1に実行させた場合のノード#5は予想温度は許容温度より低いので、ジョブ実行制御部13は、ノード#1にジョブXを割り当てることを決定する。そして、ジョブ実行制御部13は、ノード#1の予想温度及び実行ジョブを登録し、さらにノード#5の予想温度を登録する。これにより、ノード情報テーブル121は、図5の状態となる。
次に、ジョブ実行制御部13は、ジョブYの情報の入力をジョブ情報取得部11から受ける。ジョブYの温度上昇は5℃であり、ジョブ実行制御部13は、下流ノードへの割り当てを優先する。ジョブ実行制御部13は、図5に示すジョブYを投入前のノード#5〜#8の現在温度にジョブYを実行させた場合の温度上昇である5℃を加算してジョブYをノード#5〜#8に実行させた場合の予想温度を求める。ノード#5〜#8にジョブYを実行させた場合の予想温度は許容温度より低いので、ジョブ実行制御部13は、ノード#5〜#8をジョブYの割当候補ノードとする。ここで、ノード#5〜#8は下流ノードであり影響側のノード2にはならないので、ジョブ実行制御部13は、そのままノード#5〜#8にジョブYを割り当てることを決定する。そして、ジョブ実行制御部13は、ノード#5〜#8の予想温度及び実行ジョブを登録する。これにより、ノード情報テーブル121は、図6の状態となる。
さらに、ジョブ実行制御部13は、ジョブZの情報の入力をジョブ情報取得部11から受ける。ここでは、この時がノード#1におけるジョブXの実行完了の直後の場合で説明する。この時、ノード#1の温度は図6の状態から変化して現在温度が50℃に達しているものとする。この場合、ノード#1の現在温度にジョブZの温度上昇である30℃を加算すると80℃となり、許容温度を超えてしまう。そこで、ジョブ実行制御部13は、使用可能ノードからノード#1を外す。
そして、ジョブ実行制御部13は、図6に示すジョブZを投入前のノード#2及び#3の現在温度にジョブZを実行させた場合の温度上昇である30℃を加算してジョブZをノード#2及び#3に実行させた場合の予想温度を求める。ノード#2及び#3にジョブZを実行させた場合の予想温度は許容温度より低いので、ジョブ実行制御部13は、ノード#2及び#3をジョブYの割当候補ノードとする。さらに、ジョブ実行制御部13は、上流ノードであるノード#1及び#3の温度影響範囲にある下流ノードであるノード#6及び#7の予想温度に被影響側上昇温度を加算してジョブZをノード#2及び#3に実行させた場合のノード#6及び#7の予想温度を49℃と求める。ジョブZをノード#2及び#3に実行させた場合のノード#6及び#7の予想温度は許容温度より低いので、ジョブ実行制御部13は、ノード#2及び#3にジョブZを割り当てることを決定する。そして、ジョブ実行制御部13は、ノード#2及び#3の予想温度及び実行ジョブを登録し、さらにノード#6及び#7の予想温度を登録する。これにより、ノード情報テーブル121は、図7の状態となる。
次に、図8を参照して、本実施例に係る管理ノード1によるジョブの割り当て処理について説明する。図8は、実施例1に係る管理ノードによるジョブの割り当て処理のフローチャートである。
ジョブ情報取得部11は、予め決められた各ジョブを事前にノード2に実行させ、各ジョブを実行した場合の温度上昇及び被影響側上昇温度を取得する。そして、ジョブ情報取得部11は、取得した温度上昇及び被影響側上昇温度を登録することでジョブ情報テーブル122を作成し、記憶部12に格納させる(ステップS1)。
また、記憶部12は、操作者から入力された温度影響範囲及び各ノード2の許容温度を登録したノード情報テーブル121を格納する(ステップS2)。
その後、ジョブ情報取得部11は、ジョブを受け付ける(ステップS3)。そして、ジョブ情報取得部11は、受付ジョブのジョブ名を取得する。次に、ジョブ情報取得部11は、取得したジョブ名に対応する使用ノード数、温度上昇及び被影響側上昇温度をジョブ情報テーブル122から取得する。そして、ジョブ情報取得部11は、ジョブ名、使用ノード数、温度上昇及び被影響側上昇温度をジョブ実行制御部13へ出力する。
また、温度情報取得部14は、各ノード2から計測温度を取得する。そして、温度情報取得部14は、取得した各ノード2の計測温度を現在温度に登録してノード情報テーブル121を更新する(ステップS4)。
ジョブ実行制御部13は、ジョブ名、使用ノード数、温度上昇及び被影響側上昇温度の入力をジョブ情報取得部11から受ける。また、ジョブ実行制御部13は、各ノード2の温度影響範囲、現在温度及び許容温度をノード情報テーブル121から取得する。そして、ジョブ実行制御部13は、実行するジョブの使用ノード数のノード2にジョブを投入した場合に、グループ内の全てのノード2が許容温度を超えないようにジョブの割り当て処理を実行する(ステップS5)。
そして、ジョブ実行制御部13は、ジョブが投入可能なノード2が存在するか否かを判定する(ステップS6)。ジョブが投入可能なノード2が存在しない場合(ステップS6:否定)、ジョブ実行制御部13は、ステップS5に戻り、ノード2の温度が下がりジョブが投入可能なノード2が存在するようになるまで待機する。
ジョブが投入可能なノード2が存在する場合(ステップS6:肯定)、ジョブ実行制御部13は、ジョブを割り当てるノード2を決定する。そして、ジョブ実行制御部13は、ジョブを割り当てたノード2の実行ジョブ及びジョブを実行させた場合の各ノード2の予想温度をノード情報テーブル121へ登録する。その後、ジョブ実行制御部13は、ジョブを割り当てたノード2へジョブを投入して実行させる(ステップS7)。
以上に説明したように、本実施例に係る管理ノードは、ジョブを実行させた場合の各ノードの予想温度を、温度影響範囲内の影響側のノードがジョブを実行した場合の被影響側のノードの温度上昇を考慮して求める。これにより、ノード間の温度上昇の依存関係を考慮した適切な予測温度を求めることができ、各ノードの温度を許容温度内に収めることができる。すなわち、各ノードの動作周波数の抑制を回避することができ、計算機の処理性能の低下を抑えることができる。
次に、実施例2について説明する。本実施例に係る管理ノードは、ジョブの使用資源も考慮してジョブを割り当てるノードを決定することが実施例1と異なる。本実施例に係る管理ノードも図2のブロック図で表される。以下の説明では、実施例1と同様の各部の動作については説明を省略する。
本実施例に係るノード情報テーブル121は、図9に示すように各ノード2の使用可能メモリ量及び使用可能コア数が登録される。図9は、実施例2に係るノード情報テーブルの一例の図である。
ジョブ情報取得部11は、指定されたジョブを事前にノード2に実行させ、使用ノード数、温度上昇、被影響側上昇温度、メモリ使用量及び使用コア数を取得する。そして、ジョブ情報取得部11は、取得した使用ノード数、温度上昇、被影響側上昇温度、メモリ使用量及び仕様コア数を登録して、図10に示すようなジョブ情報テーブル122を作成する。図10は、実施例2に係るジョブ情報テーブルの一例の図である。
ジョブ実行制御部13は、ノード情報テーブル121に登録されたノード2のうちジョブを実行していないノード2の中から、ジョブ情報取得部11から入力された受付ジョブのメモリ使用量と使用コア数を満たすことが可能なノード2の組み合わせを選択する。
ここで、受付ジョブのメモリ使用量と使用コア数を満たすことが可能なノード2の組み合わせを選択することが困難な場合、ジョブ実行制御部13は、ジョブを実行中のノード2のジョブの実行が完了するまで待機する。そして、ジョブ実行制御部13は、ジョブを実行していないノード2の中から、受付ジョブのメモリ使用量と使用コア数を満たすことが可能なノード2の組み合わせを選択することを繰り返す。
次に、ジョブ実行制御部13は、現在温度、温度上昇、被影響側上昇温度及び温度影響範囲を用いて、選択した各組み合わせのノード2に受付ジョブを実行させた場合の、ノード情報テーブル121に登録された各ノード2の予測温度を求める。そして、ジョブ実行制御部13は、選択した各組み合わせのノード2に受付ジョブを実行させた場合に、ノード情報テーブル121に登録された各ノード2の中で許容温度を超えるノード2が存在するか否かを判定する。
ジョブ実行制御部13は、許容温度を超えるノード2が存在する組み合わせを受付ジョブの割り当ての候補から外す。受付ジョブの割り当ての候補となるノード2の組み合わせが存在しない場合、ジョブ実行制御部13は、各ノード2の現在温度が低下するまで待機し、その後、受付ジョブの割り当てを再度行う。そして、ジョブ実行制御部13は、残ったノード2の組み合わせの中から受付ジョブを割り当てるノード2の組み合わせを決定する。その後、ジョブ実行制御部13は、割り当てたノード2に受付ジョブを投入し実行させる。
以上に説明したように、本実施例に係る管理ノードは、ジョブの使用資源を満たすノードの組み合わせのうちのジョブ実行時に各ノードが許容温度を超えないノードの組み合わせの中からジョブを割り当てるノードの組み合わせを決定する。これにより、確実にジョブを実行可能なノードを選択することで、より適切なジョブの割り当てを行うことができ、計算機の効率的な利用が可能となる。
次に、実施例3について説明する。本実施例に係る管理ノードは、ジョブの優先度も考慮してジョブを割り当てるノードを決定することが実施例1と異なる。本実施例に係る管理ノードも図2のブロック図で表される。以下の説明では、実施例1と同様の各部の動作については説明を省略する。
ジョブ情報取得部11は、操作者から各ジョブの優先度の入力を受ける。そして、ジョブ情報取得部11は、ジョブ情報テーブル122に登録された各ジョブに対してそれぞれの優先度を登録する。これにより、ジョブ情報取得部11は、図11に示すジョブ情報テーブル122を作成する。図11は、実施例3に係るジョブ情報テーブルの一例の図である。
ジョブ実行制御部13は、受付ジョブのジョブ名、使用ノード数、温度上昇及び被影響側上昇温度に加えて優先度の入力をジョブ情報取得部11から受ける。そして、ジョブ実行制御部13は、受付ジョブの優先度が高い場合、受付ジョブを割り当て可能なノード2の中で温度の低い順にノード2の割り当てを行う。ここで、ジョブ実行制御部13は、予め優先度の高低を判定する閾値を有し、その閾値よりも優先度が高ければ受付ジョブの優先度が高いと判定する。また、優先度を用いたジョブの区分は高低の2つでなくてもよく、ジョブ実行制御部13は、優先度を用いてジョブを3つ以上の区分に分け、それぞれの区分に応じた温度を有するノード2を割り当ててもよい。
また、複数のジョブを同時に受け付けた場合又は複数のジョブが割り当て待ちの状態の場合、ジョブ実行制御部13は、優先度の高いジョブに対して先に割り当てを行う。例えば、ジョブ実行制御部13は、ジョブZの実行指示をジョブ情報取得部11から受け、その後、ジョブZの割り当て前にジョブYの実行指示をジョブ情報取得部11から受けた場合を説明する。この場合、ジョブ実行制御部13は、ジョブY及びZを割り当て待ちの状態で待機させる。そして、ジョブYがジョブZより優先度が高いので、ジョブ実行制御部13は、ジョブYの割り当てが可能になるまで待機し、その後ジョブYをノード2に割り当てた後に、ジョブZの割り当てを行う。
また、実施例2のようにジョブの使用資源を考慮した割り当てを行う場合にも、ジョブ実行制御部13は、優先度に応じたジョブの割り当てを行うことができる。例えば、複数のジョブを同時に受け付けた場合又は複数のジョブが割り当て待ちの状態の場合、ジョブ実行制御部13は、優先度が高いジョブへの資源の割り当てを優先して行う。
以上に説明したように、本実施例に係る管理ノードは、ジョブの優先度に応じてノードへのジョブの割り当てを行う。これにより、操作者が指定する優先度でジョブを実行することが可能となり、計算機のより効率的な利用が可能となる。
(ハードウェア構成)
図12は、管理ノードのハードウェア構成図である。図12に示すように、管理ノード1は、CPU91、メモリ92、ハードディスク93、通信装置94、出力装置95及び入力装置96を有する。CPU91は、バスにより、メモリ92、ハードディスク93、通信装置94、出力装置95及び入力装置96に接続される。
図12は、管理ノードのハードウェア構成図である。図12に示すように、管理ノード1は、CPU91、メモリ92、ハードディスク93、通信装置94、出力装置95及び入力装置96を有する。CPU91は、バスにより、メモリ92、ハードディスク93、通信装置94、出力装置95及び入力装置96に接続される。
メモリ92は、主記憶装置である。ハードディスク93は、補助記憶装置である。例えば、ハードディスク93が、ノード情報テーブル121及びジョブ情報テーブル122を格納することにより記憶部12の機能を実現する。また、ハードディスク93は、図2に例示したジョブ情報取得部11、ジョブ実行制御部13及び温度情報取得部14の機能を実現するためのプログラムを含む各種プログラムを格納する。
通信装置94は、ノード2との通信インタフェースを有する装置である。CPU91は、通信装置94を介してノード2と通信を行う。
出力装置95は、例えばモニタなどである。また、入力装置96は、例えばキーボードやマウスなどである。操作者は、出力装置95及び入力装置96を用いて、CPU91に対して命令や情報などの入力を行う。
CPU91は、図2に例示したジョブ情報取得部11、ジョブ実行制御部13及び温度情報取得部14の機能を実現するためのプログラムを含む各種プログラムをハードディスク93から読み出し、メモリ92上に展開して実行する。これにより、CPU91及びメモリ92は、図2に例示したジョブ情報取得部11、ジョブ実行制御部13及び温度情報取得部14の機能を実現する。
1 管理ノード
2 ノード
3 ネットワーク
11 ジョブ情報取得部
12 記憶部
13 ジョブ実行制御部
14 温度情報取得部
100 情報処理システム
121 ノード情報テーブル
122 ジョブ情報テーブル
2 ノード
3 ネットワーク
11 ジョブ情報取得部
12 記憶部
13 ジョブ実行制御部
14 温度情報取得部
100 情報処理システム
121 ノード情報テーブル
122 ジョブ情報テーブル
Claims (8)
- 複数の演算処理装置のそれぞれの温度を取得する温度情報取得部と、
1つ又は複数の前記演算処理装置により実行される所定処理を前記演算処理装置のいずれかに実行させた場合の前記所定処理を実行した前記演算処理装置の第1上昇温度及び前記所定処理を実行した前記演算処理装置以外の演算処理装置の第2上昇温度を取得する上昇温度取得部と、
前記温度情報取得部により取得された各前記演算処理装置の温度、並びに、前記上昇温度取得部により取得された前記第1上昇温度及び前記第2上昇温度を基に、前記所定処理を実行させる演算処理装置を決定する実行制御部と
を備えたことを特徴とする情報処理装置。 - 前記上昇温度取得部は、所定の演算処理装置の温度が上昇した場合に温度が上昇する被影響演算処理装置を予め記憶し、前記所定の演算処理装置に前記所定処理を実行させた場合、前記所定の演算処理装置の前記第1上昇温度及び前記被影響演算処理装置の前記第2上昇温度を取得することを特徴とする請求項1に記載の情報処理装置。
- 前記実行制御部は、前記所定処理を実行させた場合に各前記実行制御部の温度が、各前記演算処理装置のそれぞれの許容温度以内に収まるように前記所定処理を実行させる演算処理装置を決定することを特徴とする請求項1又は2に記載の情報処理装置。
- 前記実行制御部は、前記演算処理装置が有する資源の情報を予め有し、前記所定処理が使用する量の資源を有する演算処理装置の中から、前記所定処理を実行する前記演算処理装置を決定することを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
- 前記実行制御部は、複数の前記所定処理を前記演算処理装置に実行させる場合、予め決められた各所定処理の優先度にしたがって各所定処理を実行する前記演算処理装置を決定することを特徴とする請求項1〜4のいずれか一つに記載の情報処理装置。
- 複数の演算処理装置及び管理装置を有する情報処理システムであって、
前記管理装置は、
各前記演算処理装置の温度を取得する温度情報取得部と、
1つ又は複数の前記演算処理装置により実行される所定処理を前記演算処理装置のいずれかに実行させた場合の前記所定処理を実行した前記演算処理装置の第1上昇温度及び前記所定処理を実行した前記演算処理装置以外の演算処理装置の第2上昇温度を取得する上昇温度取得部と、
前記温度情報取得部により取得された各前記演算処理装置の温度、並びに、前記上昇温度取得部により取得された前記第1上昇温度及び前記第2上昇温度を基に、前記所定処理を実行させる演算処理装置を決定する実行制御部と
を備えたことを特徴とする情報処理システム。 - 複数の演算処理装置を管理する情報処理装置の制御方法であって、
各前記演算処理装置の温度を取得し、
1つ又は複数の前記演算処理装置により実行される所定処理を前記演算処理装置のいずれかに実行させた場合の前記所定処理を実行した前記演算処理装置の第1上昇温度を取得し、
前記所定処理を実行した前記演算処理装置以外の演算処理装置の第2上昇温度を取得し、
各前記演算処理装置の温度、並びに、前記第1上昇温度及び前記第2上昇温度を基に、前記所定処理を実行させる演算処理装置を決定する
ことを特徴とする情報処理装置の制御方法。 - 複数の演算処理装置を管理する情報処理装置の制御プログラムであって、
各前記演算処理装置の温度を取得し、
1つ又は複数の前記演算処理装置により実行される所定処理を前記演算処理装置のいずれかに実行させた場合の前記所定処理を実行した前記演算処理装置の第1上昇温度を取得し、
前記所定処理を実行した前記演算処理装置以外の演算処理装置の第2上昇温度を取得し、
各前記演算処理装置の温度、並びに、前記第1上昇温度及び前記第2上昇温度を基に、前記所定処理を実行させる演算処理装置を決定する
処理をコンピュータに実行させることを特徴とする情報処理装置の制御プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017167096A JP2019046041A (ja) | 2017-08-31 | 2017-08-31 | 情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラム |
US16/111,624 US20190065282A1 (en) | 2017-08-31 | 2018-08-24 | Information processing apparatus and information processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017167096A JP2019046041A (ja) | 2017-08-31 | 2017-08-31 | 情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019046041A true JP2019046041A (ja) | 2019-03-22 |
Family
ID=65435268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017167096A Pending JP2019046041A (ja) | 2017-08-31 | 2017-08-31 | 情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20190065282A1 (ja) |
JP (1) | JP2019046041A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021026577A (ja) * | 2019-08-07 | 2021-02-22 | 三菱電機株式会社 | 制御装置、演算装置、制御方法、及び制御プログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7890686B2 (en) * | 2005-10-17 | 2011-02-15 | Src Computers, Inc. | Dynamic priority conflict resolution in a multi-processor computer system having shared resources |
US9442773B2 (en) * | 2011-11-21 | 2016-09-13 | Qualcomm Incorporated | Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip |
US20160085219A1 (en) * | 2014-09-22 | 2016-03-24 | Advanced Micro Devices, Inc. | Scheduling applications in processing devices based on predicted thermal impact |
US10452437B2 (en) * | 2016-06-24 | 2019-10-22 | Advanced Micro Devices, Inc. | Temperature-aware task scheduling and proactive power management |
US20180143862A1 (en) * | 2016-11-18 | 2018-05-24 | Qualcomm Incorporated | Circuits and Methods Providing Thread Assignment for a Multi-Core Processor |
-
2017
- 2017-08-31 JP JP2017167096A patent/JP2019046041A/ja active Pending
-
2018
- 2018-08-24 US US16/111,624 patent/US20190065282A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021026577A (ja) * | 2019-08-07 | 2021-02-22 | 三菱電機株式会社 | 制御装置、演算装置、制御方法、及び制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20190065282A1 (en) | 2019-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ilager et al. | ETAS: Energy and thermal‐aware dynamic virtual machine consolidation in cloud data center with proactive hotspot mitigation | |
CN106776005B (zh) | 一种面向容器化应用的资源管理系统及方法 | |
Canon et al. | Comparative evaluation of the robustness of dag scheduling heuristics | |
JP5664098B2 (ja) | 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム | |
JP5827594B2 (ja) | 仮想マシン配置装置および仮想マシン配置方法 | |
JP5549131B2 (ja) | ジョブ割当装置、ジョブ割当方法及びジョブ割当プログラム | |
US20150220370A1 (en) | Job scheduling apparatus and method therefor | |
US20140310718A1 (en) | Method, computer program and device for allocating computer resources of a cluster for executing a task submitted to said cluster | |
JP4577384B2 (ja) | 管理マシン、管理システム、管理プログラム、および、管理方法 | |
JP5245711B2 (ja) | 分散データ処理システム、分散データ処理方法および分散データ処理用プログラム | |
Sun et al. | Energy-efficient and thermal-aware resource management for heterogeneous datacenters | |
JP6519111B2 (ja) | データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置 | |
JP6221588B2 (ja) | 情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法 | |
Wang et al. | Bubble budgeting: Throughput optimization for dynamic workloads by exploiting dark cores in many core systems | |
Akbar et al. | A game-based thermal-aware resource allocation strategy for data centers | |
CN103988179A (zh) | 用于在地理分布数据中心中降低延迟和改善弹性的优化机制 | |
US20160117199A1 (en) | Computing system with thermal mechanism and method of operation thereof | |
Bolchini et al. | Lifetime-aware load distribution policies in multi-core systems: An in-depth analysis | |
US20170083375A1 (en) | Thread performance optimization | |
CN111177984A (zh) | 电子设计自动化中异构计算单元的资源利用 | |
Meng et al. | Communication and cooling aware job allocation in data centers for communication-intensive workloads | |
JP2016004328A (ja) | タスク割当プログラム、タスク割当方法およびタスク割当装置 | |
JP2019046041A (ja) | 情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラム | |
JP5577745B2 (ja) | クラスタシステム、プロセス配置方法、及びプログラム | |
Sun et al. | Multi-objective scheduling for heterogeneous server systems with machine placement |