JP6874594B2 - 電源管理装置,ノード電源管理方法およびノード電源管理プログラム - Google Patents

電源管理装置,ノード電源管理方法およびノード電源管理プログラム Download PDF

Info

Publication number
JP6874594B2
JP6874594B2 JP2017160828A JP2017160828A JP6874594B2 JP 6874594 B2 JP6874594 B2 JP 6874594B2 JP 2017160828 A JP2017160828 A JP 2017160828A JP 2017160828 A JP2017160828 A JP 2017160828A JP 6874594 B2 JP6874594 B2 JP 6874594B2
Authority
JP
Japan
Prior art keywords
job
node
power
calculation
nodes
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.)
Active
Application number
JP2017160828A
Other languages
English (en)
Other versions
JP2019040325A (ja
Inventor
啓太郎 田川
啓太郎 田川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017160828A priority Critical patent/JP6874594B2/ja
Priority to US16/100,294 priority patent/US10635157B2/en
Publication of JP2019040325A publication Critical patent/JP2019040325A/ja
Application granted granted Critical
Publication of JP6874594B2 publication Critical patent/JP6874594B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Description

本発明は、電源管理装置,ノード電源管理方法およびノード電源管理プログラムに関する。
HPC(High Performance Computing:高性能計算)に用いられるコンピュータシステム(HPCシステム)において、消費電力を削減する省電力機能が求められている。そして、このようなHPCシステムに備えられる省電力機能においては、消費電力を抑制する一方で、ジョブスループットをできるだけ低下させないことが重要となる。
HPCシステムにおける従来の省電力機能として、ジョブスケジューラが作成したスケジューリング情報を参照して、ジョブが割り当てられていない資源への電力供給を遮断する手法が知られている。なお、スケジューリング情報においては、例えば、各ジョブの実行時間とジョブを割り当て先の割り当て対象資源とが規定される。
ジョブスケジューラが作成したスケジューリング情報に基づき、アイドル状態になると予測されるプロセッサへの電力切断や、実行依頼されたジョブが割り当てられたプロセッサへの電源投入を行なう。これにより、ジョブスループットの低下を抑えつつ、システムの省電力化を実現している。
特開2010−160565号公報 特開2015−72588号公報
しかしながら、大規模なコンピュータシステムにおけるジョブスケジューリングでは、ネットワークトポロジの考慮が必要である等の理由により、ジョブに対する計算ノードの割り当てに時間がかかるという課題がある。
これにより、例えば、実行中の他のジョブを停止させて代わりに実行させるまではしないが、実行待ち中のジョブの中では最優先に実行を開始すべきという程度の優先度のジョブ(以下、高優先度ジョブという)が新規に投入された場合に、この高優先度ジョブを迅速に処理することができない。
また、HPCシステムにおいては、一般的に、計算ノード等の資源の電源の切断/投入処理に分単位の処理時間を要する。このような計算ノードへの電力切断/投入処理に要する時間がオーバーヘッドとなり、ジョブの実行開始が遅延し、ジョブスループットの低下が発生するおそれもある。
1つの側面では、本発明は、投入されたジョブを迅速に処理することを目的とする。
このため、この電源管理装置は、並列計算機システムに備えられた複数の計算ノードの電源を制御する電源管理装置であって、前記複数の計算ノードへのジョブの割り当てがスケジューリングされたスケジューリング情報を取得するスケジューリング情報取得部と、
入力されたジョブに関するジョブ情報を取得するジョブ取得部と、前記複数の計算ノードのうち2つ以上の計算ノードを含む、少なくとも1つの管理領域を設定する管理領域設定部と、前記スケジューリング情報に基づいて求められる、前記管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、前記ジョブ情報に基づいて求められる、前記ジョブの処理に要求される前記計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる前記計算ノードを電源オン状態に制御する電源制御部とを備える。
一実施形態によれば、投入されたジョブを迅速に処理することができる。
実施形態の一例としての並列計算機システムの構成を示す図である。 実施形態の一例としての並列計算機システムにおけるスケジューリング情報を例示する図である。 各ノードに対するジョブの割り当てを模式的に示す図である。 実施形態の一例としての並列計算機システムにおける高優先度ジョブ投入通知のデータ構造を例示する図である。 実施形態の一例としての並列計算機システムの電源管理ノードのハードウェア構成の一例を示すブロック図である。 実施形態の一例としての並列計算機システムの計算ノード管理部の機能を例示する機能ブロック図である。 実施形態の一例としての並列計算機システムにおける拡張ノード範囲領域を説明するための図である。 実施形態の一例としての並列計算機システムにおける電源投入繰上部による適格拡張ノード範囲領域の決定方法を説明するための図である。 実施形態の一例としての並列計算機システムにおける高優先度ジョブが投入された場合のジョブスケジューラの処理を説明するためのフローチャートである。 実施形態の一例としての並列計算機システムにおいて送受信される情報を説明するための図である。 実施形態の一例としての並列計算機システムの計算ノード管理部の処理を説明するためのフローチャートである。 実施形態の一例としての並列計算機システムの計算ノード管理部の処理を説明するためのフローチャートである。 実施形態の変形例としての並列計算機システムの計算ノード管理部の機能を例示する機能ブロック図である。 実施形態の変形例としての並列計算機システムの計算ノード管理部の処理を説明するためのフローチャートである。 実施形態の変形例としての並列計算機システムの計算ノード管理部の処理を説明するためのフローチャートである。
以下、図面を参照して本電源管理装置,ノード電源管理方法およびノード電源管理プログラムにかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(A)構成
図1は実施形態の一例としての並列計算機システム1の構成を示す図である。
並列計算機システム1は、図1に示すように、計算ノード群202,ジョブ管理ノード100,電源管理ノード300および電源制御装置400を備える。また、並列計算機システム1には、ユーザ端末500が接続される、ユーザ端末500は、情報処理装置であり、このユーザ端末500から発行されたジョブがジョブ管理ノード100に投入(入力)される。
なお、図1に示す例においては、便宜上、並列計算機システム1に1つのユーザ端末500が接続されているが、これに限定されるものではなく、2つ以上のユーザ端末500が接続されてもよい。
計算ノード群202においては、複数の計算ノード200がネットワーク201を介して相互に通信可能に接続され、これによりN次元の相互結合網が構成されている(Nは自然数)。また、ネットワーク201には、ジョブ管理ノード100が接続されている。
ネットワーク201は通信回線であり、例えば、LAN(Local Area Network)や光通信路である。
(a)計算ノード200
計算ノード200は情報処理装置であり、計算ノード群202に備えられた複数の計算ノード200は、互いに同様の構成をそなえる。
計算ノード200は、例えば、図示しない、プロセッサ,メモリ,記憶装置およびネットワークインタフェースを構成要素として有する。これらの構成要素は、バスを介して相互に通信可能に構成される。
メモリはROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリのROMには、計算ノード200が実行するソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ上のソフトウェアプログラムは、CPU(Central Processing Unit)等のプロセッサに適宜読み込まれて実行される。また、メモリのRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
ソフトウェアプログラムには、計算ノード200においてジョブ演算処理機能を実現するためにプロセッサによって実行される計算ノード用制御プログラムが含まれてもよい。
記憶装置は、計算ノード200の補助記憶装置として使用され、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)である。記憶装置には、OSプログラム,ソフトウェアプログラム、および各種データが格納される。
ネットワークインタフェースは、ネットワーク201に接続される。ネットワークインタフェースは、ネットワーク201を介して、他のコンピュータ(計算ノード200,ジョブ管理ノード100)または通信機器との間でデータの送受信を行なう。
プロセッサは、計算ノード200全体を制御する。プロセッサは、マルチプロセッサであってもよい。プロセッサは、例えばCPU,MPU(Micro Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサは、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
なお、計算ノード200は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム(計算ノード用制御プログラム等)を実行することにより、本実施形態のジョブ演算処理機能を実現する。計算ノード200に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、計算ノード200に実行させるプログラムを記憶装置に格納しておくことができる。プロセッサは、記憶装置内のプログラムの少なくとも一部をRAMにロードし、ロードしたプログラムを実行する。
また、計算ノード200(プロセッサ)に実行させるプログラムを、光ディスク,メモリ装置,メモリカード等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサからの制御により、記憶装置にインストールされた後、実行可能になる。また、プロセッサが、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
そして、計算ノード200において、プロセッサが、計算ノード用制御プログラムを実行することで、ジョブ演算処理機能が実現される。
ジョブ演算処理機能は、ジョブ実行の制御を行なう。ジョブ演算処理機能は、後述するジョブ管理ノード100から実行(演算)を依頼(指示)されたジョブについて、実行開始,実行状態の監視および終了等を制御する。なお、ジョブ管理ノード100が計算ノード200に「ジョブの実行を依頼する」ことを、「ジョブを割り当てる」という場合がある。
なお、計算ノード200におけるジョブの実行等の各処理は既知の手法を用いて実現することができ、その詳細な説明は省略する。
また、ジョブ演算処理機能においては、ジョブの処理結果(演算結果)を、必要に応じて、他の計算ノード200やジョブの依頼元のユーザ端末500に対して、ネットワーク201を介して送信してもよい。
本並列計算機システム1においては、各計算ノード200がジョブの配置単位であるノードに相当する。計算ノード200を単にノード200という場合がある。
(b)ジョブ管理ノード100
ジョブ管理ノード100は、ユーザ端末500等からジョブの実行依頼を受け付け、計算ノード群202に備えられた複数の計算ノード200のうち、1つ以上の計算ノード200にジョブを実行させる制御を行なう。なお、ジョブの実行依頼を受け付けることを、ジョブが投入されると表現してもよい。
ジョブ管理ノード100は、2つ以上の計算ノード200にジョブを割り当てることで2以上のジョブを並列に処理させる、並列処理制御装置である。
ジョブ管理ノード100は、情報処理装置であり、例えば、図示しない、プロセッサ,メモリ,記憶装置およびネットワークインタフェースを構成要素として有する。これらの構成要素は、バスを介して相互に通信可能に構成される。
メモリはROMおよびRAMを含む記憶メモリである。メモリのROMには、ジョブ管理ノード100が実行するソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ上のソフトウェアプログラムは、CPU等のプロセッサに適宜読み込まれて実行される。また、メモリのRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
ソフトウェアプログラムには、ジョブ管理ノード100においてジョブスケジューラ110としての機能を実現するためにプロセッサによって実行されるジョブ管理ノード用制御プログラムが含まれてもよい。
記憶装置は、ジョブ管理ノード100の補助記憶装置として使用され、例えば、HDDやSSDである。記憶装置には、OSプログラム,ソフトウェアプログラム、および各種データが格納される。
ネットワークインタフェースは、ネットワーク201に接続される。ネットワークインタフェースは、ネットワーク201を介して、他のコンピュータ(計算ノード200,電源管理ノード300)または通信機器との間でデータの送受信を行なう。
プロセッサは、ジョブ管理ノード100全体を制御する。プロセッサは、マルチプロセッサであってもよい。プロセッサは、例えばCPU,MPU,DSP,ASIC,PLD,FPGAのいずれか一つであってもよい。また、プロセッサは、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
なお、ジョブ管理ノード100は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム(ジョブ管理ノード用制御プログラム等)を実行することにより、ジョブスケジューラ110としての機能を実現する。ジョブ管理ノード100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、ジョブ管理ノード100に実行させるプログラムを記憶装置に格納しておくことができる。プロセッサは、記憶装置内のプログラムの少なくとも一部をRAMにロードし、ロードしたプログラムを実行する。
また、ジョブ管理ノード100(プロセッサ)に実行させるプログラムを、光ディスク,メモリ装置,メモリカード等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサからの制御により、記憶装置にインストールされた後、実行可能になる。また、プロセッサが、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
そして、ジョブ管理ノード100において、プロセッサが、ジョブ管理ノード用制御プログラムを実行することで、ジョブスケジューラ110としての機能が実現される。
ジョブスケジューラ110は、ユーザ端末500等から実行依頼(サブミット)されたジョブについて、計算ノード200に対する実行予約(割り当て)を行なう。ジョブスケジューラ110は、例えば、処理対象(割り当て対象)のジョブについて、割り当て先の計算ノード200(計算ノード資源)を決定するとともに、この割り当て先計算ノード200に当該ジョブを実行させる時間帯(開始予定時刻,終了予定時刻)を決定する。
ジョブスケジューラ110は、これらの決定した内容を対応付けてスケジューリング情報(ジョブスケジュール)111に登録する。
図2は実施形態の一例としての並列計算機システム1におけるスケジューリング情報111を例示する図である。
図2に例示するスケジューリング情報111においては、ジョブID,割り当て対象ノードID(identification),開始予定時刻および終了予定時刻が対応付けられている。
ジョブIDは、ジョブを特定する識別情報である。割り当て対象ノードIDは、計算ノード200を特定する識別情報である。開始予定時刻および終了予定時刻は、ジョブを実行させる時間帯の開始予定時刻および終了予定時刻をそれぞれ示す。
ジョブスケジューラ110によって作成されたスケジューリング情報111は、ジョブスケジュール格納部120(図10参照)に格納される。
ジョブスケジュール格納部120は、スケジューリング情報111を記憶する記憶領域であり、例えば、ジョブ管理ノード100の図示しないRAMやHDDの記憶領域を用いて実現される。
このジョブスケジュール格納部120には、後述する計算ノード管理部301(図6参照)からもアクセスが行なわれ、スケジューリング情報111の読み出しが行なわれる。
なお、ジョブスケジュール格納部120は、ジョブ管理ノード100の外部に備えられてもよく、例えば、電源管理ノード300の記憶装置や図示しない他のサーバ装置の記憶装置を用いて実現してもよい。
図3は各計算ノード200に対するジョブの割り当てを模式的に示す図である。この図3に示す割り当て状態は、図2に例示するスケジューリング情報111に対応する。また、図3中において、縦軸は複数の計算ノード200を特定するノードIDを示し、横軸は時系列を示す。
例えば、ジョブIDが“1”のジョブは、ノードIDが“0x001”の計算ノード200に、2/22の15:00−19:00の期間、割り当てられ、実行される。
この図3に例示する割り当て状態を参照することで、各計算ノード200における任意の時間でのジョブの割り当て状態を把握することができる。
そして、ジョブスケジューラ110は、スケジューリング情報111を参照して、例えば、スケジューリング情報111に予定された時刻(開始予定時刻)に、割り当先の計算ノード200に対してジョブの実行を依頼する。なお、ジョブスケジューラ110としての機能は既知であり、その詳細な説明は省略する。
本並列計算機システム1においては、ジョブ管理ノード100が受け付けるジョブのうち、例えば、実行中の他のジョブを停止させて代わりに実行させるまではしないが、実行待ち中のジョブの中では最優先に実行を開始すべきという程度の優先度のジョブを、高優先度ジョブという。
ジョブスケジューラ110は、ユーザ端末500等から高優先度ジョブが投入されると、この高優先度ジョブが投入されたことを表す通知(高優先度ジョブ投入通知)を、後述する電源管理ノード300(ジョブ情報取得部303;図6参照)に発信(発行,通知)する。
図4は実施形態の一例としての並列計算機システム1における高優先度ジョブ投入通知のデータ構造を例示する図である。
この図4に例示する高優先度ジョブ投入通知は、ジョブIDと割当形状とを対応付けて構成されている。この図4に例示する高優先度ジョブ投入通知は、ジョブIDが“3”,“4”,“5”の3つの高優先度ジョブについて示す。
割当形状は、ジョブIDによって特定されるジョブの実行に必要とされる計算ノード200の構成を表す。
割当形状は、例えば、N次元座標における各軸方向の座標値の組み合わせとして表される。
図4に例示する高優先度ジョブ投入通知は、ジョブの割当先が、三次元の直方体形状に並べた複数の計算ノード200である例について示す。すなわち、図4に例示する割当形状は、(x,y,z)の三次元空間(N=3)の直交座標系のフォーマットを有し、x方向,y方向およびz方向の各辺の長さを表す。
割当形状は、ジョブの実行に必要とされる数の計算ノード200を直方体を構成するように連結した場合における、この直方体を成す集合体(計算ノード塊)のサイズおよび形状を示す情報である。
そして、これらのx,y,zの各値が、当該ジョブの実行に要求される計算ノード200の集合体(要求ノード群,計算ノード塊)である立方体の各辺長を表す。また、これらのx,y,zの各値の積が、当該ジョブの実行に要求される計算ノード200の数(要求ノード数)を表す。なお、割当形状によって表される立方体の各辺長のうち、最も大きい値を最大辺長という場合がある。また、以下、高優先度ジョブの最大辺長を符号Lを用いて表す場合がある。
図4に例示する高優先度ジョブ投入通知において、例えば、ジョブID“2”の高優先度ジョブの割当形状は(4,2,2)であるので、その最大辺長は“4”である(L=4)。また、このジョブID“2”の高優先度ジョブの処理には、計算ノード群202において、直方体を成すように連結された4×2×2=16個の一群の計算ノード200が要求される。
また、ジョブスケジューラ110においては、予め、計算ノード200における、電源切断処理に要する時間と、電源投入処理に要する時間とが、後述する電源制御設定情報格納部309(図10参照)に、例えばパラメータとして設定されている。
そして、ジョブスケジューラ110は、計算ノード200における、電源切断処理中の期間と、電源投入処理中の期間は、当該計算ノード200へのジョブの割り当ては行なわない(抑止する)。以下、計算ノード200へジョブの割り当てを抑止する期間をジョブ割り当て抑止期間という場合がある。
電源切断対象の計算ノード200へのジョブ割り当て抑止期間を、電源切断処理に要する時間と電源投入処理に要する時間との和と等しくすると、当該計算ノード200の電源投入処理が、当該計算ノード200に割り当てられたジョブの実行開始予定時刻に間に合わないおそれがある。従って、ジョブ割り当て抑止期間は、電源切断処理に要する時間と電源投入処理に要する時間との和よりも長いものであることが望ましい。
以下、計算ノード200において電源切断処理に要する時間を“時間T”と表す場合がある。この電源切断処理に要する時間Tは、電源制御設定情報格納部309に記憶されている。各計算ノード200の電源切断処理に要する時間Tや電源投入に要する時間は、例えば、電源管理ノード300の起動時に、計算ノード管理部301により電源制御設定情報格納部309から読み出される。
また、計算ノード200の電源投入処理においては、想定以上の時間を要する場合が考えられる。すなわち、計算ノード200の電源投入処理に、パラメータとして設定した「電源投入処理に要する時間」以上の時間がかかる場合がある。このような場合には、ジョブ割り当て抑止期間の直後に割り当てられていたジョブの実行開始が失敗するおそれがある。このような計算ノード200におけるジョブの実行開始の失敗は、ユーザから見ると、ジョブスケジューラ110が提示した実行開始予定時刻になっても当該ジョブが実行されないことを意味し、ジョブスループットの低下だけではなくユーザの不満にもつながる。
そこで、ジョブスケジューラ110は、ジョブ割り当て抑止期間にマージンを設定してもよい。このようなマージンを設定することにより、計算ノード200におけるジョブ実行開始失敗を回避することができる。
(c)電源管理ノード300
図5は実施形態の一例としての並列計算機システム1の電源管理ノード300のハードウェア構成の一例を示すブロック図である。
電源管理ノード300は、計算ノード群202に備えられた各計算ノード200の電源のオン/オフを、電源制御装置400を介して個別に制御する。
電源管理ノード300は、情報処理装置として構成され、図5に例示するように、例えば、プロセッサ11,RAM12,HDD13,グラフィック処理装置14,入力インタフェース15,光学ドライブ装置16,機器接続インタフェース17およびネットワークインタフェース18を構成要素として有する。これらの構成要素11〜18は、バス19を介して相互に通信可能に構成される。
RAM12は、電源管理ノード300の主記憶装置として使用される。RAM12には、プロセッサ11に実行させるOSプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM12には、プロセッサ11による処理に必要な各種データが格納される。アプリケーションプログラムには、電源管理ノード300において計算ノード200に対する電源制御機能を実現するためにプロセッサ11によって実行される電源制御プログラムが含まれてもよい。
HDD13は、計算ノード200の補助記憶装置として使用される。HDD13には、OSプログラム,アプリケーションプログラム、および各種データが格納される。
機器接続インタフェース17は、計算ノード200に周辺機器を接続するための通信インタフェースである。例えば、機器接続インタフェース17には、メモリ装置17aやメモリリーダライタ17bを接続することができる。メモリ装置17aは、機器接続インタフェース17との通信機能を搭載した非一時的な記録媒体、例えばUSB(Universal Serial Bus)メモリである。メモリリーダライタ17bは、メモリカード17cへのデータの書き込み、またはメモリカード17cからのデータの読み出しを行なう。メモリカード17cは、カード型の非一時的な記録媒体である。
ネットワークインタフェース18は、ネットワーク201に接続される。ネットワークインタフェース18は、ネットワーク201を介して、他のコンピュータ(計算ノード200,ジョブ管理ノード100)または通信機器との間でデータの送受信を行なう。
電源管理ノード300においては、機器接続インタフェース17もしくはネットワークインタフェース18を介して、電源制御装置400が接続される。
電源制御装置400は、計算ノード群202に備えられた個々の計算ノード200への電力供給を制御する。すなわち、電源制御装置400は、電源管理ノード300からの指示に従って、任意の計算ノード200に対して、電源投入(電源オン)および電源切断(電源オフ)を行なう。
なお、複数の電源制御装置400を備え、各電源制御装置400に所定数の計算ノード200をそれぞれ制御させてもよく、適宜変更して実施することができる。また、電源制御装置400の構成や機能は既知であり、その詳細な説明は省略する。
プロセッサ11は、電源管理ノード300全体を制御する。プロセッサ11は、マルチプロセッサであってもよい。プロセッサ11は、例えばCPU,MPU,DSP,ASIC,PLD,FPGAのいずれか一つであってもよい。また、プロセッサ21は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
なお、電源管理ノード300は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム(ノード電源管理プログラム)を実行することにより、計算ノード200の電源管理機能を実現する。電源管理ノード300に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、電源管理ノード300に実行させるプログラムをHDD13に格納しておくことができる。プロセッサ11は、HDD13内のプログラムの少なくとも一部をRAM12にロードし、ロードしたプログラムを実行する。
また、電源管理ノード300(プロセッサ11)に実行させるプログラムを、光ディスク16a,メモリ装置17a,メモリカード17c等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ11からの制御により、HDD13にインストールされた後、実行可能になる。また、プロセッサ11が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
そして、電源管理ノード300において、プロセッサ11が、ノード電源管理プログラムを実行することで、計算ノード管理部301として機能する。
計算ノード管理部301は、計算ノード群202における各計算ノード200の電源管理を行なう。すなわち、計算ノード管理部301は、電源制御装置400を介して計算ノード200に備えられた各計算ノード200の電源投入(電源オン)および電源遮断(電源オフ)の制御を行なう。
また、計算ノード管理部301は、計算ノード200における電力消費を低減させる省電力制御を実現する。
省電力制御を行なうに際して、計算ノード管理部301は、ジョブ管理ノード100のジョブスケジューラ110によって生成されるスケジューリング情報111を参照して空きノード200を特定する。
ここで空きノード200とは、ジョブを処理中でなく、且つ、ジョブの割り当てが、以後、所定時間以上される予定がない計算ノード200である。
本並列計算機システム1においては、計算ノード管理部301が、計算ノード群202における空きノード200を電源オフの状態にすることで、計算ノード群202におけるジョブスループットを低下させずに、消費電力を削減してシステムの省電力化を実現する。図3に示す例においては、ノードIDが“0x003”,“0x004”の計算ノード200を電源オフにすることで省電力化を図ってもよい。
図6は実施形態の一例としての並列計算機システム1の計算ノード管理部301の機能構成を例示する図である。
この図6に示すように、計算ノード管理部301は、スケジューリング情報取得部302,ジョブ情報取得部303,ノード領域決定部304および電源制御部305としての機能を備える。
スケジューリング情報取得部302は、ジョブスケジューラ110によって作成されたスケジューリング情報111を取得する。例えば、スケジューリング情報取得部302は、ジョブ管理ノード100が作成し、ジョブスケジュール格納部120に格納したスケジューリング情報111を読み出すことで取得する。
なお、スケジューリング情報取得部302は、例えば、ジョブ管理ノード100に対して、スケジューリング情報111の送信を要求することでスケジューリング情報111を取得してもよく、適宜変更して実施することができる。
ジョブ情報取得部303は、ジョブ管理ノード100のジョブスケジューラ110から通知された高優先度ジョブ投入通知を受信する。上述の如く、この高優先度ジョブ投入通知には、割当形状が含まれているので、この高優先度ジョブ投入通知を参照することで、入力された高優先度ジョブの最大辺長Lを得ることができる。
ジョブ情報取得部303は、受信した高優先度ジョブ投入通知を、高優先度ジョブ投入通知格納部306に格納する。
高優先度ジョブ投入通知格納部306は、高優先度ジョブ投入通知を記憶する記憶領域であり、例えば、RAM12やHDD13の記憶領域を用いて実現される。
ノード領域決定部304は、電源切断中ノード200または電源切断候補ノード200を中心とする、所定範囲の領域を拡張ノード範囲領域(管理領域)として設定する。
ここで、電源切断中ノード200とは、電源オフの状態にある計算ノード200と、電源断プロセスの途中にある計算ノード200とを含む。すなわち、電源オフの状態または電源断プロセスの途中のいずれかの状態にある計算ノード200を電源切断中ノード200という。
また、電源切断候補ノード200とは、空きノード200であって、且つ、所定時間(例えば時間T)以上ジョブが割り当てられていない計算ノード200をいう。
以下、電源切断中ノード200と電源切断候補ノード200とを併せて、電源切断ノード200という場合がある。
所定範囲の領域とは、電源切断ノード200の位置を中心として、当該電源切断ノード200を、計算ノード群202においてN次元座標における各軸方向に沿って仮想的に拡張した範囲領域である。
図7は実施形態の一例としての並列計算機システム1における拡張ノード範囲領域を説明するための図である。
この図7に例示する拡張ノード範囲領域は、3次元(N=3)の座標空間において、電源切断ノード200を中心として、この電源切断ノード200を、x,y,zの各軸方向に、(aL+1)倍に拡張した立方体形状を有する。すなわち、拡張ノード範囲領域は、電源切断ノード200を中心とした、(aL+1)を一辺の長さとする立方体形状を有する。なお、(aL+1)は計算ノード200の数を示す。拡張ノード範囲領域は、x,y,zの各軸方向において、電源切断ノード200を中心として、+方向と−方向とにそれぞれaL/2拡張した範囲領域であると言える。
aは正の数であり、2の倍数であることが望ましい。以下、本実施形態においては、a=2である例について示す。従って、拡張ノード範囲領域は、電源切断ノード200を中心とした、(2L+1)個の計算ノード200を並べた長さを一辺とする立方体形状であるものとする。
また、Lは、高優先度ジョブに関する最大辺長である。例えば、a=2であり、且つ、高優先度ジョブの最大辺長L=3である場合には、拡張ノード範囲領域は、aL+1=2×3+1=7を1辺とする立方体形状となる。すなわち、x,y,x方向にそれぞれ計算ノード200を7個分並べた、343個の計算ノード200を含む範囲領域が拡張ノード範囲領域となる。
計算ノード群202において、電源切断ノード200が複数ある場合には、ノード領域決定部304は、各電源切断ノード200のそれぞれについて、拡張ノード範囲領域を設定することが望ましい。
本並列計算機システム1においては、この拡張ノード範囲領域に含まれる計算ノード200に対して、後述する電源制御部305による電源制御が行なわれる。
すなわち、拡張ノード範囲領域は、計算ノード群202において、投入された高優先度ジョブを処理するに際して電源制御を行なう範囲(領域)を示す。拡張ノード範囲領域を電源制御ノード領域と称してもよい。
ノード領域決定部304は、決定した電源切断中ノード200および電源切断候補ノード200のノードIDを、ノードID格納部308に格納する。
このように、ノード領域決定部304は、計算ノード群202において、2つ以上の計算ノード200を含む管理領域(拡張ノード範囲領域)を設定する管理領域設定部として機能する。
ノードID格納部308は、計算ノード群202を構成する各計算ノード200のノードIDを記憶する記憶領域であり、例えば、RAM12やHDD13の記憶領域を用いて実現される。計算ノード管理部301は、電源管理ノード300の起動時に、このノードID格納部308を参照して、計算ノード群202を構成する全ての計算ノード200のノードIDを取得する。また、このノードID格納部308には、電源切断中ノード200および電源切断候補ノード200のノードIDも記録される。
電源制御設定情報格納部309は、計算ノード群202に備えられた全ての計算ノード200について、電源切断に要する時間(時間T)および電源投入に要する時間(電源制御設定情報)を記憶する記憶領域であり、例えば、RAM12やHDD13の記憶領域を用いて実現される。
これらの電源切断に要する時間および電源投入に要する時間は、計算ノード200毎に実測した値を記憶してもよく、また、設定値(仕様値)として、計算ノード200の製造メーカ等から提供された値を用いてもよく、種々変更して実施することができる。
電源制御部305は、計算ノード群202に含まれる各計算ノード200の電源のオン/オフを制御する。電源制御部305は、電源制御装置400に指示を行なって、個々の計算ノード200の電源のオン/オフを制御する。例えば、電源制御部305は、電源制御装置400に対して、電源制御対象の計算ノード200のノードIDとともに、電源オン指示もしくは電源オフ指示を送信することで、任意の計算ノード200の電源のオン/オフを切り替える。
また、電源制御部305は、ノード領域決定部304によって決定された拡張ノード範囲領域において、電源投入制御対象とする計算ノード200を決定する電源投入繰上部3051としての機能を有する。
計算ノード群202において、複数の計算ノード200によって構成される特定の領域であって、「空きノード数 ≧ ジョブの要求ノード数」の条件(判断条件)を満たす領域には、高優先度ジョブが割り当てられる可能性が高い。そこで、電源投入繰上部3051は、拡張ノード範囲領域において、「空きノード数 ≧ 要求ノード数」の条件を満たす場合に、当該拡張ノード範囲領域に含まれる全ての各計算ノード200の電源を電源オン状態に制御する。
すなわち、電源投入繰上部3051は、この拡張ノード範囲領域内に存在する電源オフ状態の計算ノード200に対して、ジョブ(高優先度ジョブ)が割り当てられる前に電源オン状態にする(繰上電源投入)制御を行なう。また、電源投入繰上部3051は、拡張ノード範囲領域内において既に電源オン状態の計算ノード200に対しては、電源オン状態を維持させる制御を行なう。
電源投入繰上部3051は、ジョブスケジュール情報格納部120から読み出したスケジューリング情報111を参照して、拡張ノード範囲領域に含まれる空きノード数を計数する。電源投入繰上部3051は、例えば、現在時刻においてジョブが実行されていない計算ノード200の数を空きノード数とする。
例えば、図3に示す例においては、2/22 15:00の時点で、ノードIDが、0x002,0x003および0x004の3つの計算ノード200が空きノード200となる。すなわち、2/22 15:00時点での空きノード数=3となる。
以下、拡張ノード範囲領域であって、「空きノード数 ≧ 要求ノード数」の条件を満たす領域を、適格拡張ノード範囲領域という場合がある。
電源投入繰上部3051は、このような適格拡張ノード範囲領域内に存在する計算ノード200について、電源切断中のものに対しては電源投入させ、電源切断候補ノード200については電源切断を抑止させる制御を行なう。
すなわち、電源投入繰上部3051は、適格拡張ノード範囲領域内に存在する電源オフ状態の計算ノード200に対して、ジョブ(高優先度ジョブ)が割り当てられる前に電源オン状態にする、電源投入繰上部として機能する。また、電源投入繰上部3051は、適格拡張ノード範囲領域において既に電源オン状態の計算ノード200に対しては、電源オン状態を維持させる制御を行なう。
これにより、電源投入繰上部3051は、適格拡張ノード範囲領域内の全ての計算ノード200を電源オン状態にする。
電源投入繰上部3051は、電源制御装置400に、計算ノード200の指定とともに、電源オンや電源オン状態の維持を指示する信号(命令)を送信することで、各計算ノード200についての電源制御を行なう。
以下、適格拡張ノード範囲領域に含まれる計算ノード200のうち、電源切断中の計算ノード200と電源切断候補ノード200とを電源オン制御対象ノード200という場合がある。
図8は実施形態の一例としての並列計算機システム1における電源投入繰上部3051による適格拡張ノード範囲領域の決定方法を説明するための図である。
この図8において、符号(a),(b),(c)はそれぞれ、便宜上、拡張ノード範囲領域を2次元座標で示しており、それぞれ7×7の49個の計算ノード200を含む範囲として形成されている。また、これらの各拡張ノード範囲領域において電源切断ノード200(ノードID=1,2,3)がそれぞれ中央に位置している。
符号(a)に示す拡張ノード範囲領域(領域1)は、ノードID=1の電源切断ノード200を中心とする49個の計算ノード200を含む範囲として形成され、そのうち空きノードが4個である。符号(b)に示す拡張ノード範囲領域(領域2)は、ノードID=2の電源切断ノード200を中心とする49個の計算ノード200を含む範囲として形成され、そのうち空きノードが27個である。符号(c)に示す拡張ノード範囲領域(領域3)は、ノードID=3の電源切断ノード200を中心とする49個の計算ノード200を含む範囲として形成され、そのうち空きノードが27個である。
電源投入繰上部3051は、高優先度ジョブが投入されると、その要求ノード数と、各拡張ノード範囲領域の空きノード数とを比較し、空きノード数が要求ノード数以上の拡張ノード範囲領域を適格拡張ノード範囲領域として判断する。
例えば、要求ノード数が“16”の高優先度ジョブが投入された場合に、電源投入繰上部3051は、この要求ノード数“16”と、各拡張ノード範囲領域の空きノード数とを比較する。図8に示す例においては、空きノードが27個である、符号(b),(c)で示される拡張ノード範囲領域(領域2,3)が適格拡張ノード範囲領域として判断される。
電源投入繰上部3051は、適格拡張ノード範囲領域に含まれる計算ノード200について、電源切断中の計算ノード200のノードIDを電源オン指示とともに電源制御装置400に送信する。
また、電源投入繰上部3051は、適格拡張ノード範囲領域に含まれる計算ノード200について、電源切断候補ノード200については、電源切断を抑止することで電源オン状態を維持させる。例えば、電源投入繰上部3051は、これらの電源切断候補ノード200のノードIDを電源オン指示とともに電源制御装置400に送信する。なお、電源投入繰上部3051は、これらの電源切断候補ノード200のノードIDを、電源オン状態を維持させる指示や、電源オフを抑止する指示とともに電源制御装置400に送信してもよい。
これにより、電源投入繰上部3051は、適格拡張ノード範囲領域に含まれる電源オン制御対象ノード200を電源切断対象から除外させ、電源オン状態に維持させる。従って、適格拡張ノード範囲領域に高優先度ジョブを割り当てる場合に、ジョブを割り当てられた計算ノード200が電源オフ状態になることがなく、割り当てられた高優先度ジョブを迅速に処理することができる。
また計算ノード管理部301は、電源切断ノード200について、スケジューリング情報111を参照し、時間T以内にジョブが割り当てられているかを確認する機能を有する。そして、計算ノード管理部301は、当該電源切断ノード200にジョブが割り当てられていない場合に、ジョブスケジューラ110に対して、当該電源切断ノード200についてのジョブ割り当て抑止時間を時間Tだけ延長するよう依頼(指示)を送信する。
(B)動作
上述の如く構成された実施形態の一例としての並列計算機システム1における高優先度ジョブが投入された場合のジョブスケジューラ110の処理を、図10を参照しながら、図9に示すフローチャート(ステップA1〜A5)に従って説明する。また、図10は本並列計算機システム1において送受信される情報を説明するための図である。
ステップA1において、ジョブスケジューラ110は、ユーザ端末500からの高優先度ジョブの投入を検知する(図10の矢印P1参照)。
ステップA2において、ジョブスケジューラ110は、高優先度ジョブ投入通知を計算ノード管理部301のジョブ情報取得部303に発信する(図10の矢印P2参照)。ジョブ情報取得部303は、受信した高優先度ジョブ投入通知を高優先度ジョブ投入通知格納部306に格納する(図10の矢印P3参照)。
ステップA3において、ジョブスケジューラ110は、投入された高優先度ジョブのスケジューリングを行なう。なお、ジョブスケジューラ110におけるジョブのスケジュール処理は既知の種々の手法を用いて実現することができ、その説明は省略する。このジョブスケジューラ110によるジョブスケジュール処理により、スケジューリング情報111が生成(決定)される。
なお、ジョブスケジューラ110は、ジョブのスケジュール処理を行なうに際して、ジョブの割り当てを抑止されている計算ノード200に対しては、ジョブの割り当てを行なわない。
ステップA4において、ジョブスケジューラ110は、ステップA3において行なったジョブスケジュール処理において決定されたスケジューリング情報111を、ジョブスケジュール格納部120に格納する(図10の矢印P4参照)。
ステップA5において、ジョブスケジューラ110は、スケジューリング情報111に従って、スケジュールされた時間に、割り当て先の計算ノード200に対してジョブの実行開始依頼を行なう(図10の矢印P5参照)。その後、処理を終了する。
なお、上記処理は、高優先度ジョブが投入された場合の処理であり、高優先度ジョブではない通常のジョブが投入された場合には、ステップA1,A2の処理が省略され、ステップA3〜A5の処理が行なわれる。
次に、実施形態の一例としての並列計算機システム1の計算ノード管理部301の処理を、図10を参照しながら、図11および図12に示すフローチャート(ステップB1〜B19)に従って説明する。なお、図11はステップB1〜B9の処理を、図12はステップB10〜B19の処理を、それぞれ示す。
図11のステップB1において、スケジューリング情報取得部302が、ジョブスケジュール格納部120から、スケジューリング情報111を取得する(図10の矢印P6参照)。取得したスケジューリング情報111は、RAM12等の記憶領域に格納される。
図11のステップB2において、スケジューリング情報取得部302は、取得したスケジューリング情報111を前回取得したスケジューリング情報111と比較し、同じであるか否かを確認する。具体的には、スケジューリング情報取得部302は、ステップB1において取得したスケジューリング情報111と、前回取得したスケジューリング情報111とについて、ジョブID,割当対象ノードID,開始予定時刻,終了予定時刻が同じであるかを確認する。
確認の結果、新たに取得したスケジューリング情報111が前回取得したスケジューリング情報111と同じである場合には(ステップB2のYESルート参照)、図11のステップB4に移行する。
ステップB4において、電源投入繰上部3051は、ノードID格納部308から、全ての、電源切断中ノード200および電源切断候補ノード200のノードIDを取得する(図10の矢印P7参照)。
一方、ステップB2における確認の結果、新たに取得したスケジューリング情報111が前回取得したスケジューリング情報111と不一致である場合には(ステップB2のNOルート参照)、図11のステップB3に移行する。
ステップB3において、高優先度ジョブ投入通知格納部306に格納されている全ての高優先度ジョブ投入通知を削除(クリア)してから、ステップB4に移行する。
その後、図11のステップB5において、ステップB4において取得したノードIDに対応する全ての計算ノード200に対して、図11のステップB9までの制御を繰り返し実施するループ処理を開始する。
図11のステップB6においては、電源制御部305は、スケジューリング情報111を参照して、当該計算ノード200に割り当てられたジョブの開始予定時刻を確認する。電源投入繰上部3051は、現在時刻から時間T以内に、当該計算ノード200にジョブが割り当てられているかを確認する。
確認の結果、現在時刻から時間T以内に当該計算ノード200にジョブが割り当てられている場合には(ステップB6のYESルート参照)、図11のステップB8に移行する。このステップB8において、電源制御部305は、当該計算ノード200を電源オンにさせる(図10の矢印P8参照)。
一方、ステップB6における確認の結果、現在時刻から時間T以内に当該計算ノード200にジョブが割り当てられていない場合には(ステップB6のNOルート参照)、図11のステップB7に移行する。
ステップB7においては、計算ノード管理部301(電源制御部305)は、ジョブスケジューラ110に対して、当該計算ノード200についてのジョブ割り当て抑止時間を時間Tだけ延長するよう依頼(指示)を送信する。ジョブスケジューラ110は、抑止時間の延長をスケジューリング情報111に反映させる。その後、制御が図11のステップB9に移行する。
ステップB9では、ステップB4に対応するループ端処理が実施される。ここで、ステップB4において取得したノードIDに対応する全ての計算ノード200についての処理が完了すると、制御が図12のステップB10に進む。
ステップB10において、ノード領域決定部304が、スケジューリング情報111と全計算ノード200のノードIDとに基づいて、現在時刻での空きノード200を検出し、そのノードIDを取得する。
図12のステップB11において、ノード領域決定部304が、ステップB10で検出された空きノード200のうち、ジョブが割り当てられていない期間が時間T以上である計算ノード200を、電源切断候補ノード200として決定する。
ノード領域決定部304は、電源切断候補ノード200のノードIDをノードID格納部308に格納する(図10の矢印P9参照)。
なお、ステップB10において検出された空きノード200のうち、ステップB11において電源切断候補ノード200として決定されなかったもののノードIDは、速やかにRAM12上から消去することが望ましい。これによりRAM12を効率的に用いることができる。
図12のステップB12において、ジョブ情報取得部303が、高優先度ジョブ投入通知格納部306に、高優先度ジョブ投入通知が格納されているか否かを確認する。すなわち、ジョブ情報取得部303は、高優先度ジョブ投入通知格納部306が空であるかを確認する。
確認の結果、高優先度ジョブ投入通知格納部306が空である場合には(ステップB12のYESルート参照)、図12のステップB13に移行する。ステップB13において、計算ノード管理部301は、現在時刻から時間Tの期間は、電源切断候補ノード200へのジョブ割り当てを抑止するように、ジョブスケジューラ110に依頼を行なう。
図12のステップB14において、電源制御部305は、電源制御装置400を介して電源切断候補ノード200の電源をオフにさせる(電源切断処理)。また、電源制御部305は、この電源オフにした計算ノード200のノードIDを電源切断中ノードとしてノードID格納部308に記録させる。
図12のステップB15において、ステップB14で電源切断処理を開始した時刻から時間Tが経過するまで待機する。その後、ステップB1に戻る。
一方、ステップB12における確認の結果、高優先度ジョブ投入通知格納部306が空でない場合には(ステップB12のNOルート参照)、図12のステップB16に移行する。ステップB16において、ジョブ情報取得部303が、高優先度ジョブ投入通知格納部306から高優先度ジョブ投入通知を読み出して取得する(図10の矢印P10参照)。
図12のステップB17において、ノード領域決定部304が、ステップB11で特定した各電源切断候補ノード200を起点として、拡張ノード範囲領域を決定する。
図12のステップB18において、電源投入繰上部3051が、スケジューリング情報111を参照して、ステップB17において決定した各拡張ノード範囲領域に含まれる空きノードをそれぞれ確認(計算)する。
図12のステップB19において、電源投入繰上部3051は、「空きノード数 ≧ ジョブの要求ノード数」を満たす拡張ノード範囲領域内の電源切断対象ノード200(電源オン制御対象ノード200)について電源オン状態に制御する。
すなわち、電源投入繰上部3051は、この拡張ノード範囲領域内に存在する電源オフ状態の計算ノード200に対して、ジョブ(高優先度ジョブ)が割り当てられる前に電源オン状態にする制御を行なう。また、電源投入繰上部3051は、拡張ノード範囲領域内において既に電源オン状態の計算ノード200に対しては、電源オン状態を維持させる制御を行なう。その後、ステップB13に移行する。
(C)効果
このように、実施形態の一例としての並列計算機システム1によれば、高優先度ジョブが投入された際に、ノード領域決定部304が、計算ノード群202において、電源切断ノード200を中心とする所定の範囲領域である拡張ノード範囲領域を設定する。
そして、電源投入繰上部3051が、「空きノード数 ≧ ジョブの要求ノード数」を満たす拡張ノード範囲領域に含まれる全ての計算ノード200の電源を、ジョブの割り当てが行なわれる前にオンにする制御を行なう。
具体的には、電源投入繰上部3051は、「空きノード数 ≧ ジョブの要求ノード数」を満たす拡張ノード範囲領域内の電源切断対象ノード200(電源オン制御対象ノード200)について電源オフを抑止する制御を行なう。また、電源投入繰上部3051は、適格拡張ノード範囲領域に含まれる電源オフ状態の計算ノード200に対して、電源オン状態にする繰上電源投入制御を行なう。
これにより、高優先度ジョブが割り当てられる可能性が高い計算ノード200が電源オンに維持される。従って、高優先度ジョブの実行開始遅延を少なくすることができ、投入された高優先度ジョブを迅速に処理することができ処理性能が向上する。
ジョブ管理ノード100と電源管理ノード300とを別の情報処理装置として備えることで、ジョブスケジューラ110と計算ノード管理部301との処理フローが別々になる。これにより、ジョブスケジューラ110によるジョブの実行開始依頼を行なう際のオーバーヘッドが解消され、計算ノード200の電源オフ/投入オンによるジョブスループットの低下を小さくすることができる。
(D)その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、上述した実施形態においては、ノード領域決定部304が、計算ノード群202において、電源切断ノード200を中心とする所定の範囲領域(管理領域)である拡張ノード範囲領域を設定しているが、これに限定されるものではない。
図13は実施形態の変形例としての並列計算機システム1の計算ノード管理部301aの機能を例示する機能ブロック図である。
この図13に示す計算ノード管理部301aは、図6に示した計算ノード管理部301のノード領域決定部304に代えて計算ノード群区画部314を備える。また、電源制御部305において、電源投入繰上部3051に代えて電源投入繰上部3051aを備える。
なお、その他の部分は図6に示す計算ノード管理部301と同様に構成されている。図中、既述の符号と同一の符号は同様の部分を示しているので、その説明は省略する。
計算ノード群区画部314は、計算ノード群202を、前述した拡張ノード範囲領域と同サイズの複数のブロック(管理領域)に区画する。すなわち、各ブロックは、例えば、3次元(N=3)の座標空間において、(2L+1)個の計算ノード200を並べた長さを一辺とする立方体形状である。各ブロックには、(2L+1)個の計算ノード200がそれぞれ含まれる。
従って、計算ノード群区画部314は、計算ノード群202において、2つ以上の計算ノード200を含む管理領域(ブロック)を設定する管理領域設定部として機能する。
電源投入繰上部3051aは、計算ノード群区画部314によって区画された各ブロックにおいて、電源投入制御対象とする計算ノード200を決定する。
電源投入繰上部3051aは、計算ノード群202に形成された複数のブロックのうち、時間T以上ジョブが割り当てられていない空きノード200が1つでもあるブロックを選択する。以下、このようなブロックを繰上電源制御候補ブロックという場合がある。
そして、電源投入繰上部3051aは、この選択した繰上電源制御候補ブロックにおいて、「空きノード数 ≧ 要求ノード数」の条件を満たす場合に、当該繰上電源制御候補ブロックに含まれる各計算ノード200の電源を、電源オン状態に制御する繰上電源制御を行なう。
電源投入繰上部3051aは、ジョブスケジュール情報格納部120から読み出したスケジューリング情報111を参照して、繰上電源制御候補ブロックに含まれる空きノード数を計数する。電源投入繰上部3051aは、例えば、繰上電源制御候補ブロックにおける、現在時刻においてジョブが実行されていない計算ノード200の数を空きノード数とする。
以下、繰上電源制御候補ブロックであって、「空きノード数 ≧ 要求ノード数」の条件を満たす領域を、適格ブロックという場合がある。このような適格ブロックには、高優先度ジョブが割り当てられる可能性が高い。
そこで、電源投入繰上部3051aは、適格ブロックに含まれる全ての計算ノード200の電源をオンにする制御を行なう。すなわち、電源投入繰上部3051aは、この適格ブロック内に存在する電源オフ状態の計算ノード200に対して、ジョブ(高優先度ジョブ)が割り当てられる前に電源オン状態にする制御を行なう。また、電源投入繰上部3051aは、適格ブロック内において既に電源オン状態の計算ノード200に対しては、電源オン状態を維持させる制御を行なう。
すなわち、電源投入繰上部3051aは、適格ブロック内に存在する電源オフ状態の計算ノード200に対して、ジョブ(高優先度ジョブ)が割り当てられる前に電源オン状態にする。
実施形態の変形例としての並列計算機システム1の計算ノード管理部301の処理を、図14および図15に示すフローチャート(ステップB1〜B16,B171,B172,B18〜B19)に示す。
図15においては、図12におけるステップB17に代えて、ステップB171およびB172を備えており、その他のステップは図12と同様である。すなわち、図14はステップB1〜B9の処理を、図15はステップB10〜B16,B171,B172,B18〜B19の処理を、それぞれ示す。
そして、図中、既述の符号と同一の符号のステップは同様の処理を示しているので、その説明は省略する。
図15のステップB171において、計算ノード群区画部314は、計算ノード群202を、前述した拡張ノード範囲領域と同サイズの複数のブロックに仮想的に区画する。各ブロックは、例えば、3次元(N=3)の座標空間において、(aL+1)を一辺の長さとする立方体形状を有する。
図15のステップB172において、電源投入繰上部3051aは、計算ノード群202に形成された複数のブロックのうち、時間T以上ジョブが割り当てられていない空きノード200が1つでもあるブロックを繰上電源制御候補ブロックとして選択する。
図15のステップB18において、電源投入繰上部3051aが、スケジューリング情報111を参照して、ステップB172において選択した各繰上電源制御候補ブロックに含まれる空きノード数をそれぞれ確認する。
図15のステップB19において、電源投入繰上部3051aは、「空きノード数 ≧ ジョブの要求ノード数」を満たす繰上電源制御候補ブロック(適格ブロック)内の電源切断対象ノード200(電源オン制御対象ノード200)について電源オン状態に制御する。
すなわち、電源投入繰上部3051aは、この適格ブロック内に存在する電源オフ状態の計算ノード200に対して、ジョブ(高優先度ジョブ)が割り当てられる前に電源オン状態にする制御を行なう。また、電源投入繰上部3051aは、適格ブロック内において既に電源オン状態の計算ノード200に対しては、電源オン状態を維持させる制御を行なう。その後、ステップB13に移行する。
このような実施形態の変形例としての並列計算機システム1においても、実施形態の並列計算機システム1と同様の作用効果を奏することができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
並列計算機システムに備えられた複数の計算ノードの電源を制御する電源管理装置であって、
前記複数の計算ノードへのジョブの割り当てがスケジューリングされたスケジューリング情報を取得するスケジューリング情報取得部と、
入力されたジョブに関するジョブ情報を取得するジョブ取得部と、
前記複数の計算ノードのうち、2つ以上の計算ノードを含む管理領域を設定する管理領域設定部と、
前記スケジューリング情報に基づいて求められる、前記管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、前記ジョブ情報に基づいて求められる、前記ジョブの処理に要求される前記計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる前記計算ノードを電源オン状態に制御する電源制御部と
を備えることを特徴とする、電源管理装置。
(付記2)
前記管理領域設定部が、前記複数の計算ノードのうち電源切断中の計算ノードまたは電源切断候補の計算ノードを中心とする、所定範囲の領域を前記管理領域として決定する
ことを特徴とする、付記1記載の電源管理装置。
(付記3)
前記管理領域設定部が、前記複数の計算ノードを、同サイズの複数の領域に区画することで前記管理領域を設定する
ことを特徴とする、付記1記載の電源管理装置。
(付記4)
前記管理領域が、前記入力されたジョブの処理に要求される数の前記計算ノードによって形成される計算ノード塊の大きさに応じて設定される
ことを特徴とする、付記2または3記載の電源管理装置。
(付記5)
前記判断条件が、前記管理領域内における前記空き計算ノード数が前記要求ノード数以上である
ことを特徴とする、付記1〜4のいずれか1項に記載の電源管理装置。
(付記6)
前記入力されたジョブが、前記計算ノード実行中のジョブを停止させることはしないが、実行待ち中のジョブの中では最優先に実行を開始すべき優先度を有する高優先度ジョブである
ことを特徴とする、付記1〜5のいずれか1項に記載の電源管理装置。
(付記7)
並列計算機システムに備えられた複数の計算ノードの電源を制御する電源管理装置において、
前記複数の計算ノードへのジョブの割り当てがスケジューリングされたスケジューリング情報を取得する処理と、
入力されたジョブに関するジョブ情報を取得する処理と、
前記複数の計算ノードのうち、2つ以上の計算ノードを含む管理領域を設定する処理と、
前記スケジューリング情報に基づいて求められる、前記管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、前記ジョブ情報に基づいて求められる、前記ジョブの処理に要求される前記計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる前記計算ノードを電源オン状態に制御する処理と
を備えることを特徴とする、ノード電源管理方法。
(付記8)
前記複数の計算ノードのうち電源切断中の計算ノードまたは電源切断候補の計算ノードを中心とする、所定範囲の領域を前記管理領域として決定する処理
を備えることを特徴とする、付記7記載のノード電源管理方法。
(付記9)
前記複数の計算ノードを、同サイズの複数の領域に区画することで前記管理領域を設定する処理
を備えることを特徴とする、付記7記載のノード電源管理方法。
(付記10)
前記管理領域が、前記入力されたジョブの処理に要求される数の前記計算ノードによって形成される計算ノード塊の大きさに応じて設定される処理
を備えることを特徴とする、付記8または9記載のノード電源管理装置。
(付記11)
前記判断条件が、前記管理領域内における前記空き計算ノード数が前記要求ノード数以上である
ことを特徴とする、付記7〜10のいずれか1項に記載のノード電源管理方法。
(付記12)
前記入力されたジョブが、前記計算ノード実行中のジョブを停止させることはしないが、実行待ち中のジョブの中では最優先に実行を開始すべき優先度を有する高優先度ジョブである
ことを特徴とする、付記7〜11のいずれか1項に記載のノード電源管理方法。
(付記13)
並列計算機システムに備えられた複数の計算ノードの電源を制御する電源管理装置の処理装置に、
前記複数の計算ノードへのジョブの割り当てがスケジューリングされたスケジューリング情報を取得し、
入力されたジョブに関するジョブ情報を取得し、
前記複数の計算ノードのうち、2つ以上の計算ノードを含む管理領域を設定し、
前記スケジューリング情報に基づいて求められる、前記管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、前記ジョブ情報に基づいて求められる、前記ジョブの処理に要求される前記計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる前記計算ノードを電源オン状態に制御する
処理を実行させる、ノード電源管理プログラム。
(付記14)
前記複数の計算ノードのうち電源切断中の計算ノードまたは電源切断候補の計算ノードを中心とする、所定範囲の領域を前記管理領域として決定する
処理を前記処理装置に実行させる、付記13記載のノード電源管理プログラム。
(付記15)
前記複数の計算ノードを、同サイズの複数の領域に区画することで前記管理領域を設定する
処理を前記処理装置に実行させる、付記13記載のノード電源管理プログラム。
(付記16)
前記管理領域が、前記入力されたジョブの処理に要求される数の前記計算ノードによって形成される計算ノード塊の大きさに応じて設定される
処理を前記処理装置に実行させる、付記14または15記載のノード電源管理プログラム。
(付記17)
前記判断条件が、前記管理領域内における前記空き計算ノード数が前記要求ノード数以上である
ことを特徴とする、付記13〜16のいずれか1項に記載のノード電源管理プログラム。
(付記18)
前記入力されたジョブが、前記計算ノード実行中のジョブを停止させることはしないが、実行待ち中のジョブの中では最優先に実行を開始すべき優先度を有する高優先度ジョブである
ことを特徴とする、付記13〜17のいずれか1項に記載のノード電源管理プログラム。
1 並列計算機システム
11 プロセッサ
12 RAM
13 HDD
14 グラフィック処理装置
14a モニタ
15 入力インタフェース
15a キーボード
15b マウス
16 光学ドライブ装置
16a 光ディスク
17 機器接続インタフェース
17a メモリ装置
17b メモリリーダライタ
17c メモリカード
18 ネットワークインタフェース
18a ネットワーク
19 バス
110 ジョブスケジューラ
111 スケジューリング情報
120 ジョブスケジュール格納部
100 ジョブ管理ノード
200 計算ノード
211 通信リンク監視処理部
212 スワップ処理部
213 メモリ資源監視処理部
202 計算ノード群
300 電源管理ノード
301,301a 計算ノード管理部
302 スケジューリング情報取得部
303 ジョブ情報取得部
304 ノード領域決定部
305 電源制御部
3051,3051a 電源投入繰上部
306 高優先度ジョブ投入通知格納部
308 ノードID格納部
309 電源制御設定情報格納部
314 計算機ノード群区画部
400 電源制御装置
500 ユーザ端末

Claims (8)

  1. 並列計算機システムに備えられた複数の計算ノードの電源を制御する電源管理装置であって、
    前記複数の計算ノードへのジョブの割り当てがスケジューリングされたスケジューリング情報を取得するスケジューリング情報取得部と、
    入力されたジョブに関するジョブ情報を取得するジョブ取得部と、
    前記複数の計算ノードのうち2つ以上の計算ノードを含む、少なくとも1つの管理領域を設定する管理領域設定部と、
    前記スケジューリング情報に基づいて求められる、前記管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、前記ジョブ情報に基づいて求められる、前記ジョブの処理に要求される前記計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる前記計算ノードを電源オン状態に制御する電源制御部と
    を備えることを特徴とする、電源管理装置。
  2. 前記管理領域設定部が、前記複数の計算ノードのうち電源切断中の計算ノードまたは電源切断候補の計算ノードを中心とする、所定範囲の領域を前記管理領域として決定する
    ことを特徴とする、請求項1記載の電源管理装置。
  3. 前記管理領域設定部が、前記複数の計算ノードを、同サイズの複数の領域に区画することで前記管理領域を設定する
    ことを特徴とする、請求項1記載の電源管理装置。
  4. 前記管理領域が、前記入力されたジョブの処理に要求される数の前記計算ノードによって形成される計算ノード塊の大きさに応じて設定される
    ことを特徴とする、請求項2または3記載の電源管理装置。
  5. 前記判断条件が、前記管理領域内における前記空き計算ノード数が前記要求ノード数以上である
    ことを特徴とする、請求項1〜4のいずれか1項に記載の電源管理装置。
  6. 前記入力されたジョブが、前記計算ノード実行中のジョブを停止させることはしないが、実行待ち中のジョブの中では最優先に実行を開始すべき優先度を有する高優先度ジョブである
    ことを特徴とする、請求項1〜5のいずれか1項に記載の電源管理装置。
  7. 並列計算機システムに備えられた複数の計算ノードの電源を制御する電源管理装置において、
    前記複数の計算ノードへのジョブの割り当てがスケジューリングされたスケジューリング情報を取得する処理と、
    入力されたジョブに関するジョブ情報を取得する処理と、
    前記複数の計算ノードのうち2つ以上の計算ノードを含む、少なくとも1つの管理領域を設定する処理と、
    前記スケジューリング情報に基づいて求められる、前記管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、前記ジョブ情報に基づいて求められる、前記ジョブの処理に要求される前記計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる前記計算ノードを電源オン状態に制御する処理と
    を備えることを特徴とする、ノード電源管理方法。
  8. 並列計算機システムに備えられた複数の計算ノードの電源を制御する電源管理装置の処理装置に、
    前記複数の計算ノードへのジョブの割り当てがスケジューリングされたスケジューリング情報を取得し、
    入力されたジョブに関するジョブ情報を取得し、
    前記複数の計算ノードのうち2つ以上の計算ノードを含む、少なくとも1つの管理領域を設定し、
    前記スケジューリング情報に基づいて求められる、前記管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、前記ジョブ情報に基づいて求められる、前記ジョブの処理に要求される前記計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる前記計算ノードを電源オン状態に制御する
    処理を実行させる、ノード電源管理プログラム。
JP2017160828A 2017-08-24 2017-08-24 電源管理装置,ノード電源管理方法およびノード電源管理プログラム Active JP6874594B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017160828A JP6874594B2 (ja) 2017-08-24 2017-08-24 電源管理装置,ノード電源管理方法およびノード電源管理プログラム
US16/100,294 US10635157B2 (en) 2017-08-24 2018-08-10 Information processing apparatus, method and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017160828A JP6874594B2 (ja) 2017-08-24 2017-08-24 電源管理装置,ノード電源管理方法およびノード電源管理プログラム

Publications (2)

Publication Number Publication Date
JP2019040325A JP2019040325A (ja) 2019-03-14
JP6874594B2 true JP6874594B2 (ja) 2021-05-19

Family

ID=65435055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017160828A Active JP6874594B2 (ja) 2017-08-24 2017-08-24 電源管理装置,ノード電源管理方法およびノード電源管理プログラム

Country Status (2)

Country Link
US (1) US10635157B2 (ja)
JP (1) JP6874594B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11768704B2 (en) * 2021-04-28 2023-09-26 Red Hat, Inc. Increase assignment effectiveness of kubernetes pods by reducing repetitive pod mis-scheduling

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892916B2 (en) * 2008-08-06 2014-11-18 International Business Machines Corporation Dynamic core pool management
US8387064B2 (en) * 2008-10-09 2013-02-26 International Business Machines Corporation Balancing a data processing load among a plurality of compute nodes in a parallel computer
US9323306B2 (en) * 2008-12-03 2016-04-26 Telefonaktiebolaget Lm Ericsson (Publ) Energy based time scheduler for parallel computing system
JP2010160565A (ja) 2009-01-06 2010-07-22 Ricoh Co Ltd タスクスケジューリング装置、タスクスケジューリング制御方法、及びタスクスケジューリング制御プログラム
JP2015072588A (ja) 2013-10-02 2015-04-16 日本電信電話株式会社 サーバの仮想制御方法
US9684541B2 (en) * 2014-06-30 2017-06-20 Intel Corporation Method and apparatus for determining thread execution parallelism
US9575536B2 (en) * 2014-08-22 2017-02-21 Intel Corporation Methods and apparatus to estimate power performance of a job that runs on multiple nodes of a distributed computer system

Also Published As

Publication number Publication date
JP2019040325A (ja) 2019-03-14
US20190064912A1 (en) 2019-02-28
US10635157B2 (en) 2020-04-28

Similar Documents

Publication Publication Date Title
JP5471080B2 (ja) 情報システム、制御装置、そのデータ処理方法およびプログラム
JP5332065B2 (ja) クラスタ構成管理方法、管理装置及びプログラム
US8717602B2 (en) Cloud computing system, document processing method, and storage medium in which a number of processing units is adjusted based on processing status
WO2018157836A1 (zh) 一种可编程硬件的资源管理方法、可编程硬件设备及存储介质
KR20170021864A (ko) 분산 컴퓨터 시스템에 전력 할당의 변화가 있을 때 중단될 수 있고 중단될 수 없는 작업들을 관리하는 방법들 및 장치
JP5484601B2 (ja) 並列分散処理システムのデータ転送制御方法、並列分散処理システム及び記憶媒体
JP2007041720A (ja) ジョブステップ実行プログラムおよびジョブステップ実行方法
JP6075327B2 (ja) 画像形成装置、処理方法、および制御プログラム
JP5323554B2 (ja) ジョブ処理方法、ジョブ処理プログラムを格納したコンピュータ読み取り可能な記録媒体、および、ジョブ処理システム
JP6519111B2 (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
US20110310433A1 (en) Print data delivery device, image forming apparatus and image forming system
WO2016092856A1 (ja) 情報処理装置、情報処理システム、タスク処理方法、及び、プログラムを記憶する記憶媒体
WO2005116832A1 (ja) 分散処理環境におけるジョブの実行を制御するためのコンピュータシステム、方法及びプログラム
JP6010975B2 (ja) ジョブ管理装置、ジョブ管理方法、及びプログラム
JP6372262B2 (ja) 印刷装置、およびプログラム
JP6874594B2 (ja) 電源管理装置,ノード電源管理方法およびノード電源管理プログラム
US20160103714A1 (en) System, method of controlling a system including a load balancer and a plurality of apparatuses, and apparatus
JP2017162059A (ja) 情報処理装置、制御方法、プログラム
JP5294014B2 (ja) ファイル共有方法、計算機システム及びジョブスケジューラ
JP6015660B2 (ja) データ配置システム、分散アクセスノード、データ配置方法およびプログラム
KR20180093199A (ko) 멀티코어 임베디드 시스템에서의 태스크 스케줄링 방법 및 장치
JP2015094976A (ja) 情報処理装置、情報処理方法、及び、プログラム
JP7052396B2 (ja) 資料採取サーバ、資料採取システム、資料採取方法および資料採取プログラム
WO2017098591A1 (ja) 計算機及びストレージ装置を有するシステム、及びシステムの制御方法
JP2010186347A (ja) ジョブスケジューリングシステム、ジョブスケジューリング方法及びプログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200514

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210315

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210323

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210405

R150 Certificate of patent or registration of utility model

Ref document number: 6874594

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150