(57)【要約】【課題】並列実行を行う指標から最適な並列度を規定する分散処理システムを提供する。【解決手段】並列処理可能なプロセッシング・エレメントと、コントロール・ユニットと、コントロール・ユニットへアプリケーションの実行を要求するクライアントと、を有し、アプリケーションを実行するための分散処理システムであって、プロセッシング・エレメントは、少なくともアプリケーションの実行時に、プロセッシング・エレメントに実行させる１つ以上のタスクのそれぞれを処理する、１つ以上の処理ブロックと、コントロール・ユニットから受信した、並列度を制御する指標に基づいて並列度を演算する処理ブロック制御部と、処理ブロック制御部により、並列度に基づいて処理ブロックへ入力される処理データを分割する分割部と、処理ブロック制御部により、並列度に基づいて処理ブロックから出力される処理データを統合する統合部と、を有する。【選択図】図１
2011076513.tif 000002
【特許請求の範囲】
【請求項１】
並列処理可能なプロセッシング・エレメントと、
コントロール・ユニットと、
前記コントロール・ユニットへアプリケーションの実行を要求するクライアントと、
を有し、前記アプリケーションを実行するための分散処理システムであって、
前記プロセッシング・エレメントは、少なくとも前記アプリケーションの実行時に、
前記プロセッシング・エレメントに実行させる１つ以上のタスクのそれぞれを処理する、１つ以上の処理ブロックと、
前記コントロール・ユニットから受信した、並列度を制御する指標に基づいて並列度を演算する処理ブロック制御部と、
前記処理ブロック制御部により、前記並列度に基づいて前記処理ブロックへ入力される処理データを分割する分割部と、
前記処理ブロック制御部により、前記並列度に基づいて前記処理ブロックから出力される処理データを統合する統合部と、
を有することを特徴とする分散処理システム。
【請求項２】
前記プロセッシング・エレメントは、複数の前記処理ブロックを予め有していることを特徴とする請求項１に記載の分散処理システム。
【請求項３】
前記プロセッシング・エレメントは、前記コントロール・ユニットに接続されたときに、自身の機能情報、構成情報、最大並列度、及び、並列度と並列度を制御する指標との特性を表すプロファイルを含むＰＥ情報、を登録することを特徴とする請求項１又は請求項２に記載の分散処理システム。
【請求項４】
前記クライアントはアプリケーションの実行に関する基準を指定することを特徴とする請求項１から請求項３のいずれか１項に記載の分散処理システム。
【請求項５】
前記コントロール・ユニットは、前記ＰＥ情報、及び／又は、前記アプリケーションの実行に関する基準によって、前記並列度を制御する指標の候補を決定して提示し、
前記クライアントは、前記指標の候補の中から指標を選択することにより前記並列度を制御する指標を決定することを特徴とする請求項４に記載の分散処理システム。
【請求項６】
前記コントロール・ユニットは、前記ＰＥ情報及び／又は前記アプリケーションの実行に関する基準によって、前記並列度を制御する指標を決定することを特徴とする請求項４に記載の分散処理システム。
【請求項７】
前記並列度を制御する指標は、前記各プロセッシング・エレメントの並列度の上限および下限を含むことを特徴とする請求項１から請求項６のいずれか１項に記載の分散処理システム。
【請求項８】
前記並列度の上限の値と下限の値とが互いに異なるとき、前記処理ブロック制御部は、前記上限と前記下限とを除く並列度を制御する指標に従って、前記並列度を決定することを特徴とする請求項７に記載の分散処理システム。
【請求項９】
前記並列度の上限の値と下限の値とが互いに一致するとき、前記処理ブロック制御部は、前記一致した並列度で処理することを特徴とする請求項７に記載の分散処理システム。
【請求項１０】
前記処理ブロックは、
所定の機能を実行する専用処理ブロックと、
入力されるプログラム情報によって機能が変更される汎用処理ブロックと、
入力される再構成情報によってハードウエアを再構成するダイナミック・リコンフィギャラブル・処理ブロックと、の少なくとも一つを含むことを特徴とする請求項１から請求項９のいずれか１項に記載の分散処理システム。
【請求項１１】
前記処理ブロックはソフトウエアで構成された前記専用処理ブロックであり、
前記プロセッシング・エレメントは、前記専用処理ブロックを予め備え、
前記プロセッシング・エレメントは、前記専用処理ブロックをアンロード、複製、又は消去でき、さらに、アンロード及び／又は複製された前記専用処理ブロックを保持可能である専用処理ブロック保持部を有していることを特徴とする請求項１０に記載の分散処理システム。
【請求項１２】
前記専用処理ブロック保持部は保持した専用処理ブロックを前記並列度にしたがって複製することを特徴とする請求項１１に記載の分散処理システム。
【請求項１３】
前記専用処理ブロック保持部は保持した前記専用処理ブロックをロードし、処理可能な状態とすることを特徴とする請求項１１または請求項１２に記載の分散処理システム。
【請求項１４】
前記処理ブロックはハードウエアで構成された前記専用処理ブロックであり、
前記専用処理ブロックの入力を前記分割部に、出力を前記統合部に接続する経路を接続・切断することで、所定の機能の実行と前記並列度の制御を行うことを特徴とする請求項１０に記載の分散処理システム。
【請求項１５】
前記処理ブロックは、ソフトウエアで構成された前記汎用処理ブロックであり、
前記プロセッシング・エレメントは、前記ソフトウエアで構成された汎用処理ブロックを予め備え、
前記プロセッシング・エレメントは、前記ソフトウエアで構成された汎用処理ブロックをアンロード、複製、又は消去でき、さらに、アンロード及び／又は複製された前記汎用処理ブロックを保持可能である汎用処理ブロック保持部を有していることを特徴とする請求項１０に記載の分散処理システム。
【請求項１６】
前記汎用処理ブロック保持部は、保持した専用処理ブロックを前記並列度にしたがって複製することを特徴とする請求項１５に記載の分散処理システム。
【請求項１７】
前記汎用処理ブロック保持部は、保持した前記汎用処理ブロックをロードし、前記プログラム情報をロード可能な状態とすることを特徴とする請求項１５または請求項１６に記載の分散処理システム。
【請求項１８】
前記プロセッシング・エレメントは、前記実行するタスクにしたがって接続されたライブラリに含まれるプログラム情報を外部から前記汎用処理ブロックに直接ロードするロード部を有していることを特徴とする請求項１５から請求項１７のいずれか１項に記載の分散処理システム。
【請求項１９】
前記プロセッシング・エレメントは、前記汎用処理ブロックにロードされた前記ライブラリに含まれるプログラム情報をアンロード、複製、又は消去でき、さらに、アンロード及び／又は複製された前記プログラム情報を保持可能であるライブラリ保持部を有していることを特徴とする請求項１８に記載の分散処理システム。
【請求項２０】
前記ロード部は前記プログラム情報を前記ライブラリ保持部にロードし、
前記ライブラリ保持部はロード部を介して外部から受信した前記プログラム情報を保持することを特徴とする請求項１９に記載の分散処理システム。
【請求項２１】
前記ライブラリ保持部は、保持したプログラム情報を前記並列度にしたがって複製することを特徴とする請求項１９または請求項２０に記載の分散処理システム。
【請求項２２】
前記ライブラリ保持部は、保持したプログラム情報を前記汎用処理ブロックにロードすることを特徴とする請求項１９から請求項２１のいずれか１項に記載の分散処理システム。
【請求項２３】
前記処理ブロックは、前記ダイナミック・リコンフィギャラブル・処理ブロックであり、
前記プロセッシング・エレメントは、前記実行するタスクにしたがって接続されたライブラリに含まれる再構成情報を外部から前記ダイナミック・リコンフィギャラブル・処理ブロックに直接ロードするロード部を有していることを特徴とする請求項１０に記載の分散処理システム。
【請求項２４】
前記プロセッシング・エレメントは、前記ダイナミック・リコンフィギャラブル・処理ブロックにロードされた前記ライブラリに含まれる再構成情報をアンロード、複製、又は消去でき、さらに、アンロード及び／又は複製された前記再構成情報を保持可能であるライブラリ保持部を有していることを特徴とする請求項２３に記載の分散処理システム。
【請求項２５】
前記ロード部は前記再構成情報を前記ライブラリ保持部にロードし、
前記ライブラリ保持部はロード部を介して外部から受信した前記再構成情報を保持することを特徴とする請求項２４に記載の分散処理システム。
【請求項２６】
前記ライブラリ保持部は、保持した再構成情報を前記並列度にしたがって複製することを特徴とする請求項２４または請求項２５に記載の分散処理システム。
【請求項２７】
前記ライブラリ保持部は、保持した再構成情報を前記ダイナミック・リコンフィギャラブル・処理ブロックにロードすることを特徴とする請求項２４から請求項２６のいずれか１項に記載の分散処理システム。
【請求項２８】
前記ダイナミック・リコンフィギャラブル・処理ブロックの入力を前記分割部に、出力を前記統合部に接続する経路を接続・切断することで、前記再構成情報によって実現する機能の実行と前記並列度の制御を行うことを特徴とする請求項２３から請求項２７のいずれか１項に記載の分散処理システム。
【請求項２９】
前記並列度を制御する指標は、並列度、優先度、品質保証型、消費電力量、処理時間、及び出力スループットのいずれか１つ以上を含むことを特徴とする請求項１から請求項２８のいずれか１項に記載の分散処理システム。
【請求項３０】
前記クライアントは、前記並列度を制御する指標として、前記１つ以上のタスクのそれぞれに優先度を指定し、
前記処理ブロックは、指定された優先度に基づいて前記タスクの実行に関する並列度を動的に決定することを特徴とする請求項１から請求項２９のいずれか１項に記載の分散処理システム。
【請求項３１】
前記クライアントが指定したアプリケーションの実行に関する基準に従って前記並列度を制御する指標の候補を決定することができないとき、前記コントロール・ユニットは、前記基準を逸脱した代替の指標を提示することを特徴とする請求項４に記載の分散処理システム。
【請求項３２】
前記コントロール・ユニットは前記並列度を制御する指標の候補の組合せを規定し、
前記クライアントは、ユーザーインタフェースを介して前記指標の候補をユーザに提示し、前記コントロール・ユニットが規定した前記並列度を制御する指標の候補の組合せの範囲内で、ユーザーインタフェース上の入力組合せを制限することを特徴とする請求項１から請求項３１のいずれか１項に記載の分散処理システム。
【請求項３３】
前記プロセッシング・エレメントは、前記専用処理ブロック、汎用処理ブロック、前記プログラム情報、及び前記再構成情報について、すでにロードされているものをすべてアンロード可能であることを特徴とする請求項１１、請求項１５、請求項１９、又は請求項２４に記載の分散処理システム。
【請求項３４】
前記アプリケーションの実行に関する基準は、品質保証型、消費電力量、処理時間、及び出力スループットのいずれか１つ以上を含むことを特徴とする請求項４から請求項３３のいずれか１項に記載の分散処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理システムに関するものである。
【背景技術】
【０００２】
従来の並列処理システムにおいて、ユーザが要求するアプリケーションをプログラムまたは配線情報としてシステムに入力し、並列化するものがある。高級言語などで記述されたプログラムは、処理するシステムが逐次処理を行うか、並列処理を行うかに無関係に記述することができるため、並列化する場合は、逐次実行プログラムの並列化可能部分を自動的に抽出してデータ分割およびプログラム分割を行い、さらに計算モジュール間の通信の要不要を決定することが行われる。このような並列プログラムの生成方法としては、例えば特許文献１が挙げられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−３２８８７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の従来の並列処理システムにおける自動並列化は、ユーザが入力したプログラムなどから、並列化可能部分を抽出し、計算モジュールに割り当てるか、又は、配線情報に変換するものが多かった。さらに、オペレーティングシステムのように、プログラム単位で異なるプロセッサコアなどの計算モジュールにプロセスを割り当て、ユーザが並列化に全く関与しないシステムも存在する。これらのシステムは実行時の性能を最適化することだけを考慮して並列化を実行しており、ユーザが柔軟に並列化を制御する指標が提供されてこなかった。
【０００５】
本発明は、上記に鑑みてなされたものであって、ユーザが要求するサービスを実現するために、１つ以上の特定機能を提供する計算モジュールから構成されるデータフロー型のモジュールネットワークで定義するシステムで並列実行を行う指標として、並列度や全体性能だけでなく消費電力や処理時間を規定し、それらの指標から最適な並列度を規定する分散処理システムを提供することを目的とする。この分散処理システムにおける並列化は計算モジュール内部で仮想的に提供される。
【０００６】
本発明のさらなる目的は、動的に定義された並列度に従って、計算モジュール内部の処理ブロックを動的に増減させることができる分散処理システムを提供することにある。さらに、本発明は、ユーザが並列度を直接指定しなくても、アプリケーションの実行時に注目する指標をポリシーとして規定することで、ユーザ自身にとって最適なアプリケーション実行環境を動的に構築することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明に係る分散処理システムは、並列処理可能なプロセッシング・エレメントと、コントロール・ユニットと、コントロール・ユニットへアプリケーションの実行を要求するクライアントと、を有し、アプリケーションを実行するための分散処理システムであって、プロセッシング・エレメントは、少なくともアプリケーションの実行時に、プロセッシング・エレメントに実行させる１つ以上のタスクのそれぞれを処理する、１つ以上の処理ブロックと、コントロール・ユニットから受信した、並列度を制御する指標に基づいて並列度を演算する処理ブロック制御部と、処理ブロック制御部により、並列度に基づいて処理ブロックへ入力される処理データを分割する分割部と、処理ブロック制御部により、並列度に基づいて処理ブロックから出力される処理データを統合する統合部と、を有することを特徴としている。
【０００８】
本発明に係る分散処理システムにおいて、プロセッシング・エレメントは、複数の処理ブロックを予め有していることが好ましい。
【０００９】
本発明に係る分散処理システムにおいて、プロセッシング・エレメントは、コントロール・ユニットに接続されたときに、自身の機能情報、構成情報、最大並列度、及び、並列度と並列度を制御する指標との特性を表すプロファイルを含むＰＥ情報、を登録することが好ましい。
【００１０】
本発明に係る分散処理システムにおいて、クライアントはアプリケーションの実行に関する基準を指定することが好ましい。
【００１１】
本発明に係る分散処理システムにおいて、コントロール・ユニットは、ＰＥ情報、及び／又は、アプリケーションの実行に関する基準によって、並列度を制御する指標の候補を決定して提示し、クライアントは、指標の候補の中から指標を選択することにより並列度を制御する指標を決定することが好ましい。
【００１２】
本発明に係る分散処理システムにおいて、コントロール・ユニットは、ＰＥ情報及び／又はアプリケーションの実行に関する基準によって、並列度を制御する指標を決定することが好ましい。
【００１３】
本発明に係る分散処理システムにおいて、並列度を制御する指標は、各プロセッシング・エレメントの並列度の上限および下限を含むことが好ましい。
【００１４】
本発明に係る分散処理システムにおいて、並列度の上限の値と下限の値とが互いに異なるとき、処理ブロック制御部は、上限と下限とを除く並列度を制御する指標に従って、並列度を決定することが好ましい。
【００１５】
本発明に係る分散処理システムにおいて、並列度の上限の値と下限の値とが互いに一致するとき、処理ブロック制御部は、一致した並列度で処理することが好ましい。
【００１６】
本発明に係る分散処理システムにおいて、処理ブロックは、所定の機能を実行する専用処理ブロックと、入力されるプログラム情報によって機能が変更される汎用処理ブロックと、入力される再構成情報によってハードウエアを再構成するダイナミック・リコンフィギャラブル・処理ブロックと、の少なくとも一つを含むことが好ましい。
【００１７】
本発明に係る分散処理システムにおいて、処理ブロックはソフトウエアで構成された専用処理ブロックであり、プロセッシング・エレメントは、専用処理ブロックを予め備え、プロセッシング・エレメントは、専用処理ブロックをアンロード、複製、又は消去でき、さらに、アンロード及び／又は複製された専用処理ブロックを保持可能である専用処理ブロック保持部を有していることが好ましい。
【００１８】
本発明に係る分散処理システムにおいて、専用処理ブロック保持部は保持した専用処理ブロックを並列度にしたがって複製することが好ましい。
【００１９】
本発明に係る分散処理システムにおいて、専用処理ブロック保持部は保持した専用処理ブロックをロードし、処理可能な状態とすることが好ましい。
【００２０】
本発明に係る分散処理システムにおいて、処理ブロックはハードウエアで構成された専用処理ブロックであり、専用処理ブロックの入力を分割部に、出力を統合部に接続する経路を接続・切断することで、所定の機能の実行と並列度の制御を行うことが好ましい。
【００２１】
本発明に係る分散処理システムにおいて、処理ブロックは、ソフトウエアで構成された汎用処理ブロックであり、プロセッシング・エレメントは、ソフトウエアで構成された汎用処理ブロックを予め備え、プロセッシング・エレメントは、ソフトウエアで構成された汎用処理ブロックをアンロード、複製、又は消去でき、さらに、アンロード及び／又は複製された汎用処理ブロックを保持可能である汎用処理ブロック保持部を有していることが好ましい。
【００２２】
本発明に係る分散処理システムにおいて、汎用処理ブロック保持部は、保持した専用処理ブロックを並列度にしたがって複製することが好ましい。
【００２３】
本発明に係る分散処理システムにおいて、汎用処理ブロック保持部は、保持した汎用処理ブロックをロードし、プログラム情報をロード可能な状態とすることが好ましい。
【００２４】
本発明に係る分散処理システムにおいて、プロセッシング・エレメントは、実行するタスクにしたがって接続されたライブラリに含まれるプログラム情報を外部から汎用処理ブロックに直接ロードするロード部を有していることが好ましい。
【００２５】
本発明に係る分散処理システムにおいて、プロセッシング・エレメントは、汎用処理ブロックにロードされたライブラリに含まれるプログラム情報をアンロード、複製、又は消去でき、さらに、アンロード及び／又は複製されたプログラム情報を保持可能であるライブラリ保持部を有していることが好ましい。
【００２６】
本発明に係る分散処理システムにおいて、ロード部はプログラム情報をライブラリ保持部にロードし、ライブラリ保持部はロード部を介して外部から受信したプログラム情報を保持することが好ましい。
【００２７】
本発明に係る分散処理システムにおいて、ライブラリ保持部は、保持したプログラム情報を並列度にしたがって複製することが好ましい。
【００２８】
本発明に係る分散処理システムにおいて、ライブラリ保持部は、保持したプログラム情報を汎用処理ブロックにロードすることが好ましい。
【００２９】
本発明に係る分散処理システムにおいて、処理ブロックは、ダイナミック・リコンフィギャラブル・処理ブロックであり、プロセッシング・エレメントは、実行するタスクにしたがって接続されたライブラリに含まれる再構成情報を外部からダイナミック・リコンフィギャラブル・処理ブロックに直接ロードするロード部を有していることが好ましい。
【００３０】
本発明に係る分散処理システムにおいて、プロセッシング・エレメントは、ダイナミック・リコンフィギャラブル・処理ブロックにロードされたライブラリに含まれる再構成情報をアンロード、複製、又は消去でき、さらに、アンロード及び／又は複製された再構成情報を保持可能であるライブラリ保持部を有していることが好ましい。
【００３１】
本発明に係る分散処理システムにおいて、ロード部は再構成情報をライブラリ保持部にロードし、ライブラリ保持部はロード部を介して外部から受信した再構成情報を保持することが好ましい。
【００３２】
本発明に係る分散処理システムにおいて、ライブラリ保持部は、保持した再構成情報を並列度にしたがって複製することが好ましい。
【００３３】
本発明に係る分散処理システムにおいて、ライブラリ保持部は、保持した再構成情報をダイナミック・リコンフィギャラブル・処理ブロックにロードすることが好ましい。
【００３４】
本発明に係る分散処理システムにおいて、ダイナミック・リコンフィギャラブル・処理ブロックの入力を分割部に、出力を統合部に接続する経路を接続・切断することで、再構成情報によって実現する機能の実行と並列度の制御を行うことが好ましい。
【００３５】
本発明に係る分散処理システムにおいて、並列度を制御する指標は、並列度、優先度、品質保証型、消費電力量、処理時間、及び出力スループットのいずれか１つ以上を含むことが好ましい。
【００３６】
本発明に係る分散処理システムにおいて、クライアントは、並列度を制御する指標として、１つ以上のタスクのそれぞれに優先度を指定し、処理ブロックは、指定された優先度に基づいてタスクの実行に関する並列度を動的に決定することが好ましい。
【００３７】
本発明に係る分散処理システムにおいて、クライアントが指定したアプリケーションの実行に関する基準に従って並列度を制御する指標の候補を決定することができないとき、コントロール・ユニットは、基準を逸脱した代替の指標を提示することが好ましい。
【００３８】
本発明に係る分散処理システムにおいて、コントロール・ユニットは並列度を制御する指標の候補の組合せを規定し、クライアントは、ユーザーインタフェースを介して指標の候補をユーザに提示し、コントロール・ユニットが規定した並列度を制御する指標の候補の組合せの範囲内で、ユーザーインタフェース上の入力組合せを制限することが好ましい。
【００３９】
本発明に係る分散処理システムにおいて、プロセッシング・エレメントは、専用処理ブロック、汎用処理ブロック、プログラム情報、及び再構成情報について、すでにロードされているものをすべてアンロード可能であることが好ましい。
【００４０】
本発明に係る分散処理システムにおいて、アプリケーションの実行に関する基準は、品質保証型、消費電力量、処理時間、及び出力スループットのいずれか１つ以上を含むことが好ましい。
【発明の効果】
【００４１】
本発明に係る分散処理システムは、ユーザが要求するサービスを実現するために、１つ以上の特定機能を提供する計算モジュールから構成されるデータフロー型のモジュールネットワークで定義するシステムにおいて、モジュール内部で仮想的に並列実行を行う指標として、並列度や全体性能だけでなく消費電力や処理時間を規定し、それらの指標から最適な並列度を規定する分散処理システムを提供できる、という効果を奏する。
【００４２】
さらに、本発明によれば、動的に定義された並列度に従って、計算モジュール内部の処理ブロックを動的に増減させることができる分散処理システムを提供することができる。
【００４３】
また、本発明は、ユーザが並列度を直接指定しなくても、アプリケーションの実行時に注目する指標をポリシーとして規定することで、ユーザ自身にとって最適なアプリケーション実行環境を動的に構築することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施形態に係る分散処理システムの概略構成を示す図である。
【図２】本発明の実施形態に係るアプリケーションの処理の流れを示すフローチャートである。
【図３】図２に示すサービスと、サービスを構成するタスクと、を対応させたサービスタスク対応表を示す図である。
【図４】本発明の実施形態に係る実行遷移情報を構成する情報の例と、各構成情報のデータ例と、をそれぞれ示す表である。
【図５】図４に示す実行遷移情報の構成に対応したシステムのモデル例を示す図である。
【図６】本発明の実施形態に係るサービスポリシーの構成例を示す表である。
【図７】本発明の実施形態に係るタスクポリシーの構成例を示す表である。
【図８】実施例１に係るアプリケーションの処理の流れを示すフローチャートである。
【図９】実施例１における実行シーケンスを示す図である。
【図１０】実施例１におけるＰＥ登録情報の例を示す図である。
【図１１】実施例１におけるプロファイルの例を示すグラフである。
【図１２】実施例１におけるＰＥ１のＰＥ登録情報の例を示す表である。
【図１３】実施例１におけるＰＥ４（ＶＰＥ）のＰＥ登録情報の例を示す表である。
【図１４】実施例１におけるタスクポリシーの選択肢の提示例を示す表である。
【図１５】実施例１におけるクライアント指定後のタスクポリシー例を示す表である。
【図１６】実施例２における実行シーケンスを示す図である。
【図１７】実施例２におけるＰＥ１のＰＥ登録情報の例を示す表である。
【図１８】実施例２におけるＰＥ４のＰＥ登録情報の例を示す表である。
【図１９】実施例２におけるクライアント指定のサービスポリシー例を示す表である。
【図２０】実施例２においてサービスポリシーに基づいて決定されたタスクポリシーの例を示す表である。
【図２１】実施例３における実行シーケンスを示す図である。
【図２２】実施例３においてクライアントが登録したサービスポリシーの例を示す表である。
【図２３】実施例４においてＣＵが代替案を提示する場合の実行シーケンスを示す図である。
【図２４】実施例４においてクライアント上に提示される代替案のＧＵＩウインドウの例を示す図である。
【図２５】実施例５においてクライアント上で入力制限する場合の実行シーケンスを示す図である。
【図２６】実施例５におけるクライアント上のＧＵＩウインドウでの入力制限例を示す図である。
【図２７】実施例６における優先度を指定したタスクポリシーの例を示す表である。
【図２８】実施例６において２タスクまでの優先度を考慮したタスク間実行時の並列度調整の流れを示すフローチャートである。
【図２９】実施例６においてＰＥ４が並列度１でタスクを実行する状態を示す図である。
【図３０】実施例７において処理ブロックを汎用としたＰＥの構成例を示す図である。
【図３１】実施例７におけるＰＥの初期状態を示す図である。
【図３２】実施例７における実行シーケンスを示す図である。
【図３３】実施例７における汎用処理ブロックを持つＰＥのＰＥ登録情報の例を示す表である。
【図３４】実施例７においてＧＰ−ＰＢにライブラリをロードした状態を示す図である。
【図３５】実施例７においてＧＰ−ＰＢとライブラリのセットを複製した状態を示す図である。
【図３６】実施例７においてＧＰ−ＰＢとライブラリを別々にロード、複製した状態を示す一連の図のうち、複製前の状態を示す図である。
【図３７】実施例７においてＧＰ−ＰＢとライブラリを別々にロード、複製した状態を示す一連の図のうち、ＧＰ−ＰＢを複製した状態を示す図である。
【図３８】実施例７においてＧＰ−ＰＢとライブラリを別々にロード、複製した状態を示す一連の図のうち、はライブラリを複製しロードした状態を示す図である。
【図３９】実施例７においてライブラリのみをロード、複製した状態を示す一連の図のうち、複製前の状態を示す図である。
【図４０】実施例７においてライブラリのみをロード、複製した状態を示す一連の図のうち、ライブラリをロードした状態を示す図である。
【図４１】実施例７においてライブラリのみをロード、複製した状態を示す一連の図のうち、ロードしたライブラリを複製した状態を示す図である。
【図４２】実施例７においてライブラリのみをロード、複製した状態を示す一連の図のうち、ライブラリと処理ブロックを消去した状態を示す図である。
【図４３】実施例７においてＧＰ−ＰＢとライブラリを含むＰＥのＰＥ登録情報の例を示す表である。
【図４４】実施例７においてＧＰ−ＰＢをアンロードして完全消去した状態あるいは再ロードした状態と保持部の構成を示す図である。
【図４５】専用処理ブロックＰＢの複製状態を示す一連の図のうち、専用処理ブロック保持部が処理ブロックを複製し、別の処理ブロックとしてロードし処理可能とした状態を示す図である。
【図４６】専用処理ブロックＰＢの複製状態を示す一連の図のうち、処理ブロックをすべてアンロードし、保持ないし、再ロードして処理可能とした状態を示す図である。
【図４７】専用処理ブロックＰＢの複製状態を示す一連の図のうち、専用処理ブロック保持部が全処理ブロックを消去した状態を示す図である。
【図４８】実施例８におけるハードウエア実装ブロックへの動的スイッチング例を示す図である。
【図４９】実施例８において全スイッチを解放した状態例を示す図である。
【図５０】実施例８において処理ブロックとしてダイナミック・リコンフィギャラブル・プロセッサを搭載した構成例を示す一連の図のうち、ダイナミック・リコンフィギャラブル・処理ブロックへの動的スイッチング例を示す図である。
【図５１】実施例８において処理ブロックとしてダイナミック・リコンフィギャラブル・プロセッサを搭載した構成例を示す一連の図のうち、ＣＵがデータベースサーバから取得した再構成情報をロード部を介してダイナミック・リコンフィギャラブル処理ブロックにロードした状態もしくは、ライブラリ保持部にロードし、複製した状態を表す図である。
【図５２】実施例８において処理ブロックとしてダイナミック・リコンフィギャラブル・プロセッサを搭載した構成例を示す一連の図のうち、ライブラリ保持部が再構成情報を複製し、ロードしている図である。
【図５３】実施例８において処理ブロックとしてダイナミック・リコンフィギャラブル・プロセッサを搭載した構成例を示す一連の図のうち、ライブラリのアンロードおよび再ロードした状態を表す図である。
【図５４】実施例８において処理ブロックとしてダイナミック・リコンフィギャラブル・プロセッサを搭載した構成例を示す一連の図のうち、ライブラリ保持部が再構成情報を消去した状態を表す図である。
【図５５】ＰＥにおける並列度決定の流れを示すフローチャートである。
【発明を実施するための形態】
【００４５】
以下に、本発明に係る分散処理システムの実施形態を図面に基づいて詳細に説明する。なお、以下の実施形態によりこの発明が限定されるものではない。
以下の説明では、本実施形態に係る分散処理システムが実行するアプリケーション（サービス）としてＪＰＥＧデコード処理を取り上げるが、本発明はＪＰＥＧデコード処理以外の処理にも適用可能である。
【００４６】
図１は、本発明の実施形態に係る分散処理システムの概略構成を示す図である。
本実施形態の分散処理システムは、並列処理可能な計算モジュールであるＶＰＥ３０（並列処理仮想化ＰＥ）を備える。ＶＰＥ３０は、外部機器としてのＰＥ（プロセッシング・エレメント）２１、２２、２３に対する入出力インタフェースとして、単一入力ストリームおよび単一出力ストリームのどちらか一方あるいは双方を持つ。また、クライアント１０は、ＣＵ（コントロール・ユニット）４０に対してアプリケーションの実行を要求する。
【００４７】
ＶＰＥ３０は、内部に制御部３１、分割部３２、統合部３３、及び、１つ以上の処理ブロック（ＰＢ）３４、３５、３６、３７を備える。
図１では、処理ブロックが４つの例を示しているが、後述のとおり、処理ブロックの数は任意に設定できる。
【００４８】
制御部（処理ブロック制御部）は、ＣＵから与えられたポリシー（並列度を制御する指標）に基づいて並列度を演算する。制御部は、演算した並列度にしたがって、データストリームの分割部あるいは統合部を制御することで、入力ストリーム（各処理ブロックへ入力される処理データ）を分割し、又は、出力ストリーム（各処理ブロックから出力される処理データ）を統合する。
【００４９】
次に、アプリケーションの実行例について図２を参照して説明する。図２は、本実施形態のアプリケーションの処理の流れを示すフローチャートである。
ＪＰＥＧデコード処理は、図２に示すように、ＪＰＥＧファイル解析（ステップＳ１０１）、エントロピー複合化（ステップＳ１０２）、逆量子化（ステップＳ１０３）、ＩＤＣＴ（ステップＳ１０４）、アップサンプリング（ステップＳ１０５）、及び、色信号の変換（ステップＳ１０６）の６つの連続した処理に分割することが可能である。
【００５０】
ここで、ＪＰＥＧデコード処理のようにユーザが処理要求するアプリケーションをサービスと呼び、ＪＰＥＧデコード処理を構成するエントロピー復号化のようなサブ処理をタスクと呼ぶ。別言すれば、タスクは、アプリケーションを構成する１つ以上の処理単位である。
【００５１】
サービス、タスクにはそれぞれの処理内容を識別するためにサービスＩＤおよびタスクＩＤが一意に割り当てられている。ＪＰＥＧデコード処理のサービスＩＤはＳＶ−８２３、ＪＰＥＧデコード処理を構成する各タスクのタスクＩＤをＴＫ−１０１からＴＫ−１０６とする。
【００５２】
クライアント１０がサービスとしてＪＰＥＧデコード処理の実行を要求すると、コントロール・ユニット４０は、たとえば図３に示すサービス―タスク対応表に従って、ＴＫ−１０１からＴＫ−１０６のタスクの列に分解する。ここで、図３は、図２に示すサービスと、サービスを構成するタスクと、を対応させた表である。
【００５３】
タスクは、実行可能な各ＰＥに割り当てられる。タスクが割り当てられるＰＥには、ＰＥ２１、２２、２３、ＶＰＥ３０が含まれる。
各ＰＥ間の経路は一意にその入出力が定められており、入出力のペアに経路のＩＤとしてパスＩＤが決められる。コントロール・ユニット４０はこの処理経路の構成に関する情報（実行遷移情報）を生成する。実行遷移情報の例を図４に示す。図４は、実行遷移情報を構成する情報の例と、各構成情報のデータ例と、をそれぞれ示す表である。
【００５４】
例えば、図４に示す実行遷移情報に従って、ＪＰＥＧデコードを行う処理経路を図５のように構成できる。図５は、図４に示す実行遷移情報の構成に対応したシステムのモデル例を示す図である。
その後、処理に必要な計算資源の割り当てと処理経路の確立を行う。
【００５５】
本実施形態の実行遷移情報はタスクポリシーを含む。ポリシーとは、サービス実行全体と並列処理仮想化ＰＥ（ＶＰＥ）を含むＰＥのタスク処理に関する実行時の制約である。ポリシーにはサービスの実行全体を制約するサービスポリシー（アプリケーションの実行に関する基準）と、各ＰＥにおけるタスク処理を制約するタスクポリシー（並列度を制御する指標）がある。たとえば、タスクポリシーを使って並列処理の多重度（並列度）をタスクごとに直接指定することも可能である。さらに、サービスポリシーを使ってサービス全体の処理時間を性能指標として指定し、処理時間以内に処理をするためにＣＵが処理経路の最適化をして、各ＰＥにおけるタスク実行の並列度を自動的に決定し、タスクポリシーを自動生成することも可能である。いずれの場合も最終的には各ＰＥでのタスク実行を規定するタスクポリシーが決定され、各ＰＥに通知される。
【００５６】
ここで、サービスポリシーとタスクポリシーで使用できるパラメータの例について説明する。表１は、ポリシーを構成するパラメータを説明する表である。図６は、本実施形態に係るサービスポリシーの構成例を示す表である。図７は、本実施形態に係るタスクポリシーの構成例を示す表である。表１においては、各ポリシーで指定できるパラメータを丸印で示している。
【００５７】
【表１】
2011076513.tif 000003
【００５８】
サービスポリシーの例としては、図６に示すように、品質保証型、消費電力量の上限・下限、処理時間の上限・下限、出力スループットの上限・下限が挙げられる。また、タスクポリシーの例としては、図７に示すように、品質保証型、消費電力量の上限・下限、処理時間の上限・下限、出力スループットの上限・下限、並列度の上限・下限、優先度が挙げられる。
【００５９】
サービスポリシーはクライアントがサービスの実行を要求する前にクライアントを識別するＩＤとともにＣＵに登録しておく。このときサービスポリシーを適用したいサービスを特定しておきたければ、サービスＩＤと組にしてＣＵに登録しておく。そうでなければ、このクライアントから要求されるすべてのサービスに対して登録したサービスポリシーが適用して、タスクポリシーを含む実行遷移情報を生成する。
【００６０】
タスクポリシーはサービスポリシーが登録されているかどうかに関わらず、実行遷移情報生成時に生成される。タスクポリシーの各パラメータに選択肢を設けてクライアントに選択させることも可能であるし、ＣＵが最適と判断したタスクポリシーをクライアントの承認なしに使用することも可能である。
【実施例】
【００６１】
以下、上述の実施形態に係る分散処理システムの実施例について説明する。以下の説明では、特徴となる構成、作用、効果を中心に延べ、すでに述べた構成、作用、効果については省略することがある。ＶＰＥの前後に配置するＰＥの数は、各実施例の内容に応じて、図１に示す例とは異なる場合がある。
また、各実施例では原則としてソフトウエアでの実装を前提とするが、ハードウエアによるＰＥの実装も可能であり、概要を後述する。
【００６２】
（実施例１）
実施例１は、クライアントがタスクポリシーを指定する場合の処理に関する。図８は、実施例１に係るアプリケーションの処理の流れを示すフローチャートであり、次のように各ステップが図２の各ステップに対応する。ここでは、ＣＵが生成したタスクポリシーに対して、クライアントが各ＰＥ個別に並列度を指定しており、ＩＤＣＴ（タスクＩＤ＝ＴＫ−１０４）の並列度を２に指定している。
【００６３】
まず、図２のＪＰＥＧファイル解析（ステップＳ１０１）は並列度１のＰＥ（ＰＥ１）での処理（ステップＳ２０１）に対応し、エントロピー複合化（ステップＳ１０２）は並列度１のＰＥ（ＰＥ２）での処理（ステップＳ２０２）に対応し、逆量子化（ステップＳ１０３）は並列度１のＰＥ（ＰＥ３）での処理（ステップＳ２０３）に対応する。
【００６４】
次に、ＩＤＣＴ（ステップＳ１０４）は、並列度２のＶＰＥ（ＰＥ４）への処理データの入力及び分割（ステップＳ２０４）、ＶＰＥ内の２つの処理ブロック（ＰＢ）における処理（ステップＳ２０５、Ｓ２０６）、並びに、２つの処理ブロックでの処理データの統合及び出力（ステップＳ２０７）に対応する。
【００６５】
さらに、アップサンプリング（ステップＳ１０５）は並列度１のＰＥ（ＰＥ５）での処理（ステップＳ２０８）に対応し、色信号の変換（ステップＳ１０６）は並列度１のＰＥ（ＰＥ６）での処理（ステップＳ２０９）に対応し、図２のステップＳ１０１からＳ１０６と同様に、ステップＳ２０１からＳ２０９の連続した処理に分割することが可能である。
【００６６】
つづいて、実施例１に係るシーケンスについて説明する。図９は実施例１における実行シーケンスを示す図である。
【００６７】
まず、シーケンス３００では、ＰＥ１は起動するとコントロール・ユニットに図１０に示すＰＥ登録情報を送信する。図１０は、実施例１におけるＰＥ登録情報の例を示す図である。また、表２は、図１０に示すＰＥ登録情報の各データフィールドを説明する表である。図１１は、図１０に示すプロファイルの例を示すグラフである。図１２は、図１０に示すＰＥ１のＰＥ登録情報の例を示す表である。図１１において、実線Ａは消費電力量に対する並列度の上限値の変化を示し、破線Ｂは消費電力量に対する並列度の下限値の変化を示している。
【００６８】
【表２】
2011076513.tif 000004
【００６９】
ここで、ＰＥ１はＦＩＤがＦＮ−１０１の機能（ＪＰＥＧファイル解析）を最大並列度１で提供できる、すなわち、並列化できない。
【００７０】
次に、シーケンス３０１では、ＰＥ４としてのＶＰＥは起動すると、ＰＥ１と同様にコントロール・ユニットに図１３に示すＰＥ登録情報を送信する。図１３は、実施例１におけるＰＥ４のＰＥ登録情報の例を示す表である。
【００７１】
ＰＥ４（ＶＰＥ）はＦＩＤがＦＮ−１０４の機能（ＩＤＣＴ）を最大並列度２で提供できる。図示しないが、他のＰＥも同様に起動時にＰＥ登録情報を送信し、登録を行う。
【００７２】
シーケンス３０２では、クライアントはサービス実行要求として、ＪＰＥＧデコードの実行をサービスＩＤ＝ＳＶ−８２３を指定してＣＵに要求する。
【００７３】
シーケンス３０３では、ＣＵは各ＰＥの登録情報をもとに実行遷移情報を生成する。各ＰＥの登録情報のうち動的に変化するものは逐次モニタリングし、その結果を反映して実行遷移情報を生成してもよい。
【００７４】
その結果、図４に示したのと同じ経路情報を含む実行遷移情報を生成したと仮定して、タスクポリシーの各値について、ＰＥの登録状態を元にして、値の候補を決定する。この候補として、図１４に示す、並列度の上限値と下限値が示される。図１４は、実施例１におけるタスクポリシーの選択肢の提示例を示す表である。ここで、消費電力量など他のパラメータについては、値の候補が決定されているものとする。
【００７５】
シーケンス３０４では、ＣＵは上記タスクポリシーを含む実行遷移情報をクライアントに送信する。シーケンス３０５では、範囲が示されているものについては、クライアントが任意の値（タスクポリシー）を選択する。このとき選択可能なポリシーは並列度の上限と下限のみである。その他のポリシーに関しては、クライアントが指定できないＰＥ固有のものであるとする。この値の組合せが不適切または不可能な場合はＧＵＩ上でチェックする（実施例５）、又は、ＣＵでチェックしエラーが返される。
【００７６】
ここでは、シーケンス３０５において、クライアントが、選択候補から図１５に示すように各パラメータを決定したとする。すなわち、並列度の上限と下限を同値とし、ＰＥ１の並列度を１、ＰＥ４の並列度を２にしている。ここで、図１５は、実施例１におけるクライアント指定後のタスクポリシー例を示す表である。
【００７７】
シーケンス３０６では、クライアントは選択したタスクポリシーを含む実行遷移情報をＣＵに送信する。
【００７８】
つづいて、ＣＵはタスクポリシーを含む実行遷移情報を、実行遷移情報を構成する各ＰＥに送信し、計算資源の確保を要求する。シーケンス３０７では、ＰＥ１に対して実行遷移情報を送信して計算資源の確保を要求している。
【００７９】
ＣＵは、各ＰＥへの送信前に、パラメータの値や組合せをチェックし、値や組合せが不適切または不可能な場合はエラーを返し、サービス処理を終了する。
【００８０】
シーケンス３０８では、ＰＥ１は実行遷移情報を受信すると、割り当てられたタスクを確認し、タスクの実行に必要なメモリなどの計算資源を確保する。さらに、ポリシーの適用を行い、必要に応じてＰＥ１の内部の構成の変更をする。実施例１では、ＰＥ１は並列度の上限と下限がどちらも１であることを確認し、並列度を１に決定する。ＰＥ１の内部に処理ブロックがなければプロセスやスレッドなどを新たに生成したり、プログラム情報をロードしたりする。ハードウエア実装の場合は必要に応じてスイッチングなど動的再構成を実行する。
【００８１】
シーケンス３０９では、ＰＥ１が計算資源を確保し、ポリシーを適用すると、計算資源の確保が完了したことをＣＵに通知する。
【００８２】
シーケンス３１０では、ＰＥ１と同様にＰＥ４も計算資源確保要求をＣＵから受信する。
【００８３】
シーケンス３１１では、ＰＥ４は並列度の上限と下限がどちらも２であることを確認し、並列度を２に決定する。ＰＥ４の内部に処理ブロックが２つなければプロセスやスレッドなどを新たに生成したり、プログラム情報をロードしたりする。不要な処理ブロックがあれば削除してもよい。ハードウエア実装の場合は必要に応じて処理ブロックへの経路をスイッチングするなど動的再構成を実行する。
【００８４】
シーケンス３１２では、ＰＥ４が計算資源を確保し、ポリシーを適用すると、計算資源の確保が完了したことをＣＵに通知する。
ＰＥ１、ＰＥ４以外のＰＥについても同様に計算資源の確保を行う。
【００８５】
ＣＵは、実行遷移情報に含まれるすべてのＰＥについて計算資源の確保完了を確認したら、各ＰＥ間の処理経路確立を各ＰＥに要求する（シーケンス３１３）。各ＰＥは処理経路上で隣接するＰＥと処理経路を確立する。その後、クライアントにＰＥへの接続を要求し、サービス処理開始可能であることをクライアントに通知する。
【００８６】
シーケンス３１４では、ＰＥとの処理経路を確立したところで、クライアントからデータを送信する。各ＰＥは確立した処理経路に沿ってデータフロー処理を行う。すなわち、クライアントからＰＥ１へデータを送信し、ＰＥ１がデータ処理した後に、ＰＥ２に送信する。さらにＰＥ２は処理結果をＰＥ３、ＰＥ４へと引き継いで、ＰＥ６で結果を出力する。
【００８７】
シーケンス３１５では、ＰＥ１はクライアントからデータを受信し、ＪＰＥＧファイルを読み出し、ヘッダの解析などを行う。ＰＥ１は、読み出した画像情報をＰＥ２に送信する。
【００８８】
シーケンス３１６では、ＰＥ２においてエントロピー複合化を行った後に、ＰＥ２からデータを受信したＰＥ３において逆量子化を実行し、ＰＥ４はＰＥ３からデータを受信する。
【００８９】
シーケンス３１７では、ＰＥ４はＩＤＣＴ処理を並列に行う。例えば処理をＭＣＵ単位で行うものとし、画像の座標位置に従って連続した一意に定まる番号が付けられているとすると、分割部で偶数番号のＭＣＵと奇数番号のＭＣＵを別の処理ブロックで並列に処理するように分割し、次のＰＥ５に送る前に統合部で同期処理をして再度統合する。
【００９０】
シーケンス３１８では、ＰＥ５においてアップサンプリングが実行された後に、ＰＥ６では色信号の変換が行われ、ＰＥ６からクライアントに結果が返され、サービス処理を終了する。
【００９１】
シーケンス３１９では、処理経路や計算資源の解放を行い、完了処理を実行する。
【００９２】
シーケンス３２０では、ＣＵがサービス実行完了をクライアントに送信し、サービスの実行を完了する。
【００９３】
実施例２〜７では特に断らない限り、シーケンス３０７からシーケンス３０９、及び、シーケンス３１０からシーケンス３１２で説明した計算資源確保についてはサービス実行に必要なすべてのＰＥに対して適切に行うものとする。また、シーケンス３１３の処理経路確立からシーケンス３２０のサービス実行完了まではすべての実施例において共通であり、「サービス処理を継続する」などの表現として詳細な説明を省略する場合がある。
【００９４】
（実施例２）
実施例２は、クライアントがベストエフォート型でサービスポリシーを指定する場合の処理に関する。
【００９５】
図１６は、実施例２における実行シーケンスを示す図である。
シーケンス４００では、ＰＥ１は起動すると図１７に示すＰＥ登録情報をＣＵに送信し、並列度２でタスク実行可能であることを知らせる。ここで、図１７は、実施例２におけるＰＥ１のＰＥ登録情報の例を示す表である。
【００９６】
シーケンス４０１では、ＰＥ１と同様に、ＰＥ４（ＶＰＥ）はＰＥ登録情報（図１８）をＣＵに送信し、並列度４でタスク実行可能であることを知らせる。ＰＥ１、ＰＥ４以外のＰＥも起動するとＣＵに登録情報を送信し、自分自身の情報を登録する。ここで、図１８は、実施例２におけるＰＥ４のＰＥ登録情報の例を示す表である。
【００９７】
シーケンス４０２では、クライアントは、ＣＵに対して、自分自身のクライアントＩＤとともに、サービスに適用するポリシーを事前に登録する。このポリシーは、すべてのサービスについて適用してもよいし、サービスＩＤを指定して、特定のサービスのみに適用してもよい。
【００９８】
実施例２では、サービスＩＤを指定せず、クライアントＩＤ  １２３４５６で特定されるクライアントから要求されるすべてのサービスについて、システム全体に図１９に示すサービスポリシーを適用するものとする。ここで、図１９は、実施例２におけるクライアント指定のサービスポリシー例を示す表である。
【００９９】
シーケンス４０３では、クライアントはサービス実行要求として、ＪＰＥＧデコードの実行をサービスＩＤ＝ＳＶ−８２３を指定してＣＵに要求する。
【０１００】
シーケンス４０４では、ＣＵはサービス実行要求を受け付けると、サービスポリシーが適用可能で、タスクポリシーを決定できるかどうか判断する。実施例２ではサービスポリシーにおける品質保証型をベストエフォート型としているため消費電力量などの条件が満たされなくても自動的にタスクポリシーを決定して、タスクの実行を進めることができる。
【０１０１】
シーケンス４０５では、ＣＵはＰＥの登録情報をもとにタスクポリシーを決定し、実行遷移情報を生成する。ＰＥの登録情報のうち動的に変化するものは逐次モニタリングし、その結果を反映して実行遷移情報を生成してもよい。その結果、ＣＵは、図４に示したものと同様の実行遷移情報を生成する。ここでは、クライアントから指定されたポリシーを満足するように、各ＰＥに対するポリシー情報のパラメータを図２０に示す内容に決定する。図２０は、実施例２においてサービスポリシーに基づいて決定されたタスクポリシーの例を示す表である。
【０１０２】
シーケンス４０６では、ＣＵは生成したタスクポリシーを含む実行遷移情報を、実行遷移情報を構成する各ＰＥに送信し、計算資源の確保を要求する。
【０１０３】
シーケンス４０７では、各ＰＥは実行遷移情報を受信すると、割り当てられたタスクを確認し、タスクの実行に必要なメモリなどの計算資源を確保する。さらに、タスクポリシーの適用を行い、必要に応じてＰＥ内部の構成の変更をする。
【０１０４】
実施例２では、並列度と同じ数だけの処理ブロックがなければプロセスやスレッドなどを新たに生成したり、プログラム情報をロードしたりする。ハードウエア実装の場合は必要に応じてスイッチングなど動的再構成を実行する。図２０に示すタスク４については並列度の上限値と下限値が異なっているため、消費電力量など他のパラメータ値を満たすようにＶＰＥ内部で動的に並列度を決定し、データ処理を制御する。なお、ＰＥにおける並列度は例えば以下の実施例で説明するフローで決定される。
【０１０５】
シーケンス４０８では、ＣＵは計算資源確保完了を各ＰＥから受信し、処理経路を確立した上でサービスの処理を継続する。
【０１０６】
（実施例３）
実施例３は、クライアントがギャランティ型でサービスポリシーを指定する場合に、クライアントが指定したサービスポリシーの適用ができないときの処理に関するものである。
【０１０７】
図２１は、実施例３における実行シーケンスを示す図である。図２２は、実施例３においてクライアントが登録したサービスポリシーの例を示す表である。
【０１０８】
シーケンス５００では、クライアントは、図２２に示すサービスポリシーをシステムに登録する。なお、シーケンス５００の前に、ＰＥ登録は完了しているものとする。
【０１０９】
シーケンス５０１では、クライアントは要求するサービスのＩＤを指定し、サービスの実行をＣＵに要求する。
【０１１０】
シーケンス５０２では、ＣＵは事前にクライアントによって登録されたサービスポリシーの適用の可否を判断する。実施例３では、このサービスポリシーの適用は不可能であると判断する。
【０１１１】
シーケンス５０３では、ＣＵはエラーをクライアントに返し、サービス処理を終了する。
実施例３では、品質保証型がギャランティ型に設定されているため、品質を保証できない場合はクライアントの意図に反するため、実行を中止し、エラーを返す。
【０１１２】
以下の実施例４及び実施例５は、図２１のシーケンス５０２においてサービスポリシーの適用ができないと判断したときに分散処理システムがとる対応に関する。サービスポリシーの適用ができないときには、エラーを返すほかに、システムは以下の対応をとることができる。
（１）代替サービスポリシーの提示（実施例４）
（２）クライアントＧＵＩ上でのタスクポリシーの入力制限または入力チェック（実施例５）
以下、実施例４及び実施例５について順に説明する。
【０１１３】
（実施例４）
実施例４は、サービスポリシーの適用ができないと判断したときの分散処理システムの対応のうち、代替サービスポリシーの提示に関するものである。
【０１１４】
図２３は、実施例４においてＣＵが代替案を提示する場合の実行シーケンスを示す図である。
まず、シーケンス６００では、ＰＥの登録は完了しているものとする。クライアントは、図２１のシーケンス５００と同様のサービスポリシーをシステムに登録しておく。
【０１１５】
シーケンス６０１では、クライアントは要求するサービスのＩＤを指定し、サービスの実行をＣＵに要求する。
【０１１６】
シーケンス６０２では、ＣＵは事前にクライアントによって登録されたサービスポリシーの適否を判断する。実施例４では、ＣＵはサービスポリシーの適用が不可能であると判断する。
【０１１７】
シーケンス６０３では、ＣＵは代替となるサービスポリシーを生成する。ＣＵは、生成したサービスポリシーをクライアントに提示する（シーケンス６０４）。クライアントへのＧＵＩ上の代替案提示イメージを図２４に示す。図２４は、実施例４においてクライアント上に提示される代替案のＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）ウインドウの例を示す図である。
【０１１８】
図２４に示すＧＵＩの例では、サービスＩＤ  ＳＶ−８２３で示されるサービスについてサービスポリシーの各パラメータを編集できる構成になっている。実施例４では、システム全体の消費電力量上限と出力スループット上限を保証するために、処理時間の上限を引き下げ指定された１秒ではなく、１０秒を処理時間上限の代替案として示している。
【０１１９】
シーケンス６０５では、クライアントはＧＵＩウインドウ上の第１列に代替案の可否を選択する。実施例４ではクライアントは代替案の使用を受諾している。
【０１２０】
シーケンス６０６では、クライアントは選択結果をＣＵに送信し、クライアントは選択結果を判断する（シーケンス６０７）。
【０１２１】
シーケンス６０７でＣＵが選択結果を受諾した場合、ＣＵは、タスクポリシーを決定して実行遷移情報を生成する（シーケンス６０８）。つづいて、シーケンス６０９では、ＣＵは、各ＰＥに計算資源確保要求とともに実行遷移情報を送信する。
【０１２２】
一方、シーケンス６０７でＣＵが選択結果を受諾しなかった場合、ＣＵは、クライアントにエラーを返し、サービスの実行を終了する。
【０１２３】
（実施例５）
実施例５は、サービスポリシーの適用ができないと判断したときの分散処理システムの対応のうち、クライアントＧＵＩ上でのタスクポリシーの入力制限または入力チェックに関する。
【０１２４】
図２５は、実施例５においてクライアント上で入力制限する場合の実行シーケンスを示す図である。
シーケンス７００では、ＰＥの登録は完了しているものとする。クライアントは要求するサービスのＩＤを指定し、サービスの実行をＣＵに要求する。
【０１２５】
シーケンス７０１では、ＣＵはタスクポリシーの候補を含む実行遷移情報を生成する。
シーケンス７０２では、ＣＵは、タスクポリシーのパラメータ選択肢を含む実行遷移情報をクライアントに送信する。実行遷移情報とともにタスクポリシーのパラメータの可能な組合せを送信する。
【０１２６】
シーケンス７０３では、クライアントはタスクポリシーを選択するときに、図２６に示すＧＵＩ上に示された可能値の範囲内でタスクポリシーの値を設定することができる。この場合、ＧＵＩがシーケンス７０２で生成したパラメータの可能な組合せから判断して、可能値の範囲を超える値を設定すると、ＧＵＩ上でエラーが返され、入力が制限される。また、先に設定した値をリアルタイムでチェックし、可能値が変化していく。ＧＵＩ上でポリシーの設定値の入力を制限またはチェックすることで、ＣＵでポリシーをチェックする工程を省くことができる。ここで、図２６は、実施例５におけるクライアント上のＧＵＩウインドウでの入力制限例を示す図である。
【０１２７】
シーケンス７０４では、タスクポリシーを確定したら、クライアントはＣＵにタスクポリシーを通知する。
【０１２８】
シーケンス７０５では、ＣＵは確定したタスクポリシーを使って実行遷移情報を構成し、サービス実行に必要な計算資源の確保を開始する。
【０１２９】
（実施例６）
実施例６は、ポリシーとして各タスクに優先度を指定する処理に関する。
優先度はサービスに適用することができないため、クライアントからのサービス実行要求後にＣＵで実行遷移情報が生成されてからクライアントが各タスクに優先度を指定するか、あるいは、あるＰＥを特定して優先度を事前登録しておく。ＰＥ１，ＰＥ４の最大並列度をそれぞれ２，４として登録していた場合（実施例２と同じ）に、ＪＰＥＧエンコードをサービスとして要求する。このときＣＵが生成した実行遷移情報に対して、クライアントが優先度を図２７のように指定したとする。図２７は、実施例６における優先度を指定したタスクポリシーの例を示す表である。
【０１３０】
ここで、優先度と同時に実行するタスクがない場合に適用される各タスクの単独実行時の並列度は例えば以下のように定義される。
（１）優先度  高：最大並列度で実行する。
（２）優先度  中：並列度上限で実行する。ただし、指定がなければ最大並列度で実行する。
（３）優先度  低：並列度下限で実行する。ただし、指定がなければ並列度１で実行する。
【０１３１】
図２８は、実施例６において２タスクまでの優先度を考慮したタスク間実行時の並列度調整の流れを示すフローチャートである。
図２８においては、あるＰＥ上で同時に２つまでのタスクを並列実行する際の実行時並列度を調整する例を示す。ここで、自タスク（調整対象のタスク）をＡとし、ＰＥ上で先に実行されているタスクをタスクＢとしている。ここでは、３つ以上のタスクの並列度を調整する場合については述べていないが、比較と実行時の並列度の調整を行う点では２つのタスク間での並列度の調整と同様である。
【０１３２】
ステップＳ８００で自タスクＡより先に実行しているタスクが同一ＰＥ内に存在するか判断する。同一ＰＥ内に存在しない場合（ステップＳ８００でＮ）はステップＳ８０８に進み、上記単独実行時の並列度でタスクを実行し、タスクの実行を終了する。
【０１３３】
一方、自タスクＡより先に実行しているタスクが同一ＰＥ内に存在する場合（ステップＳ８００でＹ）は、ステップＳ８０１に進み、タスクＡの実行時の並列度とタスクＢの実行時の並列度の和がＰＥの最大並列度を超えているかどうか判断する。和が最大並列度を超えていなければ（ステップＳ８０１でＮ）、ステップＳ８０９に進み、タスクＡとタスクＢを同時に実行して終了する。
【０１３４】
これに対して、和が最大並列度を超えている場合（ステップＳ８０１でＹ）は、さらにステップＳ８０２に進み、自タスクＡの優先度が先に実行しているタスクＢの優先度よりも小さいか否かを判断する。自タスクＡの優先度の方が小さかった場合（ステップＳ８０２でＹ）にはステップＳ８０３に進み、ＬをタスクＡ、ＨをタスクＢとする。
【０１３５】
自タスクＡの優先度が、タスクＢの優先度と等しい、又は、タスクＢの優先度より大きい場合（ステップＳ８０２でＮ）はステップＳ８１０に進み、ＬをタスクＢ、ＨをタスクＡとする。
【０１３６】
ステップＳ８０３、８１０のいずれの場合も、処理後はステップＳ８０４に進み、Ｌで表されるタスクの実行時並列度を、ＰＥの最大並列度がＨで表されるタスクの実行時並列度より大きいかどうか判断する。
【０１３７】
ＰＥの最大並列度がＨで表されるタスクの実行時並列度より大きい場合（ステップＳ８０４でＹ）、ステップＳ８１１で、Ｌで表されるタスクの実行時並列度をＰＥの最大並列度とＨで表されるタスクの実行時並列度の差に置き換え、ステップＳ８１２でタスクＡとタスクＢを同時に実行し、終了する。
【０１３８】
ステップＳ８０４でＮの場合は、ステップＳ８０５に進む。ステップＳ８０５では、Ｌで表されるタスクをペンディングし、つづくステップＳ８０６で、Ｈで表されるタスクの実行が終了したかどうか判断する。
【０１３９】
Ｈで表されるタスクの実行が終了していなければ（ステップＳ８０６でＮ）、ステップＳ８０５に戻り、ペンディングを続ける。Ｈで表されるタスクの実行が終了したら（ステップＳ８０６でＹ）、単独実行時の並列度で、Ｌで表されるタスクの実行を再開し、実行を終了する。
【０１４０】
タスクＩＤ「ＴＫ−１０４」のタスクは優先度「低」でＰＥ４（ＶＰＥ）に割り当てられる。並列度下限の指定がないため他に実行しているタスクがなくても並列度１で実行する（図２９の実線）。ここで、図２９は、実施例６においてＰＥ４が並列度１でタスクを実行する状態を示す図である。
【０１４１】
（実施例７）
実施例７は、処理ブロックを自己複製する場合に関し、処理ブロックを汎用とする場合を含む。実施例７では、同一ＰＥ内で異なる機能を持つ処理ブロックは同時に存在しない例について説明する。また、専用か汎用かに関わらず、処理ブロックを外部からロードせず、外部からロードできるのはプログラム情報および再構成情報を含むライブラリ情報のみの場合を例に挙げる。
【０１４２】
実施例１〜６では、実装がソフトウエアかハードウエアかにかかわらず、すべての処理ブロックは応用に特化した機能を提供する専用の処理ブロックであったが、ライブラリをロードすることで応用に特化した通常の処理ブロックと同等の機能を提供することのできる汎用処理ブロックをＰＥに組み込むこともできる。この汎用処理ブロックをＧＰ−ＰＢと呼ぶ。以下の説明において、ライブラリのロードは、ライブラリのプログラム情報をロードすることを意味する。
【０１４３】
図３０は、実施例７において処理ブロックを汎用としたＰＥの構成例を示す図である。図３０では、専用の処理ブロックが提供する機能と同等の機能を提供するライブラリ３００をＧＰ−ＰＢ３０１にダウンロードして使用すれば、専用の処理ブロックを同等に使用することができることを表している。制御部３０３は、ライブラリ保持部３０４、汎用処理ブロック保持部３０５、及びロード部３０６を含む。ロード部３０６は外部からソフトウエア情報および再構成情報を含むライブラリを汎用処理ブロックにロードする。ライブラリ保持部３０４は汎用処理ブロックからライブラリをアンロードまたは複製し、それらのライブラリ、もしくはロード部からロードしたライブラリを保持する。保持したライブラリの複製、汎用処理ブロックへのロードや汎用処理ブロック上の不要なライブラリの消去も行なう。汎用処理ブロック保持部３０５はソフトウエアで実装された処理ブロックをアンロードまたは複製し、それらの処理ブロックを保持する。保持した汎用処理ブロックの複製、汎用処理ブロックへのプログラム情報をロード可能な状態とするためのロードや不要な汎用処理ブロックの消去も行なう。ＧＰ−ＰＢ自体はソフトウエアでもハードウエアでも実装可能であるが、まずソフトウエアであるものとして説明を続ける。
【０１４４】
以下の説明では、３つのケースについて例を示す。
（１）ＧＰ−ＰＢとライブラリをセットで複製する場合
（２）ＧＰ−ＰＢとライブラリを別々に複製する場合
（３）ライブラリのみを複製する場合
【０１４５】
（１）ＧＰ−ＰＢとライブラリをセットで複製する場合（図３１〜図３５）
この場合は、初期状態において、ＪＰＥＧエンコード処理をサービスとして提供するための専用の処理ブロックを持ったＰＥが存在しない。このため、ＧＰ−ＰＢを持つＰＥ（ＶＰＥ）に、ライブラリを動的にダウンロードする。ＧＰ−ＰＢを持つＰＥの初期状態は図３１の構成となっている。ここで、図３１は、実施例７におけるＰＥ（ＶＰＥ）の初期状態を示す図である。
【０１４６】
図３２は、実施例７における実行シーケンスを示す図である。
シーケンス９００では、ＧＰ−ＰＢをもつＰＥは機能ＩＤ（ＦＩＤ）をＦＮ−９９９としてＣＵに登録する。登録情報は例えば図３３のようになっている。ここでは最大並列度を４とする。また、図３３は、実施例７における汎用処理ブロックを持つＰＥのＰＥ登録情報の例を示す表である。
【０１４７】
シーケンス９０１では、クライアントはサービス実行要求として、ＪＰＥＧデコードの実行をサービスＩＤ＝ＳＶ−８２３を指定してＣＵに要求する。
【０１４８】
シーケンス９０２では、ＣＵはＰＥの登録情報をもとに、タスクポリシー候補を含む実行遷移情報を生成する。ＧＰ−ＰＢをもつＰＥにはＴＫ−１０４のタスクを割り当てることを期待している。すなわち、ライブラリをＧＰ−ＰＢにダウンロードすることで、ＴＫ−１０４の機能を有する専用処理ブロックと同等の機能を発揮することを期待し、実行遷移情報にＧＰ−ＰＢをもつＰＥを割り当てる。ここで生成する実行遷移情報は図４に示したものと同じとし、タスクポリシーは図１４と同じ候補を生成する。汎用処理ブロックをもつＰＥを使用する場合でも、実現したいサービスを構成する経路情報とタスクポリシーが同じであれば、実行遷移情報は等しくなる。
【０１４９】
シーケンス９０３では、ＣＵは、タスクポリシーの候補を含む実行遷移情報をクライアントに通知する。
【０１５０】
シーケンス９０４では、クライアントは並列度のみを選択し、図１５と同様にタスクＩＤ：ＴＫ−１０４にあたるタスク４の並列度を２に指定する。
【０１５１】
シーケンス９０５では、クライアントは、選択したタスクポリシーを含む実行遷移情報をＣＵに通知する。
【０１５２】
シーケンス９０６では、まずＣＵは、タスクポリシーを含む実行遷移情報をチェックする。ＣＵはＧＰ−ＰＢをもつＰＥにロードされているライブラリの機能とその稼動状態を把握している。ＣＵはタスクポリシーを含む実行遷移情報からライブラリの要否判断を行う。
【０１５３】
実施例７では、ＧＰ−ＰＢを持つＰＥにはＴＫ−１０４のタスク実行に必要なＦＮ−１０４の機能を提供するライブラリがダウンロードされていないため、ＦＮ−１０４の機能を提供するライブラリを動的に配信する必要があると判断する。
【０１５４】
シーケンス９０７では、ＣＵはＦＮ−１０４の機能を提供するＧＰ−ＰＢ用のライブラリとしてプログラム情報を例えばデータベースサーバから取得し、ＰＥのロード部を介してダウンロードする（図３４）。図３４は、実施例７においてＧＰ−ＰＢにライブラリをロードした状態を示す図である。
【０１５５】
ＰＥは、シーケンス９０８ではＣＵから計算資源確保要求を受信し、シーケンス９０９では実行すべきタスクを確認し、実行時の並列度を決定する。
【０１５６】
この段階では並列度２に対して、処理ブロックが一つしか存在しないため、ＧＰ−ＰＢとライブラリをセットで複製し、並列度２で並列処理ができるような内部構成に再構成する（図３５）。図３５は、実施例７においてＧＰ−ＰＢとライブラリのセットを複製した状態を示す図である。より詳細には、主制御部がＧＰ−ＰＢの実体を残したまま、ＧＰ−ＰＢを汎用処理ブロック保持部に複製し、同様にライブラリの実体を残したままライブラリ保持部に複製する。さらに各保持部がＧＰ−ＰＢとライブラリをそれぞれ複製する。その後分割部と接続部に接続するように複製したＧＰ−ＰＢとライブラリのセットを再ロードする。
【０１５７】
シーケンス９１０では、タスクを実行できる状態になったら、計算資源確保が完了したとみなして、完了をＣＵに返す。
シーケンス９１１では、サービスの処理を継続する。
【０１５８】
（２）ＧＰ−ＰＢとライブラリを別々に複製する場合（図３６から図３８）
図３６から図３８は、実施例７においてＰＥ（ＶＰＥ）内にＧＰ−ＰＢとライブラリを別々にロード、複製した状態を示す一連の図であり、図３６は複製前の状態を示す図、図３７はＧＰ−ＰＢを複製した状態を示す図、図３８はライブラリを複製しロードした状態を示す図である。
【０１５９】
この場合は、初期状態において、ＧＰ−ＰＢにＦＮ−５００の機能を提供するライブラリがすでにロードされている（図３６）。ＧＰ−ＰＢにＴＫ−１０４のタスクを並列度２で実行したいときは、ＰＥはＦＮ−５００の機能を提供するライブラリを消去した上で、汎用処理ブロック保持部でＧＰ−ＰＢをコピー（複製）し、ＧＰ−ＰＢをロードしてライブラリをロード可能な状態とする（図３７）。その後、ＣＵがデータベースサーバから取得したＦＮ−１０４の機能を提供するライブラリをロード部を介してライブラリ保持部にロードした上で複製し、ライブラリ保持部が２つのＧＰ−ＰＢに各々ロード（図３８）して、並列処理を実現する。なお、ＦＮ−５００の機能を提供中であっても、ＧＰ−ＰＢのみを先行して複製しておくことも可能である。
【０１６０】
（３）ライブラリのみを複製する場合（図３９〜図４２）
図３９から図４２は、実施例７においてＰＥ（ＶＰＥ）内にライブラリのみをロード、複製した状態を示す一連の図であり、図３９は複製前の状態を示す図、図４０はライブラリをロードした状態を示す図、図４１はロードしたライブラリを複製した状態を示す図、図４２はライブラリと処理ブロックを消去した状態を示す図である。
【０１６１】
この場合は、ＧＰ−ＰＢをもつＰＥ（ＶＰＥ）上で、ＴＫ−１０４のタスクを並列度２で実行したいケースであり、ＰＥにすでにＧＰ−ＰＢが２つあるとき（図３９）は、図３２のＳ９０７でＣＵから配信されたライブラリをライブラリ保持部に保持し、ライブラリ保持部が保持したライブラリをコピー（図４０）した上で、各ＧＰ−ＰＢにライブラリ（ＦＮ−１０４）をロードする（図４１）。例えば本タスクの優先度が低く並列度を１に下げるためにライブラリとＧＰ−ＰＢを消去する場合は、ライブラリ保持部と汎用処理ブロック保持部がそれぞれライブラリとＧＰ−ＰＢを消去する（図４２）。
【０１６２】
図４１のように、すでにライブラリとＧＰ−ＰＢのセットでＰＥが提供されている場合には、ＧＰ−ＰＢとライブラリの２つの機能ＩＤをＣＵに登録する（図４３）。ここで、図４３は、実施例７においてＧＰ−ＰＢとライブラリを含むＰＥのＰＥ登録情報の例を示す表である。
【０１６３】
（１）、（２）で説明したように、ＧＰ−ＰＢはすべて必要に応じて複製することができる。また、（１）で述べたように、ＧＰ−ＰＢはライブラリとセットで複製することも可能であり、ＧＰ−ＰＢやライブラリをそれぞれ単体で複製することも可能である（（２）、（３））。ライブラリは消去して新規に別の機能を持ったライブラリを外部からロードすることも可能である。いずれの場合も処理ブロックを複製、消去することで、自由に並列度を動的に操作することが可能である。
【０１６４】
なお、ＧＰ−ＰＢおよびライブラリは保持部にアンロードすることができる。すべてのＧＰ−ＰＢおよびライブラリをアンロードしても問題ない。また、制御部にＧＰ−ＰＢ、ライブラリのいずれかまたはその組合せを保持部に保持しておくことができる（図４４）。保持部に保持しているものに関しては、任意のタイミングで１つ以上のＧＰ−ＰＢ、ライブラリを再ロードすることができる。ライブラリは外部から複数種類をロードして保持しておくことが可能であるが、あるＰＥが一度に提供できる機能は一種類のみとする。ここで、図４４は、実施例７においてＧＰ−ＰＢをアンロードして完全消去した状態あるいは再ロードした状態と保持部の構成を示す図である。
【０１６５】
実施例７では、すべてＧＰ−ＰＢとライブラリの組で特定の機能を提供する処理ブロックを示してきた。しかしながら、ＧＰ−ＰＢとライブラリの組は専用の処理ブロックＰＢと機能的に同等であるから、ソフトウエア実装された専用の処理ブロックにも上記実施例を適用することができる。すなわち、ある特定の機能を提供する専用の処理ブロックを複製したり、アンロードしたり、消去したりすることができる（図４５から図４７）。また専用処理ブロック全体を保持部に保持することが可能である。ここで、図４５から図４７は、専用処理ブロックＰＢの複製およびアンロード状態を示す一連の図であり、図４５は専用処理ブロック保持部が処理ブロックを複製し、別の処理ブロックとしてロードし処理可能とした状態を示す図であり、図４６は処理ブロックをすべてアンロードし、保持ないし、再ロードして処理可能とした状態を示す図、図４７は専用処理ブロック保持部が全処理ブロックを消去した状態を示す図である。
【０１６６】
（実施例８）
実施例８は、ハードウエアによるＰＥの実装に関する。
実施例１〜７では、ソフトウエアでＰＥを実装しており、最大並列度まで自由に処理ブロックを増減させることができる。最大並列度はメモリ容量に依存するが、ブロックがメモリ容量に対して大規模でなければ実質は無制限と考えてもよい。
【０１６７】
これに対して、ＰＥの実装はハードウエアとすることも可能である。ただし、ハードウエアの場合は予め回路として作りこまれたブロックを使用することになるため、作ったブロックの数に最大並列度が規定される。処理ブロックは分割部または統合部と常時接続していてもよいが、図４８のように各処理ブロックへのスイッチを構成することで、動的に経路を構成するとよい。図４８は、実施例８におけるハードウエア実装ブロックへの動的スイッチング例を示す図である。
【０１６８】
また、図４９に示すように、使用していない場合は処理ブロックを０から最大並列度の範囲で動的に増減させることができ、すべてのスイッチを解放することで、消費電力を抑制することも可能である。図４９は、実施例８において全スイッチを解放した状態例を示す図である。
【０１６９】
さらにまた、図５０から図５４に示すように、処理ブロックとしてダイナミック・リコンフィギャラブル・プロセッサ（ＤＲＰ）を使用すれば、ハードウエアで実装された汎用処理ブロック（ＧＰ−ＰＢ）とみなすことができる。ただし、ハードウエア実装ブロックとして、動的スイッチングにより入出力の接続切断を行なう。ＤＲＰは複製できない。再構成情報をライブラリとして複製してＤＲＰにロードあるいはアンロードするものとし、各ＤＲＰにロードする再構成情報はすべて同一とする。ライブラリ保持部に保持する再構成情報はライブラリとして外部からロード可能で、複数の再構成情報を保持していても構わない。ライブラリを動的にロードすることで内部構成を再構成できる処理ブロックを構築できる。この場合、ライブラリはダイナミック・リコンフィギャラブル・プロセッサに対する配線情報ないしスイッチング情報などの再構成情報となる。ここで、図５０から図５４は、実施例８において処理ブロックとしてダイナミック・リコンフィギャラブル・プロセッサを搭載した構成例を示す一連の図であり、図５０はダイナミック・リコンフィギャラブル・処理ブロックへの動的スイッチング例を示す図であり、図５１はＣＵがデータベースサーバから取得した再構成情報をロード部を介してダイナミック・リコンフィギャラブル処理ブロックにロードした状態もしくは、ライブラリ保持部にロードし、複製した状態を表す図、図５２はライブラリ保持部が再構成情報を複製し、ロードしている図、図５３はライブラリのアンロードおよび再ロードした状態を表す図、図５４はライブラリ保持部が再構成情報を消去した状態を表す図である。いずれもソフトウエアで実装された汎用処理ブロックと同等の機能を発揮することが可能である。
【０１７０】
ここで、図５５を参照して、ＰＥにおける並列度決定の流れについて説明する。図５５は、ＰＥにおける並列度決定の流れを示すフローチャートである。タスクポリシーの各パラメータが与えられたとき、ＰＥは図５５のフローに従って実行時の並列度を決定する。ここで説明する並列度決定の流れは、実施例１、２、４〜８に適用できる。
【０１７１】
まず、ステップＳ１０００では、サービスポリシーの並列度の上限の設定（指定）の有無を調べ、上限が設定されていれば（ステップＳ１０００でＹ）、ステップＳ１０２０に進む。上限が設定されていなければ（ステップＳ１０００でＮ）、ステップＳ１０１０に進む。ステップＳ１０１０では、並列度の上限をＰＥの最大並列度とし、ステップＳ１０２０に進む。
【０１７２】
ステップＳ１０２０では、サービスポリシーの並列度の下限の設定（指定）の有無を調べ、下限が設定されていれば（ステップＳ１０２０でＹ）、ステップＳ１０４０に進む。下限が設定されていなければ（ステップＳ１０２０でＮ）、ステップＳ１０３０に進む。ステップＳ１０３０では、並列度の下限を１とし、ステップＳ１０４０に進む。
【０１７３】
ステップＳ１０４０では、並列度の上限が下限よりも大きいかどうか判断する。上限の方が大きければ（ステップＳ１０４０でＹ）、ステップＳ１０６０に進む。上限が下限と等しい、又は、下限より小さい場合（ステップＳ１０４０でＮ）は、ステップＳ１０５０に進む。
【０１７４】
ステップＳ１０５０では、並列度の上限が下限と等しいかどうかを判断する。並列度の上限が下限と等しい場合（ステップＳ１０５０でＹ）は、並列度を選択する必要がないので、ステップＳ１０７０に進む。並列度の上限と下限が等しくない場合（ステップＳ１０５０でＮ）は、ステップＳ１１５０に進み、ＣＵに対してエラー通知が送られる。
【０１７５】
ステップＳ１０６０では、消費電力量、処理時間、出力スループットなど、並列度および優先度以外のタスクポリシーのパラメータが設定されているかどうか調べ、どれか一つでも設定されていれば（ステップＳ１０６０でＹ）、ステップＳ１０８０に進む。いずれのパラメータも設定されていなければ（ステップＳ１０６０でＮ）、ステップＳ１０７０に進む。
【０１７６】
ステップＳ１０７０では、並列度の上限値を並列度とし、ステップＳ１１３０に進む。
【０１７７】
ステップＳ１０８０では、消費電力量のプロファイルから該当する並列度の上限と下限を算出して、並列度の範囲Ａを決定し、ステップＳ１０９０に進む。
【０１７８】
ステップＳ１０９０では、ステップＳ１０８０と同様に、処理時間のプロファイルから該当する並列度の上限と下限を算出して、並列度の範囲Ｂを決定し、ステップＳ１１００に進む。
【０１７９】
ステップＳ１１００では、ステップＳ１０８０、１０９０と同様に、出力スループットのプロファイルから該当する並列度の上限と下限を算出して、並列度の範囲Ｃを決定し、ステップＳ１１１０に進む。
【０１８０】
ステップＳ１１１０では、並列度の範囲Ａ，Ｂ，Ｃから共通の範囲Ｄを抽出可能かどうか判断する。共通の範囲Ｄが抽出可能ならば（ステップＳ１１１０でＹ）、ステップＳ１１２０に進む。共通の範囲Ｄの抽出ができなければ（ステップＳ１１１０でＮ）、ステップＳ１１５０に進む。例えば、並列度の範囲Ａが１、２、３、範囲Ｂが２、３、範囲Ｃが２、３、４の場合、共通の範囲Ｄは２、３となる。
【０１８１】
ステップＳ１１２０では、並列度の上限及び下限が示す範囲と、共通の範囲Ｄと、から、さらに共通の範囲を抽出し、最大の並列度を使用する並列度として決定し、ステップＳ１１３０に進む。例えば、共通の範囲Ｄが２、３で、並列度の上限値が４、下限値が２ならば、使用する並列度は３となる。
【０１８２】
ステップＳ１１３０では、優先度の指定があるかどうか調べる。指定があれば（ステップＳ１１３０でＹ）、ステップＳ１１４０に進み、指定がなければ（ステップＳ１１３０でＮ）、処理を終了する。
【０１８３】
ステップＳ１１４０では、例えば図２８のフローに従って、優先度により並列度を調整し、処理を終了する。
【０１８４】
また、ステップＳ１１５０では、決定できる並列度が存在しないので、ＣＵにエラーを返し、処理を終了する。
【０１８５】
また図示しないが例えば、タスクポリシーで出力スループット下限と消費電力量の上限が規定されており、品質保証型がベストエフォート型である場合に、タスクポリシーで規定された値を保証できない場合は、出力スループットと消費電力量のトレードオフが最適となるように制御部が並列度を動的に調整する。品質保証型がギャランティ型であれば、タスクポリシーで規定された値を保証するように並列度を調整する。
【産業上の利用可能性】
【０１８６】
以上のように、本発明に係る分散処理システムは、最適な並列度を規定することが期待される分散処理システムに有用である。
【符号の説明】
【０１８７】
１０    クライアント
２１、２２、２３    ＰＥ（プロセッシング・エレメント）
３０    ＶＰＥ
３１    制御部
３２    分割部
３３    統合部
３４、３５、３６、３７  処理ブロック（ＰＢ）
４０    ＣＵ（コントロール・ユニット）
【図１】
2011076513.tif 000005
【図２】
2011076513.tif 000006
【図３】
2011076513.tif 000007
【図４】
2011076513.tif 000008
【図５】
2011076513.tif 000009
【図６】
2011076513.tif 000010
【図７】
2011076513.tif 000011
【図８】
2011076513.tif 000012
【図９】
2011076513.tif 000013
【図１０】
2011076513.tif 000014
【図１１】
2011076513.tif 000015
【図１２】
2011076513.tif 000016
【図１３】
2011076513.tif 000017
【図１４】
2011076513.tif 000018
【図１５】
2011076513.tif 000019
【図１６】
2011076513.tif 000020
【図１７】
2011076513.tif 000021
【図１８】
2011076513.tif 000022
【図１９】
2011076513.tif 000023
【図２０】
2011076513.tif 000024
【図２１】
2011076513.tif 000025
【図２２】
2011076513.tif 000026
【図２３】
2011076513.tif 000027
【図２４】
2011076513.tif 000028
【図２５】
2011076513.tif 000029
【図２６】
2011076513.tif 000030
【図２７】
2011076513.tif 000031
【図２８】
2011076513.tif 000032
【図２９】
2011076513.tif 000033
【図３０】
2011076513.tif 000034
【図３１】
2011076513.tif 000035
【図３２】
2011076513.tif 000036
【図３３】
2011076513.tif 000037
【図３４】
2011076513.tif 000038
【図３５】
2011076513.tif 000039
【図３６】
2011076513.tif 000040
【図３７】
2011076513.tif 000041
【図３８】
2011076513.tif 000042
【図３９】
2011076513.tif 000043
【図４０】
2011076513.tif 000044
【図４１】
2011076513.tif 000045
【図４２】
2011076513.tif 000046
【図４３】
2011076513.tif 000047
【図４４】
2011076513.tif 000048
【図４５】
2011076513.tif 000049
【図４６】
2011076513.tif 000050
【図４７】
2011076513.tif 000051
【図４８】
2011076513.tif 000052
【図４９】
2011076513.tif 000053
【図５０】
2011076513.tif 000054
【図５１】
2011076513.tif 000055
【図５２】
2011076513.tif 000056
【図５３】
2011076513.tif 000057
【図５４】
2011076513.tif 000058
【図５５】
2011076513.tif 000059