"複数の計算資源のいずれかで実行中のジョブの一時停止を許容せずに、実行待ちのジョブを計算資源に実行させるための第1のスケジュールを作成し、複数の計算資源のいずれかで実行中のジョブの一時停止を許容して、一時停止したジョブと前記実行待ちのジョブとのそれぞれを計算資源に実行させるための第2のスケジュールを作成し、前記第1のスケジュールと前記第2のスケジュールとに基づいて、ジョブの一時停止を許容することの利益を示す値と損失を示す値とを計算し、前記利益を示す値と前記損失を示す値とを比較して、前記第1のスケジュールと前記第2のスケジュールとのうち、適切なスケジュールを決定する、処理をコンピュータに実行させるプログラム。前記第1のスケジュールよりも前記第2のスケジュールにおいて実行開始時刻が早く設定されたジョブについての、前記第1のスケジュールと前記第2のスケジュールとにおける実行開始時刻の差に基づいて、前記利益を示す値を計算し、前記第2のスケジュールにおいて一時停止されるジョブの一時停止期間の長さに基づいて、前記損失を示す値を計算する、処理をコンピュータに実行させる請求項1記載のプログラム。前記第1のスケジュールでは即時に実行開始できないが、前記第2のスケジュールでは即時に実行開始可能なジョブそれぞれについて、前記第1のスケジュールと前記第2のスケジュールとにおけるジョブの実行開始時刻の差に、該ジョブの実行に使用する計算資源の数を乗算し、ジョブごとの乗算結果の合計を、前記利益を示す値とする、処理をコンピュータに実行させる請求項1または2のいずれかに記載のプログラム。複数の計算資源のいずれかで実行中のジョブのうち、前記第2のスケジュールにおいて一時停止されるジョブそれぞれについて、前記第2のスケジュールにおけるジョブの一時停止期間の長さに、該ジョブの実行に使用する計算資源の数を乗算し、ジョブごとの乗算結果の合計を、前記損失を示す値とする、処理をコンピュータに実行させる請求項1乃至3のいずれかに記載のプログラム。前記利益を示す値を前記損失を示す値で除算した結果が、所定の閾値より大きい場合、前記第2のスケジュールが適切であると決定する、処理をコンピュータに実行させる請求項1乃至4のいずれかに記載のプログラム。前記第1のスケジュールにおいて、前記複数の計算資源の稼働効率が所定値以下となる時間帯を検出し、該時間帯の直後に実行予定のジョブを特定し、前記特定したジョブが即時実行可能となるように前記第2のスケジュールを作成する、処理をコンピュータに実行させる請求項1乃至5のいずれかに記載のプログラム。前記第1のスケジュールに従ってジョブを実行させた場合の前記複数の計算資源の稼働効率と、前記第2のスケジュールに従ってジョブを実行させた場合の前記複数の計算資源の稼働効率との比較結果を加味して、前記第1のスケジュールと前記第2のスケジュールとのうち、適切なスケジュールを決定する、処理をコンピュータに実行させる請求項1乃至6のいずれかに記載のプログラム。前記利益を示す値と前記損失を示す値との比較により、前記第2のスケジュールが適切であると判断でき、かつ、前記第1のスケジュールに従ってジョブを実行させた場合の前記複数の計算資源の稼働効率と、前記第2のスケジュールに従ってジョブを実行させた場合の前記複数の計算資源の稼働効率との比較により、前記第2のスケジュールが適切であると判断できる場合、前記第2のスケジュールが適切であると決定する、処理をコンピュータに実行させる請求項7記載のプログラム。前記第2のスケジュールに従ってジョブを実行させた場合の前記複数の計算資源の稼働効率を、前記第1のスケジュールに従ってジョブを実行させた場合の前記複数の計算資源の稼働効率で除算した結果が、所定の閾値より大きい場合、前記第2のスケジュールが適切であると決定する、処理をコンピュータに実行させる請求項7または8のいずれかに記載のプログラム。コンピュータが、複数の計算資源のいずれかで実行中のジョブの一時停止を許容せずに、実行待ちのジョブを計算資源に実行させるための第1のスケジュールを作成し、複数の計算資源のいずれかで実行中のジョブの一時停止を許容して、一時停止したジョブと前記実行待ちのジョブとのそれぞれを計算資源に実行させるための第2のスケジュールを作成し、前記第1のスケジュールと前記第2のスケジュールとに基づいて、ジョブの一時停止を許容することの利益を示す値と損失を示す値とを計算し、前記利益を示す値と前記損失を示す値とを比較して、前記第1のスケジュールと前記第2のスケジュールとのうち、適切なスケジュールを決定する、ことを特徴とするジョブスケジューリング方法。複数の計算資源のいずれかで実行中のジョブの一時停止を許容せずに、実行待ちのジョブを計算資源に実行させるための第1のスケジュールと、複数の計算資源のいずれかで実行中のジョブの一時停止を許容して、一時停止したジョブと前記実行待ちのジョブとのそれぞれを計算資源に実行させるための第2のスケジュールとを作成する作成手段と、前記第1のスケジュールと前記第2のスケジュールとに基づいて、ジョブの一時停止を許容することの利益を示す値と損失を示す値とを計算する計算手段と、前記利益を示す値と前記損失を示す値とを比較して、前記第1のスケジュールと前記第2のスケジュールとのうち、適切なスケジュールを決定する決定手段と、を有する情報処理装置。しかし、ジョブの一時停止を許容したジョブスケジューリングを行うと、ジョブの一時停止を許容したことにより利益を享受できるユーザがいる一方、ジョブの一時停止を許容したことで損失を受けるユーザもいる。例えば、ジョブスケジューリングでは、通常は先に依頼されたジョブから順に実行を開始するようにスケジューリングされる。このときジョブの一時停止を許容したスケジューリングを行うと、先に依頼されたジョブの実行が一時停止し、そのジョブより後に依頼されたジョブを先行して実行するようなスケジュールが組まれる可能性がある。この場合、一時停止されたジョブの実行を依頼したユーザにとっては、時間的な損失が生じたこととなる。このようなジョブの実行順の入れ替えが頻発すると、それぞれのジョブの実行を依頼したユーザに対するサービスの公平性が低下してしまう。従来では、このようなジョブを一時停止することによる損失の発生を受け入れてまでジョブ一時停止による稼働率向上を図ることが適切なのか否かについて十分な検討をせずに、ジョブの一時停止を許容したスケジューリングが行われることとなる。1つの側面では、本発明は、ジョブの一時停止を許容したスケジューリングが適切か否かを判断することができるプログラム、ジョブスケジューリング方法、および情報処理装置を提供することを目的とする。1つの案では、以下の処理をコンピュータに実行させるプログラムが提供される。コンピュータは、複数の計算資源のいずれかで実行中のジョブの一時停止を許容せずに、実行待ちのジョブを計算資源に実行させるための第1のスケジュールを作成する。またコンピュータは、複数の計算資源のいずれかで実行中のジョブの一時停止を許容して、一時停止したジョブと実行待ちのジョブとのそれぞれを計算資源に実行させるための第2のスケジュールを作成する。その後、コンピュータは、第1のスケジュールと第2のスケジュールとに基づいて、ジョブの一時停止を許容することの利益を示す値と損失を示す値とを計算する。そしてコンピュータは、利益を示す値と損失を示す値とを比較して、第1のスケジュールと第2のスケジュールとのうち、適切なスケジュールを決定する。1態様によれば、ジョブの一時停止を許容したスケジューリングが適切か否かを容易に判断することができる。以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。第1の実施の形態図1は、第1の実施の形態に係る装置の機能の一構成例を示す図である。情報処理装置1は、複数の計算資源2a,2b,2c,に実行させるジョブの実行スケジュールを作成する。情報処理装置1は、作成手段1a、記憶手段1b、計算手段1c、決定手段1d、および実行制御手段1eを有する。作成手段1aは、第1のスケジュールと第2のスケジュールとを作成する。第1のスケジュールは、複数の計算資源のいずれかで実行中のジョブの一時停止を許容せずに、実行待ちのジョブを計算資源に実行させるスケジュールである。第2のスケジュールは、複数の計算資源のいずれかで実行中のジョブの一時停止を許容して、一時停止したジョブと実行待ちのジョブとのそれぞれを計算資源に実行させるスケジュールである。例えば作成手段1aは、実行の依頼を受けたジョブに関するジョブ情報に基づいて、スケジュールを作成する。ジョブ情報には、例えば実行するジョブが逐次ジョブか並列ジョブかを示すジョブ種、並列ジョブの場合の並列度、ジョブの最大実行時間などの情報が含まれる。作成手段1aは、作成した第1のスケジュールと第2のスケジュールとを、例えば記憶手段1bに格納する。記憶手段1bは、第1のスケジュールと第2のスケジュールとを記憶する。計算手段1cは、第1のスケジュールと第2のスケジュールとに基づいて、ジョブの一時停止を許容することの利益を示す値と損失を示す値とを計算する。例えば計算手段1cは、第1のスケジュールよりも第2のスケジュールにおいて実行開始時刻が早く設定されたジョブについての、第1のスケジュールと第2のスケジュールとにおける実行開始時刻の差に基づいて、利益を示す値を計算する。例えば計算手段1cは、第1のスケジュールでは即時に実行開始できないが、第2のスケジュールでは即時に実行開始可能なジョブを検出する。次に計算手段1cは、検出したジョブそれぞれについて、第1のスケジュールと第2のスケジュールとにおけるジョブの実行開始時刻の差に、そのジョブの実行に使用する計算資源の数を乗算する。そして計算手段1cは、ジョブごとの乗算結果の合計を、利益を示す値とする。また計算手段1cは、例えば、第2のスケジュールにおいて一時停止されるジョブの一時停止期間の長さに基づいて、損失を示す値を計算する。例えば計算手段1cは、複数の計算資源のいずれかで実行中のジョブのうち、第2のスケジュールにおいて一時停止されるジョブを検出する。次に計算手段1cは、検出したジョブそれぞれについて、第2のスケジュールにおけるジョブの一時停止期間の長さに、そのジョブの実行に使用する計算資源の数を乗算する。そして計算手段1cは、ジョブごとの乗算結果の合計を、損失を示す値とする。決定手段1dは、利益を示す値と損失を示す値とを比較して、第1のスケジュールと第2のスケジュールとのうち、適切なスケジュールを決定する。例えば決定手段1dは、利益と損失との比率に基づいて適切なスケジュールを決定する。例えば決定手段1dは、利益を示す値を、損失を示す値で除算する。決定手段1dは、除算した結果が所定の閾値より大きい場合、第2のスケジュールが適切であると決定する。このときの閾値は、例えば1以上の値とする。実行制御手段1eは、決定手段1dによって適切であると決定されたスケジュールに従って、計算資源2a,2b,2c,に対するジョブの実行を指示する。なお、作成手段1a、計算手段1c、決定手段1d、および実行制御手段1eは、情報処理装置1が有するCPUにより実現することができる。また、記憶手段1bは、情報処理装置1が有するRAMRandomAccessMemoryやハードディスクドライブHDDHardDiskDriveなどにより実現することができる。また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。このような機能を有する情報処理装置1により、ジョブのスケジューリングが行われる。図2は、第1の実施の形態におけるスケジューリングの手順の一例を示すフローチャートである。以下、図2に示す処理をステップ番号に沿って説明する。[ステップS1]作成手段1aは、複数の計算資源のいずれかで実行中のジョブの一時停止を許容せずに、実行待ちのジョブを計算資源に実行させるための第1のスケジュールを作成する。作成手段1aは、作成した第1のスケジュールを、例えば記憶手段1bに格納する。[ステップS2]作成手段1aは、複数の計算資源のいずれかで実行中のジョブの一時停止を許容して、一時停止したジョブと実行待ちのジョブとのそれぞれを計算資源に実行させるための第2のスケジュールを作成する。作成手段1aは、作成した第2のスケジュールを、例えば記憶手段1bに格納する。なおステップS1とステップS2との処理は、実行順が逆であってもよい。[ステップS3]計算手段1cは、例えば、記憶手段1bから第1のスケジュールと第2のスケジュールとを取得する。そして計算手段1cは、第1のスケジュールと第2のスケジュールとに基づいて、ジョブの一時停止を許容することの利益を示す値と損失を示す値とを計算する。[ステップS4]決定手段1dは、利益を示す値と損失を示す値とを比較して、第1のスケジュールと第2のスケジュールとのうち、適切なスケジュールを決定する。例えば決定手段1dは、利益を示す値を、損失を示す値で除算する。決定手段1dは、除算した結果が所定の閾値より大きい場合、第2のスケジュールが適切であると決定する。逆に、除算した結果が所定の閾値以下の場合、決定手段1dは、第1のスケジュールが適切であると決定する。[ステップS5]実行制御手段1eは、適切であると決定されたスケジュールに従って、計算資源にジョブを実行させる。このようにして、ジョブの一時停止を許容しないスケジューリングが適切なのか、ジョブの一時停止を許容するスケジューリングが適切なのかが判断される。そして、適切と判断された方法でスケジューリングされたスケジュールに従って、ジョブの実行が制御される。図3は、第1の実施の形態による適切なスケジュールの判定例を示す図である。図3の例では、2つのジョブ5a,5bが実行中のときに、並列度の高いジョブ5cの実行スケジュールを決定する場合を想定している。ジョブ5cは、すべての計算資源を使用して実行する。第1のスケジュール3では、実行中のジョブ5a,5bは、一時停止されずに最後まで実行される。そしてジョブ5bの処理が終了した時点でジョブ5cが実行される。第2のスケジュール4では、実行中のジョブ5a,5bの処理が一時停止される。そしてジョブ5cが即時に実行される。一時停止されたジョブ5a,5bは、ジョブ5cの処理終了後に再開される。このような場合、例えばジョブの一時停止による利益を示す値として、ジョブの一時停止を許容することでジョブ5cの実行開始時刻が早まる時間Tcと、ジョブ5cの並列度Rcとが用いられる。例えば、時間Tc×並列度Rcの乗算結果が利益を示す値となる。またジョブの一時停止による損失を示す値として、一時停止するジョブ5a,5bの一時停止期間の長さを示す時間Ta,Tbと、ジョブ5a,5bの並列度Ra,Rbとが用いられる。例えば、時間Ta×並列度Raの乗算結果と時間Tb×並列度Rbの乗算結果との合計が、損失を示す値となる。例えば、利益を示す値を、損失を示す値で除算した結果が、所定の閾値P0より大きければ、第2のスケジュール4が適切であると判断される。また利益を示す値を損失を示す値で除算した結果が、所定の閾値P0以下であれば、第1のスケジュール3が適切であると判断される。閾値P0は、例えば1以上の値が設定される。ここで、ジョブの一時停止に伴うリスクを、閾値P0に反映させることができる。例えば閾値P0が大きくなるほど、ジョブの一時停止を許容したスケジュールが適切であると判断するための条件が厳しくなる。そこで、ジョブ一時停止に伴うリスクが大きい場合、閾値P0を大きくすることで、そのリスクを凌駕するメリットがある場合にのみ、ジョブの一時停止を許容したスケジュールが適用されることとなる。なおジョブの一時停止に伴うリスクとしては、例えばジョブの一時停止または再開の失敗の可能性がある。一時停止または再開に失敗すると、ジョブを改めて最初から実行することになり、処理効率が悪化する。そこでジョブの一時停止または再開の失敗の可能性を高い場合、閾値P0の値を大きくすることで、ジョブの一時停止または再開が失敗するという事態の発生頻度を抑止できる。以上のようにして、ジョブの一時停止を行うことによる利益と損失とのバランスを取ったスケジュールの作成が可能となる。これにより、必要以上のジョブの一時停止を抑止でき、ジョブの実行を依頼したユーザに対する公平なサービスの提供が可能となる。第2の実施の形態第2の実施の形態は、計算資源として複数の計算ノードを用いたコンピュータシステムにおいて、ジョブ実行の適切なスケジューリングを行うものである。なお、以下の説明では、ジョブを一時停止させることを、ジョブを凍結すると呼ぶこととする。また第2の実施の形態では、ジョブを凍結することによる利益と損失とのバランスに加え、ジョブを凍結することによる稼働率の向上度合いも考慮して、適切なスケジューリングを行う。すなわち、ジョブの凍結を許容するスケジューリングを行っても、ジョブの凍結を許容しない場合に比べ、稼働率がほとんど向上しないこともあり得る。このような場合、ジョブの凍結に伴うリスクを負ってまで、稼働率の向上させるメリットがない。ところが、HPCでは、様々なジョブが数百、数千の単位で存在し、稼働率の向上度合いの把握は容易ではない。そこで第2の実施の形態では、ジョブの凍結を許容しない場合と比べたときの、ジョブの凍結を許容してスケジューリングした場合の計算ノードの稼働率の向上度合いを把握し、適切なスケジュールを作成する。図4は、第2の実施の形態のシステムの一構成例を示す図である。管理ノード100には、複数の計算ノード31,32,33,が接続されている。管理ノード100は、計算ノード31,32,33,を管理するコンピュータである。計算ノード31,32,33,は、ジョブを実行するコンピュータである。計算ノード31,32,33,は、並列ジョブの場合、複数の計算ノードが互いに連携してジョブを実行する。また管理ノード100には、端末装置21が接続されている。端末装置21は、実行するジョブの内容を指示するユーザが使用するコンピュータである。ジョブの実行内容を指示する場合、ユーザは、例えば端末装置21に対して、実行するジョブの内容を入力する。ジョブの内容としては、例えばジョブの実行に用いるプログラムやデータ、逐次ジョブか並列ジョブかのジョブ種の指定、並列ジョブであれば並列度、ジョブの実行に要する最大の時間最大実行時間などが含まれる。そしてユーザの指示に応じて、端末装置21から管理ノード100へ、ジョブの実行内容が送信される。管理ノード100は、端末装置21からのジョブの実行依頼を受け付ける。そして、管理ノード100は、計算ノード31,32,33,にジョブの実行要求を送信し、計算ノード31,32,33,からジョブの処理結果を受け取る。図5は、本実施の形態に用いる管理ノードのハードウェアの一構成例を示す図である。管理ノード100は、CPU101によって装置全体が制御されている。CPU101には、バス109を介してRAM102と複数の周辺機器が接続されている。RAM102は、管理ノード100の主記憶装置として使用される。RAM102には、CPU101に実行させるOSOperatingSystemのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。バス109に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107,108がある。HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、管理ノード100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRTCathodeRayTubeを用いた表示装置や液晶表示装置などがある。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVDDigitalVersatileDisc、DVD-RAM、CD-ROMCompactDiscReadOnlyMemory、CD-RRecordable/RWReWritableなどがある。通信インタフェース107は、ネットワークを介して、端末装置21に接続されている。通信インタフェース107は、端末装置との間でデータの送受信を行う。通信インタフェース108は、ネットワークを介して、計算ノード31,32,33,に接続されている。通信インタフェース108は、計算ノード31,32,33,との間でデータの送受信を行う。以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお図5には管理ノード100のハードウェア構成例を示したが、計算ノード31,32,33,も、管理ノード100と同様のハードウェアで実現することができる。また、第1の実施の形態に示した情報処理装置1も、図5に示した管理ノードと同様のハードウェアにより実現することができる。図6は、管理ノードの機能を示すブロック図である。図6の例では、管理ノード100が有する機能のうち、ジョブ実行のスケジュールに関する機能のみを示している。管理ノード100は、ジョブ実行のスケジュール管理を行うスケジューラ100aを有している。スケジューラ100aは、ジョブ管理部110、待機キュー120、実行中キュー130、凍結キュー140、ジョブスケジューリング部150、スケジュール情報記憶部160、およびジョブ操作部170を有している。ジョブ管理部110は、端末装置21から入力されたジョブの実行依頼に応じて、実行依頼で指定されたジョブの内容を示すジョブ情報を生成する。生成されるジョブ情報は、そのジョブの実行に利用される各種情報を含んでいる。例えば生成されるジョブ情報には、ジョブの実行の手順が記述されたプログラムを一意に指定する情報や、そのプログラムに渡すデータが格納されたファイルを一意に指定する情報が含まれる。ジョブ管理部110は、ジョブ情報を生成すると、生成したジョブ情報を、待機キュー120に登録キューイングする。またジョブ管理部110は、ジョブの実行結果をジョブ操作部170から受け取ると、受け取った実行結果を、例えば端末装置21に送信する。またジョブ管理部110は、所定のタイミングでジョブスケジューリング部150に対してスケジューリングを要求する。例えばジョブ管理部110は、新たに生成したジョブ情報を待機キュー120に登録した際に、ジョブスケジューリング部150に対してスケジューリングを要求する。また、ジョブ管理部110は、ジョブの処理結果をジョブ操作部170から取得した際にも、ジョブスケジューリング部150に対してスケジューリングを要求する。待機キュー120は、待機状態のジョブのジョブ情報を保持するバッファである。以下、待機キュー120に登録されているジョブ情報に対応するジョブを、特に待機ジョブと呼ぶこととする。実行中キュー130は、実行中のジョブのジョブ情報を保持するバッファである。以下、実行中キュー130に登録されているジョブ情報に対応するジョブを、特に実行中ジョブと呼ぶこととする。凍結キュー140は、凍結されたジョブのジョブ情報を記憶するバッファである。待機キュー120、実行中キュー130、および凍結キュー140としては、例えばRAM102またはHDD103の記憶領域の一部が使用される。ジョブスケジューリング部150は、スケジューリング要求に応じて、待機キュー120に登録されたジョブ情報で示されるジョブを計算ノードに実行させるスケジュールを作成する。ジョブスケジューリング部150は、例えば、ジョブの凍結を許容しない場合と許容する場合との2通りのスケジュールを作成する。ジョブスケジューリング部150は、作成したスケジュールを、スケジュール情報記憶部160に格納する。ジョブスケジューリング部150は、例えば作成したスケジュールのうち、ジョブの凍結の利益と損失などを考慮し、適切なスケジュールを決定する。そしてジョブスケジューリング部150は、適切と判断したスケジュールに従って、実行可能なジョブの実行開始をジョブ操作部170に依頼する。その際、ジョブスケジューリング部150は、ジョブ情報と、ジョブの実行に使用するハードウェア資源およびソフトウェア資源を示す実行資源情報とを、ジョブ操作部170に渡す。実行資源情報には、例えばジョブを実行する計算ノードの指定が含まれる。ジョブスケジューリング部150は、実行開始を依頼したジョブのジョブ情報を、待機キュー120から実行中キュー130に移動させる。ジョブスケジューリング部150は、ジョブの凍結を行う場合、ジョブ操作部170に対してジョブの凍結要求を通知する。またジョブスケジューリング部150は、凍結したジョブのジョブ情報を、実行中キュー130から凍結キュー140に移動する。そしてジョブスケジューリング部150は、作成したスケジュールに従って実行要求が計算ノードに送信された後、凍結キュー140に移動したジョブのジョブ情報を、待機キュー120に移動する。スケジュール情報記憶部160は、スケジュールを記憶する。例えばRAM102またはHDD103の記憶領域の一部がスケジュール情報記憶部160として使用される。ジョブ操作部170は、ジョブの実行に関する操作を行う。例えばジョブ操作部170は、実行するジョブのジョブ情報と実行資源情報を受け取ると、そのジョブの実行要求を、実行資源情報に示される計算ノードに送信する。送信される実行要求には、例えばジョブの実行に用いられるプログラムやデータを指定する情報が含まれる。なおジョブ操作部170は、実行するジョブが並列ジョブであれば、複数の計算ノードに対してジョブの実行要求を送信する。これにより、並列ジョブの実行要求を受信した複数の計算ノードが、互いに連携して並列ジョブを実行する。さらに、ジョブ操作部170は、計算ノードから、処理が完了したジョブの実行結果を取得し、その実行結果をジョブ管理部110に通知する。なお、図1に示す第1の実施の形態の作成手段1a、計算手段1c、および決定手段1dの機能は、図6のジョブスケジューリング部150で実現される。また図1に示す第1の実施の形態の実行制御手段1eの機能は、ジョブスケジューリング部150とジョブ操作部170との連携動作により実現される。さらに図1に示す記憶手段1bの機能は、スケジュール情報記憶部160で実現される。また、図6に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。次に、ジョブ管理部110が生成するジョブ情報について説明する。図7は、ジョブ情報の一例を示す図である。ジョブ情報51には、例えばジョブ識別番号、並列度、最大実行時間などの情報が含まれる。ジョブ識別番号は、実行するジョブの識別番号である。並列度は、ジョブを並列処理で実行するノード数である。なおジョブが逐次ジョブであれば、並列度に1が設定される。最大実行時間は、ジョブの実行に要する最大時間である。なお図7に示した情報以外にも、ジョブ情報51には、例えばジョブの実行に用いるソフトウェア名、パラメータ、使用データが格納されたファイル名などの各種情報が含まれる。ジョブスケジューリング部150は、待機キュー120に格納されたジョブ情報を参照することで、ジョブを実行する計算ノード、およびジョブの実行開始時刻を示すスケジュールを作成できる。例えば、ジョブの凍結を許容しない場合と、ジョブの凍結を許容する場合との2通りのスケジュールが作成される。作成されたスケジュールは、スケジュール情報記憶部160に格納される。図8は、スケジュール記憶部のデータ構造の一例を示す図である。スケジュール情報記憶部160には、現行スケジュール161、凍結候補リスト162、および仮スケジュール163が格納されている。現行スケジュール161は、現時点で適用されているジョブの実行スケジュールである。現行スケジュール161には、ジョブ識別番号、ノード番号、開始時刻、および終了時刻の欄が設けられている。ジョブ識別番号の欄には、計算ノードに実行させるジョブのジョブ識別番号が設定される。ノード番号の欄には、ジョブ識別番号で示されるジョブを実行させる計算ノードのノード番号が設定される。実行するジョブが逐次ジョブであれば、ノード番号の欄には、1つの計算ノードのノード番号が設定される。実行するジョブが並列ジョブであれば、ノード番号の欄には、そのジョブの並列度に応じた数のノードのノード番号が設定される。開始時刻の欄には、ジョブ識別番号で示されるジョブの実行開始時刻が設定される。終了時刻の欄には、ジョブ識別番号で示されるジョブの実行終了時刻が設定される。なおジョブの実行終了時刻は、実行開始時刻から、そのジョブの最大実行時間経過後の時刻である。凍結候補リスト162は、仮スケジュールを作成する際の凍結候補のジョブのリストである。凍結候補リスト162には、実行を凍結する対象として選択されたジョブのジョブ識別番号が設定される。仮スケジュール163は、スケジュール最適化の際に、現行スケジュール161との比較用に作成されるスケジュールである。例えば、仮スケジュール163は、凍結候補リスト162に示されるジョブを凍結した場合のスケジュールである。仮スケジュール163の方が現行スケジュール161より適切と判断されれば、その時点で凍結候補リスト162に登録されているジョブを凍結して、現行スケジュール161が更新される。仮スケジュール163には、ジョブ識別番号、ノード番号、開始時刻、および終了時刻の欄が設けられている。仮スケジュール163の各欄に設定される情報は、現行スケジュール161の同名の欄と同種の情報である。このような機能のスケジューラ100aによって、効率的に処理が実行されるように、計算ノード31,32,33,にジョブの実行要求が送信される。なお、図6に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。次に、管理ノード100によるスケジューリング処理について詳細に説明する。図9は、スケジューリング処理の手順を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。[ステップS101]ジョブスケジューリング部150は、スケジューリング開始のトリガとなるイベントトリガイベントが発生したか否かを判断する。トリガイベントは、例えば、端末装置21からのジョブの投入、計算ノードによるジョブの実行終了、直近予想イベントなどである。直近予想イベントとは、前回のスケジューリング処理で適用したスケジュールにおいて、最も早く発生する予定の今後のイベントの発生予定時刻ジョブの実行開始時刻、ジョブの実行終了時刻になったときに発生するイベントである。直近予想イベントは、例えばジョブスケジューリング部150が、スケジュール情報記憶部160内の前回のスケジューリング処理で適用したスケジュールを参照して発生させる。トリガイベントが発生した場合、ジョブスケジューリング部150は、スケジュール情報記憶部160内の現行スケジュール161における待機ジョブに関する設定内容を削除して、処理をステップS102に進める。またトリガイベントが発生していなければ、ジョブスケジューリング部150はステップS101の処理を繰り返し、トリガイベントが発生するのを待つ。[ステップS102]ジョブスケジューリング部150は、未選択の待機ジョブを、待機キュー120の先頭から順に選択する。[ステップS103]ジョブスケジューリング部150は、選択したジョブのスケジューリングを行う。例えばジョブスケジューリング部150は、選択したジョブのジョブ種逐次ジョブ/並列ジョブと、ジョブの並列度、ジョブの最大実行時間に基づいて、計算ノードの空き時間帯を、選択したジョブの実行時間に割り当てる。計算ノードの空き時間帯とは、そのジョブの実行に割り当てられていない時間帯である。このときジョブスケジューリング部150は、選択したジョブをできるだけ早い時間帯に実行できるような計算ノードの空き時間帯を検索し、その空き時間帯を選択したジョブの実行時間に割り当てる。なお選択したジョブが並列ジョブであれば、そのジョブの並列度に応じた数の計算ノードの空き時間帯を、選択したジョブの実行時間に割り当てる。ジョブスケジューリング部150は、選択したジョブのスケジューリング結果を、スケジュール情報記憶部160内の現行スケジュール161に設定する。[ステップS104]ジョブスケジューリング部150は、選択したジョブが、すぐに実行可能か否かを判断する。例えばジョブスケジューリング部150は、ステップS103において選択したジョブの実行時間に割り当てられた時間帯の開示時刻が、現在の時刻であれば、ジョブをすぐに実行可能と判断する。ジョブスケジューリング部150は、ジョブをすぐに実行可能な場合、処理をステップS105に進める。またジョブ管理部110は、ジョブをすぐには実行できない場合、処理をステップS106に進める。[ステップS105]ジョブスケジューリング部150は、選択したジョブを、ステップS103で実行要求先に決定した計算ノードで実行させる。例えばジョブスケジューリング部150は、選択したジョブのジョブ情報と実行資源情報とをジョブ操作部170に渡し、ジョブの実行開始を依頼する。するとジョブ操作部170は、実行資源情報において実行要求先に指定された計算ノードに対して、ジョブの実行要求を送信する。このときジョブスケジューリング部150は、選択したジョブを、待機キュー120から実行中キュー130に移動する。[ステップS106]ジョブスケジューリング部150は、ステップS102においてすべての待機ジョブを選択したか否かを判断する。例えばジョブスケジューリング部150は、最後に選択した待機ジョブが待機キュー120内の最後尾のジョブであれば、すべての待機ジョブを選択したものと判断する。ジョブスケジューリング部150は、すべての待機ジョブを選択した場合、処理をステップS107に進める。またジョブスケジューリング部150は、未選択の待機ジョブがある場合、処理をステップS102に進める。[ステップS107]ジョブスケジューリング部150は、スケジュール最適化処理を行う。スケジュール最適化処理の詳細は後述する図12参照。このような手順でスケジュールが作成され、その後スケジュールの最適化が行われる。以下、ステップS101~S106の処理によって作成されたスケジュールを、現行スケジュールと呼ぶこととする。図10は、待機ジョブのスケジューリング過程の一例を示す図である。図10の例では、実行するジョブとして9個のジョブ41~49がある。これらのジョブ41~49を、14台の計算ノードで実行するものとする。なお図10中、各ジョブ41~49を示す矩形内に、ジョブ識別番号を示している。またジョブ41~49を示す矩形は、縦幅が並列度を表しており、横幅が最大実行時間を表している。図10の右側に示すスケジュールには、計算ノードごとに実行するジョブの割り当て状況が示されている。スケジュールは、横軸が時間経過である。そして計算ノードのノード番号に対応付けて、その計算ノードで実行するジョブの実行時間帯が示されている。9個のジョブ41~49のうち、2つのジョブ41,42については実行要求先の計算ノードが決定され、決定された計算ノードの空き時間帯が、ジョブ41,42の実行に割り当てられている。残りのジョブ43~49のキュー情報が待機キュー120に登録されている。図10の例では、上位に示されているジョブほど、そのジョブのジョブ情報の待機キュー120内での順位が早い。従って、次に選択されるのはジョブ43となる。ジョブ43は、並列度が14である。すなわちジョブ43は、14台の計算ノードによって並列に処理される。図10に示す状況では、14台の計算ノードのうち8台はジョブを実行しており、空き状態の計算ノードは6台のみである。そのため、ジョブ43は、ジョブ41,42の実行終了後にしか実施することができない。そこで、ジョブ42の終了後の各計算ノードの時間帯が、ジョブ43の実行時間に割り当てられる。すると、ジョブ43の実行時間の前には、多くの計算ノードにおいて空き時間が生じる。ジョブ43のスケジューリングが完了すると、その後、他のジョブ44~49のスケジューリングが順次行われる。図11は、スケジューリング結果の一例を示す図である。図11に示すように、ジョブ44~49は、最大実行時間が長すぎて、ジョブ43の実行前の空き時間に納まらない。そのため、ジョブ44~49は、高並列度の並列ジョブであるジョブ43の実行終了後に実行するように、スケジュールされる。図11のようなスケジュールが作成された場合、ジョブ43の実行開始前に、多くの計算ノードで空き時間が生じる。すなわち、計算ノードの稼働率が低い状態が生じる。このような場合、実行中のジョブ41,42を凍結すれば、より効率的なスケジュールを作成できる可能性がある。そこで、ジョブの凍結を許容しないでスケジュールを作成した後、ジョブの凍結を許容したスケジュール最適化処理が実行される。図12は、スケジュール最適化処理の手順の一例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。[ステップS111]ジョブスケジューリング部150は、現行スケジュールにおいて、稼働率が所定の閾値以下に低下する時間帯があるか否かを判断する。稼働率は、例えば全計算ノードのうち、ジョブを実行している計算ノードの割合で示される。稼働率が所定の閾値以下となる時間帯がある場合、その時間帯の直後に実行する予定の待機ジョブが、稼働率低下の原因であると判断できる。そこで、稼働率が所定の閾値以下となる時間帯の直後に実行する予定の待機ジョブを、特に原因ジョブと呼ぶこととする。ジョブスケジューリング部150は、稼働率が所定の閾値以下となる時間帯があれば、処理をステップS112に進める。ジョブスケジューリング部150は、稼働率が所定の閾値以下となる時間帯がなければスケジュール最適化処理を終了する。[ステップS112]ジョブスケジューリング部150は、実行中のジョブのなかで終了時刻が最も遅いジョブを、凍結候補リストに追加する。以下、凍結候補リストに登録されたジョブを、特に凍結候補ジョブと呼ぶこととする。[ステップS113]ジョブスケジューリング部150は、凍結候補リストに登録されたジョブをすべて凍結した場合の仮スケジューリングを行う。例えばジョブスケジューリング部150は、凍結候補ジョブについては、凍結し、稼働率が低下した直後に実行するジョブの後に再度実行するように仮スケジューリングを行う。またジョブスケジューリング部150は、凍結候補ジョブは、待機ジョブよりも優先して実行するように仮スケジューリングを行う。ジョブスケジューリング部150は、仮スケジューリングにより作成された仮スケジュール163を、スケジュール情報記憶部160に格納する。[ステップS114]ジョブスケジューリング部150は、仮スケジューリングの結果、原因ジョブが実行開始可能となったか否かを判断する。ジョブスケジューリング部150は、原因ジョブが実行開始可能となった場合、処理をステップS115に進める。またジョブスケジューリング部150は、原因ジョブが実行可能とならなければ、処理をステップS112に進め、別の実行中ジョブを凍結する。[ステップS115]ジョブスケジューリング部150は、ジョブ凍結による利益Gainと損失Lossとを数値化し、利点と欠点との比を計算する。そして、ジョブスケジューリング部150は、利点と欠点との比が所定の閾値より大きいか否かを判断する。この判断は、例えば以下の式1で表される。式1において、iは、仮スケジューリングで実行開始可能になったジョブのジョブ識別番号であるiは1以上の整数。仮スケジューリングで実行開始可能になったジョブには、原因ジョブが含まれる。原因ジョブ以外のジョブについても、仮スケジューリングの過程で実行開始可能となる場合がある。Tiは、ジョブ識別番号iのジョブの開示時刻が、仮スケジューリングによって早まった時間である。Riは、ジョブ識別番号iのジョブの並列度である。jは、凍結候補ジョブのジョブ識別番号であるjは1以上の整数。Tjは、ジョブ識別番号jの凍結候補ジョブが、仮スケジュールによって遅延した時間である。Rjは、ジョブ識別番号jの凍結候補ジョブの並列度である。P1は、予め管理者によって設定された閾値である。なおP1には、例えば1以上の値が設定される。ジョブスケジューリング部150は、利点の値を欠点の値で除算した結果が、所定の閾値より大きい場合、処理をステップS116に進める。またジョブスケジューリング部150は、利点の値を欠点の値で除算した結果が、所定の閾値以下の場合、スケジュール最適化処理を終了する。[ステップS116]ジョブスケジューリング部150は、現行スケジュールから仮スケジュールに変更した場合の計算ノードの稼働率の向上度合いが、所定の閾値より大きいか否かを判断する。稼働率の算出期間は、例えば現行スケジュールにおける、現在から原因ジョブの終了時刻までの期間である。稼働率は、算出期間内での各計算ノードの稼働時間の合計値を、各計算ノードの最大稼働時間の合計値で除算した値である。このとき算出期間の長さが、計算ノードそれぞれの最大稼働時間となる。また、第2の実施の形態では、現行スケジュールにおける稼働率の算出期間と、仮スケジュールにおける稼働率の算出期間とは、同じ期間を用いる。この場合、各計算ノードの最大稼働時間の合計値は、現行スケジュールにおいても、仮スケジュールにおいても同じ値となる。すると、現行スケジュールから仮スケジュールに変更した場合の稼働率の向上度合いは、稼働率の算出期間内での各計算ノードの稼働時間の合計値を、現行スケジュールと仮スケジュールとで比較することによって求められる。そこで、以下の式2で、稼働率の向上度合いが所定の閾値より大きいか否かが判断できる。式2において、S1は、現行スケジュールにおいて、稼働率の算出期間内で計算ノードが稼働する時間の総量である。S2は、仮スケジューリングにおいて、稼働率の算出期間内で計算ノードが稼働する時間の総量である。P2は、予め管理者によって設定された閾値である。なおP2には、例えば1以上の値が設定される。ジョブスケジューリング部150は、稼働率の向上度合いが所定の閾値より大きい場合、処理をステップS117に進める。またジョブスケジューリング部150は、稼働率の向上度合いが所定の閾値以下の場合、スケジュール最適化処理を終了する。[ステップS117]ジョブスケジューリング部150は、凍結候補ジョブの凍結を伴う再スケジューリング処理を行う。再スケジューリング処理の詳細は後述する図18参照。このように、稼働率が所定の閾値以下となる時間帯がある場合、ジョブの凍結を考慮に入れた仮スケジューリングが行われる。そして仮スケジューリングによるジョブの入れ替えの利益が損失より所定値以上に大きく、稼働率が所定値以上向上する場合に、仮スケジューリングに沿ったジョブ入れ替え処理が行われる。図13は、稼働率の判定例を示す図である。図13の例では、計算ノードの総数N1が14台である。そしてジョブ43の実行開始時刻時刻t0の直前の時間帯には、ジョブ42のみが実行される。ジョブ42は、並列度が3の並列ジョブである。そのため時刻t0の直前の時間帯の計算ノードの稼働数N2は、3台である。すると、稼働率N2/N1は、約0.2143/14となる。ここで、稼働率の閾値が、例えば0.5であれば、時刻t0の直前で稼働率の低下が検出される。稼働率の低下が検出された場合、実行中ジョブのうち、終了時刻が最も遅いジョブが凍結候補リストに追加される。図13の例では、ジョブ42が凍結候補リストに追加される。また時刻t0から実行される予定のジョブ43が、原因ジョブとして決定される。図14は、1つ目の実行中ジョブの凍結候補リストへの追加状況を示す図である。凍結候補リスト151には、ジョブ42のジョブ識別番号2が追加されている。凍結候補リスト151にジョブが追加されると、追加された凍結候補ジョブを凍結した場合の仮スケジューリングが行われる。図14の例では、仮スケジューリングによりジョブ42が凍結されることで、ジョブ42とジョブ43との実行順が入れ替わる。ジョブ42の凍結により原因ジョブであるジョブ43の開始時刻は早まるものの、すぐに実行することはできない。そこで別の実行中ジョブが凍結候補リストに追加される。図15は、2つ目の実行中ジョブの凍結候補リストへの追加状況を示す図である。凍結候補リスト151には、ジョブ41のジョブ識別番号1が追加されている。凍結候補リスト151にジョブが追加されると、追加された凍結候補ジョブを凍結した場合の仮スケジューリングが行われる。図15の例では、仮スケジューリングによりジョブ41が凍結されることで、ジョブ41とジョブ43との実行順が入れ替わる。これにより、原因ジョブであるジョブ43は、即時に実行可能となる。原因ジョブが実行開始可能となると、まず、ジョブ凍結による利益と損失とが比較される。図16は、ジョブ凍結による利益と損失との比較例を示す図である。図16では、上段に現行スケジュール161を示し、下段に仮スケジュール163を示している。ジョブ凍結による利益と損失とは、現行スケジュール161から仮スケジュール163へ変更した場合の原因ジョブと凍結候補ジョブとの実行開始時間の変化によって求められる。図16の例では、稼働率低下の原因となっている原因ジョブは、ジョブ43である。仮スケジューリングによってジョブ43の開始時刻が早まった時間は、T3である。またジョブ43の並列度はR3である。すると、ジョブ凍結による利益は、T3×R3となる。また凍結候補ジョブは、ジョブ41とジョブ42である。ジョブ41が仮スケジューリングによって遅延する時間は、T1である。ジョブ41の並列度は、R1である。ジョブ42が仮スケジューリングによって遅延する時間は、T2である。ジョブ42の並列度は、R2である。すると、ジョブ凍結による損失は、T1×R1T2×R2となる。そして利益を損失で除算した値が、閾値P1より大きいかどうかが判定される。また、原因ジョブが実行開始可能となった場合、稼働率の向上度合いが判断される。図17は、ジョブ凍結による稼働率の向上度合いの判断例を示す図である。図17では、上段に現行スケジュール161を示し、下段に仮スケジュール163を示している。ジョブ凍結による稼働率の向上度合いは、現行スケジュール161と仮スケジュール163とのそれぞれにおける稼働率を比較することによって求められる。図17の例では、稼働率の算出期間は、現在から原因ジョブの処理の終了時刻T1までの期間である。式2におけるS1は、現行スケジュール161に示す領域61の面積である。領域61の面積は、計算ノードごとに、算出期間内での現行スケジュール161における稼働時間を計算し、その計算結果を合計することで求められる。式2におけるS2は、仮スケジュール163に示す領域62の面積である。領域62の面積は、計算ノードごとに、算出期間内での仮スケジュール163における稼働時間を計算し、その計算結果を合計することで求められる。そして、S2をS1で除算した値が、閾値P2より大きいかどうかが判定される。図16、図17に示した判定により、利益が損失を所定値以上に上回り、稼働率の向上度合いが所定値以上であると判定された場合、凍結候補ジョブの凍結を伴う再スケジューリング処理が行われる。図18は、再スケジューリング処理の手順を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。[ステップS121]ジョブスケジューリング部150は、スケジュール情報記憶部160内の現行スケジュール161の設定内容を全て削除する。そしてジョブスケジューリング部150は、凍結候補リスト151に設定されている凍結候補ジョブを凍結する。例えばジョブスケジューリング部150は、凍結候補ジョブのジョブ識別番号を指定して、ジョブ操作部170に対してジョブの凍結を依頼する。するとジョブ操作部170は、凍結候補ジョブを実行している計算ノードに対し、凍結候補ジョブの実行の一時停止を指示する。この指示に応じて、計算ノードが凍結候補ジョブの実行を一時停止する。[ステップS122]ジョブスケジューリング部150は、実行中キュー130に登録されている凍結候補ジョブのジョブ情報を、凍結キュー140に移動する。[ステップS123]ジョブスケジューリング部150は、未選択の待機ジョブを、待機キュー120の先頭から順に選択する。[ステップS124]ジョブスケジューリング部150は、選択したジョブのスケジューリングを行う。スケジューリングの詳細は、例えば図9のステップS103の処理と同様である。[ステップS125]ジョブスケジューリング部150は、選択したジョブが、すぐに実行可能か否かを判断する。例えばジョブスケジューリング部150は、ステップS124において選択したジョブの実行時間に割り当てられた時間帯の開示時刻が、現在の時刻であれば、ジョブをすぐに実行可能と判断する。ジョブスケジューリング部150は、ジョブをすぐに実行可能な場合、処理をステップS126に進める。またジョブ管理部110は、ジョブをすぐには実行できない場合、処理をステップS127に進める。[ステップS126]ジョブスケジューリング部150は、選択したジョブを、ステップS103で実行要求先に決定した計算ノードで実行させる。この処理の詳細は、図9のステップS105の処理と同様である。その後、ジョブスケジューリング部150は処理をステップS123に進める。[ステップS127]ジョブスケジューリング部150は、すべての待機ジョブを選択したか否かを判断する。例えばジョブスケジューリング部150は、最後に選択した待機ジョブが待機キュー120内の最後尾のジョブであれば、すべての待機ジョブを選択したものと判断する。ジョブスケジューリング部150は、すべての待機ジョブを選択した場合、処理をステップS128に進める。またジョブスケジューリング部150は、未選択の待機ジョブがある場合、処理をステップS123に進める。[ステップS128]ジョブスケジューリング部150は、凍結候補ジョブのジョブ情報を、凍結キュー140から待機キュー120に移動する。例えば、ジョブスケジューリング部150は、凍結候補ジョブのジョブ情報を、待機キュー120の先頭に挿入する。これにより、凍結されているジョブが、次のスケジューリングの際に優先的に選択され、実行が再開される。[ステップS129]ジョブスケジューリング部150は、凍結候補リスト151をクリアする。例えばジョブスケジューリング部150は、凍結候補リスト151からジョブ識別番号を削除する。その後、再スケジューリング処理が終了する。図19は、再スケジューリング処理に伴う各キューの状態遷移の一例を示す図である。図19の例では、待機キュー120、実行中キュー130、凍結キュー140に格納されているジョブ情報を、各キュー内に円で示している。ジョブ情報を示す円内には、ジョブ情報に対応するジョブのジョブ識別番号が示されている。また各キュー内のジョブ情報の配列は、右側が先頭である。第1の状態は、再スケジューリング処理開始時の状態である。この時点では、2つのジョブ41,42が計算ノードで実行されている。そのため、実行中キュー130には、ジョブ識別番号1のジョブ41のジョブ情報と、ジョブ識別番号2のジョブ42のジョブ情報とが登録されている。また待機キュー120には、ジョブ43~49それぞれに対応するジョブ情報が登録されている。第2の状態は、凍結候補ジョブを凍結し、仮スケジュールに基づいて原因ジョブの実行を開始した直後の状態である。この時点では、第2の状態で実行されていた2つのジョブ41,42の処理は、凍結されている。そこで実行中キュー130から凍結キュー140へ、ジョブ識別番号1のジョブ41のジョブ情報と、ジョブ識別番号2のジョブ42のジョブ情報とが移動されている。また2つのジョブ41,42の処理が凍結されたことで、原因ジョブであるジョブ43の実行開始が可能となり、ジョブ43の実行が開始されている。そこで待機キュー120から実行中キュー130へ、ジョブ識別番号3のジョブ43のジョブ情報が移動されている。第3の状態は、再スケジューリング処理が完了後の状態である。凍結キュー140に登録されていたジョブ識別番号1のジョブ41のジョブ情報と、ジョブ識別番号2のジョブ42のジョブ情報とは、待機キュー120の先頭に移動されている。これにより、スケジューリング処理を開始するためのトリガイベントが次に発生した場合、凍結状態のジョブ41,42が優先的に実行開始される。以上のようにして、ジョブ凍結による利益と損失とを考慮した上で、ジョブ凍結をしてでも稼働率を向上させることが有益である場合に、ジョブ凍結を伴うスケジュールを作成し、そのスケジュールに沿ってジョブを実行させることができる。その結果、不必要なジョブ凍結を抑止することができ、ジョブ凍結による損失の発生を抑止することができる。例えば不必要なジョブ凍結が行われないことで、ジョブの凍結再開の失敗により処理効率が低下する可能性が抑止される。また不必要なジョブ凍結が行われないことで、ジョブの投入順とジョブの実行順とが入れ替わる頻度が少なくなる。これにより、ジョブの投入順とジョブの実行順とが入れ替わることによるサービスの公平性の低下が抑止される。例えばHPCでは、処理に数週間を要するようなジョブ長時間ジョブを実行する場合がある。ジョブの凍結を許容するスケジューリングを行うと、長時間ジョブよりも投入時刻が前のジョブが凍結され、長時間ジョブの後に再開される場合も想定される。この場合、凍結されたジョブを依頼したユーザにとっては、自身が依頼したジョブの投入よりも後に長期間ジョブが投入されたことが原因で、ジョブの実行結果を取得するのが数週間遅れることになる。このような事態が多発すると、ジョブの依頼したユーザ間でのサービスの公平性が低下する。第2の実施の形態では、仮スケジューリングにおいて長期にわたって凍結されるジョブが発生するような場合、式1の左辺の分母の値が大きくなる。その結果、図12のステップS115でNOと判断され、ジョブの入れ替えは行われない可能性が高くなる。その結果、ジョブ凍結が最小限に抑えられ、サービスの公平性の低下が抑止される。しかも第2の実施の形態では、計算ノードの稼働率の向上度合いがあまり大きくない場合、ジョブ凍結を許容したスケジューリングは行われない。これにより、リスクを負ってまでジョブ凍結をするメリットがない場合には、ジョブ凍結は行われずにすみ、無駄なジョブ凍結は抑止され、システムの安定性が向上する。このように、第2の実施の形態では、ジョブ凍結の利益と損失とのバランス、および稼働率向上度合いとジョブ凍結のリスクとのバランスを考慮して、ジョブ実行の適切なスケジュールを作成することができる。その他の実施の形態第2の実施の形態では、ジョブの実行単位の計算資源は計算ノードであるが、ジョブの実行単位がCPUまたはコアであっても、同様の技術を適用できる。また第2の実施の形態では、ジョブ凍結を許容することで即時に実施可能となるジョブの実行開始時刻が早まる時間に基づいて、利益を示す値を算出している。しかし、即時に実施可能となるジョブ以外にも、ジョブ凍結を許容することで実行開始時刻の早まるジョブがある。そこでジョブ凍結を許容することで、即時に実行可能とはならないものの、実行開始時刻の早まるジョブに関する、実行開始時刻が早まる時間に基づく利益を、ジョブ凍結を許容する場合の利益を示す値に加算してもよい。さらに第2の実施の形態では、ジョブ凍結を許容することで凍結されるジョブの遅延時間一時停止時間に基づいて、損失を示す値を算出している。しかし、凍結するジョブ以外にも、ジョブ凍結を許容することで実行開始時刻が遅延するジョブが発生する可能性がある。そこでジョブ凍結を許容することで、実行開始時刻の遅延が生じるジョブに関する、実行開始時刻の遅延時間に基づく損失を、ジョブ凍結を許容する場合の損失を示す値に加算してもよい。なお、上記の各実施の形態に示した処理機能は、コンピュータによって実現することができる。その場合、管理ノードが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置HDD、フレキシブルディスクFD、磁気テープなどがある。光ディスクには、DVD、DVD-RAM、CD-ROM/RWなどがある。光磁気記録媒体には、MOMagnetoOpticaldiscなどがある。プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD-ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、DSPDigitalSignalProcessor、ASICApplicationSpecificIntegratedCircuit、PLDProgrammableLogicDeviceなどの電子回路で実現することもできる。以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成特徴を組み合わせたものであってもよい。以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。付記1複数の計算資源のいずれかで実行中のジョブの一時停止を許容せずに、実行待ちのジョブを計算資源に実行させるための第1のスケジュールを作成し、複数の計算資源のいずれかで実行中のジョブの一時停止を許容して、一時停止したジョブと前記実行待ちのジョブとのそれぞれを計算資源に実行させるための第2のスケジュールを作成し、前記第1のスケジュールと前記第2のスケジュールとに基づいて、ジョブの一時停止を許容することの利益を示す値と損失を示す値とを計算し、前記利益を示す値と前記損失を示す値とを比較して、前記第1のスケジュールと前記第2のスケジュールとのうち、適切なスケジュールを決定する、処理をコンピュータに実行させるプログラム。付記2前記第1のスケジュールよりも前記第2のスケジュールにおいて実行開始時刻が早く設定されたジョブについての、前記第1のスケジュールと前記第2のスケジュールとにおける実行開始時刻の差に基づいて、前記利益を示す値を計算し、前記第2のスケジュールにおいて一時停止されるジョブの一時停止期間の長さに基づいて、前記損失を示す値を計算する、処理をコンピュータに実行させる付記1記載のプログラム。付記3前記第1のスケジュールでは即時に実行開始できないが、前記第2のスケジュールでは即時に実行開始可能なジョブそれぞれについて、前記第1のスケジュールと前記第2のスケジュールとにおけるジョブの実行開始時刻の差に、該ジョブの実行に使用する計算資源の数を乗算し、ジョブごとの乗算結果の合計を、前記利益を示す値とする、処理をコンピュータに実行させる付記1または2のいずれかに記載のプログラム。付記4複数の計算資源のいずれかで実行中のジョブのうち、前記第2のスケジュールにおいて一時停止されるジョブそれぞれについて、前記第2のスケジュールにおけるジョブの一時停止期間の長さに、該ジョブの実行に使用する計算資源の数を乗算し、ジョブごとの乗算結果の合計を、前記損失を示す値とする、処理をコンピュータに実行させる付記1乃至3のいずれかに記載のプログラム。付記5前記利益を示す値を前記損失を示す値で除算した結果が、所定の閾値より大きい場合、前記第2のスケジュールが適切であると決定する、処理をコンピュータに実行させる付記1乃至4のいずれかに記載のプログラム。付記6前記第1のスケジュールにおいて、前記複数の計算資源の稼働効率が所定値以下となる時間帯を検出し、該時間帯の直後に実行予定のジョブを特定し、前記特定したジョブが即時実行可能となるように前記第2のスケジュールを作成する、処理をコンピュータに実行させる付記1乃至5のいずれかに記載のプログラム。付記7前記第1のスケジュールにおいて、前記複数の計算資源の稼働効率が所定値以下となる時間帯が存在しない場合、前記第2のスケジュールを作成することなく、前記第1のスケジュールが適切であると判断する、処理をコンピュータに実行させる付記6記載のプログラム。付記8前記第1のスケジュールに従ってジョブを実行させた場合の前記複数の計算資源の稼働効率と、前記第2のスケジュールに従ってジョブを実行させた場合の前記複数の計算資源の稼働効率との比較結果を加味して、前記第1のスケジュールと前記第2のスケジュールとのうち、適切なスケジュールを決定する、処理をコンピュータに実行させる付記1乃至7のいずれかに記載のプログラム。付記9前記利益を示す値と前記損失を示す値との比較により、前記第2のスケジュールが適切であると判断でき、かつ、前記第1のスケジュールに従ってジョブを実行させた場合の前記複数の計算資源の稼働効率と、前記第2のスケジュールに従ってジョブを実行させた場合の前記複数の計算資源の稼働効率との比較により、前記第2のスケジュールが適切であると判断できる場合、前記第2のスケジュールが適切であると決定する、処理をコンピュータに実行させる付記8記載のプログラム。付記10前記第2のスケジュールに従ってジョブを実行させた場合の前記複数の計算資源の稼働効率を、前記第1のスケジュールに従ってジョブを実行させた場合の前記複数の計算資源の稼働効率で除算した結果が、所定の閾値より大きい場合、前記第2のスケジュールが適切であると決定する、処理をコンピュータに実行させる付記8または9のいずれかに記載のプログラム。付記11適切であると決定されたスケジュールに従って、前記複数の計算資源にジョブを実行させる、処理をコンピュータに実行させる付記1乃至10のいずれかに記載のプログラム。付記12コンピュータが、複数の計算資源のいずれかで実行中のジョブの一時停止を許容せずに、実行待ちのジョブを計算資源に実行させるための第1のスケジュールを作成し、複数の計算資源のいずれかで実行中のジョブの一時停止を許容して、一時停止したジョブと前記実行待ちのジョブとのそれぞれを計算資源に実行させるための第2のスケジュールを作成し、前記第1のスケジュールと前記第2のスケジュールとに基づいて、ジョブの一時停止を許容することの利益を示す値と損失を示す値とを計算し、前記利益を示す値と前記損失を示す値とを比較して、前記第1のスケジュールと前記第2のスケジュールとのうち、適切なスケジュールを決定する、ことを特徴とするジョブスケジューリング方法。付記13複数の計算資源のいずれかで実行中のジョブの一時停止を許容せずに、実行待ちのジョブを計算資源に実行させるための第1のスケジュールと、複数の計算資源のいずれかで実行中のジョブの一時停止を許容して、一時停止したジョブと前記実行待ちのジョブとのそれぞれを計算資源に実行させるための第2のスケジュールとを作成する作成手段と、前記第1のスケジュールと前記第2のスケジュールとに基づいて、ジョブの一時停止を許容することの利益を示す値と損失を示す値とを計算する計算手段と、前記利益を示す値と前記損失を示す値とを比較して、前記第1のスケジュールと前記第2のスケジュールとのうち、適切なスケジュールを決定する決定手段と、を有する情報処理装置。"