(57)【要約】【課題】多数の計算機群を用いて複数のタスクから構成された計算の分散処理を行う際に、広域ネットワークを通した通信時間を削減する。【解決手段】上位管理装置６００は、ＷＡＮ４００またはＬＡＮ９００−１，２，３を介して、下位管理装置７００−１，２，３に、複数のタスクから構成されるタスクグループの処理を割り当てる。下位管理装置７００−１は、ＬＡＮ９００−１を介してタスク実行装置８００−１１，１２に、タスクグループに含まれるタスクを割り当てる。タスク実行装置８００−１１は、タスクを実行し、その出力データを下位管理装置７００−１に送る。下位管理装置７００−１は、タスクグループに含まれるタスクの出力データを収集し、上位管理装置６００に送る。上位管理装置６００は、タスクグループの出力データを収集し、全体の出力とする。【選択図】　図１
2004110318.tif 000002
【特許請求の範囲】
【請求項１】
１台以上のタスク実行装置がＬＡＮを経由して接続されてなる複数のサイトが、さらにＷＡＮを経由して結合されてなる分散処理システムにおいて、
いずれか１つのサイトのＬＡＮに１台接続され、計算要求発行装置から計算要求を受け取り、該計算要求に含まれるタスク群を複数のタスクグループに分割してＬＡＮまたはＷＡＮを経由して複数台の下位管理装置に割り当て、タスクグループを割り当てられた各下位管理装置からのタスクグループの出力データをＬＡＮまたはＷＡＮを経由して収集して計算要求の計算結果として前記計算要求発行装置に送信する上位管理装置と、
各ＬＡＮに１台ずつ接続され、前記タスクグループ受信手段により受信されたタスクグループを個々のタスクに分割して自サイトのタスク実行装置に割り当て、タスクを割り当てられた各タスク実行装置からのタスクの出力データを収集し、収集したタスクの出力データをタスクグループの出力データとしてＬＡＮまたはＷＡＮを経由して前記上位管理装置に送信する下位管理装置と、
前記下位管理装置から割り当てられたタスクを実行し、該タスクの出力データを自サイトの下位管理装置に送信するタスク実行装置と
を有することを特徴とする階層的分散処理システム。
【請求項２】
前記上位管理装置が、負荷情報，計算要求情報およびタスクグループ情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段により受信された計算要求に含まれるタスク群を複数のタスクグループに分割して前記下位管理装置に割り当てるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する計算要求出力送信手段とを備えることを特徴とする請求項１記載の階層的分散処理システム。
【請求項３】
前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記計算要求受信手段および前記タスクグループ割当手段が計算要求を受け取って前記制御情報記憶部に計算要求情報を保存し、受信された計算要求に含まれるタスク群を複数のタスクグループに分割して前記下位管理装置に割り当てる第２のスレッドに対応し、前記タスクグループ出力受信手段および前記計算要求出力送信手段が各下位管理装置からタスクグループの出力データを受信し、受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する第３のスレッドに対応することを特徴とする請求項２記載の階層的分散処理システム。
【請求項４】
前記上位管理装置が、負荷情報，計算要求情報およびタスクグループ情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段から計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する計算要求管理手段と、前記計算要求管理手段により検索された計算要求に含まれるタスク群を複数のタスクグループに分割して前記下位管理装置に割り当てるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する計算要求出力送信手段とを備えることを特徴とする請求項１記載の階層的分散処理システム。
【請求項５】
前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記計算要求受信手段が計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する第２のスレッドに対応し、前記計算要求管理手段および前記タスクグループ割当手段が計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索し、計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てる第３のスレッドに対応し、前記タスクグループ出力受信手段および前記計算要求出力送信手段が各下位管理装置からタスクグループの出力データを受信し、受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する第４のスレッドに対応することを特徴とする請求項４記載の階層的分散処理システム。
【請求項６】
前記上位管理装置が、負荷情報，計算要求情報，タスクグループ情報およびタスクグループ割当カウンタを保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段から計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する計算要求管理手段と、前記計算要求管理手段により検索された計算要求に含まれるタスク群を複数のタスクグループに分割して前記下位管理装置に割り当てるとともに、新しい計算要求についてタスクグループ割り当て処理を開始する際にタスクグループ割当カウンタの値を１減少させ、タスクグループ割り当て処理が終了するとタスクグループ割当カウンタの値を１増加させるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する計算要求出力送信手段とを備えることを特徴とする請求項１記載の階層的分散処理システム。
【請求項７】
前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記計算要求受信手段が計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する第２のスレッドに対応し、前記計算要求管理手段が計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する第３のスレッドに対応し、前記タスクグループ割当手段が計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てる第４のスレッドに対応し、前記タスクグループ出力受信手段および前記計算要求出力送信手段が各下位管理装置からタスクグループの出力データを受信し、受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する第５のスレッドに対応することを特徴とする請求項６記載の階層的分散処理システム。
【請求項８】
前記タスクグループ割当手段が、タスクグループをどの下位管理装置に割り当てるかに際して、前記制御情報記憶部中の負荷情報を参照して、各サイトについて（負荷の大きさ）／（計算能力）で計算される点数を用いて、下位管理装置が属するサイトの点数が小さい順に高い優先順位を割り当てることを特徴とする請求項２，請求項４または請求項６記載の階層的分散処理システム。
【請求項９】
前記下位管理装置が、負荷情報，タスクグループ情報およびタスク情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして前記上位管理装置に送信するタスクグループ出力送信手段とを備えることを特徴とする請求項１記載の階層的分散処理システム。
【請求項１０】
前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記タスクグループ受信手段および前記タスク割当手段がタスクグループを受信し、受信されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てる第２のスレッドに対応し、前記タスク出力受信手段および前記タスクグループ出力送信手段がタスクを割り当てられた各タスク実行装置からタスクの出力データを受信して収集し、タスクグループの出力データとして前記上位管理装置に送信する第３のスレッドに対応することを特徴とする請求項９記載の階層的分散処理システム。
【請求項１１】
前記下位管理装置が、負荷情報，タスクグループ情報およびタスク情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出すタスクグループ管理手段と、前記タスクグループ管理手段により取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして前記上位管理装置に送信するタスクグループ出力送信手段とを備えることを特徴とする請求項１記載の階層的分散処理システム。
【請求項１２】
前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記タスクグループ受信手段がタスクグループを受信する第２のスレッドに対応し、前記タスクグループ管理手段および前記タスク割当手段が受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出し、取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てる第３のスレッドに対応し、前記タスク出力受信手段および前記タスクグループ出力送信手段がタスクを割り当てられた各タスク実行装置からタスクの出力データを受信して収集しタスクグループの出力データとして前記上位管理装置に送信する第４のスレッドに対応することを特徴とする請求項１１記載の階層的分散処理システム。
【請求項１３】
前記下位管理装置が、負荷情報，タスクグループ情報，タスク情報およびタスク割当カウンタを保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出すタスクグループ管理手段と、前記タスクグループ管理手段により取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるとともに、新しいタスクグループについてタスク割り当て処理を開始する際にタスク割当カウンタの値を１減少させ、タスク割り当て処理が終了するとタスク割当カウンタの値を１増加させるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして前記上位管理装置に送信するタスクグループ出力送信手段とを備えることを特徴とする請求項１記載の階層的分散処理システム。
【請求項１４】
前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記タスクグループ受信手段がタスクグループを受信する第２のスレッドに対応し、前記タスクグループ管理手段が受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出す第３のスレッドに対応し、前記タスク割当手段が取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるとともに、新しいタスクグループについてタスク割り当て処理を開始する際にタスク割当カウンタの値を１減少させ、タスク割り当て処理が終了するとタスク割当カウンタの値を１増加させる第４のスレッドに対応し、前記タスク出力受信手段および前記タスクグループ出力送信手段がタスクを割り当てられた各タスク実行装置からタスクの出力データを受信して収集しタスクグループの出力データとして前記上位管理装置に送信する第５のスレッドに対応することを特徴とする請求項１３記載の階層的分散処理システム。
【請求項１５】
前記下位管理装置が、前記制御情報記憶部中の負荷情報を参照して各タスク実行装置の計算能力と負荷の大きさとを合計し、その結果を前記上位管理装置に送信する負荷情報送信手段を備えることを特徴とする請求項９，請求項１１または請求項１３記載の階層的分散処理システム。
【請求項１６】
負荷情報，計算要求情報およびタスクグループ情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段により受信された計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として計算要求発行装置に送信する計算要求出力送信手段とを備えることを特徴とする上位管理装置。
【請求項１７】
前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記計算要求受信手段および前記タスクグループ割当手段が計算要求を受け取って前記制御情報記憶部に計算要求情報を保存し、受信された計算要求に含まれるタスク群を複数のタスクグループに分割して前記下位管理装置に割り当てる第２のスレッドに対応し、前記タスクグループ出力受信手段および前記計算要求出力送信手段が各下位管理装置からタスクグループの出力データを受信し、受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する第３のスレッドに対応することを特徴とする請求項１６記載の上位管理装置。
【請求項１８】
負荷情報，計算要求情報およびタスクグループ情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段から計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する計算要求管理手段と、前記計算要求管理手段により検索された計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として計算要求発行装置に送信する計算要求出力送信手段とを備えることを特徴とする上位管理装置。
【請求項１９】
前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記計算要求受信手段が計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する第２のスレッドに対応し、前記計算要求管理手段および前記タスクグループ割当手段が計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索し、計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てる第３のスレッドに対応し、前記タスクグループ出力受信手段および前記計算要求出力送信手段が各下位管理装置からタスクグループの出力データを受信し、受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する第４のスレッドに対応することを特徴とする請求項１８記載の上位管理装置。
【請求項２０】
負荷情報，計算要求情報，タスクグループ情報およびタスクグループ割当カウンタを保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段から計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する計算要求管理手段と、前記計算要求管理手段により検索された計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てるとともに、新しい計算要求についてタスクグループ割り当て処理を開始する際にタスクグループ割当カウンタの値を１減少させ、タスクグループ割り当て処理が終了するとタスクグループ割当カウンタの値を１増加させるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として計算要求発行装置に送信する計算要求出力送信手段とを備えることを特徴とする上位管理装置。
【請求項２１】
前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記計算要求受信手段が計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する第２のスレッドに対応し、前記計算要求管理手段が計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する第３のスレッドに対応し、前記タスクグループ割当手段が計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てる第４のスレッドに対応し、前記タスクグループ出力受信手段および前記計算要求出力送信手段が各下位管理装置からタスクグループの出力データを受信し、受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する第５のスレッドに対応することを特徴とする請求項２０記載の上位管理装置。
【請求項２２】
前記タスクグループ割当手段が、タスクグループをどの下位管理装置に割り当てるかに際して、前記制御情報記憶部中の負荷情報を参照して、各サイトについて（負荷の大きさ）／（計算能力）で計算される点数を用いて、下位管理装置が属するサイトの点数が小さい順に高い優先順位を割り当てることを特徴とする請求項１７，請求項１９または請求項２１記載の上位管理装置。
【請求項２３】
負荷情報，タスクグループ情報およびタスク情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして上位管理装置に送信するタスクグループ出力送信手段とを備えることを特徴とする下位管理装置。
【請求項２４】
前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記タスクグループ受信手段および前記タスク割当手段がタスクグループを受信し、受信されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てる第２のスレッドに対応し、前記タスク出力受信手段および前記タスクグループ出力送信手段がタスクを割り当てられた各タスク実行装置からタスクの出力データを受信して収集し、タスクグループの出力データとして前記上位管理装置に送信する第３のスレッドに対応することを特徴とする請求項２３記載の下位管理装置。
【請求項２５】
負荷情報，タスクグループ情報およびタスク情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出すタスクグループ管理手段と、前記タスクグループ管理手段により取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして上位管理装置に送信するタスクグループ出力送信手段とを備えることを特徴とする下位管理装置。
【請求項２６】
前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記タスクグループ受信手段がタスクグループを受信する第２のスレッドに対応し、前記タスクグループ管理手段および前記タスク割当手段が受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出し、取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てる第３のスレッドに対応し、前記タスク出力受信手段および前記タスクグループ出力送信手段がタスクを割り当てられた各タスク実行装置からタスクの出力データを受信して収集しタスクグループの出力データとして前記上位管理装置に送信する第４のスレッドに対応することを特徴とする請求項２５記載の下位管理装置。
【請求項２７】
負荷情報，タスクグループ情報，タスク情報およびタスク割当カウンタを保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出すタスクグループ管理手段と、前記タスクグループ管理手段により取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるとともに、新しいタスクグループについてタスク割り当て処理を開始する際にタスク割当カウンタの値を１減少させ、タスク割り当て処理が終了するとタスク割当カウンタの値を１増加させるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして上位管理装置に送信するタスクグループ出力送信手段とを備えることを特徴とする下位管理装置。
【請求項２８】
前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記タスクグループ受信手段がタスクグループを受信する第２のスレッドに対応し、前記タスクグループ管理手段が受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出す第３のスレッドに対応し、前記タスク割当手段が取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるとともに、新しいタスクグループについてタスク割り当て処理を開始する際にタスク割当カウンタの値を１減少させ、タスク割り当て処理が終了するとタスク割当カウンタの値を１増加させる第４のスレッドに対応し、前記タスク出力受信手段および前記タスクグループ出力送信手段がタスクを割り当てられた各タスク実行装置からタスクの出力データを受信して収集しタスクグループの出力データとして前記上位管理装置に送信する第５のスレッドに対応することを特徴とする請求項２７記載の下位管理装置。
【請求項２９】
前記制御情報記憶部中の負荷情報を参照して各タスク実行装置の計算能力と負荷の大きさとを合計し、その結果を前記上位管理装置に送信する負荷情報送信手段を備えることを特徴とする請求項２４，請求項２６または請求項２８記載の下位管理装置。
【請求項３０】
複数のＬＡＮと、複数のＬＡＮを結合するＷＡＮと、どれかのＬＡＮに接続される１台の上位管理装置と、各ＬＡＮに１台ずつ接続される下位管理装置と、各ＬＡＮに１台以上ずつ接続されるタスク実行装置とを備える階層的分散処理システムの階層的分散処理方法において、
計算要求発行装置が、ＷＡＮまたはＬＡＮを経由して上位管理装置に計算要求を発行する工程と、
上位管理装置が、受け取った計算要求に含まれるタスク群を複数のタスクグループに分割して各下位管理装置に割り当てる工程と、
各下位管理装置が、割り当てられたタスクグループを個々のタスクに分割して各タスク実行装置に割り当てる工程と、
各タスク実行装置が、割り当てられたタスクを実行し、その出力データを下位管理装置に送信する工程と、
各下位管理装置が、各タスク実行装置からタスクの出力データを収集し、それらをタスクグループの出力データとして上位管理装置に送信する工程と、
上位管理装置が、各下位管理装置からタスクグループの出力データを収集し、それらを計算要求の計算結果として計算要求発行装置に送信する工程と
を含むことを特徴とする階層的分散処理方法。
【請求項３１】
複数のＬＡＮと、複数のＬＡＮを結合するＷＡＮと、どれかのＬＡＮに接続される１台の上位管理装置と、各ＬＡＮに１台ずつ接続される下位管理装置と、各ＬＡＮに１台以上ずつ接続されるタスク実行装置とを備える階層的分散処理システムにおける上位管理装置の階層的分散処理方法において、
計算要求発行装置から受け取った計算要求に含まれるタスク群を複数のタスクグループに分割して各下位管理装置に割り当てる工程と、
各下位管理装置からタスクグループの出力データを収集し、それらを計算要求の計算結果として計算要求発行装置に送信する工程と
を含むことを特徴とする階層的分散処理方法。
【請求項３２】
複数のＬＡＮと、複数のＬＡＮを結合するＷＡＮと、どれかのＬＡＮに接続される１台の上位管理装置と、各ＬＡＮに１台ずつ接続される下位管理装置と、各ＬＡＮに１台以上ずつ接続されるタスク実行装置とを備える階層的分散処理システムにおける下位管理装置の階層的分散処理方法において、
前記タスクグループ受信手段により受信されたタスクグループを個々のタスクに分割して各タスク実行装置に割り当てる工程と、
各タスク実行装置からタスクの出力データを収集し、それらをタスクグループの出力データとして上位管理装置に送信する工程と
を含むことを特徴とする階層的分散処理方法。
【請求項３３】
コンピュータを、負荷情報，計算要求情報およびタスクグループ情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段により受信された計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として計算要求発行装置に送信する計算要求出力送信手段として機能させるためのプログラム。
【請求項３４】
コンピュータを、負荷情報，計算要求情報およびタスクグループ情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段から計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する計算要求管理手段と、前記計算要求管理手段により検索された計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として計算要求発行装置に送信する計算要求出力送信手段として機能させるためのプログラム。
【請求項３５】
コンピュータを、負荷情報，計算要求情報，タスクグループ情報およびタスクグループ割当カウンタを保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段から計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する計算要求管理手段と、前記計算要求管理手段により検索された計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てるとともに、新しい計算要求についてタスクグループ割り当て処理を開始する際にタスクグループ割当カウンタの値を１減少させ、タスクグループ割り当て処理が終了するとタスクグループ割当カウンタの値を１増加させるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として計算要求発行装置に送信する計算要求出力送信手段として機能させるためのプログラム。
【請求項３６】
コンピュータを、負荷情報，タスクグループ情報およびタスク情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして上位管理装置に送信するタスクグループ出力送信手段として機能させるためのプログラム。
【請求項３７】
コンピュータを、負荷情報，タスクグループ情報およびタスク情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出すタスクグループ管理手段と、前記タスクグループ管理手段により取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして上位管理装置に送信するタスクグループ出力送信手段として機能させるためのプログラム。
【請求項３８】
コンピュータを、負荷情報，タスクグループ情報，タスク情報およびタスク割当カウンタを保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出すタスクグループ管理手段と、前記タスクグループ管理手段により取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるとともに、新しいタスクグループについてタスク割り当て処理を開始する際にタスク割当カウンタの値を１減少させ、タスク割り当て処理が終了するとタスク割当カウンタの値を１増加させるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして上位管理装置に送信するタスクグループ出力送信手段として機能させるためのプログラム。
【請求項３９】
コンピュータに、計算要求発行装置から受け取った計算要求に含まれるタスク群を複数のタスクグループに分割して各下位管理装置に割り当てる工程と、各下位管理装置からタスクグループの出力データを収集し、それらを計算要求の計算結果として計算要求発行装置に送信する工程とを実行させるためのプログラム。
【請求項４０】
コンピュータに、タスクグループ受信手段により受信されたタスクグループを個々のタスクに分割して各タスク実行装置に割り当てる工程と、各タスク実行装置からタスクの出力データを収集し、それらをタスクグループの出力データとして上位管理装置に送信する工程とを実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は階層的分散処理システムおよび階層的分散処理方法に関し、特に計算処理を段階的に細分化する階層的分散処理システムおよび階層的分散処理方法に関する。
【０００２】
【従来の技術】
従来、この種の複数台のコンピュータを使用してタスク（ジョブ）群を分散実行する分散処理システムは、多数のパラメータ（変数）を入力として与えるシミュレーションや、多数の画像を生成（レンダリング）するコンピュータグラフィックスなどで、複数の入力データに対して同一または類似した処理を加えるために用いられている。
【０００３】
従来の分散処理システムは、広域ネットワーク（以下、ＷＡＮと略す）で接続された複数の部分システム（サイト）から構成される分散処理システムを可能にすることを目的としている。この技術では、図４６に示すように、各サイト内の１台のコンピュータが負荷情報収集コンピュータとして動作する。負荷情報収集コンピュータは、自サイト内の各コンピュータの負荷と、他サイトのコンピュータ群の平均負荷とを負荷情報として管理する。負荷情報収集コンピュータは、ジョブを受け取ると、平均負荷が最も小さいサイトの負荷情報収集コンピュータにジョブを転送する。平均負荷が最も小さいサイトの負荷情報収集コンピュータは、受け取ったジョブを自サイト内の最も負荷が小さいコンピュータに転送する（例えば、特許文献１参照）。
【０００４】
また、従来の他の分散処理システムは、ジョブ間に依存関係があり、かつ構成するコンピュータの台数が非常に多い場合に効率的に負荷分散を行うことを目的としている。この分散処理システムは、１台の統括管理装置と、複数台の分散情報処理装置とからなる。統括管理装置は、実行順序に依存関係のある複数のジョブをジョブグループとしてグループ化し、それらのジョブグループを各分散情報処理装置に割り当てる（例えば、特許文献２参照）。
【０００５】
【特許文献１】
特開２０００−２９８６３７号公報（第４−５頁、図１）
【特許文献２】
特開平９−１６５２７号公報（第４−５頁、図２）
【０００６】
【発明が解決しようとする課題】
第１の問題点は、高精度な負荷分散と高速な通信とが両立できないということである。特開２０００−２９８６３７号公報記載の分散処理システムでは、各コンピュータへの負荷の割り当ては個々のジョブの単位で行われる。この方法では、コンピュータ間の負荷の偏りは単一のジョブの範囲に抑えられるという点で高精度な負荷分散が可能である半面、ＷＡＮを経由した計算機間の通信が頻繁に発生するため、全体の処理速度が制限される。一方、特開平９−１６５２７号公報記載の分散処理システムでは、各コンピュータへの負荷の割り当てはジョブグループの単位で行われる。この方法では、ＷＡＮを経由した通信回数が抑えられる半面、コンピュータ間の負荷の偏りがジョブグループの範囲となるため、高精度な負荷分散が行えず、全体の処理速度が制限される。
【０００７】
第２の問題点は、ローカル・エリア・ネットワーク（以下、ＬＡＮと略す）とＷＡＮとの性能差のために性能が制限されるということである。通常、ＷＡＮはＬＡＮよりもスループットが小さく、かつレイテンシ（遅延）が大きいという性質を持つ。また、ＷＡＮでは、一時的な不通や性能低下がＬＡＮよりも頻繁に発生する。このため、個々のジョブの入力データまたは出力データが大きくなると、ＷＡＮを経由した通信の所要時間が全体の所要時間の大部分を占めるようになる。
【０００８】
本発明の目的は、ＷＡＮで接続された複数の部分システム（サイト）から構成され、効率的に負荷分散が行われ、かつＷＡＮを経由した通信の回数が少ない階層的分散処理システムおよび階層的分散処理方法を提供することにある。
【０００９】
本発明の他の目的は、ＷＡＮを経由した通信が一度に集中することなく、ＷＡＮの帯域を有効に活用できる階層的分散処理システムおよび階層的分散処理方法を提供することにある。
【００１０】
【課題を解決するための手段】
本発明の階層的分散処理システムは、１台以上のタスク実行装置がＬＡＮを経由して接続されてなる複数のサイトが、さらにＷＡＮを経由して結合されてなる分散処理システムにおいて、いずれか１つのサイトのＬＡＮに１台接続され、計算要求発行装置から計算要求を受け取り、該計算要求に含まれるタスク群を複数のタスクグループに分割してＬＡＮまたはＷＡＮを経由して複数台の下位管理装置に割り当て、タスクグループを割り当てられた各下位管理装置からのタスクグループの出力データをＬＡＮまたはＷＡＮを経由して収集して計算要求の計算結果として前記計算要求発行装置に送信する上位管理装置と、各ＬＡＮに１台ずつ接続され、前記タスクグループ受信手段により受信されたタスクグループを個々のタスクに分割して自サイトのタスク実行装置に割り当て、タスクを割り当てられた各タスク実行装置からのタスクの出力データを収集し、収集したタスクの出力データをタスクグループの出力データとしてＬＡＮまたはＷＡＮを経由して前記上位管理装置に送信する下位管理装置と、前記下位管理装置から割り当てられたタスクを実行し、該タスクの出力データを自サイトの下位管理装置に送信するタスク実行装置とを有することを特徴とする。
【００１１】
また、本発明の階層的分散処理システムは、前記上位管理装置が、負荷情報，計算要求情報およびタスクグループ情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段により受信された計算要求に含まれるタスク群を複数のタスクグループに分割して前記下位管理装置に割り当てるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する計算要求出力送信手段とを備えることを特徴とする。
【００１２】
さらに、本発明の階層的分散処理システムは、前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記計算要求受信手段および前記タスクグループ割当手段が計算要求を受け取って前記制御情報記憶部に計算要求情報を保存し、受信された計算要求に含まれるタスク群を複数のタスクグループに分割して前記下位管理装置に割り当てる第２のスレッドに対応し、前記タスクグループ出力受信手段および前記計算要求出力送信手段が各下位管理装置からタスクグループの出力データを受信し、受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する第３のスレッドに対応することを特徴とする。
【００１３】
さらにまた、本発明の階層的分散処理システムは、前記上位管理装置が、負荷情報，計算要求情報およびタスクグループ情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段から計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する計算要求管理手段と、前記計算要求管理手段により検索された計算要求に含まれるタスク群を複数のタスクグループに分割して前記下位管理装置に割り当てるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する計算要求出力送信手段とを備えることを特徴とする。
【００１４】
また、本発明の階層的分散処理システムは、前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記計算要求受信手段が計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する第２のスレッドに対応し、前記計算要求管理手段および前記タスクグループ割当手段が計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索し、計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てる第３のスレッドに対応し、前記タスクグループ出力受信手段および前記計算要求出力送信手段が各下位管理装置からタスクグループの出力データを受信し、受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する第４のスレッドに対応することを特徴とする。
【００１５】
さらに、本発明の階層的分散処理システムは、前記上位管理装置が、負荷情報，計算要求情報，タスクグループ情報およびタスクグループ割当カウンタを保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段から計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する計算要求管理手段と、前記計算要求管理手段により検索された計算要求に含まれるタスク群を複数のタスクグループに分割して前記下位管理装置に割り当てるとともに、新しい計算要求についてタスクグループ割り当て処理を開始する際にタスクグループ割当カウンタの値を１減少させ、タスクグループ割り当て処理が終了するとタスクグループ割当カウンタの値を１増加させるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する計算要求出力送信手段とを備えることを特徴とする。
【００１６】
さらにまた、本発明の階層的分散処理システムは、前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記計算要求受信手段が計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する第２のスレッドに対応し、前記計算要求管理手段が計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する第３のスレッドに対応し、前記タスクグループ割当手段が計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てる第４のスレッドに対応し、前記タスクグループ出力受信手段および前記計算要求出力送信手段が各下位管理装置からタスクグループの出力データを受信し、受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する第５のスレッドに対応することを特徴とする。
【００１７】
また、本発明の階層的分散処理システムは、前記タスクグループ割当手段が、タスクグループをどの下位管理装置に割り当てるかに際して、前記制御情報記憶部中の負荷情報を参照して、各サイトについて（負荷の大きさ）／（計算能力）で計算される点数を用いて、下位管理装置が属するサイトの点数が小さい順に高い優先順位を割り当てることを特徴とする。
【００１８】
さらに、本発明の階層的分散処理システムは、前記下位管理装置が、負荷情報，タスクグループ情報およびタスク情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして前記上位管理装置に送信するタスクグループ出力送信手段とを備えることを特徴とする。
【００１９】
さらにまた、本発明の階層的分散処理システムは、前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記タスクグループ受信手段および前記タスク割当手段がタスクグループを受信し、受信されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てる第２のスレッドに対応し、前記タスク出力受信手段および前記タスクグループ出力送信手段がタスクを割り当てられた各タスク実行装置からタスクの出力データを受信して収集し、タスクグループの出力データとして前記上位管理装置に送信する第３のスレッドに対応することを特徴とする。
【００２０】
また、本発明の階層的分散処理システムは、前記下位管理装置が、負荷情報，タスクグループ情報およびタスク情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出すタスクグループ管理手段と、前記タスクグループ管理手段により取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして前記上位管理装置に送信するタスクグループ出力送信手段とを備えることを特徴とする。
【００２１】
さらに、本発明の階層的分散処理システムは、前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記タスクグループ受信手段がタスクグループを受信する第２のスレッドに対応し、前記タスクグループ管理手段および前記タスク割当手段が受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出し、取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てる第３のスレッドに対応し、前記タスク出力受信手段および前記タスクグループ出力送信手段がタスクを割り当てられた各タスク実行装置からタスクの出力データを受信して収集しタスクグループの出力データとして前記上位管理装置に送信する第４のスレッドに対応することを特徴とする。
【００２２】
さらにまた、本発明の階層的分散処理システムは、前記下位管理装置が、負荷情報，タスクグループ情報，タスク情報およびタスク割当カウンタを保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出すタスクグループ管理手段と、前記タスクグループ管理手段により取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるとともに、新しいタスクグループについてタスク割り当て処理を開始する際にタスク割当カウンタの値を１減少させ、タスク割り当て処理が終了するとタスク割当カウンタの値を１増加させるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして前記上位管理装置に送信するタスクグループ出力送信手段とを備えることを特徴とする。
【００２３】
また、本発明の階層的分散処理システムは、前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記タスクグループ受信手段がタスクグループを受信する第２のスレッドに対応し、前記タスクグループ管理手段が受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出す第３のスレッドに対応し、前記タスク割当手段が取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるとともに、新しいタスクグループについてタスク割り当て処理を開始する際にタスク割当カウンタの値を１減少させ、タスク割り当て処理が終了するとタスク割当カウンタの値を１増加させる第４のスレッドに対応し、前記タスク出力受信手段および前記タスクグループ出力送信手段がタスクを割り当てられた各タスク実行装置からタスクの出力データを受信して収集しタスクグループの出力データとして前記上位管理装置に送信する第５のスレッドに対応することを特徴とする。
【００２４】
さらに、本発明の階層的分散処理システムは、前記下位管理装置が、前記制御情報記憶部中の負荷情報を参照して各タスク実行装置の計算能力と負荷の大きさとを合計し、その結果を前記上位管理装置に送信する負荷情報送信手段を備えることを特徴とする。
【００２５】
さらにまた、本発明の上位管理装置は、負荷情報，計算要求情報およびタスクグループ情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段により受信された計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として計算要求発行装置に送信する計算要求出力送信手段とを備えることを特徴とする。
【００２６】
また、本発明の上位管理装置は、前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記計算要求受信手段および前記タスクグループ割当手段が計算要求を受け取って前記制御情報記憶部に計算要求情報を保存し、受信された計算要求に含まれるタスク群を複数のタスクグループに分割して前記下位管理装置に割り当てる第２のスレッドに対応し、前記タスクグループ出力受信手段および前記計算要求出力送信手段が各下位管理装置からタスクグループの出力データを受信し、受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する第３のスレッドに対応することを特徴とする。
【００２７】
さらに、本発明の上位管理装置は、負荷情報，計算要求情報およびタスクグループ情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段から計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する計算要求管理手段と、前記計算要求管理手段により検索された計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として計算要求発行装置に送信する計算要求出力送信手段とを備えることを特徴とする。
【００２８】
さらにまた、本発明の上位管理装置は、前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記計算要求受信手段が計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する第２のスレッドに対応し、前記計算要求管理手段および前記タスクグループ割当手段が計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索し、計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てる第３のスレッドに対応し、前記タスクグループ出力受信手段および前記計算要求出力送信手段が各下位管理装置からタスクグループの出力データを受信し、受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する第４のスレッドに対応することを特徴とする。
【００２９】
また、本発明の上位管理装置は、負荷情報，計算要求情報，タスクグループ情報およびタスクグループ割当カウンタを保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段から計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する計算要求管理手段と、前記計算要求管理手段により検索された計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てるとともに、新しい計算要求についてタスクグループ割り当て処理を開始する際にタスクグループ割当カウンタの値を１減少させ、タスクグループ割り当て処理が終了するとタスクグループ割当カウンタの値を１増加させるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として計算要求発行装置に送信する計算要求出力送信手段とを備えることを特徴とする。
【００３０】
さらに、本発明の上位管理装置は、前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記計算要求受信手段が計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する第２のスレッドに対応し、前記計算要求管理手段が計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する第３のスレッドに対応し、前記タスクグループ割当手段が計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てる第４のスレッドに対応し、前記タスクグループ出力受信手段および前記計算要求出力送信手段が各下位管理装置からタスクグループの出力データを受信し、受信されたタスクグループの出力データをまとめて計算要求の計算結果として前記計算要求発行装置に送信する第５のスレッドに対応することを特徴とする。
【００３１】
さらにまた、本発明の上位管理装置は、前記タスクグループ割当手段が、タスクグループをどの下位管理装置に割り当てるかに際して、前記制御情報記憶部中の負荷情報を参照して、各サイトについて（負荷の大きさ）／（計算能力）で計算される点数を用いて、下位管理装置が属するサイトの点数が小さい順に高い優先順位を割り当てることを特徴とする。
【００３２】
また、本発明の下位管理装置は、負荷情報，タスクグループ情報およびタスク情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして上位管理装置に送信するタスクグループ出力送信手段とを備えることを特徴とする。
【００３３】
さらに、本発明の下位管理装置は、前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記タスクグループ受信手段および前記タスク割当手段がタスクグループを受信し、受信されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てる第２のスレッドに対応し、前記タスク出力受信手段および前記タスクグループ出力送信手段がタスクを割り当てられた各タスク実行装置からタスクの出力データを受信して収集し、タスクグループの出力データとして前記上位管理装置に送信する第３のスレッドに対応することを特徴とする。
【００３４】
さらにまた、本発明の下位管理装置は、負荷情報，タスクグループ情報およびタスク情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出すタスクグループ管理手段と、前記タスクグループ管理手段により取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして上位管理装置に送信するタスクグループ出力送信手段とを備えることを特徴とする。
【００３５】
また、本発明の下位管理装置は、前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記タスクグループ受信手段がタスクグループを受信する第２のスレッドに対応し、前記タスクグループ管理手段および前記タスク割当手段が受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出し、取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てる第３のスレッドに対応し、前記タスク出力受信手段および前記タスクグループ出力送信手段がタスクを割り当てられた各タスク実行装置からタスクの出力データを受信して収集しタスクグループの出力データとして前記上位管理装置に送信する第４のスレッドに対応することを特徴とする。
【００３６】
さらに、本発明の下位管理装置は、負荷情報，タスクグループ情報，タスク情報およびタスク割当カウンタを保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出すタスクグループ管理手段と、前記タスクグループ管理手段により取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるとともに、新しいタスクグループについてタスク割り当て処理を開始する際にタスク割当カウンタの値を１減少させ、タスク割り当て処理が終了するとタスク割当カウンタの値を１増加させるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして上位管理装置に送信するタスクグループ出力送信手段とを備えることを特徴とする。
【００３７】
さらにまた、本発明の下位管理装置は、前記メッセージ受信手段が他の計算機からのメッセージを受信する第１のスレッドに対応し、前記タスクグループ受信手段がタスクグループを受信する第２のスレッドに対応し、前記タスクグループ管理手段が受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出す第３のスレッドに対応し、前記タスク割当手段が取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるとともに、新しいタスクグループについてタスク割り当て処理を開始する際にタスク割当カウンタの値を１減少させ、タスク割り当て処理が終了するとタスク割当カウンタの値を１増加させる第４のスレッドに対応し、前記タスク出力受信手段および前記タスクグループ出力送信手段がタスクを割り当てられた各タスク実行装置からタスクの出力データを受信して収集しタスクグループの出力データとして前記上位管理装置に送信する第５のスレッドに対応することを特徴とする。
【００３８】
また、本発明の下位管理装置は、前記制御情報記憶部中の負荷情報を参照して各タスク実行装置の計算能力と負荷の大きさとを合計し、その結果を前記上位管理装置に送信する負荷情報送信手段を備えることを特徴とする。
【００３９】
一方、本発明の階層的分散処理方法は、複数のＬＡＮと、複数のＬＡＮを結合するＷＡＮと、どれかのＬＡＮに接続される１台の上位管理装置と、各ＬＡＮに１台ずつ接続される下位管理装置と、各ＬＡＮに１台以上ずつ接続されるタスク実行装置とを備える階層的分散処理システムの階層的分散処理方法において、計算要求発行装置が、ＷＡＮまたはＬＡＮを経由して上位管理装置に計算要求を発行する工程と、上位管理装置が、受け取った計算要求に含まれるタスク群を複数のタスクグループに分割して各下位管理装置に割り当てる工程と、各下位管理装置が、割り当てられたタスクグループを個々のタスクに分割して各タスク実行装置に割り当てる工程と、各タスク実行装置が、割り当てられたタスクを実行し、その出力データを下位管理装置に送信する工程と、各下位管理装置が、各タスク実行装置からタスクの出力データを収集し、それらをタスクグループの出力データとして上位管理装置に送信する工程と、上位管理装置が、各下位管理装置からタスクグループの出力データを収集し、それらを計算要求の計算結果として計算要求発行装置に送信する工程とを含むことを特徴とする。
【００４０】
また、本発明の階層的分散処理方法は、複数のＬＡＮと、複数のＬＡＮを結合するＷＡＮと、どれかのＬＡＮに接続される１台の上位管理装置と、各ＬＡＮに１台ずつ接続される下位管理装置と、各ＬＡＮに１台以上ずつ接続されるタスク実行装置とを備える階層的分散処理システムにおける上位管理装置の階層的分散処理方法において、計算要求発行装置から受け取った計算要求に含まれるタスク群を複数のタスクグループに分割して各下位管理装置に割り当てる工程と、各下位管理装置からタスクグループの出力データを収集し、それらを計算要求の計算結果として計算要求発行装置に送信する工程とを含むことを特徴とする。
【００４１】
さらに、本発明の階層的分散処理方法は、複数のＬＡＮと、複数のＬＡＮを結合するＷＡＮと、どれかのＬＡＮに接続される１台の上位管理装置と、各ＬＡＮに１台ずつ接続される下位管理装置と、各ＬＡＮに１台以上ずつ接続されるタスク実行装置とを備える階層的分散処理システムにおける下位管理装置の階層的分散処理方法において、前記タスクグループ受信手段により受信されたタスクグループを個々のタスクに分割して各タスク実行装置に割り当てる工程と、各タスク実行装置からタスクの出力データを収集し、それらをタスクグループの出力データとして上位管理装置に送信する工程とを含むことを特徴とする。
【００４２】
他方、本発明の階層的分散処理方法は、コンピュータを、負荷情報，計算要求情報およびタスクグループ情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段により受信された計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として計算要求発行装置に送信する計算要求出力送信手段として機能させることを特徴とする。
【００４３】
また、本発明のプログラムは、コンピュータを、負荷情報，計算要求情報およびタスクグループ情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段から計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する計算要求管理手段と、前記計算要求管理手段により検索された計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として計算要求発行装置に送信する計算要求出力送信手段として機能させることを特徴とする。
【００４４】
さらに、本発明のプログラムは、コンピュータを、負荷情報，計算要求情報，タスクグループ情報およびタスクグループ割当カウンタを保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段から計算要求を受け取って前記制御情報記憶部に計算要求情報を保存する計算要求受信手段と、前記計算要求受信手段から計算要求の受信通知を受け取ったときに前記制御情報記憶部中の計算要求情報を参照して実行状態が未実行である計算要求を検索する計算要求管理手段と、前記計算要求管理手段により検索された計算要求に含まれるタスク群を複数のタスクグループに分割して下位管理装置に割り当てるとともに、新しい計算要求についてタスクグループ割り当て処理を開始する際にタスクグループ割当カウンタの値を１減少させ、タスクグループ割り当て処理が終了するとタスクグループ割当カウンタの値を１増加させるタスクグループ割当手段と、前記タスクグループ割当手段によりタスクグループを割り当てられた各下位管理装置からタスクグループの出力データを受信するタスクグループ出力受信手段と、前記タスクグループ出力受信手段により受信されたタスクグループの出力データをまとめて計算要求の計算結果として計算要求発行装置に送信する計算要求出力送信手段として機能させることを特徴とする。
【００４５】
さらにまた、本発明のプログラムは、コンピュータを、負荷情報，タスクグループ情報およびタスク情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして上位管理装置に送信するタスクグループ出力送信手段として機能させることを特徴とする。
【００４６】
また、本発明のプログラムは、コンピュータを、負荷情報，タスクグループ情報およびタスク情報を保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出すタスクグループ管理手段と、前記タスクグループ管理手段により取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして上位管理装置に送信するタスクグループ出力送信手段として機能させることを特徴とする。
【００４７】
さらに、本発明のプログラムは、コンピュータを、負荷情報，タスクグループ情報，タスク情報およびタスク割当カウンタを保持する制御情報記憶部と、他の計算機からのメッセージを受信するメッセージ受信手段と、前記メッセージ受信手段によりタスクグループ割り当てメッセージが受信されたときにタスクグループを受信するタスクグループ受信手段と、前記タスクグループ受信手段により受信されたタスクグループを一時的に前記制御情報記憶部に保管し、１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で保管したタスクグループを１つ取り出すタスクグループ管理手段と、前記タスクグループ管理手段により取り出されたタスクグループを個々のタスクに分割してタスク実行装置に割り当てるとともに、新しいタスクグループについてタスク割り当て処理を開始する際にタスク割当カウンタの値を１減少させ、タスク割り当て処理が終了するとタスク割当カウンタの値を１増加させるタスク割当手段と、前記タスク割当手段によりタスクを割り当てられた各タスク実行装置からタスクの出力データを受信するタスク出力受信手段と、前記タスク出力受信手段により受信されたタスクの出力データを収集しタスクグループの出力データとして上位管理装置に送信するタスクグループ出力送信手段として機能させることを特徴とする。
【００４８】
さらにまた、本発明のプログラムは、コンピュータに、計算要求発行装置から受け取った計算要求に含まれるタスク群を複数のタスクグループに分割して各下位管理装置に割り当てる工程と、各下位管理装置からタスクグループの出力データを収集し、それらを計算要求の計算結果として計算要求発行装置に送信する工程とを実行させることを特徴とする。
【００４９】
また、本発明のプログラムは、コンピュータに、タスクグループ受信手段により受信されたタスクグループを個々のタスクに分割して各タスク実行装置に割り当てる工程と、各タスク実行装置からタスクの出力データを収集し、それらをタスクグループの出力データとして上位管理装置に送信する工程とを実行させることを特徴とする。
【００５０】
本発明の第１の階層的分散処理システムは、複数のＬＡＮ９００−１，２，３と、複数のＬＡＮ９００−１，２，３を結合するＷＡＮ４００と、どれかのＬＡＮに接続される１台の上位管理装置（図１の６００）と、各ＬＡＮ９００−１，２，３に１台ずつ接続される下位管理装置（図１の７００−１，２，３）と、各ＬＡＮに１台以上ずつ接続されるタスク実行装置（図１の８００−１１，１２，２１，２２，３１，３２）とを備える。
【００５１】
上位管理装置（図１の６００）は、複数のタスクが含まれる計算要求を受け取ると、その計算要求をそれぞれ複数のタスクを含む複数のタスクグループに構成した後、それらのタスクグループを各下位管理装置（図１の７００−１，２，３）に割り当てる。タスクグループを割り当てられた各下位管理装置は、そのタスクグループに含まれる個々のタスクを、同一のＬＡＮに接続される各タスク実行装置に割り当てる。下位管理装置は、同一のＬＡＮに接続される各タスク実行装置からタスクの出力データを収集した後、出力データに圧縮などの後処理を加えたものを、タスクグループ単位の出力データとして上位管理装置に送る。
【００５２】
本発明の第１の階層的分散処理システムでは、ＷＡＮを経由した計算処理の割り当てはタスクグループ単位で行うために、タスク単位で割り当てるよりも通信回数が少ない。さらに、ＬＡＮ内での負荷分散は個々のタスク単位で行うために、従来のタスク単位での負荷分散と同様に、効率の良い負荷分散が可能である。
【００５３】
したがって、このような構成および動作を採用することで、本発明の第１の目的を達成することができる。
【００５４】
本発明の第２の階層的分散処理システムは、第１の階層的分散処理システムの構成に加え、下位管理装置内に、複数のタスクグループの処理を制御するタスクグループ管理手段（図３１の７１３）を備える。タスクグループ管理手段は、前記タスクグループ受信手段により受信されたタスクグループを一時的に記憶装置に保管する。１つのタスクグループに含まれるすべてのタスクの割り当てが完了した時点で、タスクグループ管理手段は、保管したタスクグループを１つ取り出し、そのタスクグループに含まれるタスクの割り当てを開始する。タスクの割り当てと並行して、過去に割り当てたタスクの出力データを収集する処理を行う。
【００５５】
本発明の第２の階層的分散処理システムでは、各タスクグループの割り当て開始時刻に差ができるため、一度にＷＡＮを経由した通信が集中することがない。このため、ＷＡＮの帯域をより有効に利用することができる。
【００５６】
したがって、このような構成および動作を採用することで、本発明の第１および第２の目的を達成することができる。
【００５７】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００５８】
目次
１．全体の構成および動作
２．計算要求発行装置５００−ｋの構成および動作
３．上位管理装置６００の構成および動作
４．下位管理装置７００−ｉの構成および動作
５．タスク実行装置８００−ｉｊの構成および動作
【００５９】
１．全体の構成および動作
【００６０】
図１を参照すると、本発明の第１の実施の形態に係る階層的分散処理システムは、広域ネットワーク（ワイド・エリア・ネットワーク、以下、ＷＡＮと略す）４００と、計算要求発行装置５００−ｋ（ｋ＝１，２，３）と、上位管理装置６００と、下位管理装置７００−ｉ（ｉ＝１，２，３）と、タスク実行装置８００−ｉｊ（ｉ＝１，２，３，ｊ＝１，２）と、ローカル・エリア・ネットワーク（以下、ＬＡＮと略す）９００−ｉ（ｉ＝１，２，３）とから構成されている。ここで、計算要求発行装置５００−ｋ，上位管理装置６００，下位管理装置７００−ｉ，およびタスク実行装置８００−ｉｊの各装置は、記憶装置と計算機間通信装置とを備えた計算機（コンピュータ；ホスト；ノード）である。
【００６１】
同一のＬＡＮに接続された計算機の集合をサイトと呼ぶ。図１では、ＬＡＮ９００−１に接続された計算機の集合がサイト１、ＬＡＮ９００−２に接続された計算機の集合がサイト２、ＬＡＮ９００−３に接続された計算機の集合がサイト３である。ここで、サイトｉは、１つ以上の任意の数だけ存在する。計算要求発行装置５００−ｋは、システム中の任意の場所に、任意の数だけ設置することができる（図示は１つ）。上位管理装置６００は、システム中に１つだけ設置される。下位管理装置７００−ｉは、各サイトｉにそれぞれ１つずつ設置される。タスク実行装置８００−ｉｊは、各サイトｉに１つ以上設置される。
【００６２】
次に、このように構成された第１の実施の形態に係る階層的分散処理システムの全体の動作について、図２を参照しながら説明する。
【００６３】
第１の実施の形態に係る階層的分散処理システムでは、ステップＳ１からステップＳ６までの６つのステップで計算処理が実行される。最初に、計算要求発行装置５００−ｋが、ＷＡＮ４００またはＬＡＮ９００−ｉを経由して上位管理装置６００に計算要求を発行する（ステップＳ１）。１つの計算要求は、複数のタスクから構成される。次に、上位管理装置６００が、受け取った計算要求に含まれるタスク群を複数のタスクグループに分割して各下位管理装置７００−ｉに割り当てる（ステップＳ２）。続いて、各サイトｉについて、サイトｉ内の下位管理装置７００−ｉは、割り当てられたタスクグループを個々のタスクに分割して各タスク実行装置８００−ｉｊに割り当てる（ステップＳ３）。次に、各タスク実行装置８００−ｉｊは、割り当てられたタスクを実行し、その出力データを下位管理装置７００−ｉに送信する（ステップＳ４）。続いて、各下位管理装置７００−ｉは、各タスク実行装置８００−ｉｊからタスクの出力データを収集し、それらをタスクグループの出力データとして上位管理装置６００に送信する（ステップＳ５）。最後に、上位管理装置６００は、各下位管理装置７００−ｉからタスクグループの出力データを収集し、それらを計算要求の計算結果として計算要求発行装置５００−ｋに送信する（ステップＳ６）。
【００６４】
以降では、第１の実施の形態に係る階層的分散処理システムを構成する計算要求発行装置５００−ｋ，上位管理装置６００，下位管理装置７００−ｉ，およびタスク実行装置８００−ｉｊの各装置の構成および動作を詳細に説明する。
【００６５】
２．計算要求発行装置５００−ｋの構成および動作
【００６６】
まず、図１における計算要求発行装置５００−ｋの構成および動作を説明する。
【００６７】
図３は、第１の実施の形態における計算要求発行装置５００−ｋのブロック図を示す。図３を参照すると、計算要求発行装置５００−ｋは、プログラム制御により動作するデータ処理装置５１０と、情報を記憶する記憶装置５２０と、ＬＡＮ／ＷＡＮを経由して他の計算機と通信するための計算機間通信装置５３０と、入力装置５４０と、出力装置５５０とから構成される。データ処理装置５１０は、計算要求発行手段５１１と、計算要求出力受信手段５１２とを有する。
【００６８】
第１の実施の形態に係る階層的分散処理システムの利用者は、入力装置５４０を使用して、計算要求の内容を入力するとともに、入力された計算要求の実行を指示する。入力された計算要求を計算要求発行手段５１１が受け取り、その内容を記憶装置５２０に格納する。計算要求発行手段５１１は、計算要求の実行が指示されると、計算機間通信装置５３０を通して上位管理装置６００に計算要求を発行する。上位管理装置６００から送られる計算結果は、計算機間通信装置５３０を通して計算要求出力受信手段５１２が受け取り、記憶装置５２０に格納した後、出力装置５５０に出力する。
【００６９】
次に、計算要求発行装置５００−ｋが上位管理装置６００と通信する際の通信手順（プロトコル）を説明する。
【００７０】
まず、図３９を参照して、計算要求発行装置５００−ｋが上位管理装置６００に計算要求を発行する際に用いる通信手順を説明する。
【００７１】
最初に、計算要求発行装置５００−ｋが、上位管理装置６００に、計算要求発行を示すメッセージ識別子（以下、計算要求発行メッセージと呼ぶ）に続き、タスクを実行するプログラムの名前（以下、タスク実行プログラム名と呼ぶ）と、計算要求に含まれる各タスクのタスクＩＤおよび入出力ファイル名とを送る（Ｐ１０１）。タスクＩＤは、１つの計算要求に含まれるタスク同士を識別するための識別子である。
【００７２】
上位管理装置６００は、Ｐ１０１の通信内容を受け取った後、計算要求発行装置５００−ｋに応答を送る（Ｐ１０２）。計算要求の実行が可能な場合、応答は成功を示すメッセージ識別子（以下、ＯＫメッセージと呼ぶ）である。計算要求の実行が不可能な場合、応答は失敗を示すメッセージ識別子（以下、ＮＧメッセージと呼ぶ）である。
【００７３】
以降のＰ１０３およびＰ１０４の通信は、Ｐ１０２で応答がＯＫメッセージであった場合にのみ行われる。計算要求発行装置５００−ｋが、上位管理装置６００に計算要求の入力データを送る（Ｐ１０３）。
【００７４】
上位管理装置６００は、Ｐ１０３の入力データを受け取ると、受け取った計算要求に対応付けられた計算要求ＩＤを計算要求発行装置５００−ｋに送る（Ｐ１０４）。
【００７５】
次に、図４４を参照して、上位管理装置６００が計算要求発行装置５００−ｋに計算要求の計算結果を送る際の通信手順を説明する。
【００７６】
最初に、上位管理装置６００は、計算要求発行装置５００−ｋに、計算要求実行完了を示すメッセージ識別子（以下、計算要求実行完了メッセージと略す）に続き、実行が完了した計算要求についての計算要求ＩＤと、その計算要求の計算結果とを送る（Ｐ６０１）。
【００７７】
計算要求発行装置５００−ｋは、Ｐ６０１の通信内容を受け取った後、上位管理装置６００に応答を送る（Ｐ６０２）。計算要求発行装置５００−ｋが正常に計算結果を受信できた場合、応答はＯＫメッセージである。計算要求発行装置５００−ｋが計算結果の受信に失敗した場合、応答はＮＧメッセージである。
【００７８】
３．上位管理装置６００の構成および動作
【００７９】
次に、図１における上位管理装置６００の構成および動作を詳細に説明する。本発明の実施の形態における上位管理装置６００の構成は、３種類ある。以下では、上位管理装置６００の各構成ごとに、内部構成，使用する通信手順，制御情報，および各部の動作を述べる。また、下位管理装置７００−ｉへのタスクグループの割り当てに関して、負荷情報の管理方法が２種類ある。１つの管理方法は、下位管理装置７００−ｉに割り当てたタスクの数に基づくもので、もう１つの管理方法は、下位管理装置７００−ｉへの負荷情報の問い合わせの結果に基づくものである。各構成ごとに、割り当てたタスクの数に基づく負荷情報管理方法を用いる場合について最初に説明し、その後で、負荷情報の問い合わせに基づく場合の相違点を説明する。
【００８０】
まず、上位管理装置６００の第１の構成を説明する。
【００８１】
図４は、上位管理装置６００の第１の構成のブロック図を示す。図４を参照すると、上位管理装置６００の第１の構成は、プログラム制御により動作するデータ処理装置６１０と、情報を記憶する記憶装置６２０と、ＬＡＮ／ＷＡＮを経由して他の計算機と通信するための計算機間通信装置６３０とから構成される。
【００８２】
記憶装置６２０は、入出力データ記憶部６２１と、制御情報記憶部６２２とを備える。入出力データ記憶部６２１は、計算要求の入力データおよび出力データを保持する。入出力データ記憶部６２１に保持される個々のデータは、ファイル名によって識別される。制御情報記憶部６２２は、タスクグループの割り当てなどの動作を制御するための制御情報を保持する。すなわち、負荷情報，計算要求情報およびタスクグループ情報を保持する。
【００８３】
データ処理装置６１０は、メッセージ受信手段６１１と、計算要求受信手段６１２と、タスクグループ割当手段６１４と、タスクグループ出力受信手段６１５と、計算要求出力送信手段６１６とを備える。メッセージ受信手段６１１は、計算機間通信装置６３０を通して他の計算機から送られたメッセージを受け取り、メッセージの種類に従って計算要求受信手段６１２またはタスクグループ出力受信手段６１５にその計算機との通信処理を引き渡す。計算要求受信手段６１２は、計算要求発行装置５００―ｋから送られた計算要求を受け取り、記憶装置６２０に計算要求に関する情報および入力データを保存する。タスクグループ割当手段６１４は、計算要求に含まれるタスク群を複数のタスクグループに分割し、それらを各下位管理装置７００−ｉに割り当てる。タスクグループ出力受信手段６１５は、各下位管理装置７００−ｉからタスクグループの出力データを受け取り、記憶装置６２０に格納する。計算要求出力送信手段６１６は、タスクグループ出力受信手段６１５で受け取った出力データを元に計算要求の計算結果を作成し、それを計算要求発行装置５００−ｋに送る。
【００８４】
なお、データ処理装置６１０は、複数のスレッド（制御の流れ）を持つことができる。例えば、ある計算要求の受信と並行して、別の計算要求を受信することができる。
【００８５】
次に、上位管理装置６００が他の計算機と通信する際の通信手順を説明する。上位管理装置６００の第１，第２，および第３の構成の間で、使用する通信手順は共通である。
【００８６】
上位管理装置６００が他の計算機と行う通信には、計算要求の発行，計算要求の計算結果の送受信，タスクグループの割り当て，タスクグループの出力データの送受信，および負荷情報の問い合わせの５種類があり、それぞれ図３９，図４４，図４０，図４３，および図４５に示される。このうち、計算要求の発行および計算要求の計算結果の送受信については、計算要求発行装置５００−ｋの説明の際にすでに述べた。
【００８７】
まず、上位管理装置６００が下位管理装置７００−ｉにタスクグループを割り当てる際の通信手順を、図４０を参照して説明する。
【００８８】
最初に、上位管理装置６００は、下位管理装置７００−ｉに、タスクグループの割り当てを示すメッセージ識別子（以下、タスクグループ割当メッセージと略す）に続き、タスクグループＩＤと、タスク実行プログラム名と、タスクグループに含まれる各タスクのタスクＩＤおよび入出力ファイル名とを送る（Ｐ２０１）。タスク実行プログラム名は、計算要求に含まれるタスクを実行するのに用いるプログラムの名前である。
【００８９】
下位管理装置７００−ｉは、Ｐ２０１の通信内容を受け取った後、上位管理装置６００に応答を送る（Ｐ２０２）。タスクグループの実行が可能である場合、応答の内容は、ＯＫメッセージと、必要な入力ファイル名のリストとである。タスクグループの実行が不可能である場合、応答の内容はＮＧメッセージである。
【００９０】
Ｐ２０２での応答がＯＫメッセージの場合、上位管理装置６００は、Ｐ２０２で受け取ったファイル名のリストに対応する入力データを下位管理装置７００−ｉに送る（Ｐ２０３）。
【００９１】
下位管理装置７００−ｉは、Ｐ２０３の入力データを受信すると、応答としてＯＫメッセージを上位管理装置６００に送る（Ｐ２０４）。
【００９２】
次に、図４３を参照して、上位管理装置６００が下位管理装置７００−ｉからタスクグループの出力データを受け取る際の通信手順を説明する。
【００９３】
最初に、下位管理装置７００−ｉが、上位管理装置６００に、タスクグループ実行完了を示すメッセージ識別子（以下、タスクグループ実行完了メッセージと呼ぶ）に続き、タスクグループＩＤと、タスクグループの出力データとを送る（Ｐ５０１）。
【００９４】
上位管理装置６００は、Ｐ５０１の通信内容を受け取った後、下位管理装置７００−ｉに応答を送る（Ｐ５０２）。上位管理装置６００が正常に出力データを受信できた場合、応答はＯＫメッセージである。上位管理装置６００が出力データの受信に失敗した場合、応答はＮＧメッセージである。
【００９５】
次に、図４５を参照して、ある計算機Ａが別の計算機Ｂに負荷の大きさを問い合わせる際の通信手順を説明する。上位管理装置６００がこの通信手順を用いるのは、上位管理装置６００が下位管理装置７００−ｉに負荷を問い合わせる場合であるが、下位管理装置７００−ｉがタスク実行装置８００−ｉｊに負荷を問い合わせる場合にも同じ通信手順を用いる。
【００９６】
まず、計算機Ａが、計算機Ｂに、負荷の大きさを問い合わせるためのメッセージ識別子（以下、負荷情報問い合わせメッセージと呼ぶ）を送る（Ｐ７０１）。計算機ＢがＰ７０１の通信内容を受け取ると、計算機Ａに応答を送る（Ｐ７０２）。Ｐ７０２の応答は、ＯＫメッセージと、計算能力と、負荷の大きさとからなる。計算能力とは、問い合わせの対象となる計算機のプロセッサ数を合計したものである。例えば、計算機Ｂが下位管理装置７００−ｉである場合、計算能力は、下位管理装置７００−ｉが属するサイトｉ内の全タスク実行装置８００−ｉｊのプロセッサ数の合計である。
【００９７】
タスク実行装置８００−ｉｊが負荷情報問い合わせメッセージを受け取った場合、Ｐ７０２で返される負荷の大きさは、タスク実行装置８００−ｉｊが有するデータ処理装置８１０の負荷の大きさに等しい。典型的には、データ処理装置８１０の負荷の大きさは、プロセッサの使用率である。サイトｉ内にある下位管理装置７００−ｉが負荷情報問い合わせメッセージを受け取った場合、Ｐ７０２で返される負荷の大きさは、サイトｉ内のすべてのタスク実行装置８００−ｉｊの負荷の大きさの合計である。
【００９８】
次に、上位管理装置６００の第１の構成で使用する制御情報について説明する。上位管理装置６００の第１の構成が使用する制御情報は、負荷情報，計算要求情報，およびタスクグループ情報の３種類である。これらの制御情報は、図４における制御情報記憶部６２２に格納される。
【００９９】
図５は、上位管理装置６００が保持する負荷情報の例を示す。負荷情報は、各サイトｉに属するタスク実行装置８００−ｉｊの負荷の状況を保持するものである。負荷情報に含まれる情報は、各サイトｉについての、下位管理装置７００−ｉの名前，サイトｉ全体の計算能力，およびサイトｉ全体の負荷の大きさである。サイトｉについての下位管理装置７００−ｉの名前は、サイトｉ内にある下位管理装置７００−ｉの名前（ホスト名）である。ホスト名は、タスクグループの割り当てなどの通信の際に用いられる。サイトｉについてのサイト全体の計算能力は、サイトｉ内にあるすべてのタスク実行装置８００−ｉｊの計算能力の合計である。１つのタスク実行装置８００−ｉｊの計算能力を測定する方法の例として、そのタスク実行装置８００−ｉｊが有するプロセッサ（ＣＰＵ；中央処理装置；中央演算装置）の数を用いる方法と、何らかの性能測定用プログラム（ベンチマーク）を用いる方法とがある。前述した通り、ここでは、負荷の大きさは、下位管理装置７００―ｉに割り当てたタスクの数である。
【０１００】
図６は、上位管理装置６００が保持する計算要求情報の例を示す。計算要求情報は、計算要求発行装置５００−ｋから受け取った計算要求についての情報を記憶する。計算要求情報に含まれる情報は、各計算要求についての、計算要求ＩＤと、タスク実行プログラム名と、実行状態と、計算要求に含まれる個々のタスクについてのタスクＩＤおよびタスク入出力ファイル名とを含む。計算要求ＩＤは、個々の計算要求を区別するために用いる識別子であり、上位管理装置６００が計算要求発行装置５００−ｋから計算要求を受け取ったときに付けられる。実行状態は、その計算要求の実行がどの段階にあるかを示すもので、未実行，実行中，および完了の３通りの値をとる。タスク入出力ファイル名は、タスクの入力データに付けられるファイル名と、タスクの出力データに付けられるファイル名との組である。図６の例では、１つの計算要求に対して１つのタスク実行プログラム名が対応しているが、タスクごとに別のプログラムで実行されるという構成も可能である。また、個々のタスクについて、入力ファイル名および出力ファイル名の数は必ずしも１つずつである必要はない。
【０１０１】
図７は、上位管理装置６００が保持するタスクグループ情報の例を示す。タスクグループ情報は、計算要求を分割して作成されたタスクグループについての情報を記憶する。タスクグループ情報に含まれる情報は、タスクグループＩＤ，実行状態，およびタスクグループを構成する個々のタスクのタスクＩＤを含む。タスクグループＩＤは、個々のタスクグループを識別するための識別子である。実行状態は、そのタスクグループの実行がどの段階にあるかを示すもので、未実行，実行中，および完了の３通りの値をとる。
【０１０２】
次に、上位管理装置６００の第１の構成の各部の動作を、フローチャートを用いて詳細に説明する。
【０１０３】
まず、上位管理装置６００の第１の構成におけるメッセージ受信処理を説明する。
【０１０４】
メッセージ受信処理は、上位管理装置６００が他の計算機からメッセージを受け取り、メッセージの種類に応じた処理の実行を開始する作業である。メッセージ受信処理は、図４におけるメッセージ受信手段６１１によって実行される。メッセージ受信手段６１１は、データ処理装置６１０中の１つのスレッドを常に使用する。
【０１０５】
図８は、上位管理装置６００のメッセージ受信手段６１１の動作を示すフローチャートである。以下では、図４および図８を参照して、上位管理装置６００の第１の構成におけるメッセージ受信手段６１１の動作を説明する。
【０１０６】
まず、メッセージ受信手段６１１は、計算機間通信装置６３０を通して、送られてきたメッセージ識別子を受信する（ステップＡ１０１）。
【０１０７】
次に、メッセージ受信手段６１１は、受信したメッセージ識別子の内容に応じて分岐する（ステップＡ１０２）。メッセージ識別子が計算要求発行の場合はステップＡ１０３に、タスクグループ実行完了の場合はステップＡ１０４に、それ以外の場合はステップＡ１０５に進む。
【０１０８】
ステップＡ１０３では、メッセージ受信手段６１１は、新しいスレッドを作成し、そのスレッドで計算要求受信処理を開始する。計算要求受信処理の詳細については後述する。
【０１０９】
ステップＡ１０４では、メッセージ受信手段６１１は、新しいスレッドを作成し、そのスレッドでタスクグループ出力受信処理を開始する。タスクグループ出力受信処理の詳細については後述する。
【０１１０】
ステップＡ１０５では、メッセージ受信手段６１１は、メッセージ識別子を送ってきた相手に対してＮＧメッセージを送り、通信を終了する。
【０１１１】
ステップＡ１０３，Ａ１０４，Ａ１０５のいずれかが完了すると、メッセージ受信手段６１１は、ステップＡ１０１に戻り、次に到着するメッセージ識別子を受信する。
【０１１２】
次に、上位管理装置６００の第１の構成における計算要求受信処理の手順を説明する。
【０１１３】
計算要求受信処理は、計算要求発行装置５００−ｋから送られる計算要求を受信する処理であり、図２のステップＳ１に相当する。その際、図３９の通信手順に従って計算要求発行装置５００−ｋとの通信を行う。計算要求受信処理は、図４における計算要求受信手段６１２を用いて行われる。計算要求受信処理は新しいスレッドを用いて実行されるため、複数の計算要求受信処理を並行して行うことが可能である。
【０１１４】
図９は、上位管理装置６００の第１の構成における計算要求受信手段６１２の動作を示すフローチャートである。以下では、図４および図９を参照して、計算要求受信処理の手順を説明する。
【０１１５】
まず、計算要求受信手段６１２は、計算機間通信装置６３０を通して、計算要求を発行した計算要求発行装置５００−ｋから、計算要求に含まれる各タスクのタスク実行プログラム名と、各タスクの入出力ファイル名とを受け取る（ステップＡ２０１）。
【０１１６】
次に、計算要求受信手段６１２は、受け取った計算要求の実行の可否を判断する（ステップＡ２０２）。実行が可能である場合にはステップＡ２０４へ、不可能である場合にはステップＡ２０３へ進む。この判断は、ステップＡ２０１で受け取ったタスク実行プログラム名に該当するプログラムが存在するかどうか、および負荷の状態が限度を超えていないかどうかに基づいて行われる。
【０１１７】
ステップＡ２０３では、計算要求受信手段６１２は、計算要求発行装置５００−ｋにＮＧメッセージを送り、処理を終了する。
【０１１８】
ステップＡ２０４では、計算要求受信手段６１２は、計算要求発行装置５００−ｋにＯＫメッセージを送る。
【０１１９】
次に、計算要求受信手段６１２は、計算要求発行装置５００−ｋから計算要求の入力データを受け取り、入出力データ記憶部６２１に保存する（ステップＡ２０５）。
【０１２０】
次に、計算要求受信手段６１２は、受け取った計算要求に対応する計算要求ＩＤを決定し、計算要求情報に新しい計算要求の情報を追加する（ステップＡ２０６）。
【０１２１】
さらに、計算要求受信手段６１２は、ステップＡ２０６で決定した計算要求ＩＤを計算要求発行装置５００−ｋに送る（ステップＡ２０７）。
【０１２２】
ステップＡ２０７が完了すると、計算要求受信手段６１２は、タスクグループ割り当て処理を開始する（ステップＡ２０８）。タスクグループ割り当て処理の詳細については、後述する。タスクグループ割り当て処理の処理対象となる計算要求は、ステップＡ２０１で受信した計算要求である。タスクグループ割り当て処理は、計算要求受信処理と同じスレッドで実行される。
【０１２３】
次に、上位管理装置６００の第１の構成におけるタスクグループ割り当て処理の詳細を説明する。
【０１２４】
タスクグループ割り当て処理は、計算要求受信処理によって受信した計算要求に含まれるタスク群を複数のタスクグループに分割し、それらを各下位管理装置７００−ｉに割り当てる処理である。その際、図４０に示す通信手順が用いられる。この処理は、図２におけるステップＳ２に相当し、図４におけるタスクグループ割当手段６１４を用いて実行される。
【０１２５】
図１０は、上位管理装置６００の第１の構成におけるタスクグループ割当手段６１４の動作を示すフローチャートである。以下では、図４および図１０を参照して、上位管理装置６００の第１の構成におけるタスクグループ割り当て処理の手順を説明する。
【０１２６】
まず、タスクグループ割当手段６１４は、制御情報記憶部６２２中の計算要求情報（図６参照）を参照し、処理対象の計算要求の実行状態を未実行から実行中に変更する（ステップＡ４０１）。
【０１２７】
次に、タスクグループ割当手段６１４は、処理対象の計算要求に含まれるタスク群を複数のタスクグループを分割し、それらのタスクグループの情報を制御情報記憶部６２２中のタスクグループ情報（図７参照）に追加する（ステップＡ４０２）。計算要求に含まれるタスク群を複数のタスクグループに分割する方法の例として、計算要求に含まれるタスクのタスクＩＤに基づく方法が挙げられる。この方法では、タスクＩＤが最小であるタスクｎ（１以上の整数）個をタスクグループ１、次にタスクＩＤが小さいタスクｎ個をタスクグループ２というようにタスクグループを構成する。
【０１２８】
続いて、タスクグループ割当手段６１４は、制御情報記憶部６２２中のタスクグループ情報（図７参照）から、実行状態が未実行であるタスクグループを検索する（ステップＡ４０３）。該当するタスクグループが複数ある場合、その中から１つを選ぶ。選択方法の例として、タスクグループＩＤが最小であるものを選ぶという方法が挙げられる。
【０１２９】
次に、タスクグループ割当手段６１４は、ステップＡ４０３で未実行のタスクグループの検索に成功したか否かに応じて分岐する（ステップＡ４０４）。検索に成功した場合、ステップＡ４０５に進む。検索に失敗した場合、タスクグループ割り当て処理を終了する。
【０１３０】
ステップＡ４０５では、タスクグループ割当手段６１４は、選択されたタスクグループをどの下位管理装置７００−ｉに割り当てるかについての優先順位を決める。優先順位の決定には、制御情報記憶部６２２中の負荷情報（図５参照）を参照して、各サイトｉについて（負荷の大きさ）／（計算能力）で計算される点数を用いる。負荷情報に登録されている各下位管理装置７００−ｉについて、その下位管理装置７００−ｉが属するサイトｉの点数が小さい順に高い優先順位を割り当てる。負荷情報の内容が図５で示される場合、サイト１，サイト２，サイト３についての点数はそれぞれ０．２，１，０．３となり、優先順位はサイト１，サイト３，サイト２の順となる。
【０１３１】
次に、タスクグループ割当手段６１４は、ステップＡ４０５で決めた優先順位の順に、各下位管理装置７００−ｉに対して、ステップＡ４０３で選択されたタスクグループの割り当てを試みる（ステップＡ４０６）。その際、図４０の通信手順を用いる。最初に、優先順位が１番目の下位管理装置７００−ｉに割り当てを試みて、成功の場合、すなわち図４０のＰ２０４でＯＫメッセージを受け取った場合には、ステップＡ４０７に進む。失敗の場合、すなわち図４０のＰ２０２でＮＧメッセージを受け取った場合、優先順位が２番目の下位管理装置７００−ｉに割り当てを試みる。この操作を順次行い、割り当てが成功するまで繰り返す。システム全体の負荷が大きい状況では、優先順位が最下位の下位管理装置７００−ｉへの割り当てに失敗する場合がありうる。その場合、一定時間待機した後、優先順位が１番目の下位管理装置７００−ｉからタスクグループの割り当てを再度試みる。
【０１３２】
下位管理装置７００−ｉへのタスクグループの割り当てに成功すると、タスクグループ割当手段６１４は、制御情報記憶部６２２中の負荷情報（図５参照）およびタスクグループ情報（図７参照）を更新する（ステップＡ４０７）。負荷情報についての更新内容は、下位管理装置７００−ｉが属するサイトｉについての負荷の大きさを、割り当てたタスクグループに含まれるタスクの数だけ増加させるというものである。例えば、下位管理装置７００−ｉがサイトｉに属し、サイトｉについての以前の負荷の大きさが５で、割り当てたタスクグループが１０個のタスクを含む場合、サイトｉについての負荷の大きさは１５に変更される。タスクグループ情報についての更新内容は、割り当てたタスクグループの実行状態を実行中に変更するというものである。
【０１３３】
ステップＡ４０７が終了すると、タスクグループ割当手段６１４は、ステップＡ４０３に戻り、次のタスクグループの割り当てを行う。
【０１３４】
次に、上位管理装置７００の第１の構成におけるタスクグループ出力受信処理の詳細を説明する。
【０１３５】
タスクグループ出力受信処理は、下位管理装置７００−ｉから、過去に割り当てたタスクグループの実行結果である出力データを受信する処理であり、図２のステップＳ５に相当する。タスクグループの出力データの受信には、図４３に示す通信手順が用いられる。タスクグループ出力受信処理は、タスクグループ出力受信手段６１５によって実行される。
【０１３６】
図１１は、上位管理装置６００のタスクグループ出力受信手段６１５の動作を示すフローチャートである。以下では、図４および図１１を参照して、上位管理装置６００の第１の構成におけるタスクグループ出力受信処理の手順を説明する。
【０１３７】
まず、タスクグループ出力受信手段６１５は、計算機間通信装置６３０を通して、下位管理装置７００−ｉからタスクグループＩＤおよびタスクグループの出力データを受け取り、出力データを入出力データ記憶部６２１に格納する（ステップＡ５０１）。ここで、下位管理装置７００−ｉは、上位管理装置６００に対してタスクグループ実行完了メッセージを送った下位管理装置である。
【０１３８】
出力データの受信が完了した後、タスクグループ出力受信手段６１５は、制御情報記憶部６２２中の負荷情報（図５参照）およびタスクグループ情報（図７参照）を更新する（ステップＡ５０２）。負荷情報についての更新内容は、下位管理装置７００−ｉが属するサイトｉについての負荷の大きさを、ステップＡ５０１で割り当てられたタスクグループに含まれるタスクの数だけ減らすというものである。タスクグループ情報についての更新内容は、ステップＡ５０１で割り当てられたタスクグループについて、実行状態を実行中から完了に変更するというものである。
【０１３９】
次に、タスクグループ出力受信手段６１５は、下位管理装置７００−ｉにＯＫメッセージを送信する（ステップＡ５０３）。
【０１４０】
さらに、タスクグループ出力受信手段６１５は、制御情報記憶部６２２中のタスクグループ情報（図７参照）を参照して、同一の計算要求に含まれるすべてのタスクグループの実行状態が完了であるかどうかを調べる（ステップＡ５０４）。条件を満たす場合にはステップＡ５０５へ進み、条件を満たさない場合にはタスクグループ出力受信処理を終了する。
【０１４１】
ステップＡ５０５では、タスクグループ出力受信手段６１５は、ステップＡ５０４の条件に該当する計算要求の計算結果について、後述する計算要求出力送信処理を行う。計算要求出力送信の際に、新しいスレッドは作成しない。
【０１４２】
次に、上位管理装置６００の第１の構成における計算要求出力送信処理の詳細を説明する。
【０１４３】
計算要求出力送信処理は、計算要求発行装置５００−ｋに対して、過去に割り当てられた計算要求の計算結果を送信する処理であり、図２のステップＳ６に相当する。計算要求出力送信処理には、計算要求出力送信手段６１６が用いられ、図４４の通信手順に従って計算要求の計算結果の送受信が行われる。
【０１４４】
図１２は、上位管理装置６００の計算要求出力送信手段６１６の動作を示すフローチャートである。以下では、図４および図１２を参照して、上位管理装置６００の第１の構成における計算要求出力送信処理の手順を説明する。
【０１４５】
まず、計算要求出力送信手段６１６は、同一の計算要求に含まれるすべてのタスクグループの出力データを集めて、計算要求の計算結果を生成する（ステップＡ６０１）。計算要求の計算結果の生成方法には、いくつかの選択肢がある。最も簡単な方法は、各タスクグループの出力データを単純に連結するというものである。連結したタスクグループの出力データに圧縮処理を加えることで、データ転送量を削減することも可能である。ある種の計算処理では、すべてのタスクグループの出力データは必ずしも必要ない。このような場合、タスクグループの出力データに後処理を加え、必要なデータのみを連結して計算要求の計算結果とすることができる。この場合、上位管理装置６００が後処理用のプログラムを実行可能である必要がある。また、計算要求発行の際の通信手順に、後処理用のプログラムの名前を含める必要がある。
【０１４６】
次に、計算要求出力送信手段６１６は、計算要求を発行した計算要求発行装置５００−ｋに、計算要求実行完了メッセージと、完了した計算要求の計算要求ＩＤと、計算要求の計算結果とを送る（ステップＡ６０２）。
【０１４７】
続いて、計算要求出力送信手段６１６は、計算要求発行装置５００−ｋからのＯＫメッセージを受信する（ステップＡ６０３）。
【０１４８】
最後に、計算要求出力送信手段６１６は、制御情報記憶部６２２中の計算要求情報（図６参照）を参照し、完了した計算要求の実行状態を実行中から完了に変更する（ステップＡ６０４）。
【０１４９】
ここで、図１３を参照して、上位管理装置６００の第１の構成における各スレッドと各手段との関係を説明する。図１３において、矢印はスレッドに、長方形はスレッドが使用する上位管理装置６００中の各手段を示す。なお、図１３のスレッド構成は１つの実行例であって、常に図１３の通りのスレッドが存在するわけではない。
【０１５０】
スレッド１は、メッセージ受信スレッドであり、メッセージ受信手段６１１と一対一に対応する。メッセージ受信スレッドは、すべての上位管理装置６００が１つずつ保持する。他のすべてのスレッドは、メッセージ受信スレッドから分岐する。
【０１５１】
スレッド２およびスレッド３は、計算要求受信処理と、その計算要求に関するタスクグループ割当処理を行うためのスレッドである。１つの計算要求の受信に１つのスレッドが対応する。図１３では、計算要求の受信とタスクグループ割り当てのためのスレッドは２つあるが、実際には任意の数だけ存在することができる。これらのスレッドは、計算要求の受信のために計算要求受信手段６１２を使い、タスクグループの割り当てのためにタスクグループ割当手段６１４を使う。
【０１５２】
スレッド４およびスレッド５は、下位管理装置７００−ｉからのタスクグループ出力受信処理および計算要求出力送信処理を行うためのスレッドである。計算要求出力送信処理は常に行われるとは限らない。１つのタスクグループの受信に１つのタスクグループが対応する。図１３では２つのスレッドが存在するが、実際には任意の数だけ存在することができる。これらのスレッドは、タスクグループ出力受信処理のためにタスクグループ出力受信手段６１５を使い、計算要求出力送信処理のために計算要求出力送信手段６１６を使う。
【０１５３】
上位管理装置６００の第１の構成では、個々の計算要求に対応してスレッドが作られ、複数の計算要求についてのタスクグループの割り当てが並行して行われる。このため、上位管理装置６００に新たな計算要求が到着すると、すでに別の計算要求が実行中であっても直ちに実行が開始される。このため、処理の量が多い計算要求の実行中に、処理の量が小さい計算要求が新たに到着した場合、後者の計算要求の実行が長期間待たされるという事態を避けることができる。
【０１５４】
次に、上位管理装置６００の第２の構成を説明する。
【０１５５】
図１４は、上位管理装置６００の第２および第３の構成のブロック図を示す。上位管理装置６００の第１の構成（図４参照）との相違点は、計算要求管理手段６１３が新たに加わっていることである。計算要求管理手段６１３は、複数の計算要求に関するタスクグループ割り当て処理の動作を制御するための計算要求管理処理を行う。それ以外の部分は、上位管理装置６００の第１の構成と共通である。ただし、計算要求受信手段６１２の動作は、上位管理装置６００の第１の構成における計算要求受信手段６１２とは異なる。上位管理装置６００の第２の構成では、データ処理装置６１０中に常に存在しているスレッドは、メッセージ受信スレッドと計算要求管理スレッドとの２つである。メッセージ受信スレッドは、上位管理装置６００の第１の構成と同じく、図８に示されるメッセージ受信処理を実行する。一方、計算要求管理スレッドは、後述する計算要求管理処理を実行する。２つのスレッドとも、動作中に増減することはない。
【０１５６】
以下では、上位管理装置６００の第２の構成の動作のうち、上位管理装置６００の第１の構成との相違点を詳細に説明する。
【０１５７】
まず、上位管理装置６００の第２の構成における計算要求受信処理を説明する。
【０１５８】
図１５は、上位管理装置６００の第２の構成における計算要求受信手段６１２の動作を示すフローチャートである。図１５のステップＡ２０１からステップＡ２０７は、上位管理装置６００の第１の構成における計算要求受信処理（図９参照）と共通であり、ステップＡ２０８のみがステップＡ２０９に置換されている。ステップＡ２０９では、前述した計算要求管理スレッドに対して通知を送り、計算要求受信処理を終了する。この通知によって、計算要求管理処理が開始される。
【０１５９】
次に、上位管理装置６００の第２の構成における計算要求管理処理を説明する。
【０１６０】
計算要求管理処理は、図１４における計算要求管理手段６１３により、計算要求管理スレッドで実行される。計算要求管理スレッドには動作状態と待機状態との２つの状態があり、データ処理装置６１０が動作を開始した時点では、計算要求管理スレッドの状態は待機状態である。計算要求受信処理（図１５参照）のステップＡ２０９で通知が送られると、動作状態に移る。
【０１６１】
図１６は、上位管理装置６００の第２の構成における計算要求管理手段６１３の動作を示すフローチャートである。以下では、図１６を参照して、上位管理装置６００の第２の構成における計算要求管理手段６１３の動作を説明する。
【０１６２】
まず、計算要求管理手段６１３は、計算要求受信手段６１２が発行する通知を待つ（ステップＡ３０１）。通知を受け取ると、計算要求管理スレッドは動作状態に移り、ステップＡ３０２に進む。
【０１６３】
ステップＡ３０２では、計算要求管理手段６１３は、制御情報記憶部６２２中の計算要求情報（図６参照）を参照して、実行状態が未実行である計算要求を検索する。該当する計算要求が複数ある場合、その中から１つだけ選択する。選択方法の一例として、計算要求ＩＤが最小のものを選ぶという方法がある。
【０１６４】
次に、計算要求管理手段６１３は、ステップＡ３０２での計算要求の検索に成功したかどうかを判断する（ステップＡ３０３）。成功した場合にはステップＡ３０４に進む。失敗した場合は、ステップＡ３０１に戻り、待機状態に移る。失敗する場合には、計算要求情報中に実行すべき計算要求がない場合が該当する。
【０１６５】
ステップＡ３０４では、計算要求管理手段６１３は、タスクグループ割当手段６１４によりタスクグループ割り当て処理を行う。その際、新しいスレッドを起動せず、計算要求管理スレッドの中でタスクグループ割り当て処理が実行される。タスクグループ割り当て処理の手順は、上位管理装置６００の第１の構成と共通である。タスクグループ割り当て処理が完了すると、ステップＡ３０２に制御を戻す。
【０１６６】
ここで、図１７を参照して、上位管理装置６００の第２の構成における各スレッドと各手段との関係を説明する。図１７において、矢印はスレッドに、長方形はスレッドが使用する上位管理装置６００中の各手段を示す。なお、図１７のスレッド構成は１つの実行例であって、常に図１７の通りのスレッドが存在するわけではない。
【０１６７】
スレッド１は、メッセージ受信スレッドであり、上位管理装置６００の第１の構成におけるメッセージ受信スレッドと同等である。計算要求管理スレッドを除く他のすべてのスレッドは、メッセージ受信スレッドから分岐する。
【０１６８】
スレッド２およびスレッド３は、計算要求受信処理を行うためのスレッドである。１つの計算要求の受信に１つのスレッドが対応する。これらのスレッドは任意の数だけ存在することができる。これらのスレッドは、計算要求受信処理のために計算要求受信手段６１２を使う。
【０１６９】
スレッド４およびスレッド５は、下位管理装置７００−ｉからのタスクグループ出力受信処理および計算要求出力送信処理に対応するスレッドであり、図１３のスレッド４およびスレッド５と同等である。
【０１７０】
スレッド６は、計算要求管理スレッドであり、すべての上位管理装置６００が１つずつ保持する。計算要求管理スレッドは、計算要求管理手段６１３を使用した計算要求管理処理と、タスクグループ割当手段６１４を使用したタスクグループ割当処理を行う。
【０１７１】
上位管理装置６００の第２の構成では、タスクグループの割り当てを行うのは、データ処理装置６１０中の単一のスレッドに限られる。このため、上位管理装置６００が複数の計算要求を受け取った場合でも、１つの計算要求に含まれるすべてのタスクグループの割り当てが終了するまでは、次の計算要求に含まれるタスクグループの割り当てを行うことはない。このことの利点は、近い時刻に到着した複数の計算要求の間で、実行が完了するまでの時間に差が生じるため、ＷＡＮ４００の帯域をより有効に使うことができるという点である。
【０１７２】
次に、上位管理装置６００の第３の構成を説明する。本構成は、同時にタスクグループ割り当て処理を行う計算要求の数をｎ個までに制限するものである。ｎは、あらかじめ決めた１以上の整数である。ｎ＝１の場合、上位管理装置６００の第２の構成と同じ動作となる。
【０１７３】
上位管理装置６００の第３の構成のブロック図は、上位管理装置６００の第２の構成と共通であり、図１４に示される。ただし、計算要求管理手段６１３およびタスクグループ割当手段６１４の動作は、上位管理装置６００の第２の構成における計算要求管理手段６１３およびタスクグループ割当手段６１４と異なる。また、制御情報記憶部６２２には、負荷情報，計算要求情報，およびタスクグループ情報に加え、タスクグループ割当カウンタが保持される。
【０１７４】
タスクグループ割当カウンタは、整数の値をとり、上位管理装置６００の起動時には、同時にタスクグループ割り当て処理を行う計算要求の数の上限がセットされる。タスクグループ割当手段６１４は、新しい計算要求についてタスクグループ割り当て処理を開始する際にタスクグループ割当カウンタの値を１減少させ、タスクグループ割り当て処理が終了するとタスクグループ割当カウンタの値を１増加させる。
【０１７５】
上位管理装置６００の第３の構成で用いられる通信手順は、上位管理装置６００の第１および第２の構成と共通である。
【０１７６】
上位管理装置６００の第３の構成におけるデータ処理装置６１０に常に存在するスレッドは、上位管理装置６００の第２の構成と同じく、メッセージ受信スレッドおよび計算要求管理スレッドの２つである。
【０１７７】
以下では、上位管理装置６００の第３の構成の動作のうち、上位管理装置６００の第２の構成との相違点を詳細に説明する。
【０１７８】
まず、上位管理装置６００の第３の構成における計算要求管理処理の動作を説明する。
【０１７９】
上位管理装置６００の第２の構成と同様、計算要求管理処理は、図１４における計算要求管理手段６１３によって行われ、計算要求管理スレッドの中で実行される。
【０１８０】
図１８は、上位管理装置６００の第３の構成における計算要求管理手段６１３の動作を示すフローチャートである。以下では、図１４および図１８を参照して、上位管理装置６００の第３の構成における計算要求管理処理の手順を説明する。
【０１８１】
ステップＡ３０１からＡ３０３までは、上位管理装置６００の第２の構成（図１６参照）と共通である。
【０１８２】
ステップＡ３０５では、計算要求管理手段６１３は、制御情報６２２中のタスクグループ割当カウンタの値を調べる。タスクグループ割当カウンタの値が０である場合、ステップＡ３０１に戻る。タスクグループ割当カウンタの値が０でない場合、ステップＡ３０６に進む。
【０１８３】
ステップＡ３０６では、計算要求管理手段６１３は、タスクグループ割当カウンタの値を１減らす。ここで、ステップＡ３０５とステップＡ３０６との間に、他のスレッドによってタスクグループ割当カウンタの値が変更されないことが保証される必要がある。この性質は、プログラミング言語やスレッドライブラリで提供される排他制御の機構を利用して実現することができる。
【０１８４】
次に、計算要求管理手段６１３は、新しいスレッドを起動し、そのスレッドでタスクグループ割り当て処理を開始する（ステップＡ３０７）。タスクグループ割り当て処理の対象となる計算要求は、ステップＡ３０２で検索された計算要求である。計算要求管理スレッドは、その後、ステップＡ３０２に戻り、次の未実行の計算要求を検索する。
【０１８５】
次に、上位管理装置６００の第３の構成におけるタスクグループ割り当て処理の手順を説明する。
【０１８６】
図１９は、上位管理装置６００の第３の構成におけるタスクグループ割当手段６１４の動作を示すフローチャートである。以下では、図１４および図１９を参照して、本構成におけるタスクグループ割り当て処理の手順を説明する。
【０１８７】
ステップＡ４０１からステップＡ４０７までの各ステップは、上位管理装置６００の第１および第２の構成（図１０参照）と共通である。ただし、ステップＡ４０４で、未実行のタスクグループの検索に失敗した場合、ステップＡ４０８に進むという点で異なる。
【０１８８】
ステップＡ４０８では、タスクグループ割当手段６１４は、制御情報記憶部６２２中のタスクグループ割当カウンタの値を１増加させた後、処理を終了する。
【０１８９】
タスクグループ割当カウンタは、新しいタスクグループ割当スレッドが開始するたびに１減少し、タスクグループ割当スレッドが終了するたびに１増加する。新しいタスクグループ割当スレッドを起動するには、タスクグループ割当カウンタの値が０よりも大きい必要があるため、同時に存在するタスクグループ割当スレッドの数は、上位管理装置６００が起動した直後のタスクグループ割当カウンタの数が上限となる。
【０１９０】
ここで、図２０を参照して、上位管理装置６００の第３の構成における各スレッドと各手段との関係を説明する。図２０において、矢印はスレッドに、長方形はスレッドが使用する上位管理装置６００中の各手段を示す。なお、図２０のスレッド構成は１つの実行例であって、常に図２０の通りのスレッドが存在するわけではない。
【０１９１】
スレッド１は、メッセージ受信スレッドであり、上位管理装置６００の第１および第２の構成におけるメッセージ受信スレッドと同等である。
【０１９２】
スレッド２およびスレッド３は、計算要求受信処理を行うためのスレッドであり、メッセージ受信スレッドから分岐する。これらのスレッドは、図１７のスレッド２およびスレッド３と同等である。
【０１９３】
スレッド４およびスレッド５は、タスクグループ受信処理および計算要求出力送信処理のためのスレッドであり、メッセージ受信スレッドから分岐する。これらのスレッドは、図１７のスレッド４およびスレッド５と同等である。
【０１９４】
スレッド６は、計算要求管理スレッドであり、すべての上位管理装置６００が１つずつ保持する。計算要求管理スレッドは、計算要求管理手段６１３を使用した計算要求管理処理を行う。
【０１９５】
スレッド７およびスレッド８は、タスクグループ割当手段６１４を使用したタスクグループ割当処理のためのスレッドである。これらのスレッドは、計算要求管理スレッドから分岐する。１つのスレッドが１つのタスクグループについてのタスクグループ割当処理に対応する。
【０１９６】
上位管理装置６００の第３の構成では、タスクグループの割り当てを行うスレッドの数は、あらかじめ決めた個数に限られる。このため、本構成は、上位管理装置６００の第１の構成と第２の構成との利点を併せ持つ。すなわち、計算要求の終了時刻に差をつけることによりＷＡＮ４００の帯域を有効に利用し、かつ処理時間の長い計算要求のために処理時間の短い計算要求が待たされる事態を防ぐことができる。
【０１９７】
次に、上位管理装置６００の各構成について、問い合わせに基づく負荷情報管理を行う場合の相違点について述べる。
【０１９８】
問い合わせに基づく負荷情報管理を行う場合、タスクグループの割り当てが完了した時点や、タスクグループの実行が完了した時点で、負荷情報の変更を行わない。具体的には、図１０のステップＡ４０７，図１９のステップＡ４０７，および図１１のステップＡ５０２で、負荷情報の変更を行わない。
【０１９９】
その代わりに、図４５に示す通信手順を使用して、各下位管理装置７００−ｉに負荷情報を問い合わせる必要がある。どの時点で負荷情報を問い合わせるかについては、いくつかの選択肢がある。１つの方法は、負荷情報を管理するためのスレッドを設け、そのスレッドが定期的に各下位管理装置７００−ｉに負荷情報を問い合わせるというものである。別の方法は、計算要求を受信したとき，タスクグループの出力データを受信したときなどのタイミングで、各下位管理装置７００−ｉに負荷情報を問い合わせるというものである。後者の方法の例として、図９のステップＡ２０８の前に、図４５の通信手順を用いた負荷情報の問い合わせを行う方法がある。別の例として、図１１のステップＡ５０３またはステップＡ５０５の後に負荷情報の問い合わせを行う方法がある。
【０２００】
４．下位管理装置７００−ｉの構成および動作
【０２０１】
次に、図１における下位管理装置７００−ｉの構成および動作を詳細に説明する。上位管理装置６００と同様に、本発明の実施の形態では、下位管理装置７００−ｉには３種類の構成がある。下位管理装置７００−ｉのどの構成についても、上位管理装置６００の任意の構成と組み合わせることが可能である。また、同一システム中に異なる構成の下位管理装置７００−ｉを混在して設置することも可能である。
【０２０２】
タスク実行装置８００−ｉｊについての負荷情報の管理方法には２種類の方法がある。１つは、個々のタスク実行装置８００−ｉｊに割り当てたタスクの数に基づく方法で、もう１つは、タスク実行装置８００−ｉｊへの負荷情報の問い合わせに基づく方法である。同一システム中に、異なる負荷情報の管理方法をとる下位管理装置７００−ｉを混在させることは可能であるが、高精度な負荷分散のためには、同一の負荷情報の管理方法をとるべきである。また、上位管理装置６００と下位管理装置７００−ｉとの間でも、同一の負荷情報の管理方法をとるべきである。
【０２０３】
以下では、割り当てたタスクの数に基づく負荷情報管理を行う場合について、下位管理装置７００−ｉの各構成の詳細を説明した後で、問い合わせに基づく負荷情報管理を行う場合の相違点を述べる。
【０２０４】
まず、下位管理装置７００−ｉの第１の構成を説明する。図２１は、下位管理装置７００−ｉの第１の構成の内部構造を示すブロック図を示す。図２１を参照すると、下位管理装置７００−ｉの第１の構成は、プログラム制御により動作するデータ処理装置７１０と、情報を記憶する記憶装置７２０と、ＬＡＮ／ＷＡＮを経由して他の計算機と通信するための計算機間通信装置７３０とを含む。
【０２０５】
記憶装置７２０は、入出力データ記憶部７２１と、制御情報記憶部７２２とを備える。入出力データ記憶部７２１は、タスクグループの入力データおよび出力データを保持する。入出力データ記憶部７２１に保持される個々のデータは、ファイル名によって識別される。制御情報記憶部７２２は、タスクの割り当てなどの動作を制御するための制御情報を保持する。
【０２０６】
データ処理装置７１０は、メッセージ受信手段７１１と、タスクグループ受信手段７１２と、タスク割当手段７１４と、タスク出力受信手段７１５と、タスクグループ出力送信手段７１６と、負荷情報送信手段７１７とを備える。
【０２０７】
メッセージ受信手段７１１は、計算機間通信装置７３０を通して、他の計算機から送られてきたメッセージを受け取り、メッセージの種類に従って、タスクグループ受信手段７１２またはタスク出力受信手段７１５にその計算機との通信処理を引き渡す。
【０２０８】
タスクグループ受信手段７１２は、上位管理装置６００からタスクグループの割り当てを受け取り、そのタスクグループに関する情報および入力データを記憶装置７２０に保存する。
【０２０９】
タスク割当手段７１４は、タスクグループを複数のタスクに分割し、それらを自サイトｉ内の各タスク実行装置８００−ｉｊに割り当てる。
【０２１０】
タスク出力受信手段７１５は、自サイトｉ内の各タスク実行装置８００−ｉｊからタスクの出力データを受け取り、入出力データ記憶部７２１に格納する。
【０２１１】
タスクグループ出力送信手段７１６は、タスク出力受信手段７１５で受け取った出力データを元にタスクグループの出力データを作成し、それを上位管理装置６００に送る。
【０２１２】
データ処理装置７１０は、同時に複数のスレッドを持つことができる。例えば、あるタスクグループの受信と、別のタスクグループの受信とを同時に行うことができる。
【０２１３】
次に、下位管理装置７００−ｉが他の計算機と通信する際の通信手順を説明する。下位管理装置７００−ｉの第１，第２および第３の構成の間で、使用する通信手順は共通である。
【０２１４】
下位管理装置７００−ｉが他の計算機と行う通信には、タスクグループの割り当て，タスク割り当て，タスクの出力データの送受信，タスクグループの出力データの送受信，および負荷情報の問い合わせの５種類があり、それぞれ図４０，図４１，図４２，図４３，および図４５で示される。このうち、タスクグループの割り当て，タスクグループの出力データの送受信，および負荷情報の問い合わせについては、上位管理装置６００の説明の際に述べた通信手順と同一である。以下では、タスク割り当ておよびタスク出力データ送受信の通信手順を説明する。
【０２１５】
まず、図４１を参照して、下位管理装置７００−ｉがタスク実行装置８００−ｉｊにタスクを割り当てる間の通信手順を説明する。
【０２１６】
最初に、下位管理装置７００−ｉは、タスク実行装置８００−ｉｊに、タスク割り当てを示すメッセージ識別子（以下、タスク割当メッセージと略す）に続き、タスクＩＤと、タスク実行プログラム名と、タスクの入出力ファイル名のリストとを送る（Ｐ３０１）。
【０２１７】
タスク実行装置８００−ｉｊは、Ｐ３０１の通信内容を受け取った後、下位管理装置７００−ｉに応答を送る（Ｐ３０２）。タスクの実行が可能である場合、応答の内容は、ＯＫメッセージと、必要な入力ファイル名のリストとである。タスクの実行が不可能である場合、応答の内容は、ＮＧメッセージである。
【０２１８】
Ｐ３０２での応答がＯＫメッセージの場合、下位管理装置７００−ｉは、Ｐ３０２で受け取ったファイル名のリストに対応する入力データをタスク実行装置８００−ｉｊに送る（Ｐ３０３）。
【０２１９】
タスク実行装置８００−ｉｊは、Ｐ３０３の入力データを受信すると、応答としてＯＫメッセージを下位管理装置７００−ｉに送る（Ｐ３０４）。
【０２２０】
次に、図４２を参照して、タスク実行装置８００−ｉｊと下位管理装置７００−ｉとの間での、タスク出力送受信の際の通信手順を説明する。
【０２２１】
最初に、タスク実行装置８００−ｉｊは、下位管理装置７００−ｉに、タスク実行完了を示すメッセージ識別子（以下、タスク実行完了メッセージと略す）に続き、タスクＩＤと、タスクの出力データとを送る（Ｐ４０１）。
【０２２２】
下位管理装置７００−ｉは、Ｐ４０１の通信内容を受け取った後、タスク実行装置８００−ｉｊに応答を送る（Ｐ４０２）。下位管理装置７００−ｉが正常に出力データを受信できた場合、応答はＯＫメッセージである。下位管理装置７００−ｉが出力データの受信に失敗した場合、応答はＮＧメッセージである。
【０２２３】
次に、下位管理装置７００−ｉの第１の構成で使用する制御情報について説明する。下位管理装置７００−ｉは、負荷情報，タスクグループ情報，およびタスク情報の３種類の制御情報を使用する。これらの制御情報は、図２１における制御情報記憶部７２２に格納される。
【０２２４】
図２２は、下位管理装置７００−ｉが保持する負荷情報の例を示す。サイトｉに属する下位管理装置７００−ｉが持つ負荷情報は、サイトｉに属する各タスク実行装置８００−ｉｊについて、名前，計算能力，および負荷の大きさからなる。計算能力の基準には、タスク実行装置８００−ｉｊが有するプロセッサの数、あるいは性能測定用のプログラムを用いる方法がある。前述した通り、ここでは、負荷の大きさは、タスク実行装置８００−ｉｊに割り当てたタスクの数である。
【０２２５】
図２３は、下位管理装置７００−ｉが保持するタスクグループ情報の例を示す。タスクグループ情報は、上位管理装置６００から割り当てられたタスクグループについての情報である。タスクグループ情報には、各タスクグループについての、タスクグループＩＤと、タスク実行プログラム名と、実行状態と、タスクグループを構成する個々のタスクのタスクＩＤおよび入出力ファイル名とが含まれる。実行状態は、そのタスクグループに関する処理がどの段階にあるかを記憶するもので、未実行，実行中，および完了の３通りの値をとる。タスクグループ情報に新しいタスクグループの情報を追加した時点では、そのタスクグループの実行状態は未実行である。
【０２２６】
図２４は、下位管理装置７００−ｉが保持するタスク情報の例を示す。タスク情報は、タスクグループを分割して作成されたタスクについての情報である。タスク情報には、各タスクについての、タスクＩＤと、入出力ファイル名と、実行状態とを含む。タスクの実行状態は、そのタスクの実行がどの段階にあるかを示すもので、未実行，実行中，および完了の３通りの値をとる。タスク情報に新しいタスクの情報を追加した時点では、そのタスクの実行状態は未実行である。
【０２２７】
次に、下位管理装置７００−ｉの第１の構成の各部の動作を、フローチャートを用いて詳細に説明する。
【０２２８】
まず、下位管理装置７００−ｉの第１の構成におけるメッセージ受信処理の手順を説明する。
【０２２９】
メッセージ受信処理は、下位管理装置７００−ｉが他の計算機からメッセージを受け取り、メッセージの種類に応じた処理の実行を開始する作業である。メッセージ受信処理は、図２１におけるメッセージ受信手段７１１を用いて行われる。データ処理装置７１０は、常にメッセージ受信処理のためのスレッドを１つ持つ。
【０２３０】
以下では、図２１および図２５を参照して、下位管理装置７００−ｉの第１の構成におけるメッセージ受信処理の手順を説明する。
【０２３１】
まず、メッセージ受信手段７１１は、計算機間通信装置７３０を通して、送られたメッセージ識別子を受信する（ステップＢ１０１）。
【０２３２】
次に、メッセージ受信手段７１１は、受信したメッセージ識別子の内容に応じて分岐する（ステップＢ１０２）。メッセージ識別子がタスクグループの割り当ての場合はステップＢ１０３に、タスク実行完了の場合はステップＢ１０４に、負荷情報問い合わせの場合はステップＢ１０５に、それ以外の場合はステップＢ１０６に進む。
【０２３３】
ステップＢ１０３では、メッセージ受信手段７１１は、後述するタスクグループ受信処理を開始する。その際、新しいスレッドを作成し、そのスレッドを使用してタスクグループ受信処理が行われる。
【０２３４】
ステップＢ１０４では、メッセージ受信手段７１１は、後述するタスク出力受信処理を開始する。その際、新しいスレッドを作成し、そのスレッドを使用してタスク出力受信処理が行われる。
【０２３５】
ステップＢ１０５では、メッセージ受信手段７１１は、負荷情報送信処理を開始する。負荷情報送信処理は、負荷情報送信手段７１７が実行する。負荷情報送信処理では、制御情報記憶部７２２中の負荷情報（図２２参照）を参照して、各タスク実行装置８００−ｉｊの計算能力および負荷の大きさを合計し、その結果を上位管理装置６００に送信する。その際、図４５の通信手順が用いられる。負荷情報送信処理を新しいスレッドを起動して実行するか、ステップＢ１０２までの実行に使われたスレッドと同じスレッドで実行するか、のいずれかの方法をとることができる。
【０２３６】
ステップＢ１０６では、メッセージ受信手段７１１は、メッセージ識別子を送ってきた計算機に対してＮＧメッセージを送り、通信を終了する。
【０２３７】
ステップＢ１０３，Ｂ１０４，Ｂ１０５，Ｂ１０６のいずれかが完了すると、メッセージ受信手段７１１は、ステップＢ１０１に戻り、次のメッセージ識別子を受信する。
【０２３８】
次に、図２１および図２６を参照し、下位管理装置７００−ｉにおけるタスクグループ受信手段７１２の処理手順を説明する。タスクグループ受信処理は、上位管理装置６００からのタスクグループの割り当てを受信する処理であり、図２のステップＳ２に相当する。タスクグループの割り当ての受信には、図４０に示す通信手順が用いられる。タスクグループ受信処理は、タスクグループ受信手段７１２が実行する。また、上位管理装置６００との通信の際に、図４０に示した通信手順を用いる。
【０２３９】
まず、タスクグループ受信手段７１２は、上位管理装置６００から、タスクグループＩＤと、タスク実行プログラム名と、各タスクのタスクＩＤおよび入出力ファイル名とを受け取る（ステップＢ２０１）。
【０２４０】
次に、タスクグループ受信手段７１２は、ステップＢ２０１で割り当てられたタスクグループが実行可能であるかどうかを判断する（ステップＢ２０２）。実行不可能な場合には、タスクを実行するためのプログラムが存在しない場合と、負荷の大きさが上限を越えている場合とがある。プログラムの存在に基づいて実行可能かどうかを判断するには、図２１の制御情報記憶部７２２に、自サイトｉ内のタスク実行装置８００−ｉｊが実行可能なプログラムのリストを含める必要がある。負荷の大きさに基づいて実行可能かどうかを判断するには、あらかじめ負荷の大きさの上限を決めておく必要がある。負荷の大きさは、図２１の制御情報記憶部７２２中の負荷情報（図２２参照）から取得することができる。
【０２４１】
ステップＢ２０２でタスクグループが実行不可能と判断された場合、タスクグループ受信手段７１２は、上位管理装置６００にＮＧメッセージを送り、処理を終了する（ステップＢ２０３）。
【０２４２】
ステップＢ２０２でタスクグループが実行可能と判断された場合、タスクグループ受信手段７１２は、ＯＫメッセージとともに、ステップＢ２０１で受け取った入力ファイル名のうち、入出力データ記憶部７２１に含まれないファイル名のリストを上位管理装置６００に送る（ステップＢ２０４）。
【０２４３】
次に、タスクグループ受信手段７１２は、ステップＢ２０４で送ったファイル名に対応する入力データを上位管理装置６００から受信し、入出力データ記憶部７２１に保存する（ステップＢ２０５）。
【０２４４】
次に、タスクグループ受信手段７１２は、ステップＢ２０１で割り当てられたタスクグループＩＤと、タスク実行プログラム名と、タスクグループ中のタスクＩＤとを、制御情報記憶部７２２中のタスクグループ情報（図２３参照）に追加する（ステップＢ２０６）。
【０２４５】
タスクグループ情報の更新が終わった後で、タスクグループ受信手段７１２は、上位管理装置６００にＯＫメッセージを送る（ステップＢ２０７）。
【０２４６】
ステップＢ２０７が完了すると、タスクグループ受信手段７１２は、後述するタスク割り当て処理を開始する（ステップＢ２０８）。タスク割り当て処理の対象となるタスクグループは、ステップＢ２０１で受信したタスクグループである。タスク割り当て処理を開始する際に、新しいスレッドは作成しない。すなわち、タスクグループ受信処理に使用したスレッドと同一のスレッドでタスク割り当て処理を行う。
【０２４７】
次に、下位管理装置７００−ｉの第１の構成におけるタスク割り当て処理の詳細を説明する。
【０２４８】
タスク割り当て処理は、タスクグループ受信処理によって受信したタスクグループを個々のタスクに分割し、それらを各タスク実行装置８００−ｉｊに割り当てる処理である。タスク割り当て処理の際、図４１に示す通信手順が用いられる。このタスク割り当て処理は、図２におけるステップＳ３に相当し、図２１におけるタスク割当手段７１４によって実行される。タスク割り当て処理は、タスクグループ受信処理と同じスレッドで実行される。
【０２４９】
図２７は、下位管理装置７００−ｉの第１の構成におけるタスク割当手段７１４の動作を示すフローチャートである。以下では、図２１および図２７を参照して、本構成におけるタスク割り当て処理の手順を説明する。
【０２５０】
まず、タスク割当手段７１４は、制御情報記憶部７２２中のタスクグループ情報（図２３参照）を参照し、処理対象のタスクグループの実行状態を未実行から実行中に変更する（ステップＢ４０１）。
【０２５１】
次に、タスク割当手段７１４は、処理対象のタスクグループを個々のタスクに分割し、それらのタスクに関する情報を、制御情報記憶部７２２中のタスク情報（図２４参照）に格納する（ステップＢ４０２）。これらのタスクの実行状態は未実行である。
【０２５２】
次に、タスク割当手段７１４は、制御情報記憶部７２２中のタスク情報（図２４参照）を調べ、実行状態が未実行であるタスクを検索する（ステップＢ４０３）。ステップＢ４０３で該当するタスクが複数ある場合、そのうちの１つを選ぶ。選択方法の例として、タスクＩＤが最小であるものを選ぶという方法がある。
【０２５３】
次に、タスク割当手段７１４は、ステップＢ４０３で未実行のタスクの検索に成功したか否かに応じて分岐する（ステップＢ４０４）。検索に成功した場合にはステップＢ４０５に進み、検索に失敗した場合はタスク割り当て処理を終了する。
【０２５４】
ステップＢ４０５では、タスク割当手段７１４は、選択したタスクをどのタスク実行装置８００−ｉｊに割り当てるかについての優先順位を決める。優先順位の決定には、制御情報記憶部７２２中の負荷情報（図２２参照）を参照し、各タスク実行装置８００−ｉｊについて（負荷の大きさ）／（計算能力）で計算される点数を用いる。この点数が小さいほど優先度が高い。負荷情報の内容が図２２で示される場合、各タスク実行装置ｗｏｒｋｅｒ１，ｗｏｒｋｅｒ２，ｗｏｒｋｅｒ３の点数はそれぞれ０．２，０．０５，０．６となり、優先順位はｗｏｒｋｅｒ２，ｗｏｒｋｅｒ１，ｗｏｒｋｅｒ３の順となる。
【０２５５】
次に、タスク割当手段７１４は、ステップＢ４０５で決めた優先順位の順に、各タスク実行装置８００−ｉｊに対して、検索されたタスクの割り当てを試みる（ステップＢ４０６）。その際、図４１の通信手順を用いる。優先順位が最下位のタスク実行装置８００−ｉｊへの割り当てに失敗した場合、一定時間待機した後、優先順位が１番目のタスク実行装置８００−ｉｊから再度割り当てを試みる。
【０２５６】
ステップＢ４０６でタスクの割り当てに成功すると、タスク割当手段７１４は、制御情報記憶部７２２中の負荷情報（図２２参照）およびタスク情報（図２４参照）を更新する（ステップＢ４０７）。負荷情報についての更新内容は、タスクを割り当てたタスク実行装置８００−ｉｊについて、割り当て済みタスク数を１だけ増やすというものである。タスク情報についての更新内容は、割り当てたタスクについての実行状態を未実行から実行中に変更するというものである。
【０２５７】
ステップＢ４０７が完了すると、タスク割当手段７１４は、ステップＢ４０３に戻り、次の未実行のタスクの割り当てを行う。
【０２５８】
次に、下位管理装置７００−ｉの第１の構成におけるタスク出力受信処理の詳細を説明する。
【０２５９】
タスク出力受信処理は、タスク実行装置８００−ｉｊから、過去に割り当てたタスクの実行結果である出力データを受信する処理であり、図２のステップＳ４に相当する。出力データの受信には、図４２に示す通信手順が用いられる。タスク出力受信処理は、タスク出力受信手段７１５によって実行される。
【０２６０】
図２８は、下位管理装置７００−ｉのタスク出力受信手段７１５の動作を示すフローチャートである。以下では、図２１および図２８を参照して、下位管理装置７００−ｉの第１の構成におけるタスク出力受信処理の手順を説明する。
【０２６１】
まず、タスク出力受信手段７１５は、計算機間通信装置７３０を通して、タスク実行装置８００−ｉｊからタスクＩＤおよびタスクの出力データを受け取り、受け取った出力データを入出力データ記憶部７２１に格納する（ステップＢ５０１）。ここで、タスク実行装置８００−ｉｊは、下位管理装置７００−ｉにタスク実行完了メッセージを送ったタスク実行装置である。
【０２６２】
出力データの受信が完了した後、タスク出力受信手段７１５は、制御情報記憶部７２２中の負荷情報（図２２参照）およびタスク情報（図２４参照）を更新する（ステップＢ５０２）。負荷情報についての更新内容は、出力データを送信したタスク実行装置８００−ｉｊについて、割り当て済みタスク数を１だけ減らすというものである。タスク情報についての更新内容は、ステップＢ４０１で受け取ったタスクＩＤに該当するタスクについて、実行状態を実行中から完了に変更するというものである。
【０２６３】
次に、タスク出力受信手段７１５は、タスク実行装置８００−ｉｊにＯＫメッセージを送信する（ステップＢ５０３）。
【０２６４】
さらに、タスク出力受信手段７１５は、制御情報記憶部７２２中のタスク情報（図２４参照）を参照して、同一のタスクグループに属するすべてのタスクの実行状態が完了であるかどうかを調べる（ステップＢ５０４）。条件を満たす場合にはステップＢ５０５へ進み、条件を満たさない場合にはタスク出力受信処理を終了する。
【０２６５】
ステップＢ５０５では、タスク出力受信手段７１５は、ステップＢ５０４の条件に該当するタスクグループの出力データについて、後述するタスクグループ出力送信処理を行う。タスクグループ出力送信の際に、新しいスレッドは作成しない。
【０２６６】
次に、下位管理装置７００−ｉの第１の構成におけるタスクグループ出力送信処理の詳細を説明する。
【０２６７】
タスクグループ出力送信処理は、上位管理装置６００に対して、過去に割り当てられたタスクグループの出力データを送信する処理であり、図２のステップＳ５に相当する。タスクグループ出力送信処理には、図２１におけるタスクグループ出力送信手段７１６が用いられ、図４３の通信手順に従って出力データの送受信が行われる。
【０２６８】
図２９は、下位管理装置７００−ｉのタスクグループ出力送信手段７１６の動作を示すフローチャートである。以下では、図２１および図２９を参照して、下位管理装置７００−ｉの第１の構成におけるタスクグループ出力送信処理の手順を説明する。
【０２６９】
まず、タスクグループ出力送信手段７１６は、同一のタスクグループを構成するすべてのタスクの出力データを集めて、タスクグループの出力データを生成する（ステップＢ６０１）。タスクグループの出力データを生成する方法には、上位管理装置６００における計算要求の計算結果の生成（図１２参照）と同様に、タスクの出力データを単純に連結する方法，連結後に圧縮する方法，および後処理を加える方法がある。
【０２７０】
次に、タスクグループ出力送信手段７１６は、上位管理装置６００に、タスクグループ実行完了メッセージと、完了したタスクグループのタスクグループＩＤと、タスクグループの出力データとを送る（ステップＢ６０２）。
【０２７１】
次に、タスクグループ出力送信手段７１６は、上位管理装置６００からＯＫメッセージを受信する（ステップＢ６０３）。
【０２７２】
最後に、タスクグループ出力送信手段７１６は、制御情報記憶部７２２中のタスクグループ情報（図２３参照）を参照し、完了したタスクグループの実行状態を実行中から完了に変更する（ステップＢ６０４）。
【０２７３】
ここでは、図３０を参照して、下位管理装置７００−ｉの第１の構成における各スレッドと各手段との関係を説明する。図３０において、矢印はスレッドに、長方形はスレッドが使用する下位管理装置７００−ｉ中の各手段を示す。なお、図３０のスレッド構成は１つの実行例であって、常に図３０の通りのスレッドが存在するわけではない。
【０２７４】
スレッド１は、メッセージ受信スレッドであり、メッセージ受信手段７１１と一対一に対応する。メッセージ受信スレッドは、すべての下位管理装置７００−ｉが１つずつ保持する。他のすべてのスレッドは、メッセージ受信スレッドから分岐する。
【０２７５】
スレッド２およびスレッド３は、タスクグループ受信処理，およびそのタスクグループに関するタスク割当処理を行うためのスレッドである。１つのタスクグループの受信に１つのスレッドが対応する。図３０では、タスクグループの受信およびタスク割り当てのためのスレッドは２つあるが、実際には任意の数だけ存在することができる。これらのスレッドは、タスクグループの受信のためにタスクグループ受信手段７１２を使い、タスクの割り当てのためにタスク割当手段７１４を使う。
【０２７６】
スレッド４およびスレッド５は、タスク実行装置８００−ｉｊからのタスク出力受信処理およびタスクグループ出力送信処理を行うためのスレッドである。タスクグループ出力送信処理は常に行われるとは限らない。１つのタスクの出力データの受信に１つのタスクが対応する。図３０では２つのスレッドが存在するが、実際には任意の数だけ存在することができる。これらのスレッドは、タスク出力受信処理のためにタスク出力受信手段７１５を使い、タスクグループ出力送信処理のためにタスクグループ出力送信手段７１６を使う。
【０２７７】
下位管理装置７００−ｉの第１の構成では、個々のタスクグループに対応したスレッドが作られ、複数のタスクグループについてのタスク割り当てが並行して行われる。このため、下位管理装置７００−ｉに新たなタスクグループが到着すると、すでに別のタスクグループが実行中であっても直ちに実行が開始される。このため、処理の量が多いタスクグループの実行中に、処理の量が小さいタスクグループが新たに到着した場合、後者のタスクグループの実行が長期間待たされるという事態を避けることができる。
【０２７８】
次に、下位管理装置７００−ｉの第２の構成を説明する。
【０２７９】
図３１は、下位管理装置７００−ｉの第２および第３の構成のブロック図を示す。下位管理装置７００−ｉの第１の構成（図２１参照）との相違点は、タスクグループ管理手段７１３が新たに加わっていることである。タスクグループ管理手段７１３は、複数のタスクグループについてのタスク割り当て処理の動作を制御するための、タスクグループ管理処理を行う。それ以外の部分は、下位管理装置７００−ｉの第１の構成と共通である。ただし、タスクグループ受信手段７１２の動作は、下位管理装置７００−ｉの第１の構成におけるタスクグループ受信手段７１２とは異なる。
【０２８０】
下位管理装置７００−ｉの第２の構成では、データ処理装置７１０中に常に存在しているスレッドは、メッセージ受信スレッドと、タスクグループ管理スレッドとの２つがある。メッセージ受信スレッドは、下位管理装置７００−ｉの第１の構成と同じく、図８に示されるメッセージ受信処理を実行する。一方、タスクグループ管理スレッドは、後述するタスクグループ管理処理を実行する。２つのスレッドとも、動作中に増減することはない。
【０２８１】
以下では、下位管理装置７００−ｉの第２の構成の動作のうち、下位管理装置７００−ｉの第１の構成との相違点を詳細に説明する。
【０２８２】
まず、下位管理装置７００−ｉの第２の構成におけるタスクグループ受信処理を説明する。
【０２８３】
図３２は、下位管理装置７００−ｉの第２の構成におけるタスクグループ受信手段６１２の動作を示すフローチャートである。図３２のステップＢ２０１からステップＢ２０７は、下位管理装置７００−ｉの第１の構成におけるタスクグループ受信処理（図２６参照）と共通であり、ステップＢ２０８がステップＢ２０９に置換されている。ステップＢ２０９では、前述したタスクグループ管理手段７１３に対して通知を送り、タスクグループ受信処理を終了する。この通知によってタスクグループ管理処理が開始される。
【０２８４】
次に、下位管理装置７００−ｉの第２の構成におけるタスクグループ管理処理を説明する。
【０２８５】
タスクグループ管理処理は、図３１におけるタスクグループ管理手段７１３により、タスクグループ管理スレッドで実行される。タスクグループ管理スレッドには動作状態と待機状態との２つの状態があり、データ処理装置７１０が動作を開始した時点では、タスクグループ管理スレッドの状態は待機状態である。タスクグループ受信処理（図３２参照）のステップＢ２０９で通知が送られると、動作状態に移る。
【０２８６】
図３３は、下位管理装置７００−ｉの第２の構成におけるタスクグループ管理手段７１３の動作を示すフローチャートである。以下では、図３３を参照して、本構成におけるタスクグループ管理手段７１３の動作を説明する。
【０２８７】
まず、タスクグループ管理手段７１３は、タスクグループ受信手段７１２が発行する通知を待つ（ステップＢ３０１）。通知を受け取ると、タスクグループ管理手段７１３は、動作状態に移り、ステップＢ３０２に進む。
【０２８８】
ステップＢ３０２では、タスクグループ管理手段７１３は、制御情報記憶部７２２中のタスクグループ情報（図２３参照）を参照して、実行状態が未実行であるタスクグループを検索する。該当するタスクグループが複数ある場合、その中から１つだけ選択する。選択方法の一例として、タスクグループＩＤが最小のものを選ぶという方法がある。
【０２８９】
次に、タスクグループ管理手段７１３は、ステップＢ３０２での検索に成功したかどうかを判断する（ステップＢ３０３）。成功した場合はステップＢ３０４に進む。失敗した場合は、ステップＢ３０１に戻り、待機状態に移る。失敗する場合には、タスクグループ情報中に実行すべきタスクグループがない場合が該当する。
【０２９０】
ステップＢ３０４では、タスクグループ管理手段７１３は、タスク割当手段７１４によりタスク割り当て処理を行う。その際、新しいスレッドを起動せず、タスクグループ管理スレッドの中でタスク割り当て処理が実行される。タスク割り当て処理の手順は、下位管理装置７００−ｉの第１の構成と共通である。タスク割り当て処理が完了すると、タスクグループ管理手段７１３は、ステップＢ３０２に戻る。
【０２９１】
ここで、図３４を参照して、下位管理装置７００−ｉの第２の構成における各スレッドと各手段との関係を説明する。図３４において、矢印はスレッドに、長方形はスレッドが使用する下位管理装置７００−ｉ中の各手段を示す。なお、図３４のスレッド構成は１つの実行例であって、常に図３４の通りのスレッドが存在するわけではない。
【０２９２】
スレッド１は、メッセージ受信スレッドであり、下位管理装置７００−ｉの第１の構成におけるメッセージ受信スレッドと同等である。
【０２９３】
スレッド２およびスレッド３は、タスクグループ受信処理を行うためのスレッドであり、メッセージ受信スレッドから分岐する。１つのタスクグループの受信に１つのスレッドが対応する。これらのスレッドは任意の数だけ存在することができる。これらのスレッドは、タスクグループ受信処理のためにタスクグループ受信手段７１２を使う。
【０２９４】
スレッド４およびスレッド５は、タスク実行装置８００−ｉｊからのタスク出力受信処理およびタスクグループ出力送信処理に対応するスレッドであり、図３０のスレッド４およびスレッド５と同等である。
【０２９５】
スレッド６は、タスクグループ管理スレッドであり、すべての下位管理装置７００−ｉが１つずつ保持する。タスクグループ管理スレッドは、タスクグループ管理手段７１３を使用したタスクグループ管理処理と、タスク割当手段７１４を使用したタスク割当処理とを行う。
【０２９６】
下位管理装置７００−ｉの第２の構成では、タスクの割り当てを行うのはデータ処理装置７１０中の単一のスレッドに限られる。このため、下位管理装置７００−ｉが複数のタスクグループを受け取った場合でも、１つのタスクグループに含まれるすべてのタスクの割り当てが終了するまでは、次のタスクグループに含まれるタスクの割り当てを行うことはない。このことの利点は、近い時刻に到着した複数のタスクグループの間で、実行が完了するまでの時間に差が生じるため、ＬＡＮ９００−ｉの帯域をより有効に使うことができるという点である。
【０２９７】
次に、下位管理装置７００−ｉの第３の構成を説明する。本構成は、同時に割り当て処理を行うタスクグループの数をｎ個までに制限するものである。ｎは、あらかじめ決めた１以上の整数である。ｎ＝１の場合、下位管理装置７００−ｉの第２の構成と同じ動作となる。同時に割り当て処理を行うタスクグループの数を制御するため、タスク割当カウンタ（図３１参照）を設置する。タスク割当カウンタは整数の値をとり、初期値はｎである。タスク割当カウンタの値は、タスク割り当てのためのスレッド起動時に１減少し、終了時に１増加する。タスク割当カウンタの値が０のときは、タスク割り当てのためのスレッドを起動することができない。
【０２９８】
下位管理装置７００−ｉの第３の構成のブロック図は、下位管理装置７００−ｉの第２の構成と共通であり、図３１に示される。ただし、タスクグループ管理手段７１３およびタスク割当手段７１４の動作は、下位管理装置７００−ｉの第２の構成におけるタスクグループ管理手段７１３およびタスク割当手段７１４と異なる。また、制御情報記憶部７２２には、負荷情報，タスクグループ情報，およびタスク情報に加え、タスク割り当てカウンタが保持される。タスク割当カウンタは、整数の値をとり、下位管理装置７００−ｉの起動時には、同時にタスク割り当て処理を行うタスクの数の上限がセットされる。新しいタスクグループについてタスク割り当て処理を開始する際に、タスク割当カウンタの値を１減少させ、タスク割り当て処理が終了するとタスク割当カウンタの値を１増加させる。
【０２９９】
下位管理装置７００−ｉの第３の構成で用いられる通信手順は、下位管理装置７００−ｉの第１および第２の構成で用いられる通信手順と共通である。
【０３００】
下位管理装置７００−ｉの第３の構成におけるデータ処理装置７１０に常に存在するスレッドは、下位管理装置７００−ｉの第２の構成と同じく、メッセージ受信スレッドと、タスクグループ管理スレッドとの２つである。
【０３０１】
以下では、下位管理装置７００−ｉの第３の構成の動作のうち、下位管理装置７００−ｉの第２の構成との相違点について詳細に説明する。
【０３０２】
まず、下位管理装置７００−ｉの第３の構成におけるタスクグループ管理処理の動作を説明する。
【０３０３】
下位管理装置７００−ｉの第２の構成と同様、タスクグループ管理処理は、図３１におけるタスクグループ管理手段７１３によって行われ、タスクグループ管理スレッドの中で実行される。
【０３０４】
図３５は、下位管理装置７００−ｉの第３の構成におけるタスクグループ管理手段７１３の動作を示すフローチャートである。以下では、図３１および図３５を参照して、下位管理装置７００−ｉの第３の構成におけるタスクグループ管理処理の手順を説明する。
【０３０５】
ステップＢ３０１からステップＢ３０３までは、下位管理装置７００−ｉの第２の構成（図３３参照）と共通である。
【０３０６】
ステップＢ３０５では、タスクグループ管理手段７１３は、制御情報記憶部７２２中のタスク割当カウンタの値を調べる。タスク割当カウンタの値が０である場合、ステップＢ３０１に戻る。タスク割当カウンタの値が０でない場合、ステップＢ３０６に進む。
【０３０７】
ステップＢ３０６では、タスクグループ管理手段７１３は、タスク割当カウンタの値を１減らす。ここで、ステップＢ３０５とステップＢ３０６との間に、他のスレッドによってタスク割当カウンタの値が変更されないことが保証される必要がある。
【０３０８】
次に、タスクグループ管理手段７１３は、新しいスレッドを起動し、そのスレッドでタスク割り当て処理を開始する（ステップＢ３０７）。タスク割り当て処理で処理対象となるタスクグループは、ステップＢ３０２で選択されるタスクグループである。タスクグループ管理手段７１３は、その後ステップＢ３０２に戻り、次の未実行のタスクグループを検索する。
【０３０９】
次に、タスクグループ管理手段７１３は、下位管理装置７００−ｉの第３の構成におけるタスク割り当て処理の手順を説明する。
【０３１０】
図３６は、下位管理装置７００−ｉの第３の構成におけるタスク割当手段７１４の動作を示すフローチャートである。以下では、図３１および図３６を参照して、本構成におけるタスク割り当て処理の手順を説明する。
【０３１１】
ステップＢ４０１からステップＢ４０７までの各ステップは、下位管理装置７００−ｉの第１および第２の構成（図２７参照）と共通である。ただし、ステップＢ４０４で、未実行のタスクの検索に失敗した場合、ステップＢ４０８に進むという点で異なる。
【０３１２】
ステップＢ４０８では、タスク割当手段７１４は、制御情報記憶部７２２中のタスク割当カウンタの値を１増加させた後、処理を終了する。
【０３１３】
タスク割当カウンタは、新しいタスク割当スレッドが開始するたびに１減少し、タスク割当スレッドが終了するたびに１増加する。新しいタスク割当スレッドを起動するには、タスク割当カウンタの値が０よりも大きい必要があるため、同時に存在するタスク割当スレッドの数は、上位管理装置６００が起動した直後のタスク割当カウンタの数が上限となる。
【０３１４】
ここで、図３７を参照して、下位管理装置７００−ｉの第３の構成における各スレッドと各手段との関係を説明する。図３７において、矢印はスレッドに、長方形はスレッドが使用する下位管理装置７００−ｉ中の各手段を示す。なお、図３７のスレッド構成は１つの実行例であって、常に図３７の通りのスレッドが存在するわけではない。
【０３１５】
スレッド１は、メッセージ受信スレッドであり、下位管理装置７００−ｉの第１および第２の構成におけるメッセージ受信スレッドと同等である。
【０３１６】
スレッド２およびスレッド３は、タスクグループ受信処理を行うためのスレッドであり、メッセージ受信スレッドから分岐する。これらのスレッドは、図３４のスレッド２およびスレッド３と同等である。
【０３１７】
スレッド４およびスレッド５は、タスク出力受信処理およびタスクグループ出力送信処理のためのスレッドであり、メッセージ受信スレッドから分岐する。これらのスレッドは、図３４のスレッド４およびスレッド５と同等である。
【０３１８】
スレッド６は、タスクグループ管理スレッドであり、すべての下位管理装置７００−ｉが１つずつ保持する。タスクグループ管理スレッドは、タスクグループ管理手段７１３を使用したタスクグループ管理処理を行う。
【０３１９】
スレッド７およびスレッド８は、タスク割当手段７１４を使用したタスク割当処理のためのスレッド、すなわちタスク割当スレッドである。これらのスレッドはタスクグループ管理スレッドから分岐する。
【０３２０】
下位管理装置７００−ｉの第３の構成では、タスクの割り当てを行うスレッドの数は、あらかじめ決めた個数に限られる。このため、本構成は、下位管理装置７００−ｉの第１の構成と第２の構成との利点を併せ持つ。すなわち、タスクグループの終了時刻に差をつけることによりＷＡＮ４００の帯域を有効に利用し、かつ処理時間の長いタスクグループのために、処理時間の短いタスクグループが待たされる事態を防ぐことができる。
【０３２１】
次に、下位管理装置７００−ｉの各構成について、問い合わせに基づく負荷情報管理を行う場合の相違点について述べる。
【０３２２】
問い合わせに基づく負荷情報管理を行う場合、下位管理装置７００−ｉは、タスクの割り当てが成功したときやタスクの実行が完了した際に、制御情報記憶部７２２中の負荷情報（図２２参照）の内容を変更する必要はない。具体的には、図２７のステップＢ４０７，図３６のステップＢ４０７，および図２８のステップＢ５０２で、負荷情報の変更を行わない。
【０３２３】
その代わりに、下位管理装置７００−ｉは、図４５に示す通信手順を使用して、各タスク実行装置８００−ｉｊに負荷情報を問い合わせる必要がある。どの時点で負荷情報を問い合わせるかについては、いくつかの選択肢がある。１つの方法は、負荷情報を管理するためのスレッドを設け、そのスレッドが定期的に各タスク実行装置８００−ｉｊに負荷情報を問い合わせるというものである。別の方法は、タスクグループの割り当てを受信したとき、タスクの出力データを受信したときなどのタイミングで、各タスク実行装置８００−ｉｊに負荷情報を問い合わせるというものである。具体的には、図２６のステップＢ２０８の後に、図４５の通信手順を用いた負荷情報の問い合わせを行う方法がある。別の例として、図２８のステップＢ５０３またはステップＢ５０５の後に負荷情報の問い合わせを行う方法がある。
【０３２４】
５．タスク実行装置８００−ｉｊの構成および動作
【０３２５】
次に、図１におけるタスク実行装置８００−ｉｊの構成および動作を説明する。
【０３２６】
図３８は、タスク実行装置８００−ｉｊのブロック図を示す。図３８を参照すると、本実施の形態におけるタスク実行装置８００−ｉｊは、プログラム制御により動作するデータ処理装置８１０と、情報を記憶する記憶装置８２０と、ＬＡＮ／ＷＡＮを経由して他の計算機と通信するための計算機間通信装置８３０とを含む。
【０３２７】
データ処理装置８１０は、メッセージ受信手段８１１と、タスク受信手段８１２と、タスク実行手段８１３と、タスク出力送信手段８１４と、負荷情報送信手段８１５とを有する。
【０３２８】
他の計算機からのメッセージが到着すると、メッセージ受信手段８１１は、計算機間通信装置８３０を通してメッセージを受信し、メッセージ識別子に応じてタスク受信手段８１２または負荷情報送信手段８１５に処理を引き渡す。
【０３２９】
下位管理装置７００−ｉからタスク割り当てメッセージが到着すると、タスク受信手段８１２は、メッセージ受信手段８１１から処理を引き継ぎ、タスクの内容を受信して記憶装置８２０に保存する。その際、図４１の通信手順を用いる。タスク受信の際、そのタスクが実行可能かどうかの判断を行い、その結果を図４１のＰ３０２で送信する。実行不可能な場合には、タスク実行装置８００−ｉｊがタスクを実行するためのプログラムを備えていない場合と、負荷の大きさが上限を越えている場合とがある。負荷の大きさに基づいて実行の可否を判断するためには、あらかじめ負荷の大きさの上限を定める必要がある。負荷の大きさの測定には、オペレーティングシステムが提供するプロセッサ使用率の測定手段を用いることができる。
【０３３０】
タスク実行手段８１３は、記憶装置８２０に保存されたタスクを実行し、生成された出力データを記憶装置８２０に保存する。
【０３３１】
タスク出力送信手段８１４は、記憶装置８２０に格納されたタスクの出力データを、計算機間通信装置８３０を通して下位管理装置７００−ｉに送信する。
【０３３２】
一方、下位管理装置７００−ｉから負荷情報問い合わせメッセージが到着すると、負荷情報送信手段８１５は、メッセージ受信手段８１１から処理を引き継ぎ、タスク実行装置８００−ｉｊの計算能力および負荷の大きさを下位管理装置７００−ｉに送る。その際、図４５に示した通信手順を用いる。
【０３３３】
前述した通り、タスク実行装置８００−ｉｊの計算能力は、タスク実行装置８００−ｉｊのデータ処理装置８１０が有するプロセッサの数，あるいは性能測定用のプログラムで測定した値である。
【０３３４】
負荷の大きさを測定する典型的な方法は、データ処理装置８１０が有するプロセッサの使用率を負荷の大きさとするものである。プロセッサの使用率は、オペレーティングシステムが提供している手段を用いて測定することができる。
【０３３５】
【発明の効果】
本発明の第１の効果は、ＷＡＮを経由した通信回数の削減および高精度の負荷分散の両方が可能になることにある。その理由は、ＷＡＮを経由した上位管理装置と下位管理装置間の入出力データの転送はタスクグループ単位で行い、ＬＡＮを経由した下位管理装置からタスク実行装置への計算処理の割り当てはタスク単位で行うためである。
【０３３６】
１つのタスクグループの割り当てと出力の収集とはそれぞれ１度の通信でできるため、タスク単位で割り当てる場合に比べて必要な通信回数が少なくなる。ＷＡＮを経由した通信では、ＬＡＮを経由した通信よりも遅延（レイテンシ）が大きいことと、しばしば計算機間の認証のための通信が余分に必要になることから、ＷＡＮを経由した通信回数の削減は通信時間の短縮に大きく貢献する。
【０３３７】
また、下位管理装置からタスク実行装置への計算処理の割り当てをタスク単位で行うことにより、単一の管理装置から個々のタスク実行装置に直接タスクを割り当てる場合と同等の負荷分散の精度が得られる。
【０３３８】
本発明の第２の効果は、ＷＡＮの帯域を有効に利用できることである。下位管理装置の第２の構成では、１つのタスクグループに含まれるタスクの割り当てが完了するまでは、次のタスクグループに含まれるタスクの割り当てを行わない。このため、同時に複数のタスクグループに含まれるタスクを割り当てる場合に比べて、タスクグループ間での終了時刻の差が大きくなる。したがって、ＷＡＮを経由したデータの送受信が一度に集中することを避けられる。通常、ＬＡＮに比べてＷＡＮの方が利用可能な帯域幅（バンド幅）が小さいため、この性質はシステム全体の性能の向上につながる。
【０３３９】
上位管理装置の第２の構成では、複数の計算要求の実行に関して下位管理装置の第２の構成と同様の制御を行う。このため、ＷＡＮを経由して計算要求の発行がなされる場合、ＷＡＮの帯域を有効に利用することができる。
【０３４０】
下位管理装置の第３の構成および上位管理装置の第３の構成も同様の効果を持つ。
【０３４１】
本発明の第３の効果は、個々のサイト内の情報の秘匿性が高く保たれることにある。その理由は、個々のサイトの構成や性能に関する情報を他のサイトに知らせる必要がないためである。
【０３４２】
階層的分散処理システムにおいて効率的な負荷分散を行うためには、階層的分散処理システムを構成する計算機の構成と個々の計算機の性能とに関する情報が必要である。しかしながら、階層的分散処理システムが異なる組織により所有される複数の計算機システムから構成される場合、自組織の所有する計算機システム内の計算機の構成や性能に関する情報が外部に知られないことが望まれる場合がある。本発明の階層的分散処理システムでは、上位管理装置は各サイトの全体の計算能力だけを知っていればよいので、サイト内の計算機の構成を外部に知らせる必要はない。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る階層的分散処理システムの構成を示すシステム構成図である。
【図２】本発明の実施の形態に係る階層的分散処理システムの全体の動作を示すフローチャートである。
【図３】図１中の計算要求発行装置の構成を示すブロック図である。
【図４】図１中の上位管理装置の第１の構成を示すブロック図である。
【図５】図１中の上位管理装置が保持する負荷情報を説明するための図である。
【図６】図１中の上位管理装置が保持する計算要求情報を説明するための図である。
【図７】図１中の上位管理装置が保持するタスクグループ情報を説明するための図である。
【図８】図４中のメッセージ受信手段の動作を示すフローチャートである。
【図９】図４中の計算要求受信手段の動作を示すフローチャートである。
【図１０】図４中のタスクグループ割当手段の動作を示すフローチャートである。
【図１１】図４中のタスクグループ出力受信手段の動作を示すフローチャートである。
【図１２】図４中の計算要求出力送信手段の動作を示すフローチャートである。
【図１３】図４の上位管理装置の第１の構成における各スレッドの構成を説明するための図である。
【図１４】図１中の上位管理装置の第２および第３の構成を示すブロック図である。
【図１５】図１４中の計算要求受信手段の動作を示すフローチャートである。
【図１６】図１４中の計算要求管理手段の動作を示すフローチャートである。
【図１７】図１４の上位管理装置の第２の構成における各スレッドの構成を説明するための図である。
【図１８】図１４中の計算要求管理手段の別の動作を示すフローチャートである。
【図１９】図１４中のタスクグループ割当手段の動作を示すフローチャートである。
【図２０】図１４の上位管理装置の第３の構成における各スレッドの構成を説明するための図である。
【図２１】図１中の下位管理装置の第１の構成を示すブロック図である。
【図２２】図２１の下位管理装置が保持する負荷情報を説明するための図である。
【図２３】図２１の下位管理装置が保持するタスクグループ情報を説明するための図である。
【図２４】図２１の下位管理装置が保持するタスク情報を説明するための図である。
【図２５】図２１中のメッセージ受信手段の動作を示すフローチャートである。
【図２６】図２１中のタスクグループ受信手段の動作を示すフローチャートである。
【図２７】図２１中のタスク割当手段の動作を示すフローチャートである。
【図２８】図２１中のタスク出力受信手段の動作を示すフローチャートである。
【図２９】図２１中のタスクグループ出力送信手段の動作を示すフローチャートである。
【図３０】図２１の下位管理装置の第１の構成における各スレッドの構成を説明するための図である。
【図３１】図１中の下位管理装置の第２および第３の構成を示すブロック図である。
【図３２】図３１中のタスクグループ受信手段の動作を示すフローチャートである。
【図３３】図３１中のタスクグループ管理手段の動作を示すフローチャートである。
【図３４】図３１の下位管理装置の第２の構成における各スレッドの構成を説明するための図である。
【図３５】図３１中のタスクグループ管理手段の別の動作を示すフローチャートである。
【図３６】図３１中のタスク割当手段の動作を示すフローチャートである。
【図３７】図３１の下位管理装置の第３の構成における各スレッドの構成を説明するための図である。
【図３８】図１中のタスク実行装置の構成を示すブロック図である。
【図３９】本発明の実施の形態における計算要求発行の通信手順を示すシーケンス図である。
【図４０】本発明の実施の形態におけるタスクグループ割り当ての通信手順を示すシーケンス図である。
【図４１】本発明の実施の形態におけるタスク割り当ての通信手順を示すシーケンス図である。
【図４２】本発明の実施の形態におけるタスク出力送受信の通信手順を示すシーケンス図である。
【図４３】本発明の実施の形態におけるタスクグループ出力送受信の通信手順を示すシーケンス図である。
【図４４】本発明の実施の形態における計算要求出力送受信の通信手順を示すシーケンス図である。
【図４５】本発明の実施の形態における負荷情報問い合わせの通信手順を示すシーケンス図である。
【図４６】従来の技術を説明するためのシステム構成図である。
【符号の説明】
５００−ｋ　計算要求発行装置
５１０，６１０，７１０，８１０　データ処理装置（中央処理装置；中央演算装置；プロセッサ；ＣＰＵ）
５１１　計算要求発行手段
５１２　計算要求出力受信手段
５２０，６２０，７２０，８２０　記憶装置
５３０，６３０，７３０，８３０　計算機間通信装置
５４０　入力装置
５５０　出力装置
６００　上位管理装置
６１１，７１１，８１１　メッセージ受信手段
６１２　計算要求受信手段
６１３　計算要求管理手段
６１４　タスクグループ割当手段
６１５　タスクグループ出力受信手段
６１６　計算要求出力送信手段
６２１，７２１　入出力データ記憶部
６２２，７２２　制御情報記憶部
７００―ｉ　下位管理装置
７１２　タスクグループ受信手段
７１３　タスクグループ管理手段
７１４　タスク割当手段
７１５　タスク出力受信手段
７１６　タスクグループ出力送信手段
７１７　負荷情報送信手段
８００　タスク実行装置
８１２　タスク受信手段
８１３　タスク実行手段
８１４　タスク出力送信手段
８１５　負荷情報送信手段
【図１】
2004110318.tif 000003
【図２】
2004110318.tif 000004
【図３】
2004110318.tif 000005
【図４】
2004110318.tif 000006
【図５】
2004110318.tif 000007
【図６】
2004110318.tif 000008
【図７】
2004110318.tif 000009
【図８】
2004110318.tif 000010
【図９】
2004110318.tif 000011
【図１０】
2004110318.tif 000012
【図１１】
2004110318.tif 000013
【図１２】
2004110318.tif 000014
【図１３】
2004110318.tif 000015
【図１４】
2004110318.tif 000016
【図１５】
2004110318.tif 000017
【図１６】
2004110318.tif 000018
【図１７】
2004110318.tif 000019
【図１８】
2004110318.tif 000020
【図１９】
2004110318.tif 000021
【図２０】
2004110318.tif 000022
【図２１】
2004110318.tif 000023
【図２２】
2004110318.tif 000024
【図２３】
2004110318.tif 000025
【図２４】
2004110318.tif 000026
【図２５】
2004110318.tif 000027
【図２６】
2004110318.tif 000028
【図２７】
2004110318.tif 000029
【図２８】
2004110318.tif 000030
【図２９】
2004110318.tif 000031
【図３０】
2004110318.tif 000032
【図３１】
2004110318.tif 000033
【図３２】
2004110318.tif 000034
【図３３】
2004110318.tif 000035
【図３４】
2004110318.tif 000036
【図３５】
2004110318.tif 000037
【図３６】
2004110318.tif 000038
【図３７】
2004110318.tif 000039
【図３８】
2004110318.tif 000040
【図３９】
2004110318.tif 000041
【図４０】
2004110318.tif 000042
【図４１】
2004110318.tif 000043
【図４２】
2004110318.tif 000044
【図４３】
2004110318.tif 000045
【図４４】
2004110318.tif 000046
【図４５】
2004110318.tif 000047
【図４６】
2004110318.tif 000048