(57)【特許請求の範囲】
【請求項１】
複数の情報処理装置と、前記複数の情報処理装置を管理する管理装置とを有する情報処理システムにおいて、
前記管理装置は、
前記複数の情報処理装置の各々が実行する処理についての情報及び当該処理を実行する期間についての情報を格納するデータ格納部と、
前記データ格納部に格納されている情報を用いて、並列処理を実行する所定数の情報処理装置を確保可能な時刻である第１の時刻を特定する特定部と、
前記データ格納部に格納されている情報を用いて、前記第１の時刻より前の期間であり且つ処理が実行されない期間である第１の期間を有する１又は複数の第１の情報処理装置を特定し、前記１又は複数の第１の情報処理装置の前記第１の期間を、前記並列処理の前に実行されるべき第１の処理に割り当てる割当部と、
を有する情報処理システム。
【請求項２】
前記割当部は、
前記第１の処理を前記複数の情報処理装置のうち１台の情報処理装置が実行した場合にかかる時間を算出し、
算出された前記時間が、前記１又は複数の第１の情報処理装置の前記第１の期間の合計より短いという条件が満たされるか判定し、
前記条件が満たされない場合に、前記第１の時刻に、当該第１の時刻の所定時間後の時刻を設定する、
請求項１記載の情報処理システム。
【請求項３】
前記管理装置は、
実行すべきジョブのプログラムを、前記並列処理用のプログラムと前記第１の処理用のプログラムとに分割する分割部と、
前記並列処理用のプログラムを、前記並列処理を実行する所定数の情報処理装置に送信し、前記第１の処理用のプログラムを、前記１又は複数の第１の情報処理装置に送信する送信部と、
をさらに有する請求項１又は２記載の情報処理システム。
【請求項４】
前記送信部は、
前記１又は複数の第１の情報処理装置から、前記第１の処理から前記並列処理に引き継がれる情報を受信し、前記並列処理を実行する所定数の情報処理装置に、前記第１の処理から前記並列処理に引き継がれる情報を送信する
請求項３記載の情報処理システム。
【請求項５】
前記第１の処理は、前記並列処理に使用する１又は複数のデータブロックを転送する処理を含み、
前記条件は、前記１又は複数のデータブロックの合計サイズを転送レートで除することにより算出される転送時間が、前記１又は複数の第１の情報処理装置の前記第１の期間の合計より短いという条件を含む、
請求項２記載の情報処理システム。
【請求項６】
前記割当部は、
前記１又は複数の第１の情報処理装置の各々について、当該第１の情報処理装置が転送するデータの量と、前記１又は複数のデータブロックのうち当該第１の情報処理装置が転送をする部分とを決定するものであり、
前記管理装置は、
前記１又は複数の第１の情報処理装置の各々に、当該第１の情報処理装置が転送するデータの量の情報と、前記１又は複数のデータブロックのうち当該第１の情報処理装置が転送をする部分の情報とを送信する送信部をさらに有する、
請求項５記載の情報処理システム。
【請求項７】
複数の情報処理装置を管理する管理装置において、
前記複数の情報処理装置の各々が実行する処理についての情報及び当該処理を実行する期間についての情報を格納するデータ格納部と、
前記データ格納部に格納されている情報を用いて、並列処理を実行する所定数の情報処理装置を確保可能な最も早い時刻である第１の時刻を特定する特定部と、
前記データ格納部に格納されている情報を用いて、前記第１の時刻より前の期間であり且つ処理が実行されない期間である第１の期間を有する１又は複数の第１の情報処理装置を特定し、前記１又は複数の第１の情報処理装置の前記第１の期間を、前記並列処理の前に実行されるべき第１の処理に割り当てる割当部と、
を有する管理装置。
【請求項８】
複数の情報処理装置と、前記複数の情報処理装置を管理する管理装置とを有する情報処理システムにおいて、
前記管理装置が、
前記複数の情報処理装置の各々が実行する処理についての情報及び当該処理を実行する期間についての情報を格納するデータ格納部に格納されている情報を用いて、並列処理を実行する所定数の情報処理装置を確保可能な最も早い時刻である第１の時刻を特定し、
前記データ格納部に格納されている情報を用いて、前記第１の時刻より前の期間であり且つ処理が実行されない期間である第１の期間を有する１又は複数の第１の情報処理装置を特定し、
前記１又は複数の第１の情報処理装置の前記第１の期間を、前記並列処理の前に実行されるべき第１の処理に割り当てる、
処理を実行する、情報処理システムの制御方法。
【請求項９】
複数の情報処理装置を管理する管理装置の制御プログラムにおいて、
前記管理装置に、
前記複数の情報処理装置の各々が実行する処理についての情報及び当該処理を実行する期間についての情報を格納するデータ格納部に格納されている情報を用いて、並列処理を実行する所定数の情報処理装置を確保可能な最も早い時刻である第１の時刻を特定し、
前記データ格納部に格納されている情報を用いて、前記第１の時刻より前の期間であり且つ処理が実行されない期間である第１の期間を有する１又は複数の第１の情報処理装置を特定し、
前記１又は複数の第１の情報処理装置の前記第１の期間を、前記並列処理の前に実行されるべき第１の処理に割り当てる、
処理を実行させるための管理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理システムの制御方法、管理装置、及び制御プログラムに関する。
【背景技術】
【０００２】
ユーザからの指示に応じてジョブを実行する情報処理システムにおいては、ユーザからの指示が特定の時間帯に集中すると、計算資源が不足し、ジョブを実行することができなくなる。そこで従来の技術においては、ジョブの実行スケジュールを管理する機構（以下、スケジューラと呼ぶ）を情報処理システム内に設け、ジョブの実行中に計算資源が不足することを防いでいる。
【０００３】
ところで、並列処理を含むジョブは並列ジョブと呼ばれる。並列ジョブは、並列処理だけでなく並列処理以外の処理も含み、並列処理以外の処理は、例えば、並列処理の準備のための処理（前処理と呼ばれる）及び並列処理の完了のための処理（後処理と呼ばれる）等を含む。
【０００４】
並列処理以外の処理は、並列処理を実行する計算ノードの数と同じ数の計算ノードを確保しなくても実行できる場合がある。そのため、並列処理以外の処理が実行されている間、並列ジョブに割り当てた計算ノードの一部が使用されず、情報処理システム内の計算資源の使用率が低下することがある。上記の従来技術は、このような問題には着目していない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２８２５５１号公報
【特許文献２】特開２０１１−０９６１１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、本発明の目的は、１つの側面では、並列ジョブを実行する複数の計算ノードを有効に利用するための技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理システムは、複数の情報処理装置と、複数の情報処理装置を管理する管理装置とを有する。そして、上で述べた管理装置は、複数の情報処理装置の各々が実行する処理についての情報及び当該処理を実行する期間についての情報を格納するデータ格納部と、データ格納部に格納されている情報を用いて、並列処理を実行する所定数の情報処理装置を確保可能な時刻である第１の時刻を特定する特定部と、データ格納部に格納されている情報を用いて、第１の時刻より前の期間であり且つ処理が実行されない期間である第１の期間を有する１又は複数の第１の情報処理装置を特定し、１又は複数の第１の情報処理装置の第１の期間を、並列処理の前に実行されるべき第１の処理に割り当てる割当部とを有する。
【発明の効果】
【０００８】
１つの側面では、並列ジョブを実行する複数の計算ノードを有効に利用できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態に係るシステムの概要を示す図である。
【図２】図２は、複数の計算ノードの接続態様の一例を示す図である。
【図３】図３は、ユーザによって指定される空間の形状の一例を示す図である。
【図４】図４は、管理装置の機能ブロック図を示す図である。
【図５】図５は、入力データ格納部に格納される、並列ジョブの実行プログラムの一例を示す図である。
【図６】図６は、資源マップ格納部に格納されるデータの一例を示す図である。
【図７】図７は、メインの処理フローを示す図である。
【図８】図８は、分割処理の処理フローを示す図である。
【図９】図９は、割当処理の処理フローを示す図である。
【図１０】図１０は、各ファイルのサイズを管理するためのデータの一例を示す図である。
【図１１】図１１は、割当処理の処理フローを示す図である。
【図１２】図１２は、割当テーブルの一例を示す図である。
【図１３】図１３は、割当テーブルの状態の遷移について説明するための図である。
【図１４】図１４は、割当テーブルの状態の遷移について説明するための図である。
【図１５】図１５は、割当テーブルの状態の遷移について説明するための図である。
【図１６】図１６は、割当テーブルの状態の遷移について説明するための図である。
【図１７】図１７は、割当処理の処理フローを示す図である。
【図１８】図１８は、転送テーブルに格納されるデータの一例を示す図である。
【図１９】図１９は、割当テーブルの状態の遷移について説明するための図である。
【図２０】図２０は、割当テーブルの状態の遷移について説明するための図である。
【図２１】図２１は、割当テーブルの状態の遷移について説明するための図である。
【図２２】図２２は、割当テーブルの状態の遷移について説明するための図である。
【図２３】図２３は、割当テーブルの状態の遷移について説明するための図である。
【図２４】図２４は、実行制御部が実行する処理の処理フローを示す図である。
【図２５】図２５は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
図１に、本実施の形態に係るシステムの概要を示す。例えばインターネットであるネットワーク７には、ユーザによって操作されるユーザ端末９と、本実施の形態における主要処理を実行する管理装置１とが接続される。管理装置１は、例えばＬＡＮ（Local Area Network）等のネットワークを介して、ファイル格納部５１を含むファイル管理装置５及び複数の計算ノード３１を含む情報処理システム３に接続される。
【００１１】
ユーザ端末９は、並列ジョブの実行要求を管理装置１に送信する。管理装置１は、実行要求において指定された並列ジョブのスケジューリングを行い、情報処理システム３における複数の計算ノード３１に、スケジュールに従って並列ジョブを実行させる。情報処理システム３における複数の計算ノード３１は、並列ジョブを実行する。ファイル管理装置５のファイル格納部５１には、複数の計算ノード３１が並列ジョブにおける並列処理において使用するファイルが格納される。
【００１２】
図２に、複数の計算ノード３１の接続態様の一例を示す。図２に示すように、複数の計算ノード３１はメッシュ状に接続される。なお、本実施の形態においては、並列処理を実行する計算ノード３１によって形成される空間の形状を、ユーザが指定してもよい。例えば図３においては、ジョブＪ１と、ジョブＪ２と、ジョブＪ３と、ジョブＪ４とに計算ノード３１が割り当てられており、各ジョブを実行する計算ノード３１が占める空間の形状は直方体である。このように、並列処理を実行する計算ノード３１間に、並列処理を実行しない計算ノード３１が存在しないようにすれば、並列処理を実行しない計算ノード３１に通信処理の負荷が生じるのを抑制できる。
【００１３】
図４に、管理装置１の機能ブロック図を示す。管理装置１は、入力データ格納部１０１と、分割部１０３と、分割後データ格納部１０５と、第１スケジューラ１０７と、資源マップ格納部１０９と、一時データ格納部１１１と、第２スケジューラ１１３と、転送テーブル格納部１１５と、割当テーブル格納部１１７と、実行制御部１１９と、ＡＰＩ（Application Programming Interface）制御部１２１とを含む。
【００１４】
分割部１０３は、入力データ格納部１０１に格納されたデータに基づき処理を実行し、処理結果を分割後データ格納部１０５に格納する。第１スケジューラ１０７は、分割後データ格納部１０５に格納されたデータ及び資源マップ格納部１０９に格納されたデータを用いて処理を実行し、処理結果を一時データ格納部１１１に格納する。第２スケジューラ１１３は、分割後データ格納部１０５に格納されたデータ、資源マップ格納部１０９に格納されたデータ、一時データ格納部１１１に格納されたデータ、及び転送テーブル格納部１１５に格納されたデータを用いて処理を行い、処理結果を資源マップ格納部１０９及び割当テーブル格納部１１７に格納する。ＡＰＩ制御部１２１は、情報処理システム３内の複数の計算ノード３１から、次の処理に引き継がれる情報を受信し、実行制御部１１９に出力する。実行制御部１１９は、分割後データ格納部１０５に格納されたデータ、資源マップ格納部１０９に格納されたデータ、割当テーブル格納部１１７に格納されたデータ、及びＡＰＩ制御部１２１から受け取った情報を用いて、情報処理システム３内の複数の計算ノード３１による並列ジョブの実行を制御する。
【００１５】
図５に、入力データ格納部１０１に格納される、並列ジョブの実行プログラムの一例を示す。並列ジョブの実行プログラムは、ユーザ端末９から受信した実行要求に含まれる。並列ジョブの実行プログラムは、並列処理のための部分（図５における並列処理コードを含む）と、並列処理以外の処理のための部分とを含む。並列処理以外の処理のための部分は、前処理のための部分（図５における前処理コードを含む）と、後処理のための部分（図５における後処理コードを含む）と、その他の部分とを含む。その他の部分は、例えば、ファイルの転送に関する情報（例えば、並列処理において使用されるファイルの識別情報、及び並列処理によって生成されるファイルの識別情報）を含む。
【００１６】
なお、前処理は、例えば、初期化のための処理及び並列処理において使用されるファイルを情報処理システム３に転送する処理を含む。後処理は、並列処理によって更新されたファイルでファイル格納部５１に格納されたファイルを更新する処理等を含む。並列処理において使用されるファイルは情報処理システム３に転送されるため、並列処理を実行する計算ノード３１はファイルに対して高速でアクセスすることができ、結果として並列処理に要する時間は短縮される。
【００１７】
図６に、資源マップ格納部１０９に格納されるデータの一例を示す。図６の例では、各時間帯において計算ノード３１が実行する処理の情報が、計算ノード３１毎に格納される。
【００１８】
次に、図７乃至図２４を用いて、管理装置１の動作について説明する。まず、管理装置１は、ユーザ端末９から、並列ジョブの実行指示を受信し、実行指示に含まれる実行プログラムを入力データ格納部１０１に格納する。また、管理装置１は、分割後データ格納部１０５、一時データ格納部１１１、割当テーブル格納部１１７及び転送テーブル格納部１１５を初期化する。これに応じ、分割部１０３は、分割処理を実行する（図７：ステップＳ１）。分割処理については、図８を用いて説明する。
【００１９】
まず、分割部１０３は、入力データ格納部１０１から読み出した実行プログラムに未処理の行が有るか判断する（図８：ステップＳ２１）。未処理の行が無い場合（ステップＳ２１：Ｎｏルート）、呼び出し元の処理に戻る。
【００２０】
未処理の行が有る場合（ステップＳ２１：Ｙｅｓルート）、分割部１０３は、実行プログラムから未処理の行を１行特定する（ステップＳ２３）。なお、ステップＳ２３を初めて実行する場合は、未処理の行として実行プログラムの最初の行を特定する。ステップＳ２３を実行するのが初めてではない場合は、未処理の行のうち行番号が最も小さい行を特定する。
【００２１】
分割部１０３は、ステップＳ２３において特定された行が、前処理についての分割指示行であるか判断する（ステップＳ２５）。分割指示行とは、予め登録された、分割の際の目印となる行のことである。例えば図５においては、「＃ｐｒｅ」で始まる行と、「＃ｒｕｎ」で始まる行と、「＃ａｆｔｅｒ」で始まる行とが分割指示行であり、前処理についての分割指示行は「＃ｐｒｅ」で始まる行である。
【００２２】
ステップＳ２３において特定された行が前処理についての分割指示行である場合（ステップＳ２５：Ｙｅｓルート）、分割部１０３は、特定された分割指示行から次の分割指示行（すなわち、並列処理についての分割指示行）の１行前の行までのコードを、分割後データ格納部１０５における、前処理のためのプログラムを格納する領域に格納する（ステップＳ２７）。そしてステップＳ２１の処理に戻る。
【００２３】
ステップＳ２３において特定された行が前処理についての分割指示行ではない場合（ステップＳ２５：Ｎｏルート）、分割部１０３は、ステップＳ２３において特定された行が、並列処理についての分割指示行であるか判断する（ステップＳ２９）。例えば図５においては、並列処理についての分割指示行は「＃ｒｕｎ」で始まる行である。
【００２４】
ステップＳ２３において特定された行が並列処理についての分割指示行である場合（ステップＳ２９：Ｙｅｓルート）、分割部１０３は、特定された分割指示行から次の分割指示行（すなわち、後処理についての分割指示行）の１行前の行までのコードを、分割後データ格納部１０５における、並列処理のためのプログラムを格納する領域に格納する（ステップＳ３１）。そしてステップＳ２１の処理に戻る。
【００２５】
ステップＳ２３において特定された行が並列処理についての分割指示行ではない場合（ステップＳ２９：Ｎｏルート）、分割部１０３は、ステップＳ２３において特定された行が、後処理についての分割指示行であるか判断する（ステップＳ３３）。例えば図５においては、後処理についての分割指示行は「＃ａｆｔｅｒ」で始まる行である。
【００２６】
ステップＳ２３において特定された行が後処理についての分割指示行である場合（ステップＳ３３：Ｙｅｓルート）、分割部１０３は、特定された分割指示行から最後の行までのコードを、分割後データ格納部１０５における、後処理のためのプログラムを格納する領域に格納する（ステップＳ３５）。そしてステップＳ２１の処理に戻る。
【００２７】
ステップＳ２３において特定された行が後処理についての分割指示行ではない場合（ステップＳ３３：Ｎｏルート）、分割部１０３は、ステップＳ２３において特定された行のコードを、分割後データ格納部１０５における、その他のプログラムを格納する領域に格納する（ステップＳ３７）。そしてステップＳ２１の処理に戻る。
【００２８】
以上のような処理を実行すれば、並列ジョブのプログラムを分割し、処理毎にプログラムを生成できるようになる。これにより、ジョブ単位でスケジューリングをするのではなく、ジョブ内の処理単位でスケジューリングをすることができるようになる。
【００２９】
図７の説明に戻り、第１スケジューラ１０７は、分割後データ格納部１０５にデータが格納されたことを検出する。そして、第１スケジューラ１０７は、資源マップ格納部１０９に格納されているデータに基づき、並列処理についての条件を満たす計算ノード３１を確保可能な最も早い時刻を特定し、並列処理にその計算ノード３１を割り当てる（ステップＳ３）。第１スケジューラ１０７は、資源マップ格納部１０９に格納されたデータの複製を生成し、生成された複製をステップＳ３の処理結果に基づき更新し、一時データ格納部１１１に格納する。
【００３０】
並列処理についての条件は、例えば、並列処理を実行する計算ノード３１の数の条件及び並列処理に要する時間の条件を含む。図５の例においては、「＃ｒｕｎ」で始まる行における「ｎｏｄｅ＝ｎ２，ｔｉｍｅ＝ｍ２」という部分が、並列処理についての条件である。この場合、第１スケジューラ１０７は、ｎ２台の計算ノード３１を確保可能な最も早い時刻であること、及び、その時刻からｍ２（分）の間ｎ２台の計算ノード３１を確保できることを確認する。
【００３１】
第２スケジューラ１１３は、第１スケジューラ１０７の処理結果が一時データ格納部１１１に格納されたことを検出する。これに応じ、第２スケジューラ１１３は、基準時刻ｔに、並列処理の開始時刻Ｔを設定する（ステップＳ５）。並列処理の開始時刻Ｔは、ステップＳ３において特定された時刻である。
【００３２】
そして、第２スケジューラ１１３は、前処理について割当処理を実行する（ステップＳ７）。割当処理については、図９乃至図２３を用いて説明する。
【００３３】
まず、第２スケジューラ１１３は、並列処理において使用されるファイルのサイズの合計を算出する（図９：ステップＳ４３）。並列処理において使用されるファイルは、例えば、分割後データ格納部１０５に格納されたその他のプログラムにて指定される。例えば図５においては、「＃ｓｔｇｉｎ」で始まる行にファイルの識別情報が含まれ、これらの識別情報が示すファイルが並列処理において使用される。そして、並列処理において使用されるファイルのサイズの情報がその他のプログラムに含まれるので、並列処理において使用されるファイルのサイズの合計を算出することができる。なお、並列処理において使用されるファイルのサイズの情報については、例えば図１０に示すようなデータを第２スケジューラ１１３が管理してもよい。すなわち、第２スケジューラ１１３は、並列処理において使用されるファイルの識別情報とそのファイルのサイズとを予め取得し、記憶領域に格納しておいてもよい。
【００３４】
図９の説明に戻り、第２スケジューラ１１３は、ファイルのサイズの合計から、１台の計算ノード３１が全ファイルを転送するのに要する時間Ｔallを算出する（ステップＳ４５）。計算ノード３１の転送レートは予め定められているので、第２スケジューラ１１３は、ＴallをＴall＝（ファイルのサイズの合計）／（転送レート）により算出する。
【００３５】
第２スケジューラ１１３は、前処理に割り当てた時間の合計Ｔsumに０を設定する（ステップＳ４７）。
【００３６】
第２スケジューラ１１３は、資源マップ格納部１０９に格納されているデータを用いて、空き（すなわち、処理を実行していない状態）の開始時刻が、ステップＳ５において設定された基準時刻ｔより早い計算ノード３１を探索する（ステップＳ４９）。例えば図６の例において、基準時刻ｔが１４：２５である場合、計算ノードＣＮ１及び計算ノードＣＮ２が検出される。
【００３７】
空きの開始時刻が基準時刻ｔより早い計算ノード３１が検出されない場合（ステップＳ５１：Ｎｏルート）、呼び出し元の処理に戻る。一方、空きの開始時刻が基準時刻ｔより早い計算ノード３１が検出された場合（ステップＳ５１：Ｙｅｓルート）、処理は端子Ａを介して図１１のステップＳ５３に移行する。
【００３８】
図１１の説明に移行し、第２スケジューラ１１３は、ステップＳ５１において検出された計算ノード３１のうち空きの開始時刻が最も早い計算ノード３１を特定する（図１１：ステップＳ５３）。
【００３９】
第２スケジューラ１１３は、空きの開始時刻から単位時間後の時刻までの間、ステップＳ５３において特定された計算ノード３１を、前処理に割り当てる（ステップＳ５５）。なお、第２スケジューラ１１３は、ステップＳ５５の処理結果に基づき、一時データ格納部１１１に格納されたデータを更新する。
【００４０】
第２スケジューラ１１３は、ステップＳ５５の処理結果に基づき、割当テーブル格納部１１７に格納されている割当テーブルを更新する（ステップＳ５７）。図１２に、割当テーブルに格納されるデータの一例を示す。図１２の例では、計算ノード３１の識別情報と、空きの開始時刻と、空きの終了時刻と、空きの開始時刻から終了時刻までの間に転送可能なデータ量とが格納される。図１２の例では、単位時間は５分である。
【００４１】
ここで、図１３乃至図１６を用いて、割当テーブルの状態の遷移について説明する。
【００４２】
例えば図１２の状態において、計算ノードＣＮ１の空き時間がさらに追加された場合には、割当テーブルにおける計算ノードＣＮ１についてのエントリは、図１３に示すようになる。図１３においては、空きの終了時刻が１０：１０に変更され、転送可能なデータ量は６０ＧＢ（ギガバイト）に変更される。なお、図１２と異なる部分には網掛けが付されている。
【００４３】
また、図１３の状態において、計算ノードＣＮ３の空き時間が追加された場合には、計算ノードＣＮ３についてのエントリが割当テーブルに追加され、割当テーブルは図１４に示すようになる。図１４においては、１０：０５から１０：１０までの時間が計算ノードＣＮ３の空き時間として登録されている。なお、図１３と異なる部分には網掛けが付されている。
【００４４】
また、図１４の状態において、計算ノードＣＮ２の空き時間が追加された場合には、計算ノードＣＮ２についてのエントリが割当テーブルに追加され、割当テーブルは図１５に示すようになる。図１５においては、１０：２０から１０：２５までの時間が計算ノードＣＮ２の空き時間として登録されている。なお、図１４と異なる部分には網掛けが付されている。
【００４５】
最終的に、例えば図１６に示すようなデータが割当テーブルに格納される。図１６においては、１０：００から１０：１０までの時間が計算ノードＣＮ１の空き時間として登録され、１０：２０から１１：００までの時間が計算ノードＣＮ２の空き時間として登録され、１０：０５から１０：１０までの時間が計算ノードＣＮ３の空き時間として登録されている。この状態においてステップＳ５９が実行されると、Ｔsumは５５分になる。
【００４６】
図１１の説明に戻り、第２スケジューラ１１３は、Ｔsum＝Ｔsum＋単位時間を算出する（ステップＳ５９）。
【００４７】
第２スケジューラ１１３は、ＴallはＴsumより短いか判定する（ステップＳ６１）。ＴallはＴsumより短くない場合（ステップＳ６１：Ｎｏルート）、空き状態の計算ノード３１を追加するため、端子Ｂを介して図９のステップＳ４９の処理に戻る。一方、ＴallはＴsumより短い場合（ステップＳ６１：Ｙｅｓルート）、前処理に対する計算ノード３１の割当が完了したので、第２スケジューラ１１３は、以下の処理を実行する。具体的には、第２スケジューラ１１３は、一時データ格納部１１１に格納されたデータで、資源マップ格納部１０９に格納されたデータを置き換える（ステップＳ６２）。そして処理は端子Ｃを介して図１７のステップＳ６３に移行する。
【００４８】
ステップＳ６３の説明に移行し、第２スケジューラ１１３は、並列処理に使用されるファイルのうち未処理のファイルを１つ特定する（図１７：ステップＳ６３）。
【００４９】
第２スケジューラ１１３は、割当テーブルから、転送可能なデータ量が０ではない計算ノード３１を１台特定する（ステップＳ６５）。
【００５０】
第２スケジューラ１１３は、ステップＳ６５において特定された計算ノード３１が転送可能なデータ量は、ステップＳ６３において特定されたファイルのうち計算ノード３１が割り当てられていない部分のサイズ以下であるか判断する（ステップＳ６７）。
【００５１】
特定された計算ノード３１が転送可能なデータ量は、特定されたファイルのうち計算ノード３１が割り当てられていない部分のサイズ以下である場合（ステップＳ６７：Ｙｅｓルート）、第２スケジューラ１１３は、以下の処理を実行する。具体的には、第２スケジューラ１１３は、割当テーブルに格納されている、ステップＳ６５において特定された計算ノード３１の転送可能なデータ量に、０を設定する（ステップＳ６９）。
【００５２】
第２スケジューラ１１３は、ステップＳ６５において特定された計算ノード３１についてのエントリを、転送テーブル格納部１１５に格納されている転送テーブルに追加する（ステップＳ７１）。この時点で、ステップＳ６３において特定されたファイルのうち計算ノード３１が割り当てられていない部分のサイズは、ステップＳ６５において特定された計算ノード３１が転送可能なデータ量の分だけ小さくなる。
【００５３】
図１８に、転送テーブルに格納されるデータの一例を示す。図１８の例では、処理種別と、計算ノード３１の識別情報と、ファイルの識別情報と、ファイルサイズの情報と、転送の開始位置を表す情報と、転送データ量を表す情報とが格納される。
【００５４】
図１７の説明に戻り、第２スケジューラ１１３は、割当テーブルに、転送可能なデータ量が０ではない計算ノード３１が有るか判断する（ステップＳ７３）。転送可能なデータ量が０ではない計算ノード３１が有る場合（ステップＳ７３：Ｙｅｓルート）、次の計算ノード３１について処理するため、ステップＳ６５の処理に戻る。一方、転送可能なデータ量が０ではない計算ノード３１が無い場合（ステップＳ７３：Ｎｏルート）、割り当てが完了したので、呼び出し元の処理に戻る。
【００５５】
一方、ステップＳ６７において、特定された計算ノード３１が転送可能なデータ量は、特定されたファイルのうち計算ノード３１が割り当てられていない部分のサイズより多いと判断された場合（ステップＳ６７：Ｎｏルート）、第２スケジューラ１１３は、以下の処理を実行する。具体的には、第２スケジューラ１１３は、割当テーブルに格納されている、特定された計算ノード３１が転送可能なデータ量から、特定されたファイルのうち計算ノード３１が割り当てられていない部分のサイズを差し引く（ステップＳ７５）。
【００５６】
第２スケジューラ１１３は、ステップＳ６５において特定された計算ノード３１についてのエントリを、転送テーブルに追加する（ステップＳ７７）。この時点で、ステップＳ６３において特定されたファイルのうち計算ノード３１が割り当てられていない部分のサイズは０になる。
【００５７】
第２スケジューラ１１３は、並列処理に使用されるファイルのうち未処理のファイルが有るか判断する（ステップＳ７９）。未処理のファイルが有る場合（ステップＳ７９：Ｙｅｓルート）、ステップＳ６３の処理に戻る。一方、未処理のファイルが無い場合（ステップＳ７９：Ｎｏルート）、割り当てが完了したので、呼び出し元の処理に戻る。
【００５８】
ここで、図１９乃至図２３を用いて、割当テーブルの状態の遷移について説明する。
【００５９】
例えば図１６に示す状態において、計算ノードＣＮ１が、サイズが５０ＧＢであるファイル１に割り当てられたとする。すると、割当テーブルは、図１９に示すような状態になる。図１９においては、計算ノードＣＮ１が転送可能なデータ量が、６０ＧＢから１０ＧＢに変更されている。なお、図１６と異なる部分には網掛けが付されている。
【００６０】
また、図１９に示す状態において、計算ノードＣＮ３が、サイズが１８０ＧＢであるファイル２に割り当てられたとする。すると、割当テーブルは、図２０に示すような状態になる。図２０においては、計算ノードＣＮ３が転送可能なデータ量が、３０ＧＢから０ＧＢに変更されている。この時点で、ファイル２のうち計算ノード３１が割り当てられていない部分は１５０ＧＢである。なお、図１９と異なる部分には網掛けが付されている。
【００６１】
また、図２０に示す状態において、計算ノードＣＮ１が、ファイル２のうち計算ノード３１が割り当てられていない部分に割り当てられたとする。すると、割当テーブルは、図２１に示すような状態になる。図２１においては、計算ノードＣＮ１が転送可能なデータ量が、１０ＧＢから０ＧＢに変更されている。この時点で、ファイル２のうち計算ノード３１が割り当てられていない部分は１４０ＧＢである。なお、図２０と異なる部分には網掛けが付されている。
【００６２】
また、図２１に示す状態において、計算ノードＣＮ２が、ファイル２のうち計算ノード３１が割り当てられていない部分に割り当てられたとする。すると、割当テーブルは、図２２に示すような状態になる。図２２においては、計算ノードＣＮ２が転送可能なデータ量が、２４０ＧＢから１００ＧＢに変更されている。なお、図２１と異なる部分には網掛けが付されている。
【００６３】
また、図２２に示す状態において、計算ノードＣＮ２が、サイズが５０ＧＢであるファイル３に割り当てられたとする。すると、割当テーブルは、図２３に示すような状態になる。図２３においては、計算ノードＣＮ２が転送可能なデータ量が、１００ＧＢから５０ＧＢに変更されている。なお、図２２と異なる部分には網掛けが付されている。
【００６４】
以上のような処理を実行すれば、並列処理の開始時刻より前においてアイドル状態である計算ノード３１を前処理に対して割り当てることができるようになる。
【００６５】
図７の説明に戻り、第２スケジューラ１１３は、前処理に対する計算ノード３１の割り当てが成功したか判断する（ステップＳ９）。ステップＳ５１のＮｏルートを経由した場合には前処理に対する割り当ては失敗し、ステップＳ７３のＮｏルートを経由した場合には前処理に対する割り当ては成功している。
【００６６】
前処理に対する計算ノード３１の割り当てが失敗した場合（ステップＳ９：Ｎｏルート）、第２スケジューラ１１３は、並列処理の開始時刻Ｔに、開始時刻より単位時間後の時刻を設定する（ステップＳ１１）。すなわち、並列処理の開始時刻Ｔを単位時間遅らせる。なお、第２スケジューラ１１３は、資源マップ格納部１０９に格納されているデータの複製を生成し、ステップＳ１１の処理結果に基づき当該複製を更新し、更新後のデータで一時データ格納部１１１内のデータを更新する。
【００６７】
一方、前処理に対する計算ノード３１の割り当てが成功した場合（ステップＳ９：Ｙｅｓルート）、第２スケジューラ１１３は、並列処理の終了時刻以後において未割当の計算ノード３１を、後処理に割り当てる（ステップＳ１３）。そして処理を終了する。
【００６８】
ステップＳ１３において、第２スケジューラ１１３は、後処理についての条件を満たす計算ノード３１を探索する。後処理についての条件は、例えば、後処理を実行する計算ノード３１の数の条件及び後処理に要する時間の条件を含む。図５の例においては、「＃ａｆｔｅｒ」で始まる行における「ｎｏｄｅ＝ｎ３，ｔｉｍｅ＝ｍ３」という部分が、後処理についての条件である。このようにすることで、並列処理を実行する計算ノード３１の数と同じ数の計算ノード３１を後処理に対して割り当てなくて済む。そして、後処理が実行される期間中において未割当の計算ノード３１は、次の並列ジョブの前処理に割り当てられるので、計算ノード３１を有効に利用することができる。
【００６９】
上で述べたように、並列処理以外の処理については、並列処理を実行する計算ノード３１の数と同じ数の計算ノード３１を確保しなくてもよい場合がある。すなわち、ｎ１＜ｎ２及びｎ２＜ｎ３である場合がある。このような場合においてもジョブ単位で計算ノード３１の割り当てをすると、並列処理以外の処理においてはアイドル状態の計算ノード３１が生じ、情報処理システム３において計算ノード３１の使用率が低下する。
【００７０】
しかし、上で述べたようにすれば、ｎ２台の計算ノード３１を確保できない期間において前処理を実行できるようになり、また、後処理については後処理についての条件に応じて計算ノード３１を割り当てるので、計算ノード３１を有効に利用できるようになる。
【００７１】
次に、図２４を用いて、実行制御部１１９が並列ジョブの実行を制御する処理について説明する。
【００７２】
まず、実行制御部１１９は、資源マップ格納部１０９に格納されているデータを参照し、或る並列ジョブ（以下では、並列ジョブＡと呼ぶ）の前処理の開始時刻になったことを検出する（図２４：ステップＳ８１）。
【００７３】
実行制御部１１９は、前処理を実行する計算ノード３１に、転送テーブルに格納されている情報と、分割後データ格納部１０５に格納されている、前処理のためのプログラム及びその他のプログラムとを送信する（ステップＳ８３）。なお、前処理の実行する計算ノード３１の数が複数である場合、実行制御部１１９は、各計算ノード３１に、転送テーブルに格納されている情報のうちその計算ノード３１についての情報を送信する。これにより、ステップＳ８３において送信されたデータを受信した計算ノード３１は、前処理を適切に実行することができる。
【００７４】
その後、実行制御部１１９は、資源マップ格納部１０９に格納されているデータを参照し、並列ジョブＡの並列処理の開始時刻になったことを検出する（ステップＳ８５）。
【００７５】
実行制御部１１９は、並列処理を実行する計算ノード３１に、分割後データ格納部１０５に格納されている、並列処理のためのプログラム及びその他のプログラムと、ＡＰＩ制御部１２１から受け取った、前処理から並列処理に引き継がれる情報とを送信する（ステップＳ８７）。これにより、ステップＳ８７において送信されたデータを受信した計算ノード３１は、並列処理を適切に実行することができる。
【００７６】
その後、実行制御部１１９は、資源マップ格納部１０９に格納されているデータを参照し、並列ジョブＡの後処理の開始時刻になったことを検出する（ステップＳ８９）。
【００７７】
実行制御部１１９は、ＡＰＩ制御部１２１から、並列処理から後処理に引き継がれる情報（本情報は、並列処理後のファイルのサイズの情報を含む）を受け取り、後処理を実行する計算ノード３１の各々が転送するファイルの部分を決定する。そして、実行制御部１１９は、後処理を実行する計算ノード３１の各々に、分割後データ格納部１０５に格納されている、後処理のためのプログラム及びその他のプログラムと、並列処理から後処理に引き継がれる情報と、転送するファイルの部分の情報とを送信する（ステップＳ９１）。これにより、ステップＳ９１において送信されたデータを受信した計算ノード３１は、後処理を適切に実行することができる。そして処理を終了する。
【００７８】
以上のようにすれば、並列ジョブの実行プログラムを分割したとしても、並列ジョブを適切に実行できるようになる。
【００７９】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した管理装置１及びファイル管理装置５の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００８０】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００８１】
なお、ステップＳ１１においては、並列処理の開始時刻Ｔを単位時間遅らせた場合に並列処理についての条件が満たされるか判定してもよい。そして、並列処理についての満たされない場合は、並列処理の開始時刻Ｔより後において、並列処理についての条件を満たす空き資源を再度探索してもよい。
【００８２】
なお、後処理に対する計算ノード３１の割り当てを、前処理に対する計算ノード３１の割り当てと同様の方法で行うようにしてもよい。すなわち、空きの開始時刻が早い計算ノード３１から順に、後処理に対する割り当てを行ってもよい。この場合には、実行制御部１１９は、ステップＳ８３と同様、後処理について生成された転送テーブル内の情報を、後処理を実行する計算ノード３１に送信する。
【００８３】
なお、上で述べた管理装置１、計算ノード３１、ファイル管理装置５、及びユーザ端末９は、コンピュータ装置であって、図２５に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００８４】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００８５】
本実施の形態の第１の態様に係る情報処理システムは、（Ａ）複数の情報処理装置と、（Ｂ）管理装置とを有する。そして、上で述べた管理装置は、（ｂ１）複数の情報処理装置の各々が実行する処理についての情報及び当該処理を実行する期間についての情報を格納するデータ格納部と、（ｂ２）データ格納部に格納されている情報を用いて、並列処理を実行する所定数の情報処理装置を確保可能な時刻である第１の時刻を特定する特定部と、（ｂ３）データ格納部に格納されている情報を用いて、第１の時刻より前の期間であり且つ処理が実行されない期間である第１の期間を有する１又は複数の第１の情報処理装置を特定し、１又は複数の第１の情報処理装置の第１の期間を、並列処理の前に実行されるべき第１の処理に割り当てる割当部とを有する。
【００８６】
並列処理の前に実行されるべき処理（例えば、並列処理の前処理）については、並列処理を実行する情報処理装置の数と同じ数の情報処理装置を確保しなくてもよい場合がある。上で述べたようにすれば、所定数の情報処理装置を確保できない期間において第１の処理を実行できるようになるので、情報処理装置を有効に利用できるようになる。
【００８７】
また、上で述べた割当部は、（ｂ２−１）第１の処理を複数の情報処理装置のうち１台の情報処理装置が実行した場合にかかる時間を算出し、（ｂ２−２）算出された時間が、１又は複数の情報処理装置の第１の期間の合計より短いという条件が満たされるか判定し、（ｂ２−３）条件が満たされない場合に、第１の時刻に、当該第１の時刻の所定時間後の時刻を設定してもよい。このようにすれば、第１の処理の実行に十分な情報処理装置を確保しつつ、並列処理をできるだけ早い時刻に開始できるようになる。
【００８８】
また、上で述べた管理装置は、（ｂ４）実行すべきジョブのプログラムを、並列処理用のプログラムと第１の処理用のプログラムとに分割する分割部と、（ｂ５）並列処理用のプログラムを、並列処理を実行する所定数の情報処理装置に送信し、第１の処理用のプログラムを、１又は複数の第１の情報処理装置に送信する送信部とをさらに有してもよい。
【００８９】
このようにすれば、必ずしも第１の処理を実行した情報処理装置が並列処理を実行しなくてもよいので、実行すべき処理を柔軟に実行できるようになる。
【００９０】
また、上で述べた送信部は、（ｂ４−１）１又は複数の第１の情報処理装置から、第１の処理から並列処理に引き継がれる情報を受信し、並列処理を実行する所定数の情報処理装置に、第１の処理から並列処理に引き継がれる情報を送信してもよい。このようにすれば、第１の処理用のプログラムと並列処理用プログラムとが一体ではない場合においても、並列処理を適切に行えるようになる。
【００９１】
また、第１の処理は、並列処理に使用する１又は複数のデータブロックを転送する処理を含み、条件は、１又は複数のデータブロックの合計サイズを転送レートで除することにより算出される転送時間が、１又は複数の第１の情報処理装置の第１の期間の合計より短いという条件を含んでもよい。このようにすれば、第１の処理においてデータブロックを漏れなく転送できるようになる。
【００９２】
また、上で述べた割当部は、（ｂ２−４）１又は複数の第１の情報処理装置の各々について、当該第１の情報処理装置が転送するデータの量と、１又は複数のデータブロックのうち当該第１の情報処理装置が転送をする部分とを決定し、上で述べた送信部は、（ｂ２−４）１又は複数の第１の情報処理装置の各々に、当該第１の情報処理装置が転送するデータの量の情報と、１又は複数のデータブロックのうち当該第１の情報処理装置が転送をする部分の情報とを送信してもよい。このようにすれば、データブロックが誤って転送されることを防げるようになる。
【００９３】
また、第１の時刻は、並列処理を実行する所定数の情報処理装置を確保可能な最も早い時刻であってもよい。
【００９４】
また、上で述べた特定部は、並列処理を実行する所定数の情報処理装置の間に並列処理を実行しない情報処理装置が存在しないように、第１の時刻を特定してもよい。このようにすれば、並列処理を実行しない計算ノードに通信処理の負荷が生じるのを抑制できるようになる。
【００９５】
本実施の形態の第２の態様に係る、情報処理システムの制御方法は、複数の情報処理装置と管理装置とを有する情報処理システムにおいて上記管理装置により実行される。そして、本情報処理システムの制御方法は、（Ｃ）複数の情報処理装置の各々が実行する処理についての情報及び当該処理を実行する期間についての情報を格納するデータ格納部に格納されている情報を用いて、並列処理を実行する所定数の情報処理装置を確保可能な最も早い時刻である第１の時刻を特定し、（Ｄ）データ格納部に格納されている情報を用いて、第１の時刻より前の期間であり且つ処理が実行されない期間である第１の期間を有する１又は複数の第１の情報処理装置を特定し、（Ｅ）１又は複数の第１の情報処理装置の第１の期間を、並列処理の前に実行されるべき第１の処理に割り当てる処理を含む。
【００９６】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００９７】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９８】
（付記１）
複数の情報処理装置と、前記複数の情報処理装置を管理する管理装置とを有する情報処理システムにおいて、
前記管理装置は、
前記複数の情報処理装置の各々が実行する処理についての情報及び当該処理を実行する期間についての情報を格納するデータ格納部と、
前記データ格納部に格納されている情報を用いて、並列処理を実行する所定数の情報処理装置を確保可能な時刻である第１の時刻を特定する特定部と、
前記データ格納部に格納されている情報を用いて、前記第１の時刻より前の期間であり且つ処理が実行されない期間である第１の期間を有する１又は複数の第１の情報処理装置を特定し、前記１又は複数の第１の情報処理装置の前記第１の期間を、前記並列処理の前に実行されるべき第１の処理に割り当てる割当部と、
を有する情報処理システム。
【００９９】
（付記２）
前記割当部は、
前記第１の処理を前記複数の情報処理装置のうち１台の情報処理装置が実行した場合にかかる時間を算出し、
算出された前記時間が、前記１又は複数の情報処理装置の前記第１の期間の合計より短いという条件が満たされるか判定し、
前記条件が満たされない場合に、前記第１の時刻に、当該第１の時刻の所定時間後の時刻を設定する
付記１記載の情報処理システム。
【０１００】
（付記３）
前記管理装置は、
実行すべきジョブのプログラムを、前記並列処理用のプログラムと前記第１の処理用のプログラムとに分割する分割部と、
前記並列処理用のプログラムを、前記並列処理を実行する所定数の情報処理装置に送信し、前記第１の処理用のプログラムを、前記１又は複数の第１の情報処理装置に送信する送信部と、
をさらに有する付記１又は２記載の情報処理システム。
【０１０１】
（付記４）
前記送信部は、
前記１又は複数の第１の情報処理装置から、前記第１の処理から前記並列処理に引き継がれる情報を受信し、前記並列処理を実行する所定数の情報処理装置に、前記第１の処理から前記並列処理に引き継がれる情報を送信する
付記３記載の情報処理システム。
【０１０２】
（付記５）
前記第１の処理は、前記並列処理に使用する１又は複数のデータブロックを転送する処理を含み、
前記条件は、前記１又は複数のデータブロックの合計サイズを転送レートで除することにより算出される転送時間が、前記１又は複数の第１の情報処理装置の前記第１の期間の合計より短いという条件を含む、
付記２記載の情報処理システム。
【０１０３】
（付記６）
前記割当部は、
前記１又は複数の第１の情報処理装置の各々について、当該第１の情報処理装置が転送するデータの量と、前記１又は複数のデータブロックのうち当該第１の情報処理装置が転送をする部分とを決定し、
前記送信部は、
前記１又は複数の第１の情報処理装置の各々に、当該第１の情報処理装置が転送するデータの量の情報と、前記１又は複数のデータブロックのうち当該第１の情報処理装置が転送をする部分の情報とを送信する
付記５記載の情報処理システム。
【０１０４】
（付記７）
前記第１の時刻は、前記並列処理を実行する所定数の情報処理装置を確保可能な最も早い時刻である
付記１乃至６のいずれか１つ記載の情報処理システム。
【０１０５】
（付記８）
前記特定部は、
前記並列処理を実行する所定数の情報処理装置の間に前記並列処理を実行しない情報処理装置が存在しないように、前記第１の時刻を特定する
付記１乃至７のいずれか１つ記載の情報処理システム。
【０１０６】
（付記９）
複数の情報処理装置を管理する管理装置において、
前記複数の情報処理装置の各々が実行する処理についての情報及び当該処理を実行する期間についての情報を格納するデータ格納部と、
前記データ格納部に格納されている情報を用いて、並列処理を実行する所定数の情報処理装置を確保可能な最も早い時刻である第１の時刻を特定する特定部と、
前記データ格納部に格納されている情報を用いて、前記第１の時刻より前の期間であり且つ処理が実行されない期間である第１の期間を有する１又は複数の第１の情報処理装置を特定し、前記１又は複数の第１の情報処理装置の前記第１の期間を、前記並列処理の前に実行されるべき第１の処理に割り当てる割当部と、
を有する管理装置。
【０１０７】
（付記１０）
複数の情報処理装置と、前記複数の情報処理装置を管理する管理装置とを有する情報処理システムにおいて、
前記管理装置が、
前記複数の情報処理装置の各々が実行する処理についての情報及び当該処理を実行する期間についての情報を格納するデータ格納部に格納されている情報を用いて、並列処理を実行する所定数の情報処理装置を確保可能な最も早い時刻である第１の時刻を特定し、
前記データ格納部に格納されている情報を用いて、前記第１の時刻より前の期間であり且つ処理が実行されない期間である第１の期間を有する１又は複数の第１の情報処理装置を特定し、
前記１又は複数の第１の情報処理装置の前記第１の期間を、前記並列処理の前に実行されるべき第１の処理に割り当てる、
処理を実行する、情報処理システムの制御方法。
【０１０８】
（付記１１）
複数の情報処理装置を管理する管理装置の制御プログラムにおいて、
前記管理装置に、
前記複数の情報処理装置の各々が実行する処理についての情報及び当該処理を実行する期間についての情報を格納するデータ格納部に格納されている情報を用いて、並列処理を実行する所定数の情報処理装置を確保可能な最も早い時刻である第１の時刻を特定し、
前記データ格納部に格納されている情報を用いて、前記第１の時刻より前の期間であり且つ処理が実行されない期間である第１の期間を有する１又は複数の第１の情報処理装置を特定し、
前記１又は複数の第１の情報処理装置の前記第１の期間を、前記並列処理の前に実行されるべき第１の処理に割り当てる、
処理を実行させるための管理装置の制御プログラム。
【符号の説明】
【０１０９】
１  管理装置    ３  情報処理システム
５  ファイル管理装置    ７  ネットワーク
９  ユーザ端末
１０１  入力データ格納部    １０３  分割部
１０５  分割後データ格納部    １０７  第１スケジューラ
１０９  資源マップ格納部    １１１  一時データ格納部
１１３  第２スケジューラ    １１５  転送テーブル格納部
１１７  割当テーブル格納部    １１９  実行制御部
１２１  ＡＰＩ制御部
３１  計算ノード    ５１  ファイル格納部
【図１】
0006369257.tif 000002
【図２】
0006369257.tif 000003
【図３】
0006369257.tif 000004
【図４】
0006369257.tif 000005
【図５】
0006369257.tif 000006
【図６】
0006369257.tif 000007
【図７】
0006369257.tif 000008
【図８】
0006369257.tif 000009
【図９】
0006369257.tif 000010
【図１０】
0006369257.tif 000011
【図１１】
0006369257.tif 000012
【図１２】
0006369257.tif 000013
【図１３】
0006369257.tif 000014
【図１４】
0006369257.tif 000015
【図１５】
0006369257.tif 000016
【図１６】
0006369257.tif 000017
【図１７】
0006369257.tif 000018
【図１８】
0006369257.tif 000019
【図１９】
0006369257.tif 000020
【図２０】
0006369257.tif 000021
【図２１】
0006369257.tif 000022
【図２２】
0006369257.tif 000023
【図２３】
0006369257.tif 000024
【図２４】
0006369257.tif 000025
【図２５】
0006369257.tif 000026