(57)【要約】      （修正有）【課題】ジョブを実行する並列計算機の計算資源を有効に利用する。【解決手段】情報処理システムは、複数の情報処理装置と、複数の情報処理装置によるジョブの実行を管理する管理装置と、端末とを有する。そして、管理装置は、複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を端末に送信する第１処理部と、端末から、ジョブを実行していない情報処理装置に実行させる、少なくとも１のジョブの識別情報を受信した場合に、当該ジョブを実行していない情報処理装置が実行するようにスケジューリングを行う第２処理部とを有する。【選択図】図７
2015064746.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置と、
前記複数の情報処理装置によるジョブの実行を管理する管理装置と、
端末と、
を有し、
前記管理装置は、
前記複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を前記端末に送信する第１処理部と、
前記端末から、前記ジョブを実行していない情報処理装置に実行させる、少なくとも１のジョブの識別情報を受信した場合に、当該ジョブを前記ジョブを実行していない情報処理装置が実行するように、スケジューリングを行う第２処理部と、
を有する情報処理システム。
【請求項２】
前記第１処理部は、
前記ジョブを実行していない情報処理装置が占める空間から直方体の空間を特定し、特定された前記直方体の空間に含まれる情報処理装置の数の情報を、前記端末に送信する
ことを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記第１処理部は、
前記ジョブを実行していない情報処理装置が占める空間から、直方体の空間のうち体積が最大である直方体の空間を特定する
ことを特徴とする請求項２記載の情報処理システム。
【請求項４】
前記端末は、
前記管理装置から、前記複数の情報処理装置のうちジョブを実行していない情報処理装置の数の情報を受信する受信部と、
前記ジョブを実行していない情報処理装置の数と、実行すべき複数のジョブの各々に使用する情報処理装置の数とに基づき、前記実行すべきジョブの中から、前記ジョブを実行していない情報処理装置に実行させるジョブを少なくとも１つ特定する特定部と、
特定された前記ジョブの識別情報を、前記管理装置に送信する送信部と、
を有することを特徴とする請求項１乃至３のいずれか１つ記載の情報処理システム。
【請求項５】
前記特定部は、
ジョブに使用する情報処理装置の数の合計を、前記ジョブを実行していない情報処理装置の数を除した値が最大になるように、少なくとも１つのジョブを特定する
ことを特徴とする請求項４の記載の情報処理システム。
【請求項６】
前記送信部は、
前記ジョブを実行していない情報処理装置に実行させるジョブが無い場合、前記複数の情報処理装置において実行されているジョブの少なくとも一部を停止することを要求する停止要求を前記管理装置に送信する
ことを特徴とする請求項４又は５記載の情報処理システム。
【請求項７】
複数の情報処理装置を管理する管理装置に実行させるための制御プログラムであって、
前記複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を端末に送信し、
前記端末から、前記ジョブを実行していない情報処理装置に実行させる、少なくとも１のジョブの識別情報を受信した場合に、当該ジョブを、前記ジョブを実行していない情報処理装置が実行するようにスケジューリングを行う、
処理を実行させるための制御プログラム。
【請求項８】
複数の情報処理装置と、当該複数の情報処理装置を管理する管理装置と、端末とを含む情報処理システムの制御方法であって、
前記管理装置が、
前記複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を前記端末に送信し、
前記端末から、前記ジョブを実行していない情報処理装置に実行させる、少なくとも１のジョブの識別情報を受信した場合に、当該ジョブを前記ジョブを実行していない情報処理装置が実行するように、スケジューリングを行う、
処理を実行する制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理システムの制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
複数のユーザに共同で利用される並列計算機（例えばスーパーコンピュータ）においては、ユーザからのジョブの実行指示が特定の時間帯に集中すると、計算資源が不足し、ジョブを実行することができなくなる。そこで、従来の技術においては、並列計算機を管理するシステム内にスケジューラを設け、ジョブの実行予定をスケジューラに管理させることで、ジョブの実行中に計算資源が不足することを防いでいる。
【０００３】
但し、実際の運用中には、予め決定された実行予定には含まれていない、緊急で実行すべきジョブが生じる場合がある。例えば災害が発生した場合には、災害の影響を予測するジョブを、災害への対策を講じるために緊急で実行することになる。
【０００４】
上記の技術においては、スケジューラは、実行すべきジョブを新たに受け付けた場合、複数のＣＰＵの中から、メモリの空き容量がそのジョブによるメモリの使用量より多いＣＰＵを特定し、特定されたＣＰＵにジョブを実行させる。しかし、この方法においては、メモリの空き容量をＣＰＵ毎に管理しているため、ＣＰＵの計算能力を十分に活用しきれないようなスケジューリングを行ってしまうことがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−２４９０１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、本発明の目的は、１つの側面では、ジョブを実行する並列計算機の計算資源を有効に利用するための技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理システムは、複数の情報処理装置と、複数の情報処理装置によるジョブの実行を管理する管理装置と、端末とを有する。そして、上で述べた管理装置は、複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を端末に送信する第１処理部と、端末から、ジョブを実行していない情報処理装置に実行させる、少なくとも１のジョブの識別情報を受信した場合に、当該ジョブを実行していない情報処理装置が実行するようにスケジューリングを行う第２処理部とを有する。
【発明の効果】
【０００８】
１側面では、ジョブを実行する並列計算機の計算資源を有効に利用できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態におけるシステムの概要を示す図である。
【図２】図２は、ユーザノードの機能ブロック図である。
【図３】図３は、管理ノードの機能ブロック図である。
【図４】図４は、ジョブデータ格納部に格納されるデータの一例を示す図である。
【図５】図５は、スケジュールデータ格納部に格納されるデータの一例を示す図である。
【図６】図６は、資源データ格納部に格納される空き空間リストの一例を示す図である。
【図７】図７は、管理ノードが実行する処理の処理フローを示す図である。
【図８】図８は、全計算ノードが占める空間及びジョブを実行中の計算ノードが占める空間を示す図である。
【図９】図９は、最大空き空間について説明するための図である。
【図１０】図１０は、管理ノードが実行する処理の処理フローを示す図である。
【図１１】図１１は、最大空き空間について説明するための図である。
【図１２】図１２は、ユーザノードが実行する処理の処理フローを示す図である。
【図１３】図１３は、緊急ジョブに対する計算ノードの割当について説明するための図である。
【図１４】図１４は、緊急ジョブに対する計算ノードの割当について説明するための図である。
【図１５】図１５は、複数の並列計算機が有る場合について説明するための図である。
【図１６】図１６は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
図１に、本実施の形態におけるシステムの概要を示す。例えばインターネットであるネットワーク５には、ユーザによって操作されるユーザノード１と、管理ノード３とが接続されている。管理ノード３は、並列計算機１０として動作する複数の計算ノードを管理する。ユーザノード１は、ジョブの実行要求を管理ノード３に送信する。管理ノード３は、実行要求において指定されたジョブのスケジューリングを行い、計算ノードに、スケジュールに従ってジョブを実行させる。並列計算機１０は、複数のジョブを並列で実行することができる。
【００１１】
図２に、ユーザノード１の機能ブロック図を示す。ユーザノード１は、ジョブ特定部１０１と、第１問い合わせ処理部１０３及び第２問い合わせ処理部１０４を含む問い合わせ処理部１０２と、ジョブデータ格納部１０５とを含む。
【００１２】
ジョブ特定部１０１は、ジョブデータ格納部１０５に格納されているデータを用いて、実行すべきジョブを特定する処理を実行し、処理結果を問い合わせ処理部１０２に出力する。第１問い合わせ処理部１０３は、並列計算機１０における計算ノードのうちジョブを実行していない（すなわち、空いている）計算ノードの数を管理ノード３に問い合わせる処理を実行し、管理ノード３から問い合わせに対する応答を受信する。第２問い合わせ処理部１０４は、ジョブ特定部１０１による処理結果に基づき、ジョブを実行することを要求する実行要求及びジョブを停止することを要求する停止要求を管理ノード３に送信する。
【００１３】
図３に、管理ノード３の機能ブロック図を示す。管理ノード３は、ジョブ管理部３０１と、ジョブスケジューラ３０２と、資源管理部３０３と、スケジュールデータ格納部３０４と、資源データ格納部３０５とを含む。
【００１４】
ジョブ管理部３０１は、ユーザノード１からジョブの実行要求を受信した場合、ジョブ実行要求をジョブスケジューラ３０２に出力する。また、ジョブ管理部３０１は、ユーザノード１から空いている計算ノードの数の問い合わせを受信した場合、その問い合わせを資源管理部３０３に出力する。ジョブスケジューラ３０２は、実行要求において指定されたジョブについて実行スケジュールを生成し、スケジュールデータ格納部３０４に格納する。資源管理部３０３は、スケジュールデータ格納部３０４に格納されているデータを用いて、実行スケジュールに従って、計算ノードをジョブに割り当てる処理を実行する。また、資源管理部３０３は、資源データ格納部３０５に格納されているデータを用いて、後で説明する最大空き空間を算出し、算出された最大空き空間の情報をジョブ管理部３０１に出力する。
【００１５】
図４に、ユーザノード１のジョブデータ格納部１０５に格納されるデータの一例を示す。図４の例では、ジョブの識別情報と、ジョブの実行に使用する計算ノードの数と、次元を表す数とが格納される。次元を表す数によって、ジョブの実行に使用する計算ノードによって形成される空間の形状が決定される。数が「２」である場合、計算ノードによって形成される空間の形状は面状である。数が「３」である場合、計算ノードによって形成される空間の形状は直方体である。なお、数が「１」である場合、ジョブの実行に使用する計算ノードによって形成される形状について制約は無い。数が「１」である場合、計算ノードが離散していてもよいが、計算ノードが離散していると、ジョブの実行に関係が無い計算ノードにおいて通信負荷が発生することがあるので、計算ノードは離散していないことが好ましい。
【００１６】
図５に、管理ノード３のスケジュールデータ格納部３０４に格納されるデータの一例を示す。図５の例では、各計算ノードについて、ジョブの実行スケジュールが格納される。例えば計算ノード２は、時刻ｔｎ−２、時刻ｔｎ−１及び時刻ｔｎにおいてジョブＡを実行し、時刻ｔｎ＋１及び時刻ｔｎ＋２においてジョブＢを実行する。
【００１７】
図６に、資源データ格納部３０５に格納される空き空間リストの一例を示す。図６の例では、空間の原点の座標と、各座標軸の方向のサイズとが格納される。資源データ格納部３０５に格納されるデータは、資源管理部３０３により生成される。資源管理部３０３は、例えば定期的に、計算ノードの状態を示す情報を受信し、ジョブを実行していない計算ノードを特定する。そして、ジョブを実行していない計算ノードが占める空間である空き空間を算出し、空き空間リストに登録する。
【００１８】
次に、図７乃至図１５を用いて、図１に示したシステムにおいて行われる処理について説明する。まず、図７乃至図１１を用いて、管理ノード３が実行する処理について説明する。
【００１９】
まず、管理ノード３におけるジョブ管理部３０１は、並列計算機１０における計算ノードの空きについての問い合わせをユーザノード１から受信する（図７：ステップＳ１）。空きについての問い合わせには、次元を表す数が含まれる。ジョブ管理部３０１は、受信した問い合わせを資源管理部３０３に出力する。
【００２０】
資源管理部３０３は、空いている計算ノードが並列計算機１０に有るか判断する（ステップＳ３）。ステップＳ３において、資源管理部３０３は、資源データ格納部３０５に格納されている空き空間リストに空き空間が登録されているか否かによって判断する。
【００２１】
空いている計算ノードが無い場合（ステップＳ３：Ｎｏルート）、資源管理部３０３は、空いている計算ノードが無いことを表すデータをユーザノード１に送信する（ステップＳ５）。なお、ステップＳ５の処理の後、並列計算機１０において実行中のジョブの少なくとも一部を停止し、計算資源の空きを確保してもよい。
【００２２】
一方、空いている計算ノードが有る場合（ステップＳ３：Ｙｅｓルート）、資源管理部３０３は、問い合わせに含まれる、次元を表す数が２以上であるか判断する（ステップＳ７）。
【００２３】
次元を表す数が２以上ではない（すなわち、１である）場合（ステップＳ７：Ｎｏルート）、資源管理部３０３は、空いている計算ノードの数をユーザノード１に送信する（ステップＳ９）。そして処理を終了する。
【００２４】
一方、次元を表す数が２以上である場合（ステップＳ７：Ｙｅｓルート）、資源管理部３０３は、最大空き空間を計算する（ステップＳ１１）。最大空き空間とは、空き空間リストに登録されている空き空間のうち、体積が最大である空き空間である。
【００２５】
図８に、並列計算機１０における全計算ノードが占める空間と、ジョブを実行中の計算ノードが占める空間とを示す。図８の例では、直方体８１が、並列計算機１０における計算ノードが占める空間であり、模様が付されたブロックが、ジョブを実行中の計算ノードが占める空間である。次元が３である場合には、図８に示すように、ジョブを実行する計算ノードによって形成される空間が直方体になるように、ジョブに対して計算ノードを割り当てる。これは、ジョブを実行する計算ノードが離散していると、離散している計算ノードの間で通信を行う際に、そのジョブを実行しない計算ノードにも通信処理の負荷が生じることがあるためである。
【００２６】
図９を用いて、最大空き空間について説明する。図９の例では、ジョブＥ及びＦが実行されており、それ以外の空間が、ジョブを実行していない計算ノードが占める空間である。最大空き空間は、ジョブを実行していない計算ノードが占める空間内において、体積が最大である直方体が占める空間である。よって、図９の例では、ドットが付されているブロック９１が占める空間が最大空き空間である。最大空き空間を特定することによって、空いている計算ノードを最大限有効に活用できるようになる。
【００２７】
図７の説明に戻り、資源管理部３０３は、最大空き空間の情報（本実施の形態においては、最大空き空間に含まれる計算ノードの数）をユーザノード１に送信する（ステップＳ１３）。そして処理を終了する。
【００２８】
以上のような処理を実行すれば、ユーザノード１においては、空いている計算ノードの数に応じて適切なジョブを選択できるようになる。
【００２９】
次に、図１０を用いて、管理ノード３がユーザノード１から要求（ここでは、実行要求又は停止要求）を受信した場合に実行する処理について説明する。
【００３０】
まず、管理ノード３におけるジョブ管理部３０１は、ユーザノード１から要求を受信する（図１０：ステップＳ２１）。
【００３１】
ジョブ管理部３０１は、ステップＳ２１において受信した要求が、ジョブを実行することを要求する実行要求であるか判断する（ステップＳ２３）。実行要求には、ユーザノード１によって指定されたジョブの識別情報が含まれる。
【００３２】
実行要求である場合（ステップＳ２３：Ｙｅｓルート）、ジョブ管理部３０１は、実行要求をジョブスケジューラ３０２に出力する。これに応じ、ジョブスケジューラ３０２は、実行要求において指定されたジョブを空いている計算ノードに実行させるようにスケジューリングを行う（ステップＳ２５）。
【００３３】
一方、実行要求ではない場合（ステップＳ２３：Ｎｏルート）、ステップＳ２１において受信した要求は、ジョブを停止することを要求する停止要求であるので、ジョブ管理部３０１は、停止要求を資源管理部３０３に出力する。そして、資源管理部３０３は、並列計算機１０において実行中のジョブの少なくとも一部を停止する（ステップＳ２７）。そして処理を終了する。
【００３４】
以上のような処理を実行すれば、ジョブの実行に十分な空き空間を確保できる場合には、ユーザノード１から指定された緊急で実行すべきジョブ（以下、緊急ジョブと呼ぶ）等を、実行中のジョブを停止することなく実行できるようになる。
【００３５】
実行中のジョブを停止する場合には、そのジョブのコンテキスト等をハードディスク等に保存し、緊急ジョブが終了した後に、コンテキストを復元してジョブを再開することになる。よって、本来であれば不要であった処理（すなわちオーバーヘッド）が生じることになるが、本実施の形態におけるステップＳ２５の処理を実行すれば、オーバーヘッドは生じない。
【００３６】
また、実行中のジョブを停止することによって、緊急ジョブに使用する計算資源より多くの計算資源を確保してしまう場合がある。その場合、使用されない計算資源は無駄になる。しかし、本実施の形態の方法によれば、そのような無駄が生じることは無い。
【００３７】
また、たとえジョブの実行に十分な空き空間を確保できない場合であっても、ステップＳ２７の処理によって空き空間を大きくすることで、緊急ジョブを実行できるようになる。
【００３８】
なお、例えば図９の例においてジョブＦを停止した場合には、最大空き空間は図１１に示すように広がる。図１１においては、ジョブＦを実行する計算ノードによって占められていた空間が最大空き空間に加えられている。このようにして最大空き空間を大きくすることで、例えば緊急ジョブをより多く実行できるようになる。
【００３９】
次に、図１２乃至図１４を用いて、ユーザノード１が実行する処理について説明する。ここでは、複数の緊急ジョブが生じたことを前提とする。
【００４０】
まず、ユーザノード１における第１問い合わせ処理部１０３は、ステップＳ９及びステップＳ１３の処理によって管理ノード３から送信された、空いている計算ノードの数の情報を受信する（図１２：ステップＳ３０）。第１問い合わせ処理部１０３は、受信した情報をジョブ特定部１０１に出力する。
【００４１】
ジョブ特定部１０１は、複数の緊急ジョブのうち未処理の緊急ジョブを１つ特定する（ステップＳ３１）。
【００４２】
ジョブ特定部１０１は、特定された緊急ジョブに使用する計算ノードの数をジョブデータ格納部１０５から特定する。そして、ジョブ特定部１０１は、緊急ジョブに使用する計算ノードの数が、空いている計算ノードの数より少ないか判断する（ステップＳ３３）。
【００４３】
緊急ジョブに使用する計算ノードの数が、空いている計算ノードの数以上である場合（ステップＳ３３：Ｎｏルート）、その緊急ジョブに対して計算ノードを割り当てることはできないので、ステップＳ４１の処理に移行する。一方、緊急ジョブに使用する計算ノードの数が、空いている計算ノードの数より少ない場合（ステップＳ３３：Ｙｅｓルート）、ジョブ特定部１０１は、割り当て済みの計算ノードが有るか判断する（ステップＳ３５）。割り当て済みの計算ノードとは、空いている計算ノードのうち、緊急ジョブに割り当てることが既に決定されている計算ノードである。
【００４４】
割り当て済みの計算ノードが無い場合（ステップＳ３５：Ｎｏルート）、ステップＳ３１において特定された緊急ジョブに計算ノードを割り当てるため、ジョブ特定部１０１は、割り当て済みの計算ノードの数を、緊急ジョブに使用する計算ノードの数と同じ数に設定し（ステップＳ３８）、ステップＳ４１の処理に移行する。一方、割り当て済みの計算ノードが有る場合（ステップＳ３５：Ｙｅｓルート）、ジョブ特定部１０１は、緊急ジョブに使用する計算ノードの数が、空いている計算ノードの数から割り当て済みの計算ノードの数を差し引いた数以下であるか判断する（ステップＳ３７）。すなわち、ステップＳ３１において特定された緊急ジョブに対して割り当てることが可能な計算ノードが存在するか判断する。
【００４５】
緊急ジョブに使用する計算ノードの数が、空いている計算ノードの数から割り当て済みの計算ノードの数を差し引いた数より大きい場合（ステップＳ３７：Ｎｏルート）、ステップＳ３１において特定された緊急ジョブに計算ノードを割り当てることができないのでステップＳ４１に移行する。一方、緊急ジョブに使用する計算ノードの数が、空いている計算ノードの数から割り当て済みの計算ノードの数を差し引いた数以下である場合（ステップＳ３７：Ｙｅｓルート）、ジョブ特定部１０１は、割り当て済みの計算ノードの数を、緊急ジョブに使用する計算ノードの数を割り当て済みのノードの数に加えた数に設定する（ステップＳ３９）。
【００４６】
ジョブ特定部１０１は、未処理の緊急ジョブが有るか判断する（ステップＳ４１）。未処理の緊急ジョブが有る場合（ステップＳ４１：Ｙｅｓルート）、次の緊急ジョブについて処理するため、ステップＳ３１の処理に戻る。
【００４７】
一方、未処理の緊急ジョブが無い場合（ステップＳ４１：Ｎｏルート）、ジョブ特定部１０１は、割り当て済みの計算ノードが有るか判断する（ステップＳ４３）。
【００４８】
割り当て済みの計算ノードが有る場合（ステップＳ４３：Ｙｅｓルート）、ジョブ特定部１０１は、その計算ノードが割り当てられる緊急ジョブの識別情報を第２問い合わせ処理部１０４に出力する。これに応じ、第２問い合わせ処理部１０４は、ジョブ特定部１０１から受け取った緊急ジョブの識別情報を含む実行要求を、管理ノード３に送信する（ステップＳ４５）。そして処理を終了する。
【００４９】
一方、割り当て済みの計算ノードが無い場合（ステップＳ４３：Ｎｏルート）、緊急ジョブの実行に十分な数の計算ノードが無い。そこで、第２問い合わせ処理部１０４は、並列計算機１０において実行中のジョブの少なくとも一部を停止することを要求する停止要求を、管理ノード３に送信する（ステップＳ４７）。そして処理を終了する。
【００５０】
以上のような処理を実行すれば、ジョブを実行していない計算ノードの数に応じて適切なジョブを実行できるので、並列計算機１０における余剰の計算資源を有効に利用できるようになる。結果として、並列計算機１０のスループットが向上する。
【００５１】
例えば、図１３に示すように、緊急ジョブＡ乃至Ｃが有るとする。緊急ジョブＡに使用する計算ノードの数は６０であり、緊急ジョブＢに使用する計算ノードの数は２０であり、緊急ジョブＣに使用する計算ノードの数は３０である。これに対し、最大空き空間に含まれる計算ノードの数は１００である。
【００５２】
このような状況において本実施の形態の処理を実行すると、例えば図１４に示すように、最大空き空間に含まれる計算ノードが緊急ジョブに割り当てられる。図１４の例では、緊急ジョブＡ及び緊急ジョブＣに対して、最大空き空間に含まれる計算ノードが割り当てられ、利用されていない空き空間に含まれる計算ノードの数は１０である。よって、緊急ジョブＡ及び緊急ジョブＣが実行される。緊急ジョブＢは、使用可能な計算ノードの数が足りないので、使用可能な計算ノードが２０になるか又はステップＳ４７の処理によって空きノードが確保されると実行される。
【００５３】
なお、ユーザノード１が利用できる並列計算機１０が１つである例を示したが、図１５に示すように、ユーザノード１が複数の並列計算機１０を利用できるようにしてもよい。図１５の例では、ユーザノード１は、３つの並列計算機１０を利用できる。この場合には、ユーザノード１は、複数の管理ノード３の各々に対して問い合わせを行い、最も多くの緊急ジョブを処理することができる並列計算機１０に処理を実行させることができる。また、複数の並列計算機１０に緊急ジョブを実行させてもよい。
【００５４】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したユーザノード１及び管理ノード３の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００５５】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００５６】
また、フローは一例であって、最適な組合せを選べるのであれば他の選定方法であってもよい。
【００５７】
なお、上で述べたユーザノード１、管理ノード３及び計算ノードは、コンピュータ装置であって、図１６に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００５８】
但し、計算ノードは、ＣＰＵ又はＣＰＵコアであってもよい。
【００５９】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００６０】
本実施の形態の第１の態様に係る情報処理システムは、（Ａ）複数の情報処理装置と、（Ｂ）複数の情報処理装置によるジョブの実行を管理する管理装置と、（Ｃ）端末とを有する。そして、上で述べた管理装置は、（ｂ１）複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を端末に送信する第１処理部と、（ｂ２）端末から、ジョブを実行していない情報処理装置に実行させる、少なくとも１のジョブの識別情報を受信した場合に、当該ジョブを実行していない情報処理装置が実行するようにスケジューリングを行う第２処理部とを有する。
【００６１】
このようにすれば、ジョブを実行していない情報処理装置の数に応じて適切なジョブを実行できるので、余剰の計算資源を有効に利用できるようになる。
【００６２】
また、上で述べた第１処理部は、（ｂ１１）ジョブを実行していない情報処理装置が占める空間から直方体の空間を特定し、特定された直方体の空間に含まれる情報処理装置の数の情報を、端末に送信してもよい。ジョブを実行する複数の情報処理装置が離散していると、離散している複数の情報処理装置の間で通信を行う際に、そのジョブを実行しない情報処理装置にも通信処理の負荷が生じることがある。そこで、上で述べたようにすれば、そのジョブを実行しない情報処理装置に通信負荷を生じさせることがないので、処理性能の低下を防ぐことができる。
【００６３】
また、上で述べた第１処理部は、（ｂ１２）ジョブを実行していない情報処理装置が占める空間から、直方体の空間のうち体積が最大である直方体の空間を特定してもよい。このようにすれば、情報処理装置の計算資源を最大限有効に利用できるようになる。
【００６４】
また、上で述べた端末は、（ｃ１）管理装置から、複数の情報処理装置のうちジョブを実行していない情報処理装置の数の情報を受信する受信部と、（ｃ２）ジョブを実行していない情報処理装置の数と、実行すべき複数のジョブの各々に使用する情報処理装置の数とに基づき、実行すべきジョブの中から、ジョブを実行していない情報処理装置に実行させるジョブを少なくとも１つ特定する特定部と、（ｃ３）特定されたジョブの識別情報を、管理装置に送信する送信部とを有してもよい。このようにすれば、ジョブを実行していない情報処理装置の数に応じて適切なジョブを実行できるようになる。
【００６５】
また、上で述べた特定部は、（ｃ２１）ジョブに使用する情報処理装置の数の合計を、ジョブを実行していない情報処理装置の数を除した値が最大になるように、少なくとも１つのジョブを特定してもよい。このようにすれば、情報処理装置の計算資源を最大限有効に利用できるようになる。
【００６６】
また、上で述べた送信部は、（ｃ３１）ジョブを実行していない情報処理装置に実行させるジョブが無い場合、複数の情報処理装置において実行されているジョブの少なくとも一部を停止することを要求する停止要求を管理装置に送信してもよい。このようにすれば、解放された情報処理装置の計算資源を利用して、実行すべきジョブを実行できるようになる。
【００６７】
本実施の形態の第１の態様に係る制御方法は、複数の情報処理装置と、当該複数の情報処理装置を管理する管理装置と、端末とを含む情報処理システムの制御方法である。そして、上で述べた管理装置が、（Ｄ）複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を端末に送信し、（Ｅ）端末から、ジョブを実行していない情報処理装置に実行させる、少なくとも１のジョブの識別情報を受信した場合に、当該ジョブを実行していない情報処理装置が実行するようにスケジューリングを行う処理を含む。
【００６８】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００６９】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７０】
（付記１）
複数の情報処理装置と、
前記複数の情報処理装置によるジョブの実行を管理する管理装置と、
端末と、
を有し、
前記管理装置は、
前記複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を前記端末に送信する第１処理部と、
前記端末から、前記ジョブを実行していない情報処理装置に実行させる、少なくとも１のジョブの識別情報を受信した場合に、当該ジョブを前記ジョブを実行していない情報処理装置が実行するように、スケジューリングを行う第２処理部と、
を有する情報処理システム。
【００７１】
（付記２）
前記第１処理部は、
前記ジョブを実行していない情報処理装置が占める空間から直方体の空間を特定し、特定された前記直方体の空間に含まれる情報処理装置の数の情報を、前記端末に送信する
ことを特徴とする付記１記載の情報処理システム。
【００７２】
（付記３）
前記第１処理部は、
前記ジョブを実行していない情報処理装置が占める空間から、直方体の空間のうち体積が最大である直方体の空間を特定する
ことを特徴とする付記２記載の情報処理システム。
【００７３】
（付記４）
前記端末は、
前記管理装置から、前記複数の情報処理装置のうちジョブを実行していない情報処理装置の数の情報を受信する受信部と、
前記ジョブを実行していない情報処理装置の数と、実行すべき複数のジョブの各々に使用する情報処理装置の数とに基づき、前記実行すべきジョブの中から、前記ジョブを実行していない情報処理装置に実行させるジョブを少なくとも１つ特定する特定部と、
特定された前記ジョブの識別情報を、前記管理装置に送信する送信部と、
を有することを特徴とする付記１乃至３のいずれか１つ記載の情報処理システム。
【００７４】
（付記５）
前記特定部は、
ジョブに使用する情報処理装置の数の合計を、前記ジョブを実行していない情報処理装置の数を除した値が最大になるように、少なくとも１つのジョブを特定する
ことを特徴とする付記４の記載の情報処理システム。
【００７５】
（付記６）
前記送信部は、
前記ジョブを実行していない情報処理装置に実行させるジョブが無い場合、前記複数の情報処理装置において実行されているジョブの少なくとも一部を停止することを要求する停止要求を前記管理装置に送信する
ことを特徴とする付記４又は５記載の情報処理システム。
【００７６】
（付記７）
複数の情報処理装置を管理する管理装置に実行させるための制御プログラムであって、
前記複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を端末に送信し、
前記端末から、前記ジョブを実行していない情報処理装置に実行させる、少なくとも１のジョブの識別情報を受信した場合に、当該ジョブを、前記ジョブを実行していない情報処理装置が実行するようにスケジューリングを行う、
処理を実行させるための制御プログラム。
【００７７】
（付記８）
複数の情報処理装置と、当該複数の情報処理装置を管理する管理装置と、端末とを含む情報処理システムの制御方法であって、
前記管理装置が、
前記複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を前記端末に送信し、
前記端末から、前記ジョブを実行していない情報処理装置に実行させる、少なくとも１のジョブの識別情報を受信した場合に、当該ジョブを前記ジョブを実行していない情報処理装置が実行するように、スケジューリングを行う、
処理を実行する制御方法。
【符号の説明】
【００７８】
１  ユーザノード    ３  管理ノード
５  ネットワーク    １０  並列計算機
１０１  ジョブ特定部    １０２  問い合わせ処理部
１０３  第１問い合わせ処理部    １０４  第２問い合わせ処理部
１０５  ジョブデータ格納部
３０１  ジョブ管理部    ３０２  ジョブスケジューラ
３０３  資源管理部    ３０４  スケジュールデータ格納部
３０５  資源データ格納部
【図１】
2015064746.tif 000003
【図２】
2015064746.tif 000004
【図３】
2015064746.tif 000005
【図４】
2015064746.tif 000006
【図５】
2015064746.tif 000007
【図６】
2015064746.tif 000008
【図７】
2015064746.tif 000009
【図８】
2015064746.tif 000010
【図９】
2015064746.tif 000011
【図１０】
2015064746.tif 000012
【図１１】
2015064746.tif 000013
【図１２】
2015064746.tif 000014
【図１３】
2015064746.tif 000015
【図１４】
2015064746.tif 000016
【図１５】
2015064746.tif 000017
【図１６】
2015064746.tif 000018