(57)【要約】      （修正有）【課題】予定の時刻までに終了しないジョブを継続して実行できるようにする。【解決手段】本情報処理システムは、複数の情報処理装置と、複数の情報処理装置によるジョブの実行を管理する管理装置とを有する。そして、上で述べた管理装置は、所定の時刻において、複数の情報処理装置のいずれかが第１のジョブを実行中であることを検出する検出部と、複数の情報処理装置のうち、第１のジョブによって使用されている第１の情報処理装置を、所定の時刻の後に使用する予定である第２のジョブに対して、第１の情報処理装置とは異なる第２の情報処理装置を割り当てることができるか判断する判断部と、判断部が第２の情報処理装置を第２のジョブに対して割り当てることができると判断した場合、第２のジョブが第２の情報処理装置を使用してジョブを実行するように実行スケジュールを変更する変更部とを有する。【選択図】図２
2015095132.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置と、
前記複数の情報処理装置によるジョブの実行を管理する管理装置と、
を有し、
前記管理装置は、
所定の時刻において、前記複数の情報処理装置のいずれかが第１のジョブを実行中であることを検出する検出部と、
前記複数の情報処理装置のうち、前記第１のジョブによって使用されている第１の情報処理装置を、前記所定の時刻の後に使用する予定である第２のジョブに対して、前記第１の情報処理装置とは異なる第２の情報処理装置を割り当てることができるか判断する判断部と、
前記判断部が前記第２の情報処理装置を前記第２のジョブに対して割り当てることができると判断した場合、前記第２のジョブが前記第２の情報処理装置を使用してジョブを実行するように実行スケジュールを変更する変更部と、
を有する情報処理システム。
【請求項２】
前記管理装置は、
前記所定の時刻になる前に、前記第１のジョブの実行を延長した場合における実行スケジュールを生成し、データ格納部に格納し、前記所定の時刻において前記第１のジョブが実行中であることが検出された場合、前記データ格納部に格納した、前記第１のジョブの実行スケジュールを延長した場合における延長実行スケジュールに、前記実行スケジュールを更新する更新部
をさらに有する請求項１記載の情報処理システム。
【請求項３】
前記変更部は、
前記第１のジョブの他にジョブを実行する予定が無い場合、前記第１のジョブの実行を延長するように実行スケジュールを変更する
ことを特徴とする請求項１又は２記載の情報処理システム。
【請求項４】
複数の情報処理装置と、前記複数の情報処理装置によるジョブの実行を管理する管理装置とを有する情報処理システムの制御方法において、
前記管理装置が、
所定の時刻において、前記複数の情報処理装置のいずれかが第１のジョブを実行中であることを検出し、
前記複数の情報処理装置のうち、前記第１のジョブによって使用されている第１の情報処理装置を、前記所定の時刻の後に使用する予定である第２のジョブに対して、前記第１の情報処理装置とは異なる第２の情報処理装置を割り当てることができるか判断し、
前記第２の情報処理装置を前記第２のジョブに対して割り当てることができると判断した場合、前記第２のジョブが前記第２の情報処理装置を使用してジョブを実行するように実行スケジュールを変更する
情報処理システムの制御方法。
【請求項５】
複数の情報処理装置によるジョブの実行を管理する管理装置の制御プログラムにおいて、
前記管理装置に、
所定の時刻において、前記複数の情報処理装置のいずれかが第１のジョブを実行中であることを検出させ、
前記複数の情報処理装置のうち、前記第１のジョブによって使用されている第１の情報処理装置を、前記所定の時刻の後に使用する予定である第２のジョブに対して、前記第１の情報処理装置とは異なる第２の情報処理装置を割り当てることができるか判断させ、
前記第２の情報処理装置を前記第２のジョブに対して割り当てることができると判断された場合、前記第２のジョブが前記第２の情報処理装置を使用してジョブを実行するように実行スケジュールを変更させる
管理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理システムの制御方法及び管理装置の制御プログラムに関する。
【背景技術】
【０００２】
スーパーコンピュータ等の並列計算機においては、並列計算機を管理するシステム内にスケジューラを設け、スケジューラにジョブの実行スケジュールを管理させる。スケジューラがジョブの実行スケジュールを立てる際には、ジョブの実行に要する時間の情報が用いられるが、この時間は、並列計算機を利用するユーザによって見積もられる。ジョブの実行に要する時間はジョブ毎に異なっており、ユーザは、経験に基づく予測又は過去の実績等に基づき見積もりを行う。
【０００３】
しかし、ジョブの実際の実行時間は、見積もりとは乖離することがある。実際の実行時間が見積もりより短い（すなわち、予定よりも早くジョブが終了する）場合には、問題は無い。しかし、実際の実行時間が見積もりより長い（すなわち、ジョブが予定どおりに終了しない）場合には、そのジョブをどのように扱うかが問題になる。
【０００４】
従来の技術においては、予定の時刻までに終了しないジョブは、場合によっては強制的に停止される。しかし、あと少しの時間ジョブの実行を継続すれば終了するような場合等には、ジョブの実行を停止した後で最初からやり直すことにすると、これまでに行われた計算が無駄になる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２４９８１９号公報
【特許文献２】特開２００６−６５５６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、本発明の目的は、１つの側面では、予定の時刻までに終了しないジョブを継続して実行できるようにするための技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理システムは、複数の情報処理装置と、複数の情報処理装置によるジョブの実行を管理する管理装置とを有する。そして、上で述べた管理装置は、所定の時刻において、複数の情報処理装置のいずれかが第１のジョブが実行中であることを検出する検出部と、複数の情報処理装置のうち、第１のジョブによって使用されている第１の情報処理装置を、所定の時刻の後に使用する予定である第２のジョブに対して、第１の情報処理装置とは異なる第２の情報処理装置を割り当てることができるか判断する判断部と、判断部が第２の情報処理装置を第２のジョブに対して割り当てることができると判断した場合、第２のジョブが第２の情報処理装置を使用してジョブを実行するように実行スケジュールを変更する変更部とを有する。
【発明の効果】
【０００８】
１側面では、予定の時刻までに終了しないジョブを継続して実行できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態におけるシステムの概要を示す図である。
【図２】図２は、管理ノードの機能ブロック図である。
【図３】図３は、ユーザノードの機能ブロック図である。
【図４】図４は、第１スケジュールデータ格納部に格納されるデータの一例を示す図である。
【図５】図５は、資源マップの一例を示す図である。
【図６】図６は、資源マップの一例を示す図である。
【図７】図７は、第１の実施の形態におけるメインの処理フローを示す図である。
【図８】図８は、ジョブの実行スケジュールを表す図である。
【図９】図９は、ジョブの実行スケジュールを表す図である。
【図１０】図１０は、ジョブの実行スケジュールを表す図である。
【図１１】図１１は、ジョブの実行スケジュールを表す図である。
【図１２】図１２は、実行時間が制限を超える前に実行する処理の処理フローを示す図である。
【図１３】図１３は、ジョブの実行スケジュールを表す図である。
【図１４】図１４は、第２の実施の形態におけるメインの処理フローを示す図である。
【図１５】図１５は、ジョブの実行スケジュールを表す図である。
【図１６】図１６は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
図１に、本実施の形態におけるシステムの概要を示す。例えばインターネットであるネットワーク５には、ユーザによって操作されるユーザノード１と、管理ノード３とが接続されている。管理ノード３は、並列計算機１０として動作する複数の計算ノードを管理する。ユーザノード１は、ジョブの実行要求を管理ノード３に送信する。管理ノード３は、実行要求において指定されたジョブのスケジューリングを行い、計算ノードに、スケジュールに従ってジョブを実行させる。
【００１１】
図２に、管理ノード３の機能ブロック図を示す。管理ノード３は、生成部３２、変更部３３及び更新部３４を含むジョブスケジューラ３１と、第１スケジュールデータ格納部３５と、第２スケジュールデータ格納部３６と、ジョブ管理部３７と、資源管理部３８とを含む。
【００１２】
ジョブ管理部３７は、ジョブの識別情報（例えばジョブ名）、ジョブにおいて使用する計算資源の量（例えば、計算ノードの数及びメモリの量）及びジョブの実行時間の制限等を含むジョブ実行要求をユーザノード１から受け付け、ジョブ実行要求において指定されたジョブのスケジューリングをジョブスケジューラ３１に実行させる。ジョブスケジューラ３１における生成部３２は、ジョブ実行要求に含まれるデータに基づきジョブの実行スケジュールを生成し、第１スケジュールデータ格納部３５に格納する。変更部３３は、第１スケジュールデータ格納部３５に格納されている実行スケジュールを変更する。更新部３４は、第１スケジュールデータ格納部３５に格納されている実行スケジュールの代替の実行スケジュールを生成し、第２スケジュールデータ格納部３６に格納する。また、更新部３４は、第２スケジュールデータ格納部３６に格納されている実行スケジュールで第１スケジュールデータ格納部３５に格納されている実行スケジュールを更新する。資源管理部３８は、ジョブ管理部３７から実行を指示されたジョブのデータ（例えば、ジョブの識別情報及びジョブの実行時間の制限を含むデータ）を、並列計算機１０に送信する。また、資源管理部３８は、並列計算機１０において実行されているジョブの状態を監視する。なお、実行時間の制限は、ユーザによってジョブ毎に定められる。実行時間の制限を超えたジョブの取り扱いについては、後で詳細に説明する。
【００１３】
なお、並列計算機１０における少なくともいずれかの計算ノードには、計算ノードの割り当てを管理するプロセスが起動されている。そして、そのプロセスが、各計算ノードにおいて起動されている、ジョブの実行を管理するプロセスを制御することで、計算ノードにおいてジョブが実行される。
【００１４】
図３に、ユーザノード１の機能ブロック図を示す。ユーザノード１は、ジョブ管理部１００を含む。ジョブ管理部１００は、ジョブの識別情報、ジョブにおいて使用する計算資源の量及びジョブの実行時間の制限等を含むジョブ実行指示をユーザから受け付ける。そして、ジョブ管理部１００は、ジョブ実行指示に含まれるデータを含むジョブ実行要求を生成し、管理ノード３に送信する。
【００１５】
図４に、第１スケジュールデータ格納部３５に格納されるデータの一例を示す。図４の例では、各時刻について、各計算ノードを使用するジョブの識別情報が格納されている。計算ノードを使用するジョブが無い場合には「空き」であることを表すデータが格納される。時刻は、過去、現在及び未来の時刻を含む。過去の時刻についてのデータは、任意のタイミングで削除される。
【００１６】
例えば、図４に示したデータが第１スケジュールデータ格納部３５に格納されている場合、並列計算機１０の計算資源を管理するための資源マップは図５に示すようになる。図５の例では、時刻Ｔ０における資源マップ５０と、時刻Ｔ１における資源マップ５１と、時刻Ｔ２における資源マップ５２とが示されている。資源マップにおけるブロックは、計算ノードを表しており、計算ノードが実行するジョブの識別情報が括弧内に示されている。また、図５の上段には、ジョブが使用する資源量（本実施の形態においては、計算ノードの数）の経時変化が示されている。図５の例では、３つの計算ノードを使用するジョブＡが時刻Ｔ０から時刻Ｔ２まで実行され、１つの計算ノードを使用するジョブＢが時刻Ｔ０から時刻Ｔ１まで実行される。
【００１７】
例えば、時刻Ｔ０においてジョブＣの実行要求を受け付けた場合、ジョブＣについては、図６の上段に示すように実行スケジュールが立てられる。図６の例では、４つの計算ノードを使用するジョブＣが時刻Ｔ２から時刻Ｔ３まで実行される実行スケジュールが立てられている。本実施の形態においては、ユーザから指定された実行時間の制限に相当する時間、ジョブに使用する計算ノードが確保される。よって、図６の例の場合、ジョブＣについてユーザから指定された実行時間の制限は、時刻Ｔ２から時刻Ｔ３までの時間に相当する。また、図６の下段には、時刻Ｔ０における資源マップ５０と、時刻Ｔ１における資源マップ５１と、時刻Ｔ２における資源マップ５２と、時刻Ｔ３における資源マップ５３とが示されている。
【００１８】
次に、図７乃至図１１を用いて、管理ノード３の動作について説明する。ジョブ管理部３７は、並列計算機１０におけるジョブの状態を監視する資源管理部３８からの通知によって、或るジョブの実行時間が制限を超えたことを検出する（図７：ステップＳ１）。ジョブ管理部３７は、実行時間が制限を超えたジョブの識別情報をジョブスケジューラ３１に通知する。
【００１９】
ジョブスケジューラ３１における生成部３２は、第１スケジュールデータ格納部３５に格納されている実行スケジュールにおいて、実行時間が制限を超えたジョブの他にジョブを実行する予定が有るか判断する（ステップＳ３）。
【００２０】
他のジョブを実行する予定が無い場合（ステップＳ３：Ｎｏルート）、実行時間が制限を超えたジョブの実行を延長しても問題は無い。そこで、変更部３３は、実行時間が制限を超えたジョブの実行を延長するように、第１スケジュールデータ格納部３５に格納されている実行スケジュールを変更する（ステップＳ５）。そして処理を終了する。
【００２１】
図８に、ステップＳ３のＮｏルートに該当する実行スケジュールの一例を示す。図８においては、縦方向の長さが資源の量（ここでは、計算ノードの数）を表しており、右に進むほど時間が経過することを表している。図８の例では、過去の或る時刻から現在の時刻である時刻Ｔ０までジョブＡが実行されており、時刻Ｔ０においてジョブＡは実行時間の制限を超える。しかし、ジョブＡの他に実行される予定のジョブは無いため、ジョブＡの実行を延長したとしても問題は無い。
【００２２】
一方、他のジョブを実行する予定が有る場合（ステップＳ３：Ｙｅｓルート）、生成部３２は、第１スケジュールデータ格納部３５に格納されている実行スケジュールにおいて、使用を延長すべき計算ノード（すなわち、実行時間が制限を超えたジョブが使用している計算ノード）を使用する予定の他のジョブが有るか判断する（ステップＳ７）。
【００２３】
使用を延長すべき計算ノードを使用する予定の他のジョブが無い場合（ステップＳ７：Ｎｏルート）、実行時間が制限を超えたジョブの実行を延長しても問題は無い。そこで、変更部３３は、実行時間が制限を超えたジョブの実行を延長するように、第１スケジュールデータ格納部３５に格納されている実行スケジュールを変更する（ステップＳ５）。そして処理を終了する。
【００２４】
図９に、ステップＳ７のＮｏルートに該当する実行スケジュールの一例を示す。図９の例では、過去の或る時刻から現在の時刻である時刻Ｔ０までジョブＡが実行されており、時刻Ｔ０においてジョブＡは実行時間の制限を超える。また、時刻Ｔ０からジョブＢが実行される予定である。但し、ジョブＢは、ジョブＡが使用する計算ノードを使用する予定は無い。従って、ジョブＡの実行を延長したとしても、ジョブＢの実行に影響を与えることは無いので、ジョブＡの実行を延長することができる。
【００２５】
一方、使用を延長すべき計算ノードを使用する予定の他のジョブが有る場合（ステップＳ７：Ｙｅｓルート）、生成部３２は、他のジョブで使用する予定の計算ノードの数を、第１スケジュールデータ格納部３５に格納されている実行スケジュールによって特定する（ステップＳ９）。
【００２６】
そして、生成部３２は、空いている計算ノードによって他のジョブを実行可能であるか判断する（ステップＳ１１）。具体的には、生成部３２は、ステップＳ９において特定された、他のジョブで使用する予定の計算ノードの数が、空いている計算ノードの数を上回っているか判断する。
【００２７】
空いている計算ノードによって他のジョブを実行することができる場合（ステップＳ１１：Ｙｅｓルート）、変更部３３は、他のジョブに対して空いている計算ノードを割り当てるように、第１スケジュールデータ格納部３５に格納されている実行スケジュールを変更する（ステップＳ１３）。そして処理を終了する。
【００２８】
図１０に、ステップＳ１１のＹｅｓルートに該当する実行スケジュールの一例を示す。図１０の例では、過去の或る時刻から現在の時刻である時刻Ｔ０までジョブＡが実行されており、時刻Ｔ０においてジョブＡは実行時間の制限を超える。また、時刻Ｔ０からジョブＢが実行される予定である。ジョブＢは、ジョブＡが使用する計算ノードを使用してジョブを実行する予定であるので、このままではジョブＡの実行を延長することはできない。しかし、空いている計算ノードによってジョブＢを実行することができる。そこで、図１１に示すように、ジョブＢに対して空いている計算ノードを割り当てるように、ジョブの実行スケジュールを変更する。図１１の例では、時刻Ｔ０からジョブＢが実行されることには変更は無いが、ジョブＢは、ジョブＡが使用している計算ノードを使用しない。従って、ジョブＢの実行に影響を与えることは無いので、ジョブＡの実行を延長することができる。
【００２９】
図７の説明に戻り、空いている計算ノードによって他のジョブを実行することができない場合（ステップＳ１１：Ｎｏルート）、生成部３２は、実行時間が制限を超えたジョブを停止することに決定する（ステップＳ１５）。そして処理を終了する。なお、ジョブを実行する計算ノードは、実行時間の制限の情報を有しているので、実行時間が制限を超えると計算ノードがジョブの実行を停止する。
【００３０】
以上のような処理を実行すれば、ジョブの実行時間が制限を超えた場合であっても、他のジョブの実行に影響を与えることなく、ジョブを継続して実行できるようになる。よって、予定の時刻までに終了しないことによって停止されるジョブを減らすことができるようになる。また、空いている計算ノードを使用するので、計算ノードの稼働率を向上させることができるようになる。
【００３１】
［実施の形態２］
次に、第２の実施の形態について説明する。第２の実施の形態においては、ジョブの実行時間が制限を超える前に、ジョブスケジューラ３１が、予め代替の実行スケジュールを生成する。図１２及び図１３を用いて、ジョブスケジューラ３１が代替の実行スケジュールを生成する処理について説明する。本処理は、例えば、実行中のジョブについてジョブスケジューラ３１によるスケジューリングが終了した段階で実行される。
【００３２】
まず、ジョブスケジューラ３１における更新部３４は、実行中のジョブの終了予定時刻（すなわち、実行中のジョブの実行時間が制限に達する時刻）以降の実行スケジュールを、第１スケジュールデータ格納部３５から読み出す（図１２：ステップＳ２１）。
【００３３】
更新部３４は、読み出した実行スケジュールから、実行中のジョブを延長した場合における実行スケジュールを生成し、第２スケジュールデータ格納部３６に格納する（ステップＳ２３）。そして処理を終了する。
【００３４】
ステップＳ２３においては、例えば図１３に示すように実行スケジュールが生成される。図１３の例では、現在の時刻においてジョブＡ、ジョブＢ及びジョブＣが実行されており、これらのジョブは未来の或る時刻まで実行され、その時刻以降はジョブＤが実行される予定である。現在の実行スケジュールにおいては、ジョブＤを、ジョブＡが使用している計算ノードを使用して実行する。このような例の場合、ステップＳ２３においては、代替の実行スケジュールとして例えば２つの実行スケジュールが生成される。具体的には、ジョブＡが延長した場合に、ジョブＤを、ジョブＢが使用している計算ノードを使用して実行する実行スケジュール、及び、ジョブＡ及びジョブＢが延長した場合に、ジョブＤを、ジョブＣが使用している計算ノードを使用して実行する実行スケジュールである。
【００３５】
実行スケジュールを生成する処理は時間がかかる処理であるため、予め実行スケジュールを生成しておけば、実行スケジュールの変更に迅速に対応できるようになる。
【００３６】
次に、図１４及び図１５を用いて、ジョブの実行時間が制限を超えた際に管理ノード３が実行する処理について説明する。まず、ジョブ管理部３７は、並列計算機１０におけるジョブの状態を監視する資源管理部３８からの通知によって、或るジョブの実行時間が制限を超えたことを検出する（図１４：ステップＳ３１）。ジョブ管理部３７は、実行時間が制限を超えたジョブの識別情報をジョブスケジューラ３１に通知する。
【００３７】
ジョブスケジューラ３１における生成部３２は、第１スケジュールデータ格納部３５に格納されている実行スケジュールにおいて、実行時間が制限を超えたジョブの他にジョブを実行する予定が有るか判断する（ステップＳ３３）。
【００３８】
他のジョブを実行する予定が無い場合（ステップＳ３３：Ｎｏルート）、実行時間が制限を超えたジョブの実行を延長しても問題は無い。そこで、変更部３３は、実行時間が制限を超えたジョブの実行を延長するように、第１スケジュールデータ格納部３５に格納されている実行スケジュールを変更する（ステップＳ３５）。そして処理を終了する。
【００３９】
一方、他のジョブを実行する予定が有る場合（ステップＳ３３：Ｙｅｓルート）、生成部３２は、第１スケジュールデータ格納部３５に格納されている実行スケジュールにおいて、使用を延長すべき計算ノード（すなわち、実行時間が制限を超えたジョブが使用している計算ノード）を使用する予定の他のジョブが有るか判断する（ステップＳ３７）。
【００４０】
使用を延長すべき計算ノードを使用する予定の他のジョブが無い場合（ステップＳ３７：Ｎｏルート）、実行時間が制限を超えたジョブの実行を延長しても問題は無い。そこで、変更部３３は、実行時間が制限を超えたジョブの実行を延長するように、第１スケジュールデータ格納部３５に格納されている実行スケジュールを変更する（ステップＳ３５）。そして処理を終了する。
【００４１】
一方、使用を延長すべき計算ノードを使用する予定の他のジョブが有る場合（ステップＳ７：Ｙｅｓルート）、生成部３２は、更新部３４に処理の実行を要求する。これに応じ、更新部３４は、第２スケジュールデータ格納部３６に格納されている実行スケジュールの中に、実行時間が制限を超えたジョブの実行停止を回避可能な実行スケジュールが有るか判断する（ステップＳ３９）。
【００４２】
実行停止を回避可能な実行スケジュールが有る場合（ステップＳ３９：Ｙｅｓルート）、更新部３４は、第１スケジュールデータ格納部３５に格納されている実行スケジュールを、実行停止を回避可能な実行スケジュールで更新する（ステップＳ４１）。そして処理を終了する。
【００４３】
例えば図１５に示すような状況を考える。図１５の例は、図１３に示した状況から時間が経過し、ジョブＡ、ジョブＢ及びジョブＣの実行時間が制限に達した時の状況である。この状況において、ジョブＡは実行中であり、現在の実行スケジュールだと、ジョブＡの実行停止を回避することができない。そこで、ステップＳ４１の処理によって、ジョブＤを、ジョブＢが使用していた計算ノードを使用して実行する実行スケジュールを採用し、実行スケジュールを更新する。なお、図１５の例の場合には、もう一方の代替の実行スケジュールを採用したとしても、ジョブＡの実行停止を回避することができる。
【００４４】
図１４の説明に戻り、実行停止を回避可能な実行スケジュールが無い場合（ステップＳ３９：Ｎｏルート）、生成部３２は、実行時間が制限を超えたジョブを停止することに決定する（ステップＳ４３）。そして処理を終了する。なお、ジョブを実行する計算ノードは、実行時間の制限の情報を有しているので、実行時間が制限を超えると計算ノードがジョブの実行を停止する。
【００４５】
以上のような処理を実行すれば、実際にジョブの実行時間が制限を超えた段階で実行スケジュールを生成し直さなくてもよいので、後のジョブの実行を迅速に開始できるようになる。
【００４６】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したユーザノード１及び管理ノード３の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００４７】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００４８】
また、上で述べた例ではジョブを実行する計算ノードは、実行時間の制限の情報を有しているので、実行時間が制限を超えると計算ノードがジョブの実行を停止する。しかし、ジョブスケジューラ３１が、ジョブを停止することを要求する停止要求を、資源管理部３８を介して計算ノードに送信してもよい。
【００４９】
なお、上で述べたユーザノード１、管理ノード３及び計算ノードは、コンピュータ装置であって、図１６に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００５０】
但し、計算ノードは、ＣＰＵ又はＣＰＵコアであってもよい。
【００５１】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００５２】
本実施の形態の第１の態様に係る情報処理システムは、（Ａ）複数の情報処理装置と、（Ｂ）複数の情報処理装置によるジョブの実行を管理する管理装置とを有する。そして、上で述べた管理装置は、（ｂ１）所定の時刻において、複数の情報処理装置のいずれかが第１のジョブを実行中であることを検出する検出部（例えば、ジョブ管理部３７）と、（ｂ２）複数の情報処理装置のうち、第１のジョブによって使用されている第１の情報処理装置を、所定の時刻の後に使用する予定である第２のジョブに対して、第１の情報処理装置とは異なる第２の情報処理装置を割り当てることができるか判断する判断部（例えば、生成部３２）と、（ｂ３）判断部が第２の情報処理装置を第２のジョブに対して割り当てることができると判断した場合、第２のジョブが第２の情報処理装置を使用してジョブを実行するように実行スケジュールを変更する変更部（例えば、変更部３３）とを有する。
【００５３】
このようにすれば、ジョブの実行時間が制限を超えた場合であっても、他のジョブの実行に影響を与えることなく、ジョブを継続して実行できるようになる。
【００５４】
また、上で述べた管理装置は、（ｂ４）所定の時刻になる前に、第１のジョブの実行を延長した場合における実行スケジュールを生成し、データ格納部に格納し、所定の時刻において第１のジョブが実行中であることが検出された場合、データ格納部に格納した、第１のジョブの実行スケジュールを延長した場合における延長実行スケジュールに、実行スケジュールを更新する更新部（例えば、更新部３４）をさらに有してもよい。実行スケジュールを生成する処理は時間がかかる処理であるため、第１のジョブの実行時間が制限を超えた際に実行すると、第２のジョブの実行開始が遅れてしまうことがある。そこで、上で述べたようにすれば、予め実行スケジュールを用意できるので、第２のジョブの実行開始が遅れるのを抑制できるようになる。
【００５５】
また、上で述べた変更部は、（ｂ３１）第１のジョブの他にジョブを実行する予定が無い場合、第１のジョブの実行を延長するように実行スケジュールを変更してもよい。このようにすれば、ジョブの実行を延長しても問題が無い場合には、ジョブを継続して実行できるようになる。
【００５６】
また、上で述べた変更部は、（ｂ３２）第２の情報処理装置を、第２のジョブに対して割り当てることができないと判断した場合、第１のジョブの実行を停止してもよい。このようにすれば、第２のジョブを予定どおりに実行できるようになる。
【００５７】
本実施の形態の第２の態様に係る制御方法は、複数の情報処理装置と、複数の情報処理装置によるジョブの実行を管理する管理装置とを有する情報処理システムの制御方法である。そして、上で述べた管理装置が、（Ｃ）所定の時刻において、複数の情報処理装置のいずれかが第１のジョブを実行中であることを検出し、（Ｄ）複数の情報処理装置のうち、第１のジョブによって使用されている第１の情報処理装置を、所定の時刻の後に使用する予定である第２のジョブに対して、第１の情報処理装置とは異なる第２の情報処理装置を割り当てることができるか判断し、（Ｅ）第２の情報処理装置を第２のジョブに対して割り当てることができると判断した場合、第２のジョブが第２の情報処理装置を使用してジョブを実行するように実行スケジュールを変更する処理を含む。
【００５８】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００５９】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００６０】
（付記１）
複数の情報処理装置と、
前記複数の情報処理装置によるジョブの実行を管理する管理装置と、
を有し、
前記管理装置は、
所定の時刻において、前記複数の情報処理装置のいずれかが第１のジョブを実行中であることを検出する検出部と、
前記複数の情報処理装置のうち、前記第１のジョブによって使用されている第１の情報処理装置を、前記所定の時刻の後に使用する予定である第２のジョブに対して、前記第１の情報処理装置とは異なる第２の情報処理装置を割り当てることができるか判断する判断部と、
前記判断部が前記第２の情報処理装置を前記第２のジョブに対して割り当てることができると判断した場合、前記第２のジョブが前記第２の情報処理装置を使用してジョブを実行するように実行スケジュールを変更する変更部と、
を有する情報処理システム。
【００６１】
（付記２）
前記管理装置は、
前記所定の時刻になる前に、前記第１のジョブの実行を延長した場合における実行スケジュールを生成し、データ格納部に格納し、前記所定の時刻において前記第１のジョブが実行中であることが検出された場合、前記データ格納部に格納した、前記第１のジョブの実行スケジュールを延長した場合における延長実行スケジュールに、前記実行スケジュールを更新する更新部
をさらに有する付記１記載の情報処理システム。
【００６２】
（付記３）
前記変更部は、
前記第１のジョブの他にジョブを実行する予定が無い場合、前記第１のジョブの実行を延長するように実行スケジュールを変更する
ことを特徴とする付記１又は２記載の情報処理システム。
【００６３】
（付記４）
前記変更部は、
前記第２の情報処理装置を、前記第２のジョブに対して割り当てることができないと判断した場合、前記第１のジョブの実行を停止する
ことを特徴とする付記１乃至３のいずれか１つ記載の情報処理システム。
【００６４】
（付記５）
複数の情報処理装置と、前記複数の情報処理装置によるジョブの実行を管理する管理装置とを有する情報処理システムの制御方法において、
前記管理装置が、
所定の時刻において、前記複数の情報処理装置のいずれかが第１のジョブを実行中であることを検出し、
前記複数の情報処理装置のうち、前記第１のジョブによって使用されている第１の情報処理装置を、前記所定の時刻の後に使用する予定である第２のジョブに対して、前記第１の情報処理装置とは異なる第２の情報処理装置を割り当てることができるか判断し、
前記第２の情報処理装置を前記第２のジョブに対して割り当てることができると判断した場合、前記第２のジョブが前記第２の情報処理装置を使用してジョブを実行するように実行スケジュールを変更する
情報処理システムの制御方法。
【００６５】
（付記６）
複数の情報処理装置によるジョブの実行を管理する管理装置の制御プログラムにおいて、
前記管理装置に、
所定の時刻において、前記複数の情報処理装置のいずれかが第１のジョブを実行中であることを検出させ、
前記複数の情報処理装置のうち、前記第１のジョブによって使用されている第１の情報処理装置を、前記所定の時刻の後に使用する予定である第２のジョブに対して、前記第１の情報処理装置とは異なる第２の情報処理装置を割り当てることができるか判断させ、
前記第２の情報処理装置を前記第２のジョブに対して割り当てることができると判断された場合、前記第２のジョブが前記第２の情報処理装置を使用してジョブを実行するように実行スケジュールを変更させる
管理装置の制御プログラム。
【符号の説明】
【００６６】
１  ユーザノード    １００  ジョブ管理部
３  管理ノード    ３１  ジョブスケジューラ
３２  生成部    ３３  変更部
３４  更新部    ３５  第１スケジュールデータ格納部
３６  第２スケジュールデータ格納部    ３７  ジョブ管理部
３８  資源管理部
５  ネットワーク    １０  並列計算機
【図１】
2015095132.tif 000003
【図２】
2015095132.tif 000004
【図３】
2015095132.tif 000005
【図４】
2015095132.tif 000006
【図５】
2015095132.tif 000007
【図６】
2015095132.tif 000008
【図７】
2015095132.tif 000009
【図８】
2015095132.tif 000010
【図９】
2015095132.tif 000011
【図１０】
2015095132.tif 000012
【図１１】
2015095132.tif 000013
【図１２】
2015095132.tif 000014
【図１３】
2015095132.tif 000015
【図１４】
2015095132.tif 000016
【図１５】
2015095132.tif 000017
【図１６】
2015095132.tif 000018