(57)【要約】【課題】投入されたジョブを迅速に処理する。【解決手段】複数の計算ノードのうち、２つ以上の計算ノードを含む管理領域を設定する管理領域設定部３０４と、スケジューリング情報に基づいて求められる、管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、ジョブ情報に基づいて求められる、ジョブの処理に要求される計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる計算ノードを電源オン状態に制御する電源制御部３０５とを備える。【選択図】図６
2019040325.tif 000002
【特許請求の範囲】
【請求項１】
並列計算機システムに備えられた複数の計算ノードの電源を制御する電源管理装置であって、
前記複数の計算ノードへのジョブの割り当てがスケジューリングされたスケジューリング情報を取得するスケジューリング情報取得部と、
入力されたジョブに関するジョブ情報を取得するジョブ取得部と、
前記複数の計算ノードのうち、２つ以上の計算ノードを含む管理領域を設定する管理領域設定部と、
前記スケジューリング情報に基づいて求められる、前記管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、前記ジョブ情報に基づいて求められる、前記ジョブの処理に要求される前記計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる前記計算ノードを電源オン状態に制御する電源制御部と
を備えることを特徴とする、電源管理装置。
【請求項２】
前記管理領域設定部が、前記複数の計算ノードのうち電源切断中の計算ノードまたは電源切断候補の計算ノードを中心とする、所定範囲の領域を前記管理領域として決定する
ことを特徴とする、請求項１記載の電源管理装置。
【請求項３】
前記管理領域設定部が、前記複数の計算ノードを、同サイズの複数の領域に区画することで前記管理領域を設定する
ことを特徴とする、請求項１記載の電源管理装置。
【請求項４】
前記管理領域が、前記入力されたジョブの処理に要求される数の前記計算ノードによって形成される計算ノード塊の大きさに応じて設定される
ことを特徴とする、請求項２または３記載の電源管理装置。
【請求項５】
前記判断条件が、前記管理領域内における前記空き計算ノード数が前記要求ノード数以上である
ことを特徴とする、請求項１〜４のいずれか１項に記載の電源管理装置。
【請求項６】
前記入力されたジョブが、前記計算ノード実行中のジョブを停止させることはしないが、実行待ち中のジョブの中では最優先に実行を開始すべき優先度を有する高優先度ジョブである
ことを特徴とする、請求項１〜５のいずれか１項に記載の電源管理装置。
【請求項７】
並列計算機システムに備えられた複数の計算ノードの電源を制御する電源管理装置において、
前記複数の計算ノードへのジョブの割り当てがスケジューリングされたスケジューリング情報を取得する処理と、
入力されたジョブに関するジョブ情報を取得する処理と、
前記複数の計算ノードのうち、２つ以上の計算ノードを含む管理領域を設定する処理と、
前記スケジューリング情報に基づいて求められる、前記管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、前記ジョブ情報に基づいて求められる、前記ジョブの処理に要求される前記計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる前記計算ノードを電源オン状態に制御する処理と
を備えることを特徴とする、ノード電源管理方法。
【請求項８】
並列計算機システムに備えられた複数の計算ノードの電源を制御する電源管理装置の処理装置に、
前記複数の計算ノードへのジョブの割り当てがスケジューリングされたスケジューリング情報を取得し、
入力されたジョブに関するジョブ情報を取得し、
前記複数の計算ノードのうち、２つ以上の計算ノードを含む管理領域を設定し、
前記スケジューリング情報に基づいて求められる、前記管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、前記ジョブ情報に基づいて求められる、前記ジョブの処理に要求される前記計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる前記計算ノードを電源オン状態に制御する
処理を実行させる、ノード電源管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電源管理装置，ノード電源管理方法およびノード電源管理プログラムに関する。
【背景技術】
【０００２】
ＨＰＣ（High Performance Computing：高性能計算）に用いられるコンピュータシステム（ＨＰＣシステム）において、消費電力を削減する省電力機能が求められている。そして、このようなＨＰＣシステムに備えられる省電力機能においては、消費電力を抑制する一方で、ジョブスループットをできるだけ低下させないことが重要となる。
【０００３】
ＨＰＣシステムにおける従来の省電力機能として、ジョブスケジューラが作成したスケジューリング情報を参照して、ジョブが割り当てられていない資源への電力供給を遮断する手法が知られている。なお、スケジューリング情報においては、例えば、各ジョブの実行時間とジョブを割り当て先の割り当て対象資源とが規定される。
【０００４】
ジョブスケジューラが作成したスケジューリング情報に基づき、アイドル状態になると予測されるプロセッサへの電力切断や、実行依頼されたジョブが割り当てられたプロセッサへの電源投入を行なう。これにより、ジョブスループットの低下を抑えつつ、システムの省電力化を実現している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１６０５６５号公報
【特許文献２】特開２０１５−７２５８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、大規模なコンピュータシステムにおけるジョブスケジューリングでは、ネットワークトポロジの考慮が必要である等の理由により、ジョブに対する計算ノードの割り当てに時間がかかるという課題がある。
【０００７】
これにより、例えば、実行中の他のジョブを停止させて代わりに実行させるまではしないが、実行待ち中のジョブの中では最優先に実行を開始すべきという程度の優先度のジョブ（以下、高優先度ジョブという）が新規に投入された場合に、この高優先度ジョブを迅速に処理することができない。
【０００８】
また、ＨＰＣシステムにおいては、一般的に、計算ノード等の資源の電源の切断／投入処理に分単位の処理時間を要する。このような計算ノードへの電力切断／投入処理に要する時間がオーバーヘッドとなり、ジョブの実行開始が遅延し、ジョブスループットの低下が発生するおそれもある。
【０００９】
１つの側面では、本発明は、投入されたジョブを迅速に処理することを目的とする。
【課題を解決するための手段】
【００１０】
このため、この電源管理装置は、並列計算機システムに備えられた複数の計算ノードの電源を制御する電源管理装置であって、前記複数の計算ノードへのジョブの割り当てがスケジューリングされたスケジューリング情報を取得するスケジューリング情報取得部と、入力されたジョブに関するジョブ情報を取得するジョブ取得部と、前記複数の計算ノードのうち、２つ以上の計算ノードを含む管理領域を設定する管理領域設定部と、前記スケジューリング情報に基づいて求められる、前記管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、前記ジョブ情報に基づいて求められる、前記ジョブの処理に要求される前記計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる前記計算ノードを電源オン状態に制御する電源制御部とを備える。
【発明の効果】
【００１１】
一実施形態によれば、投入されたジョブを迅速に処理することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態の一例としての並列計算機システムの構成を示す図である。
【図２】実施形態の一例としての並列計算機システムにおけるスケジューリング情報を例示する図である。
【図３】各ノードに対するジョブの割り当てを模式的に示す図である。
【図４】実施形態の一例としての並列計算機システムにおける高優先度ジョブ投入通知のデータ構造を例示する図である。
【図５】実施形態の一例としての並列計算機システムの電源管理ノードのハードウェア構成の一例を示すブロック図である。
【図６】実施形態の一例としての並列計算機システムの計算ノード管理部の機能を例示する機能ブロック図である。
【図７】実施形態の一例としての並列計算機システムにおける拡張ノード範囲領域を説明するための図である。
【図８】実施形態の一例としての並列計算機システムにおける電源投入繰上部による適格拡張ノード範囲領域の決定方法を説明するための図である。
【図９】実施形態の一例としての並列計算機システムにおける高優先度ジョブが投入された場合のジョブスケジューラの処理を説明するためのフローチャートである。
【図１０】実施形態の一例としての並列計算機システムにおいて送受信される情報を説明するための図である。
【図１１】実施形態の一例としての並列計算機システムの計算ノード管理部の処理を説明するためのフローチャートである。
【図１２】実施形態の一例としての並列計算機システムの計算ノード管理部の処理を説明するためのフローチャートである。
【図１３】実施形態の変形例としての並列計算機システムの計算ノード管理部の機能を例示する機能ブロック図である。
【図１４】実施形態の変形例としての並列計算機システムの計算ノード管理部の処理を説明するためのフローチャートである。
【図１５】実施形態の変形例としての並列計算機システムの計算ノード管理部の処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本電源管理装置，ノード電源管理方法およびノード電源管理プログラムにかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１４】
（Ａ）構成
図１は実施形態の一例としての並列計算機システム１の構成を示す図である。
【００１５】
並列計算機システム１は、図１に示すように、計算ノード群２０２，ジョブ管理ノード１００，電源管理ノード３００および電源制御装置４００を備える。また、並列計算機システム１には、ユーザ端末５００が接続される、ユーザ端末５００は、情報処理装置であり、このユーザ端末５００から発行されたジョブがジョブ管理ノード１００に投入（入力）される。
【００１６】
なお、図１に示す例においては、便宜上、並列計算機システム１に１つのユーザ端末５００が接続されているが、これに限定されるものではなく、２つ以上のユーザ端末５００が接続されてもよい。
【００１７】
計算ノード群２０２においては、複数の計算ノード２００がネットワーク２０１を介して相互に通信可能に接続され、これによりＮ次元の相互結合網が構成されている（Ｎは自然数）。また、ネットワーク２０１には、ジョブ管理ノード１００が接続されている。
【００１８】
ネットワーク２０１は通信回線であり、例えば、ＬＡＮ（Local Area Network）や光通信路である。
【００１９】
（ａ）計算ノード２００
計算ノード２００は情報処理装置であり、計算ノード群２０２に備えられた複数の計算ノード２００は、互いに同様の構成をそなえる。
【００２０】
計算ノード２００は、例えば、図示しない、プロセッサ，メモリ，記憶装置およびネットワークインタフェースを構成要素として有する。これらの構成要素は、バスを介して相互に通信可能に構成される。
【００２１】
メモリはＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）を含む記憶メモリである。メモリのＲＯＭには、計算ノード２００が実行するソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ上のソフトウェアプログラムは、ＣＰＵ（Central Processing Unit）等のプロセッサに適宜読み込まれて実行される。また、メモリのＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００２２】
ソフトウェアプログラムには、計算ノード２００においてジョブ演算処理機能を実現するためにプロセッサによって実行される計算ノード用制御プログラムが含まれてもよい。
【００２３】
記憶装置は、計算ノード２００の補助記憶装置として使用され、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）である。記憶装置には、ＯＳプログラム，ソフトウェアプログラム、および各種データが格納される。
【００２４】
ネットワークインタフェースは、ネットワーク２０１に接続される。ネットワークインタフェースは、ネットワーク２０１を介して、他のコンピュータ（計算ノード２００，ジョブ管理ノード１００）または通信機器との間でデータの送受信を行なう。
【００２５】
プロセッサは、計算ノード２００全体を制御する。プロセッサは、マルチプロセッサであってもよい。プロセッサは、例えばＣＰＵ，ＭＰＵ（Micro Processing Unit），ＤＳＰ（Digital Signal Processor），ＡＳＩＣ（Application Specific Integrated Circuit），ＰＬＤ（Programmable Logic Device），ＦＰＧＡ（Field Programmable Gate Array）のいずれか一つであってもよい。また、プロセッサは、ＣＰＵ，ＭＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００２６】
なお、計算ノード２００は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム（計算ノード用制御プログラム等）を実行することにより、本実施形態のジョブ演算処理機能を実現する。計算ノード２００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、計算ノード２００に実行させるプログラムを記憶装置に格納しておくことができる。プロセッサは、記憶装置内のプログラムの少なくとも一部をＲＡＭにロードし、ロードしたプログラムを実行する。
【００２７】
また、計算ノード２００（プロセッサ）に実行させるプログラムを、光ディスク，メモリ装置，メモリカード等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサからの制御により、記憶装置にインストールされた後、実行可能になる。また、プロセッサが、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００２８】
そして、計算ノード２００において、プロセッサが、計算ノード用制御プログラムを実行することで、ジョブ演算処理機能が実現される。
【００２９】
ジョブ演算処理機能は、ジョブ実行の制御を行なう。ジョブ演算処理機能は、後述するジョブ管理ノード１００から実行（演算）を依頼（指示）されたジョブについて、実行開始，実行状態の監視および終了等を制御する。なお、ジョブ管理ノード１００が計算ノード２００に「ジョブの実行を依頼する」ことを、「ジョブを割り当てる」という場合がある。
【００３０】
なお、計算ノード２００におけるジョブの実行等の各処理は既知の手法を用いて実現することができ、その詳細な説明は省略する。
【００３１】
また、ジョブ演算処理機能においては、ジョブの処理結果（演算結果）を、必要に応じて、他の計算ノード２００やジョブの依頼元のユーザ端末５００に対して、ネットワーク２０１を介して送信してもよい。
【００３２】
本並列計算機システム１においては、各計算ノード２００がジョブの配置単位であるノードに相当する。計算ノード２００を単にノード２００という場合がある。
【００３３】
（ｂ）ジョブ管理ノード１００
ジョブ管理ノード１００は、ユーザ端末５００等からジョブの実行依頼を受け付け、計算ノード群２０２に備えられた複数の計算ノード２００のうち、１つ以上の計算ノード２００にジョブを実行させる制御を行なう。なお、ジョブの実行依頼を受け付けることを、ジョブが投入されると表現してもよい。
【００３４】
ジョブ管理ノード１００は、２つ以上の計算ノード２００にジョブを割り当てることで２以上のジョブを並列に処理させる、並列処理制御装置である。
【００３５】
ジョブ管理ノード１００は、情報処理装置であり、例えば、図示しない、プロセッサ，メモリ，記憶装置およびネットワークインタフェースを構成要素として有する。これらの構成要素は、バスを介して相互に通信可能に構成される。
【００３６】
メモリはＲＯＭおよびＲＡＭを含む記憶メモリである。メモリのＲＯＭには、ジョブ管理ノード１００が実行するソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ上のソフトウェアプログラムは、ＣＰＵ等のプロセッサに適宜読み込まれて実行される。また、メモリのＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００３７】
ソフトウェアプログラムには、ジョブ管理ノード１００においてジョブスケジューラ１１０としての機能を実現するためにプロセッサによって実行されるジョブ管理ノード用制御プログラムが含まれてもよい。
【００３８】
記憶装置は、ジョブ管理ノード１００の補助記憶装置として使用され、例えば、ＨＤＤやＳＳＤである。記憶装置には、ＯＳプログラム，ソフトウェアプログラム、および各種データが格納される。
【００３９】
ネットワークインタフェースは、ネットワーク２０１に接続される。ネットワークインタフェースは、ネットワーク２０１を介して、他のコンピュータ（計算ノード２００，電源管理ノード３００）または通信機器との間でデータの送受信を行なう。
【００４０】
プロセッサは、ジョブ管理ノード１００全体を制御する。プロセッサは、マルチプロセッサであってもよい。プロセッサは、例えばＣＰＵ，ＭＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのいずれか一つであってもよい。また、プロセッサは、ＣＰＵ，ＭＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００４１】
なお、ジョブ管理ノード１００は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム（ジョブ管理ノード用制御プログラム等）を実行することにより、ジョブスケジューラ１１０としての機能を実現する。ジョブ管理ノード１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、ジョブ管理ノード１００に実行させるプログラムを記憶装置に格納しておくことができる。プロセッサは、記憶装置内のプログラムの少なくとも一部をＲＡＭにロードし、ロードしたプログラムを実行する。
【００４２】
また、ジョブ管理ノード１００（プロセッサ）に実行させるプログラムを、光ディスク，メモリ装置，メモリカード等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサからの制御により、記憶装置にインストールされた後、実行可能になる。また、プロセッサが、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４３】
そして、ジョブ管理ノード１００において、プロセッサが、ジョブ管理ノード用制御プログラムを実行することで、ジョブスケジューラ１１０としての機能が実現される。
【００４４】
ジョブスケジューラ１１０は、ユーザ端末５００等から実行依頼（サブミット）されたジョブについて、計算ノード２００に対する実行予約（割り当て）を行なう。ジョブスケジューラ１１０は、例えば、処理対象（割り当て対象）のジョブについて、割り当て先の計算ノード２００（計算ノード資源）を決定するとともに、この割り当て先計算ノード２００に当該ジョブを実行させる時間帯（開始予定時刻，終了予定時刻）を決定する。
【００４５】
ジョブスケジューラ１１０は、これらの決定した内容を対応付けてスケジューリング情報（ジョブスケジュール）１１１に登録する。
【００４６】
図２は実施形態の一例としての並列計算機システム１におけるスケジューリング情報１１１を例示する図である。
【００４７】
図２に例示するスケジューリング情報１１１においては、ジョブＩＤ，割り当て対象ノードＩＤ（identification），開始予定時刻および終了予定時刻が対応付けられている。
【００４８】
ジョブＩＤは、ジョブを特定する識別情報である。割り当て対象ノードＩＤは、計算ノード２００を特定する識別情報である。開始予定時刻および終了予定時刻は、ジョブを実行させる時間帯の開始予定時刻および終了予定時刻をそれぞれ示す。
【００４９】
ジョブスケジューラ１１０によって作成されたスケジューリング情報１１１は、ジョブスケジュール格納部１２０（図１０参照）に格納される。
【００５０】
ジョブスケジュール格納部１２０は、スケジューリング情報１１１を記憶する記憶領域であり、例えば、ジョブ管理ノード１００の図示しないＲＡＭやＨＤＤの記憶領域を用いて実現される。
【００５１】
このジョブスケジュール格納部１２０には、後述する計算ノード管理部３０１（図６参照）からもアクセスが行なわれ、スケジューリング情報１１１の読み出しが行なわれる。
【００５２】
なお、ジョブスケジュール格納部１２０は、ジョブ管理ノード１００の外部に備えられてもよく、例えば、電源管理ノード３００の記憶装置や図示しない他のサーバ装置の記憶装置を用いて実現してもよい。
【００５３】
図３は各計算ノード２００に対するジョブの割り当てを模式的に示す図である。この図３に示す割り当て状態は、図２に例示するスケジューリング情報１１１に対応する。また、図３中において、縦軸は複数の計算ノード２００を特定するノードＩＤを示し、横軸は時系列を示す。
【００５４】
例えば、ジョブＩＤが“１”のジョブは、ノードＩＤが“0x001”の計算ノード２００に、２／２２の１５：００−１９：００の期間、割り当てられ、実行される。
【００５５】
この図３に例示する割り当て状態を参照することで、各計算ノード２００における任意の時間でのジョブの割り当て状態を把握することができる。
【００５６】
そして、ジョブスケジューラ１１０は、スケジューリング情報１１１を参照して、例えば、スケジューリング情報１１１に予定された時刻（開始予定時刻）に、割り当先の計算ノード２００に対してジョブの実行を依頼する。なお、ジョブスケジューラ１１０としての機能は既知であり、その詳細な説明は省略する。
【００５７】
本並列計算機システム１においては、ジョブ管理ノード１００が受け付けるジョブのうち、例えば、実行中の他のジョブを停止させて代わりに実行させるまではしないが、実行待ち中のジョブの中では最優先に実行を開始すべきという程度の優先度のジョブを、高優先度ジョブという。
【００５８】
ジョブスケジューラ１１０は、ユーザ端末５００等から高優先度ジョブが投入されると、この高優先度ジョブが投入されたことを表す通知（高優先度ジョブ投入通知）を、後述する電源管理ノード３００（ジョブ情報取得部３０３；図６参照）に発信（発行，通知）する。
【００５９】
図４は実施形態の一例としての並列計算機システム１における高優先度ジョブ投入通知のデータ構造を例示する図である。
【００６０】
この図４に例示する高優先度ジョブ投入通知は、ジョブＩＤと割当形状とを対応付けて構成されている。この図４に例示する高優先度ジョブ投入通知は、ジョブＩＤが“３”，“４”，“５”の３つの高優先度ジョブについて示す。
【００６１】
割当形状は、ジョブＩＤによって特定されるジョブの実行に必要とされる計算ノード２００の構成を表す。
【００６２】
割当形状は、例えば、Ｎ次元座標における各軸方向の座標値の組み合わせとして表される。
【００６３】
図４に例示する高優先度ジョブ投入通知は、ジョブの割当先が、三次元の直方体形状に並べた複数の計算ノード２００である例について示す。すなわち、図４に例示する割当形状は、（ｘ，ｙ，ｚ）の三次元空間（Ｎ=３）の直交座標系のフォーマットを有し、ｘ方向，ｙ方向およびｚ方向の各辺の長さを表す。
【００６４】
割当形状は、ジョブの実行に必要とされる数の計算ノード２００を直方体を構成するように連結した場合における、この直方体を成す集合体（計算ノード塊）のサイズおよび形状を示す情報である。
【００６５】
そして、これらのｘ，ｙ，ｚの各値が、当該ジョブの実行に要求される計算ノード２００の集合体（要求ノード群，計算ノード塊）である立方体の各辺長を表す。また、これらのｘ，ｙ，ｚの各値の積が、当該ジョブの実行に要求される計算ノード２００の数（要求ノード数）を表す。なお、割当形状によって表される立方体の各辺長のうち、最も大きい値を最大辺長という場合がある。また、以下、高優先度ジョブの最大辺長を符号Ｌを用いて表す場合がある。
【００６６】
図４に例示する高優先度ジョブ投入通知において、例えば、ジョブＩＤ“２”の高優先度ジョブの割当形状は（４，２，２）であるので、その最大辺長は“４”である（Ｌ=４）。また、このジョブＩＤ“２”の高優先度ジョブの処理には、計算ノード群２０２において、直方体を成すように連結された４×２×２=１６個の一群の計算ノード２００が要求される。
【００６７】
また、ジョブスケジューラ１１０においては、予め、計算ノード２００における、電源切断処理に要する時間と、電源投入処理に要する時間とが、後述する電源制御設定情報格納部３０９（図１０参照）に、例えばパラメータとして設定されている。
【００６８】
そして、ジョブスケジューラ１１０は、計算ノード２００における、電源切断処理中の期間と、電源投入処理中の期間は、当該計算ノード２００へのジョブの割り当ては行なわない（抑止する）。以下、計算ノード２００へジョブの割り当てを抑止する期間をジョブ割り当て抑止期間という場合がある。
【００６９】
電源切断対象の計算ノード２００へのジョブ割り当て抑止期間を、電源切断処理に要する時間と電源投入処理に要する時間との和と等しくすると、当該計算ノード２００の電源投入処理が、当該計算ノード２００に割り当てられたジョブの実行開始予定時刻に間に合わないおそれがある。従って、ジョブ割り当て抑止期間は、電源切断処理に要する時間と電源投入処理に要する時間との和よりも長いものであることが望ましい。
【００７０】
以下、計算ノード２００において電源切断処理に要する時間を“時間Ｔ”と表す場合がある。この電源切断処理に要する時間Ｔは、電源制御設定情報格納部３０９に記憶されている。各計算ノード２００の電源切断処理に要する時間Ｔや電源投入に要する時間は、例えば、電源管理ノード３００の起動時に、計算ノード管理部３０１により電源制御設定情報格納部３０９から読み出される。
【００７１】
また、計算ノード２００の電源投入処理においては、想定以上の時間を要する場合が考えられる。すなわち、計算ノード２００の電源投入処理に、パラメータとして設定した「電源投入処理に要する時間」以上の時間がかかる場合がある。このような場合には、ジョブ割り当て抑止期間の直後に割り当てられていたジョブの実行開始が失敗するおそれがある。このような計算ノード２００におけるジョブの実行開始の失敗は、ユーザから見ると、ジョブスケジューラ１１０が提示した実行開始予定時刻になっても当該ジョブが実行されないことを意味し、ジョブスループットの低下だけではなくユーザの不満にもつながる。
【００７２】
そこで、ジョブスケジューラ１１０は、ジョブ割り当て抑止期間にマージンを設定してもよい。このようなマージンを設定することにより、計算ノード２００におけるジョブ実行開始失敗を回避することができる。
【００７３】
（ｃ）電源管理ノード３００
図５は実施形態の一例としての並列計算機システム１の電源管理ノード３００のハードウェア構成の一例を示すブロック図である。
【００７４】
電源管理ノード３００は、計算ノード群２０２に備えられた各計算ノード２００の電源のオン／オフを、電源制御装置４００を介して個別に制御する。
【００７５】
電源管理ノード３００は、情報処理装置として構成され、図５に例示するように、例えば、プロセッサ１１，ＲＡＭ１２，ＨＤＤ１３，グラフィック処理装置１４，入力インタフェース１５，光学ドライブ装置１６，機器接続インタフェース１７およびネットワークインタフェース１８を構成要素として有する。これらの構成要素１１〜１８は、バス１９を介して相互に通信可能に構成される。
【００７６】
ＲＡＭ１２は、電源管理ノード３００の主記憶装置として使用される。ＲＡＭ１２には、プロセッサ１１に実行させるＯＳプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１２には、プロセッサ１１による処理に必要な各種データが格納される。アプリケーションプログラムには、電源管理ノード３００において計算ノード２００に対する電源制御機能を実現するためにプロセッサ１１によって実行される電源制御プログラムが含まれてもよい。
【００７７】
ＨＤＤ１３は、計算ノード２００の補助記憶装置として使用される。ＨＤＤ１３には、ＯＳプログラム，アプリケーションプログラム、および各種データが格納される。
【００７８】
機器接続インタフェース１７は、計算ノード２００に周辺機器を接続するための通信インタフェースである。例えば、機器接続インタフェース１７には、メモリ装置１７ａやメモリリーダライタ１７ｂを接続することができる。メモリ装置１７ａは、機器接続インタフェース１７との通信機能を搭載した非一時的な記録媒体、例えばＵＳＢ（Universal Serial Bus）メモリである。メモリリーダライタ１７ｂは、メモリカード１７ｃへのデータの書き込み、またはメモリカード１７ｃからのデータの読み出しを行なう。メモリカード１７ｃは、カード型の非一時的な記録媒体である。
【００７９】
ネットワークインタフェース１８は、ネットワーク２０１に接続される。ネットワークインタフェース１８は、ネットワーク２０１を介して、他のコンピュータ（計算ノード２００，ジョブ管理ノード１００）または通信機器との間でデータの送受信を行なう。
【００８０】
電源管理ノード３００においては、機器接続インタフェース１７もしくはネットワークインタフェース１８を介して、電源制御装置４００が接続される。
【００８１】
電源制御装置４００は、計算ノード群２０２に備えられた個々の計算ノード２００への電力供給を制御する。すなわち、電源制御装置４００は、電源管理ノード３００からの指示に従って、任意の計算ノード２００に対して、電源投入（電源オン）および電源切断（電源オフ）を行なう。
【００８２】
なお、複数の電源制御装置４００を備え、各電源制御装置４００に所定数の計算ノード２００をそれぞれ制御させてもよく、適宜変更して実施することができる。また、電源制御装置４００の構成や機能は既知であり、その詳細な説明は省略する。
【００８３】
プロセッサ１１は、電源管理ノード３００全体を制御する。プロセッサ１１は、マルチプロセッサであってもよい。プロセッサ１１は、例えばＣＰＵ，ＭＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのいずれか一つであってもよい。また、プロセッサ２１は、ＣＰＵ，ＭＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００８４】
なお、電源管理ノード３００は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム（ノード電源管理プログラム）を実行することにより、計算ノード２００の電源管理機能を実現する。電源管理ノード３００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、電源管理ノード３００に実行させるプログラムをＨＤＤ１３に格納しておくことができる。プロセッサ１１は、ＨＤＤ１３内のプログラムの少なくとも一部をＲＡＭ１２にロードし、ロードしたプログラムを実行する。
【００８５】
また、電源管理ノード３００（プロセッサ１１）に実行させるプログラムを、光ディスク１６ａ，メモリ装置１７ａ，メモリカード１７ｃ等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１１からの制御により、ＨＤＤ１３にインストールされた後、実行可能になる。また、プロセッサ１１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００８６】
そして、電源管理ノード３００において、プロセッサ１１が、ノード電源管理プログラムを実行することで、計算ノード管理部３０１として機能する。
【００８７】
計算ノード管理部３０１は、計算ノード群２０２における各計算ノード２００の電源管理を行なう。すなわち、計算ノード管理部３０１は、電源制御装置４００を介して計算ノード２００に備えられた各計算ノード２００の電源投入（電源オン）および電源遮断（電源オフ）の制御を行なう。
【００８８】
また、計算ノード管理部３０１は、計算ノード２００における電力消費を低減させる省電力制御を実現する。
【００８９】
省電力制御を行なうに際して、計算ノード管理部３０１は、ジョブ管理ノード１００のジョブスケジューラ１１０によって生成されるスケジューリング情報１１１を参照して空きノード２００を特定する。
【００９０】
ここで空きノード２００とは、ジョブを処理中でなく、且つ、ジョブの割り当てが、以後、所定時間以上される予定がない計算ノード２００である。
【００９１】
本並列計算機システム１においては、計算ノード管理部３０１が、計算ノード群２０２における空きノード２００を電源オフの状態にすることで、計算ノード群２０２におけるジョブスループットを低下させずに、消費電力を削減してシステムの省電力化を実現する。図３に示す例においては、ノードＩＤが“0x003”，“0x004”の計算ノード２００を電源オフにすることで省電力化を図ってもよい。
【００９２】
図６は実施形態の一例としての並列計算機システム１の計算ノード管理部３０１の機能構成を例示する図である。
【００９３】
この図６に示すように、計算ノード管理部３０１は、スケジューリング情報取得部３０２，ジョブ情報取得部３０３，ノード領域決定部３０４および電源制御部３０５としての機能を備える。
【００９４】
スケジューリング情報取得部３０２は、ジョブスケジューラ１１０によって作成されたスケジューリング情報１１１を取得する。例えば、スケジューリング情報取得部３０２は、ジョブ管理ノード１００が作成し、ジョブスケジュール格納部１２０に格納したスケジューリング情報１１１を読み出すことで取得する。
【００９５】
なお、スケジューリング情報取得部３０２は、例えば、ジョブ管理ノード１００に対して、スケジューリング情報１１１の送信を要求することでスケジューリング情報１１１を取得してもよく、適宜変更して実施することができる。
【００９６】
ジョブ情報取得部３０３は、ジョブ管理ノード１００のジョブスケジューラ１１０から通知された高優先度ジョブ投入通知を受信する。上述の如く、この高優先度ジョブ投入通知には、割当形状が含まれているので、この高優先度ジョブ投入通知を参照することで、入力された高優先度ジョブの最大辺長Ｌを得ることができる。
【００９７】
ジョブ情報取得部３０３は、受信した高優先度ジョブ投入通知を、高優先度ジョブ投入通知格納部３０６に格納する。
【００９８】
高優先度ジョブ投入通知格納部３０６は、高優先度ジョブ投入通知を記憶する記憶領域であり、例えば、ＲＡＭ１２やＨＤＤ１３の記憶領域を用いて実現される。
【００９９】
ノード領域決定部３０４は、電源切断中ノード２００または電源切断候補ノード２００を中心とする、所定範囲の領域を拡張ノード範囲領域（管理領域）として設定する。
【０１００】
ここで、電源切断中ノード２００とは、電源オフの状態にある計算ノード２００と、電源断プロセスの途中にある計算ノード２００とを含む。すなわち、電源オフの状態または電源断プロセスの途中のいずれかの状態にある計算ノード２００を電源切断中ノード２００という。
【０１０１】
また、電源切断候補ノード２００とは、空きノード２００であって、且つ、所定時間（例えば時間Ｔ）以上ジョブが割り当てられていない計算ノード２００をいう。
【０１０２】
以下、電源切断中ノード２００と電源切断候補ノード２００とを併せて、電源切断ノード２００という場合がある。
【０１０３】
所定範囲の領域とは、電源切断ノード２００の位置を中心として、当該電源切断ノード２００を、計算ノード群２０２においてＮ次元座標における各軸方向に沿って仮想的に拡張した範囲領域である。
【０１０４】
図７は実施形態の一例としての並列計算機システム１における拡張ノード範囲領域を説明するための図である。
【０１０５】
この図７に例示する拡張ノード範囲領域は、３次元（Ｎ=３）の座標空間において、電源切断ノード２００を中心として、この電源切断ノード２００を、ｘ，ｙ，ｚの各軸方向に、（ａＬ＋１）倍に拡張した立方体形状を有する。すなわち、拡張ノード範囲領域は、電源切断ノード２００を中心とした、（ａＬ＋１）を一辺の長さとする立方体形状を有する。なお、（ａＬ＋１）は計算ノード２００の数を示す。拡張ノード範囲領域は、ｘ，ｙ，ｚの各軸方向において、電源切断ノード２００を中心として、＋方向と−方向とにそれぞれａＬ／２拡張した範囲領域であると言える。
【０１０６】
ａは正の数であり、２の倍数であることが望ましい。以下、本実施形態においては、ａ=２である例について示す。従って、拡張ノード範囲領域は、電源切断ノード２００を中心とした、（２Ｌ＋１）個の計算ノード２００を並べた長さを一辺とする立方体形状であるものとする。
【０１０７】
また、Ｌは、高優先度ジョブに関する最大辺長である。例えば、ａ=２であり、且つ、高優先度ジョブの最大辺長Ｌ=３である場合には、拡張ノード範囲領域は、ａＬ＋１=２×３＋１=７を１辺とする立方体形状となる。すなわち、ｘ，ｙ，ｘ方向にそれぞれ計算ノード２００を７個分並べた、３４３個の計算ノード２００を含む範囲領域が拡張ノード範囲領域となる。
【０１０８】
計算ノード群２０２において、電源切断ノード２００が複数ある場合には、ノード領域決定部３０４は、各電源切断ノード２００のそれぞれについて、拡張ノード範囲領域を設定することが望ましい。
【０１０９】
本並列計算機システム１においては、この拡張ノード範囲領域に含まれる計算ノード２００に対して、後述する電源制御部３０５による電源制御が行なわれる。
【０１１０】
すなわち、拡張ノード範囲領域は、計算ノード群２０２において、投入された高優先度ジョブを処理するに際して電源制御を行なう範囲（領域）を示す。拡張ノード範囲領域を電源制御ノード領域と称してもよい。
【０１１１】
ノード領域決定部３０４は、決定した電源切断中ノード２００および電源切断候補ノード２００のノードＩＤを、ノードＩＤ格納部３０８に格納する。
【０１１２】
このように、ノード領域決定部３０４は、計算ノード群２０２において、２つ以上の計算ノード２００を含む管理領域（拡張ノード範囲領域）を設定する管理領域設定部として機能する。
【０１１３】
ノードＩＤ格納部３０８は、計算ノード群２０２を構成する各計算ノード２００のノードＩＤを記憶する記憶領域であり、例えば、ＲＡＭ１２やＨＤＤ１３の記憶領域を用いて実現される。計算ノード管理部３０１は、電源管理ノード３００の起動時に、このノードＩＤ格納部３０８を参照して、計算ノード群２０２を構成する全ての計算ノード２００のノードＩＤを取得する。また、このノードＩＤ格納部３０８には、電源切断中ノード２００および電源切断候補ノード２００のノードＩＤも記録される。
【０１１４】
電源制御設定情報格納部３０９は、計算ノード群２０２に備えられた全ての計算ノード２００について、電源切断に要する時間（時間Ｔ）および電源投入に要する時間（電源制御設定情報）を記憶する記憶領域であり、例えば、ＲＡＭ１２やＨＤＤ１３の記憶領域を用いて実現される。
【０１１５】
これらの電源切断に要する時間および電源投入に要する時間は、計算ノード２００毎に実測した値を記憶してもよく、また、設定値（仕様値）として、計算ノード２００の製造メーカ等から提供された値を用いてもよく、種々変更して実施することができる。
【０１１６】
電源制御部３０５は、計算ノード群２０２に含まれる各計算ノード２００の電源のオン／オフを制御する。電源制御部３０５は、電源制御装置４００に指示を行なって、個々の計算ノード２００の電源のオン／オフを制御する。例えば、電源制御部３０５は、電源制御装置４００に対して、電源制御対象の計算ノード２００のノードＩＤとともに、電源オン指示もしくは電源オフ指示を送信することで、任意の計算ノード２００の電源のオン／オフを切り替える。
【０１１７】
また、電源制御部３０５は、ノード領域決定部３０４によって決定された拡張ノード範囲領域において、電源投入制御対象とする計算ノード２００を決定する電源投入繰上部３０５１としての機能を有する。
【０１１８】
計算ノード群２０２において、複数の計算ノード２００によって構成される特定の領域であって、「空きノード数  ≧  ジョブの要求ノード数」の条件（判断条件）を満たす領域には、高優先度ジョブが割り当てられる可能性が高い。そこで、電源投入繰上部３０５１は、拡張ノード範囲領域において、「空きノード数  ≧  要求ノード数」の条件を満たす場合に、当該拡張ノード範囲領域に含まれる全ての各計算ノード２００の電源を電源オン状態に制御する。
【０１１９】
すなわち、電源投入繰上部３０５１は、この拡張ノード範囲領域内に存在する電源オフ状態の計算ノード２００に対して、ジョブ（高優先度ジョブ）が割り当てられる前に電源オン状態にする（繰上電源投入）制御を行なう。また、電源投入繰上部３０５１は、拡張ノード範囲領域内において既に電源オン状態の計算ノード２００に対しては、電源オン状態を維持させる制御を行なう。
【０１２０】
電源投入繰上部３０５１は、ジョブスケジュール情報格納部１２０から読み出したスケジューリング情報１１１を参照して、拡張ノード範囲領域に含まれる空きノード数を計数する。電源投入繰上部３０５１は、例えば、現在時刻においてジョブが実行されていない計算ノード２００の数を空きノード数とする。
【０１２１】
例えば、図３に示す例においては、2/22 15:00の時点で、ノードＩＤが、0x002，0x003および0x004の３つの計算ノード２００が空きノード２００となる。すなわち、2/22 15:00時点での空きノード数=３となる。
【０１２２】
以下、拡張ノード範囲領域であって、「空きノード数  ≧  要求ノード数」の条件を満たす領域を、適格拡張ノード範囲領域という場合がある。
【０１２３】
電源投入繰上部３０５１は、このような適格拡張ノード範囲領域内に存在する計算ノード２００について、電源切断中のものに対しては電源投入させ、電源切断候補ノード２００については電源切断を抑止させる制御を行なう。
【０１２４】
すなわち、電源投入繰上部３０５１は、適格拡張ノード範囲領域内に存在する電源オフ状態の計算ノード２００に対して、ジョブ（高優先度ジョブ）が割り当てられる前に電源オン状態にする、電源投入繰上部として機能する。また、電源投入繰上部３０５１は、適格拡張ノード範囲領域において既に電源オン状態の計算ノード２００に対しては、電源オン状態を維持させる制御を行なう。
【０１２５】
これにより、電源投入繰上部３０５１は、適格拡張ノード範囲領域内の全ての計算ノード２００を電源オン状態にする。  
【０１２６】
電源投入繰上部３０５１は、電源制御装置４００に、計算ノード２００の指定とともに、電源オンや電源オン状態の維持を指示する信号（命令）を送信することで、各計算ノード２００についての電源制御を行なう。
【０１２７】
以下、適格拡張ノード範囲領域に含まれる計算ノード２００のうち、電源切断中の計算ノード２００と電源切断候補ノード２００とを電源オン制御対象ノード２００という場合がある。
【０１２８】
図８は実施形態の一例としての並列計算機システム１における電源投入繰上部３０５１による適格拡張ノード範囲領域の決定方法を説明するための図である。
【０１２９】
この図８において、符号（ａ），（ｂ），（ｃ）はそれぞれ、便宜上、拡張ノード範囲領域を２次元座標で示しており、それぞれ７×７の４９個の計算ノード２００を含む範囲として形成されている。また、これらの各拡張ノード範囲領域において電源切断ノード２００（ノードＩＤ=１，２，３）がそれぞれ中央に位置している。
【０１３０】
符号（ａ）に示す拡張ノード範囲領域（領域１）は、ノードＩＤ=１の電源切断ノード２００を中心とする４９個の計算ノード２００を含む範囲として形成され、そのうち空きノードが４個である。符号（ｂ）に示す拡張ノード範囲領域（領域２）は、ノードＩＤ=２の電源切断ノード２００を中心とする４９個の計算ノード２００を含む範囲として形成され、そのうち空きノードが２７個である。符号（ｃ）に示す拡張ノード範囲領域（領域３）は、ノードＩＤ=３の電源切断ノード２００を中心とする４９個の計算ノード２００を含む範囲として形成され、そのうち空きノードが２７個である。
【０１３１】
電源投入繰上部３０５１は、高優先度ジョブが投入されると、その要求ノード数と、各拡張ノード範囲領域の空きノード数とを比較し、空きノード数が要求ノード数以上の拡張ノード範囲領域を適格拡張ノード範囲領域として判断する。
【０１３２】
例えば、要求ノード数が“１６”の高優先度ジョブが投入された場合に、電源投入繰上部３０５１は、この要求ノード数“１６”と、各拡張ノード範囲領域の空きノード数とを比較する。図８に示す例においては、空きノードが２７個である、符号（ｂ），（ｃ）で示される拡張ノード範囲領域（領域２，３）が適格拡張ノード範囲領域として判断される。
【０１３３】
電源投入繰上部３０５１は、適格拡張ノード範囲領域に含まれる計算ノード２００について、電源切断中の計算ノード２００のノードＩＤを電源オン指示とともに電源制御装置４００に送信する。
【０１３４】
また、電源投入繰上部３０５１は、適格拡張ノード範囲領域に含まれる計算ノード２００について、電源切断候補ノード２００については、電源切断を抑止することで電源オン状態を維持させる。例えば、電源投入繰上部３０５１は、これらの電源切断候補ノード２００のノードＩＤを電源オン指示とともに電源制御装置４００に送信する。なお、電源投入繰上部３０５１は、これらの電源切断候補ノード２００のノードＩＤを、電源オン状態を維持させる指示や、電源オフを抑止する指示とともに電源制御装置４００に送信してもよい。
【０１３５】
これにより、電源投入繰上部３０５１は、適格拡張ノード範囲領域に含まれる電源オン制御対象ノード２００を電源切断対象から除外させ、電源オン状態に維持させる。従って、適格拡張ノード範囲領域に高優先度ジョブを割り当てる場合に、ジョブを割り当てられた計算ノード２００が電源オフ状態になることがなく、割り当てられた高優先度ジョブを迅速に処理することができる。
【０１３６】
また計算ノード管理部３０１は、電源切断ノード２００について、スケジューリング情報１１１を参照し、時間Ｔ以内にジョブが割り当てられているかを確認する機能を有する。そして、計算ノード管理部３０１は、当該電源切断ノード２００にジョブが割り当てられていない場合に、ジョブスケジューラ１１０に対して、当該電源切断ノード２００についてのジョブ割り当て抑止時間を時間Ｔだけ延長するよう依頼（指示）を送信する。
【０１３７】
（Ｂ）動作
上述の如く構成された実施形態の一例としての並列計算機システム１における高優先度ジョブが投入された場合のジョブスケジューラ１１０の処理を、図１０を参照しながら、図９に示すフローチャート（ステップＡ１〜Ａ５）に従って説明する。また、図１０は本並列計算機システム１において送受信される情報を説明するための図である。
【０１３８】
ステップＡ１において、ジョブスケジューラ１１０は、ユーザ端末５００からの高優先度ジョブの投入を検知する（図１０の矢印Ｐ１参照）。
【０１３９】
ステップＡ２において、ジョブスケジューラ１１０は、高優先度ジョブ投入通知を計算ノード管理部３０１のジョブ情報取得部３０３に発信する（図１０の矢印Ｐ２参照）。ジョブ情報取得部３０３は、受信した高優先度ジョブ投入通知を高優先度ジョブ投入通知格納部３０６に格納する（図１０の矢印Ｐ３参照）。
【０１４０】
ステップＡ３において、ジョブスケジューラ１１０は、投入された高優先度ジョブのスケジューリングを行なう。なお、ジョブスケジューラ１１０におけるジョブのスケジュール処理は既知の種々の手法を用いて実現することができ、その説明は省略する。このジョブスケジューラ１１０によるジョブスケジュール処理により、スケジューリング情報１１１が生成（決定）される。
【０１４１】
なお、ジョブスケジューラ１１０は、ジョブのスケジュール処理を行なうに際して、ジョブの割り当てを抑止されている計算ノード２００に対しては、ジョブの割り当てを行なわない。
【０１４２】
ステップＡ４において、ジョブスケジューラ１１０は、ステップＡ３において行なったジョブスケジュール処理において決定されたスケジューリング情報１１１を、ジョブスケジュール格納部１２０に格納する（図１０の矢印Ｐ４参照）。
【０１４３】
ステップＡ５において、ジョブスケジューラ１１０は、スケジューリング情報１１１に従って、スケジュールされた時間に、割り当て先の計算ノード２００に対してジョブの実行開始依頼を行なう（図１０の矢印Ｐ５参照）。その後、処理を終了する。
【０１４４】
なお、上記処理は、高優先度ジョブが投入された場合の処理であり、高優先度ジョブではない通常のジョブが投入された場合には、ステップＡ１，Ａ２の処理が省略され、ステップＡ３〜Ａ５の処理が行なわれる。
【０１４５】
次に、実施形態の一例としての並列計算機システム１の計算ノード管理部３０１の処理を、図１０を参照しながら、図１１および図１２に示すフローチャート（ステップＢ１〜Ｂ１９）に従って説明する。なお、図１１はステップＢ１〜Ｂ９の処理を、図１２はステップＢ１０〜Ｂ１９の処理を、それぞれ示す。
【０１４６】
図１１のステップＢ１において、スケジューリング情報取得部３０２が、ジョブスケジュール格納部１２０から、スケジューリング情報１１１を取得する（図１０の矢印Ｐ６参照）。取得したスケジューリング情報１１１は、ＲＡＭ１２等の記憶領域に格納される。
【０１４７】
図１１のステップＢ２において、スケジューリング情報取得部３０２は、取得したスケジューリング情報１１１を前回取得したスケジューリング情報１１１と比較し、同じであるか否かを確認する。具体的には、スケジューリング情報取得部３０２は、ステップＢ１において取得したスケジューリング情報１１１と、前回取得したスケジューリング情報１１１とについて、ジョブＩＤ，割当対象ノードＩＤ，開始予定時刻，終了予定時刻が同じであるかを確認する。
【０１４８】
確認の結果、新たに取得したスケジューリング情報１１１が前回取得したスケジューリング情報１１１と同じである場合には（ステップＢ２のＹＥＳルート参照）、図１１のステップＢ４に移行する。
【０１４９】
ステップＢ４において、電源投入繰上部３０５１は、ノードＩＤ格納部３０８から、全ての、電源切断中ノード２００および電源切断候補ノード２００のノードＩＤを取得する（図１０の矢印Ｐ７参照）。
【０１５０】
一方、ステップＢ２における確認の結果、新たに取得したスケジューリング情報１１１が前回取得したスケジューリング情報１１１と不一致である場合には（ステップＢ２のＮＯルート参照）、図１１のステップＢ３に移行する。
【０１５１】
ステップＢ３において、高優先度ジョブ投入通知格納部３０６に格納されている全ての高優先度ジョブ投入通知を削除（クリア）してから、ステップＢ４に移行する。
【０１５２】
その後、図１１のステップＢ５において、ステップＢ４において取得したノードＩＤに対応する全ての計算ノード２００に対して、図１１のステップＢ９までの制御を繰り返し実施するループ処理を開始する。
【０１５３】
図１１のステップＢ６においては、電源制御部３０５は、スケジューリング情報１１１を参照して、当該計算ノード２００に割り当てられたジョブの開始予定時刻を確認する。電源投入繰上部３０５１は、現在時刻から時間Ｔ以内に、当該計算ノード２００にジョブが割り当てられているかを確認する。
【０１５４】
確認の結果、現在時刻から時間Ｔ以内に当該計算ノード２００にジョブが割り当てられている場合には（ステップＢ６のＹＥＳルート参照）、図１１のステップＢ８に移行する。このステップＢ８において、電源制御部３０５は、当該計算ノード２００を電源オンにさせる（図１０の矢印Ｐ８参照）。
【０１５５】
一方、ステップＢ６における確認の結果、現在時刻から時間Ｔ以内に当該計算ノード２００にジョブが割り当てられていない場合には（ステップＢ６のＮＯルート参照）、図１１のステップＢ７に移行する。
【０１５６】
ステップＢ７においては、計算ノード管理部３０１（電源制御部３０５）は、ジョブスケジューラ１１０に対して、当該計算ノード２００についてのジョブ割り当て抑止時間を時間Ｔだけ延長するよう依頼（指示）を送信する。ジョブスケジューラ１１０は、抑止時間の延長をスケジューリング情報１１１に反映させる。その後、制御が図１１のステップＢ９に移行する。
【０１５７】
ステップＢ９では、ステップＢ４に対応するループ端処理が実施される。ここで、ステップＢ４において取得したノードＩＤに対応する全ての計算ノード２００についての処理が完了すると、制御が図１２のステップＢ１０に進む。
【０１５８】
ステップＢ１０において、ノード領域決定部３０４が、スケジューリング情報１１１と全計算ノード２００のノードＩＤとに基づいて、現在時刻での空きノード２００を検出し、そのノードＩＤを取得する。
【０１５９】
図１２のステップＢ１１において、ノード領域決定部３０４が、ステップＢ１０で検出された空きノード２００のうち、ジョブが割り当てられていない期間が時間Ｔ以上である計算ノード２００を、電源切断候補ノード２００として決定する。
【０１６０】
ノード領域決定部３０４は、電源切断候補ノード２００のノードＩＤをノードＩＤ格納部３０８に格納する（図１０の矢印Ｐ９参照）。
【０１６１】
なお、ステップＢ１０において検出された空きノード２００のうち、ステップＢ１１において電源切断候補ノード２００として決定されなかったもののノードＩＤは、速やかにＲＡＭ１２上から消去することが望ましい。これによりＲＡＭ１２を効率的に用いることができる。
【０１６２】
図１２のステップＢ１２において、ジョブ情報取得部３０３が、高優先度ジョブ投入通知格納部３０６に、高優先度ジョブ投入通知が格納されているか否かを確認する。すなわち、ジョブ情報取得部３０３は、高優先度ジョブ投入通知格納部３０６が空であるかを確認する。
【０１６３】
確認の結果、高優先度ジョブ投入通知格納部３０６が空である場合には（ステップＢ１２のＹＥＳルート参照）、図１２のステップＢ１３に移行する。ステップＢ１３において、計算ノード管理部３０１は、現在時刻から時間Ｔの期間は、電源切断候補ノード２００へのジョブ割り当てを抑止するように、ジョブスケジューラ１１０に依頼を行なう。
【０１６４】
図１２のステップＢ１４において、電源制御部３０５は、電源制御装置４００を介して電源切断候補ノード２００の電源をオフにさせる（電源切断処理）。また、電源制御部３０５は、この電源オフにした計算ノード２００のノードＩＤを電源切断中ノードとしてノードＩＤ格納部３０８に記録させる。
【０１６５】
図１２のステップＢ１５において、ステップＢ１４で電源切断処理を開始した時刻から時間Ｔが経過するまで待機する。その後、ステップＢ１に戻る。
【０１６６】
一方、ステップＢ１２における確認の結果、高優先度ジョブ投入通知格納部３０６が空でない場合には（ステップＢ１２のＮＯルート参照）、図１２のステップＢ１６に移行する。ステップＢ１６において、ジョブ情報取得部３０３が、高優先度ジョブ投入通知格納部３０６から高優先度ジョブ投入通知を読み出して取得する（図１０の矢印Ｐ１０参照）。
【０１６７】
図１２のステップＢ１７において、ノード領域決定部３０４が、ステップＢ１１で特定した各電源切断候補ノード２００を起点として、拡張ノード範囲領域を決定する。
【０１６８】
図１２のステップＢ１８において、電源投入繰上部３０５１が、スケジューリング情報１１１を参照して、ステップＢ１７において決定した各拡張ノード範囲領域に含まれる空きノードをそれぞれ確認（計算）する。
【０１６９】
図１２のステップＢ１９において、電源投入繰上部３０５１は、「空きノード数  ≧  ジョブの要求ノード数」を満たす拡張ノード範囲領域内の電源切断対象ノード２００（電源オン制御対象ノード２００）について電源オン状態に制御する。
【０１７０】
すなわち、電源投入繰上部３０５１は、この拡張ノード範囲領域内に存在する電源オフ状態の計算ノード２００に対して、ジョブ（高優先度ジョブ）が割り当てられる前に電源オン状態にする制御を行なう。また、電源投入繰上部３０５１は、拡張ノード範囲領域内において既に電源オン状態の計算ノード２００に対しては、電源オン状態を維持させる制御を行なう。その後、ステップＢ１３に移行する。
【０１７１】
（Ｃ）効果
このように、実施形態の一例としての並列計算機システム１によれば、高優先度ジョブが投入された際に、ノード領域決定部３０４が、計算ノード群２０２において、電源切断ノード２００を中心とする所定の範囲領域である拡張ノード範囲領域を設定する。
【０１７２】
そして、電源投入繰上部３０５１が、「空きノード数  ≧  ジョブの要求ノード数」を満たす拡張ノード範囲領域に含まれる全ての計算ノード２００の電源を、ジョブの割り当てが行なわれる前にオンにする制御を行なう。
【０１７３】
具体的には、電源投入繰上部３０５１は、「空きノード数  ≧  ジョブの要求ノード数」を満たす拡張ノード範囲領域内の電源切断対象ノード２００（電源オン制御対象ノード２００）について電源オフを抑止する制御を行なう。また、電源投入繰上部３０５１は、適格拡張ノード範囲領域に含まれる電源オフ状態の計算ノード２００に対して、電源オン状態にする繰上電源投入制御を行なう。
【０１７４】
これにより、高優先度ジョブが割り当てられる可能性が高い計算ノード２００が電源オンに維持される。従って、高優先度ジョブの実行開始遅延を少なくすることができ、投入された高優先度ジョブを迅速に処理することができ処理性能が向上する。
【０１７５】
ジョブ管理ノード１００と電源管理ノード３００とを別の情報処理装置として備えることで、ジョブスケジューラ１１０と計算ノード管理部３０１との処理フローが別々になる。これにより、ジョブスケジューラ１１０によるジョブの実行開始依頼を行なう際のオーバーヘッドが解消され、計算ノード２００の電源オフ／投入オンによるジョブスループットの低下を小さくすることができる。
【０１７６】
（Ｄ）その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１７７】
例えば、上述した実施形態においては、ノード領域決定部３０４が、計算ノード群２０２において、電源切断ノード２００を中心とする所定の範囲領域（管理領域）である拡張ノード範囲領域を設定しているが、これに限定されるものではない。
【０１７８】
図１３は実施形態の変形例としての並列計算機システム１の計算ノード管理部３０１ａの機能を例示する機能ブロック図である。
【０１７９】
この図１３に示す計算ノード管理部３０１ａは、図６に示した計算ノード管理部３０１のノード領域決定部３０４に代えて計算ノード群区画部３１４を備える。また、電源制御部３０５において、電源投入繰上部３０５１に代えて電源投入繰上部３０５１ａを備える。
【０１８０】
なお、その他の部分は図６に示す計算ノード管理部３０１と同様に構成されている。図中、既述の符号と同一の符号は同様の部分を示しているので、その説明は省略する。
【０１８１】
計算ノード群区画部３１４は、計算ノード群２０２を、前述した拡張ノード範囲領域と同サイズの複数のブロック（管理領域）に区画する。すなわち、各ブロックは、例えば、３次元（Ｎ=３）の座標空間において、（２Ｌ＋１）個の計算ノード２００を並べた長さを一辺とする立方体形状である。各ブロックには、（２Ｌ＋１）３個の計算ノード２００がそれぞれ含まれる。
【０１８２】
従って、計算ノード群区画部３１４は、計算ノード群２０２において、２つ以上の計算ノード２００を含む管理領域（ブロック）を設定する管理領域設定部として機能する。
【０１８３】
電源投入繰上部３０５１ａは、計算ノード群区画部３１４によって区画された各ブロックにおいて、電源投入制御対象とする計算ノード２００を決定する。
【０１８４】
電源投入繰上部３０５１ａは、計算ノード群２０２に形成された複数のブロックのうち、時間Ｔ以上ジョブが割り当てられていない空きノード２００が１つでもあるブロックを選択する。以下、このようなブロックを繰上電源制御候補ブロックという場合がある。
【０１８５】
そして、電源投入繰上部３０５１ａは、この選択した繰上電源制御候補ブロックにおいて、「空きノード数  ≧  要求ノード数」の条件を満たす場合に、当該繰上電源制御候補ブロックに含まれる各計算ノード２００の電源を、電源オン状態に制御する繰上電源制御を行なう。
【０１８６】
電源投入繰上部３０５１ａは、ジョブスケジュール情報格納部１２０から読み出したスケジューリング情報１１１を参照して、繰上電源制御候補ブロックに含まれる空きノード数を計数する。電源投入繰上部３０５１ａは、例えば、繰上電源制御候補ブロックにおける、現在時刻においてジョブが実行されていない計算ノード２００の数を空きノード数とする。
【０１８７】
以下、繰上電源制御候補ブロックであって、「空きノード数  ≧  要求ノード数」の条件を満たす領域を、適格ブロックという場合がある。このような適格ブロックには、高優先度ジョブが割り当てられる可能性が高い。
【０１８８】
そこで、電源投入繰上部３０５１ａは、適格ブロックに含まれる全ての計算ノード２００の電源をオンにする制御を行なう。すなわち、電源投入繰上部３０５１ａは、この適格ブロック内に存在する電源オフ状態の計算ノード２００に対して、ジョブ（高優先度ジョブ）が割り当てられる前に電源オン状態にする制御を行なう。また、電源投入繰上部３０５１ａは、適格ブロック内において既に電源オン状態の計算ノード２００に対しては、電源オン状態を維持させる制御を行なう。
【０１８９】
すなわち、電源投入繰上部３０５１ａは、適格ブロック内に存在する電源オフ状態の計算ノード２００に対して、ジョブ（高優先度ジョブ）が割り当てられる前に電源オン状態にする。
【０１９０】
実施形態の変形例としての並列計算機システム１の計算ノード管理部３０１の処理を、図１４および図１５に示すフローチャート（ステップＢ１〜Ｂ１６，Ｂ１７１，Ｂ１７２，Ｂ１８〜Ｂ１９）に示す。
【０１９１】
図１５においては、図１２におけるステップＢ１７に代えて、ステップＢ１７１およびＢ１７２を備えており、その他のステップは図１２と同様である。すなわち、図１４はステップＢ１〜Ｂ９の処理を、図１５はステップＢ１０〜Ｂ１６，Ｂ１７１，Ｂ１７２，Ｂ１８〜Ｂ１９の処理を、それぞれ示す。
【０１９２】
そして、図中、既述の符号と同一の符号のステップは同様の処理を示しているので、その説明は省略する。
【０１９３】
図１５のステップＢ１７１において、計算ノード群区画部３１４は、計算ノード群２０２を、前述した拡張ノード範囲領域と同サイズの複数のブロックに仮想的に区画する。各ブロックは、例えば、３次元（Ｎ=３）の座標空間において、（ａＬ＋１）を一辺の長さとする立方体形状を有する。
【０１９４】
図１５のステップＢ１７２において、電源投入繰上部３０５１ａは、計算ノード群２０２に形成された複数のブロックのうち、時間Ｔ以上ジョブが割り当てられていない空きノード２００が１つでもあるブロックを繰上電源制御候補ブロックとして選択する。
【０１９５】
図１５のステップＢ１８において、電源投入繰上部３０５１ａが、スケジューリング情報１１１を参照して、ステップＢ１７２において選択した各繰上電源制御候補ブロックに含まれる空きノード数をそれぞれ確認する。
【０１９６】
図１５のステップＢ１９において、電源投入繰上部３０５１ａは、「空きノード数  ≧  ジョブの要求ノード数」を満たす繰上電源制御候補ブロック（適格ブロック）内の電源切断対象ノード２００（電源オン制御対象ノード２００）について電源オン状態に制御する。
【０１９７】
すなわち、電源投入繰上部３０５１ａは、この適格ブロック内に存在する電源オフ状態の計算ノード２００に対して、ジョブ（高優先度ジョブ）が割り当てられる前に電源オン状態にする制御を行なう。また、電源投入繰上部３０５１ａは、適格ブロック内において既に電源オン状態の計算ノード２００に対しては、電源オン状態を維持させる制御を行なう。その後、ステップＢ１３に移行する。
【０１９８】
このような実施形態の変形例としての並列計算機システム１においても、実施形態の並列計算機システム１と同様の作用効果を奏することができる。
【０１９９】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【０２００】
（Ｅ）付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０２０１】
（付記１）
並列計算機システムに備えられた複数の計算ノードの電源を制御する電源管理装置であって、
前記複数の計算ノードへのジョブの割り当てがスケジューリングされたスケジューリング情報を取得するスケジューリング情報取得部と、
入力されたジョブに関するジョブ情報を取得するジョブ取得部と、
前記複数の計算ノードのうち、２つ以上の計算ノードを含む管理領域を設定する管理領域設定部と、
前記スケジューリング情報に基づいて求められる、前記管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、前記ジョブ情報に基づいて求められる、前記ジョブの処理に要求される前記計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる前記計算ノードを電源オン状態に制御する電源制御部と
を備えることを特徴とする、電源管理装置。
【０２０２】
（付記２）
前記管理領域設定部が、前記複数の計算ノードのうち電源切断中の計算ノードまたは電源切断候補の計算ノードを中心とする、所定範囲の領域を前記管理領域として決定する
ことを特徴とする、付記１記載の電源管理装置。
【０２０３】
（付記３）
前記管理領域設定部が、前記複数の計算ノードを、同サイズの複数の領域に区画することで前記管理領域を設定する
ことを特徴とする、付記１記載の電源管理装置。
【０２０４】
（付記４）
前記管理領域が、前記入力されたジョブの処理に要求される数の前記計算ノードによって形成される計算ノード塊の大きさに応じて設定される
ことを特徴とする、付記２または３記載の電源管理装置。
【０２０５】
（付記５）
前記判断条件が、前記管理領域内における前記空き計算ノード数が前記要求ノード数以上である
ことを特徴とする、付記１〜４のいずれか１項に記載の電源管理装置。
【０２０６】
（付記６）
前記入力されたジョブが、前記計算ノード実行中のジョブを停止させることはしないが、実行待ち中のジョブの中では最優先に実行を開始すべき優先度を有する高優先度ジョブである
ことを特徴とする、付記１〜５のいずれか１項に記載の電源管理装置。
【０２０７】
（付記７）
並列計算機システムに備えられた複数の計算ノードの電源を制御する電源管理装置において、
前記複数の計算ノードへのジョブの割り当てがスケジューリングされたスケジューリング情報を取得する処理と、
入力されたジョブに関するジョブ情報を取得する処理と、
前記複数の計算ノードのうち、２つ以上の計算ノードを含む管理領域を設定する処理と、
前記スケジューリング情報に基づいて求められる、前記管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、前記ジョブ情報に基づいて求められる、前記ジョブの処理に要求される前記計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる前記計算ノードを電源オン状態に制御する処理と
を備えることを特徴とする、ノード電源管理方法。
【０２０８】
（付記８）
前記複数の計算ノードのうち電源切断中の計算ノードまたは電源切断候補の計算ノードを中心とする、所定範囲の領域を前記管理領域として決定する処理
を備えることを特徴とする、付記７記載のノード電源管理方法。
【０２０９】
（付記９）
前記複数の計算ノードを、同サイズの複数の領域に区画することで前記管理領域を設定する処理
を備えることを特徴とする、付記７記載のノード電源管理方法。
【０２１０】
（付記１０）
前記管理領域が、前記入力されたジョブの処理に要求される数の前記計算ノードによって形成される計算ノード塊の大きさに応じて設定される処理
を備えることを特徴とする、付記８または９記載のノード電源管理装置。
【０２１１】
（付記１１）
前記判断条件が、前記管理領域内における前記空き計算ノード数が前記要求ノード数以上である
ことを特徴とする、付記７〜１０のいずれか１項に記載のノード電源管理方法。
【０２１２】
（付記１２）
前記入力されたジョブが、前記計算ノード実行中のジョブを停止させることはしないが、実行待ち中のジョブの中では最優先に実行を開始すべき優先度を有する高優先度ジョブである
ことを特徴とする、付記７〜１１のいずれか１項に記載のノード電源管理方法。
【０２１３】
（付記１３）
並列計算機システムに備えられた複数の計算ノードの電源を制御する電源管理装置の処理装置に、
前記複数の計算ノードへのジョブの割り当てがスケジューリングされたスケジューリング情報を取得し、
入力されたジョブに関するジョブ情報を取得し、
前記複数の計算ノードのうち、２つ以上の計算ノードを含む管理領域を設定し、
前記スケジューリング情報に基づいて求められる、前記管理領域においてジョブを実行していない計算ノードの数を表す空き計算ノード数と、前記ジョブ情報に基づいて求められる、前記ジョブの処理に要求される前記計算ノードの数を表す要求ノード数とによって設定される判断条件を満たす前記管理領域に含まれる前記計算ノードを電源オン状態に制御する
処理を実行させる、ノード電源管理プログラム。
【０２１４】
（付記１４）
前記複数の計算ノードのうち電源切断中の計算ノードまたは電源切断候補の計算ノードを中心とする、所定範囲の領域を前記管理領域として決定する
処理を前記処理装置に実行させる、付記１３記載のノード電源管理プログラム。
【０２１５】
（付記１５）
前記複数の計算ノードを、同サイズの複数の領域に区画することで前記管理領域を設定する
処理を前記処理装置に実行させる、付記１３記載のノード電源管理プログラム。
【０２１６】
（付記１６）
前記管理領域が、前記入力されたジョブの処理に要求される数の前記計算ノードによって形成される計算ノード塊の大きさに応じて設定される
処理を前記処理装置に実行させる、付記１４または１５記載のノード電源管理プログラム。
【０２１７】
（付記１７）
前記判断条件が、前記管理領域内における前記空き計算ノード数が前記要求ノード数以上である
ことを特徴とする、付記１３〜１６のいずれか１項に記載のノード電源管理プログラム。
【０２１８】
（付記１８）
前記入力されたジョブが、前記計算ノード実行中のジョブを停止させることはしないが、実行待ち中のジョブの中では最優先に実行を開始すべき優先度を有する高優先度ジョブである
ことを特徴とする、付記１３〜１７のいずれか１項に記載のノード電源管理プログラム。
【符号の説明】
【０２１９】
１    並列計算機システム
１１    プロセッサ
１２    ＲＡＭ
１３    ＨＤＤ
１４    グラフィック処理装置
１４ａ    モニタ
１５    入力インタフェース
１５ａ    キーボード
１５ｂ    マウス
１６    光学ドライブ装置
１６ａ    光ディスク
１７    機器接続インタフェース
１７ａ    メモリ装置
１７ｂ    メモリリーダライタ
１７ｃ    メモリカード
１８    ネットワークインタフェース
１８ａ    ネットワーク
１９    バス
１１０    ジョブスケジューラ
１１１    スケジューリング情報
１２０    ジョブスケジュール格納部
１００    ジョブ管理ノード
２００    計算ノード
２１１    通信リンク監視処理部
２１２    スワップ処理部
２１３    メモリ資源監視処理部
２０２    計算ノード群
３００    電源管理ノード
３０１，３０１ａ    計算ノード管理部
３０２    スケジューリング情報取得部
３０３    ジョブ情報取得部
３０４    ノード領域決定部
３０５    電源制御部
３０５１，３０５１ａ    電源投入繰上部
３０６    高優先度ジョブ投入通知格納部
３０８    ノードＩＤ格納部
３０９    電源制御設定情報格納部
３１４    計算機ノード群区画部
４００    電源制御装置
５００    ユーザ端末
【図１】
2019040325.tif 000003
【図２】
2019040325.tif 000004
【図３】
2019040325.tif 000005
【図４】
2019040325.tif 000006
【図５】
2019040325.tif 000007
【図６】
2019040325.tif 000008
【図７】
2019040325.tif 000009
【図８】
2019040325.tif 000010
【図９】
2019040325.tif 000011
【図１０】
2019040325.tif 000012
【図１１】
2019040325.tif 000013
【図１２】
2019040325.tif 000014
【図１３】
2019040325.tif 000015
【図１４】
2019040325.tif 000016
【図１５】
2019040325.tif 000017