(57)【要約】【課題】  グリッドコンピューティングにおいて、高速に処理を実行可能な、データ処理装置を提供する。【解決手段】  タスクを管理する装置が接続されたネットワークに接続され、回路構成を変更可能なリコンフィギュラブルプロセッサの回路構成が、受信データに基づいて変更され（Ｓ２２０）、回路構成が変更されたリコンフィギュラブルプロセッサが、タスクを構成するサブタスクとしてのプログラムデータを実行する（Ｓ２３０）。【選択図】        図４
2006190167.tif 000002
【特許請求の範囲】
【請求項１】
タスクを管理する装置が接続されたネットワークに接続され、前記タスクを構成する複数のサブタスクのうち、少なくとも１つのサブタスクとしてのプログラムデータを実行するデータ処理装置であって、
所定のコードに基づいて、所定の処理を行なう制御部と、
回路構成を変更可能なリコンフィギュラブルプロセッサと、
前記ネットワークとデータを送受信する通信部とを備え、
前記制御部は、受信データに基づいて、前記リコンフィギュラブルプロセッサの回路構成を前記プログラムデータを実行するための変化済回路構成へ変更させる回路変更処理を行なう、データ処理装置。
【請求項２】
前記プログラムデータのアーキテクチャは、前記リコンフィギュラブルプロセッサのアーキテクチャと一致する、請求項１に記載のデータ処理装置。
【請求項３】
前記制御部は、前記リコンフィギュラブルプロセッサが未使用である場合、前記未使用のリコンフィギュラブルプロセッサの種類と数の情報を、前記通信部および前記ネットワークを介して、前記タスクを管理する装置へ送信する、請求項１に記載のデータ処理装置。
【請求項４】
前記制御部は、前記ネットワークから、前記通信部を介して、前記サブタスクとして、前記プログラムデータ、前記プログラムデータで使用される入力データを受信し、所定条件成立時、前記リコンフィギュラブルプロセッサの回路構成を変更させるためのコンフィギュレーションデータを受信する、請求項１に記載のデータ処理装置。
【請求項５】
前記制御部は、前記受信したコンフィギュレーションデータに基づいて、前記リコンフィギュラブルプロセッサの回路構成を前記変化済回路構成に変更させ、
前記変化済回路構成のリコンフィギュラブルプロセッサは、前記受信したプログラムデータを実行する、請求項４に記載のデータ処理装置。
【請求項６】
前記制御部は、前記受信したプログラムデータが、前記制御部のネイティブコードまたは非ネイティブコードのいずれであっても、前記プログラムデータに基づいて所定の処理を行なう、請求項４に記載のデータ処理装置。
【請求項７】
前記制御部は、前記受信したプログラムデータが、前記制御部の非ネイティブコードである場合、インタープリンタを使用して、前記プログラムデータを実行する、請求項４に記載のデータ処理装置。
【請求項８】
情報を記憶する記憶部をさらに備え、
前記記憶部は、前記制御部により実行された前記プログラムデータおよび前記制御部により使用された前記コンフィギュレーションデータをそれぞれ複数個記憶するプログラムデータ記憶領域およびコンフィギュレーションデータ記憶領域を含む、請求項５に記載のデータ処理装置。
【請求項９】
前記制御部は、前記プログラムデータ記憶領域および前記コンフィギュレーションデータ記憶領域にそれぞれ記憶されているプログラムデータリストおよびコンフィギュレーションデータリストを、前記通信部および前記ネットワークを介して、前記タスクを管理する装置へ送信する、請求項８に記載のデータ処理装置。
【請求項１０】
前記制御部は、前記プログラムータリストおよび前記コンフィギュレーションデータリストに含まれるデータを特定する名称の情報を前記タスクを管理する装置から受信した場合、前記名称の情報に対応するデータが記憶されている前記プログラムデータ記憶領域または前記コンフィギュレーションデータ記憶領域から、前記名称の情報対応するデータを読み出して使用または実行する、請求項９に記載のデータ処理装置。
【請求項１１】
前記制御部は、前記受信したプログラムデータを前記プログラムデータ記憶領域に順次記憶させ、前記受信したコンフィギュレーションデータを前記コンフィギュレーションデータ記憶領域に順次記憶させる、請求項８に記載のデータ処理装置。
【請求項１２】
前記制御部は、前記プログラムデータ記憶領域のうち新たに受信したプログラムデータを記憶させるための領域が不足している場合、前記プログラムデータ記憶領域に記憶されている最も長い間使用されていないプログラムデータを削除し、前記コンフィギュレーションデータ記憶領域のうち新たに受信したコンフィギュレーションデータを記憶させるための領域が不足している場合、前記コンフィギュレーションデータ記憶領域に記憶されている最も長い間使用されていないコンフィギュレーションデータを削除する、請求項１１に記載のデータ処理装置。
【請求項１３】
前記制御部は、前記受信したコンフィギュレーションデータに基づいて、前記リコンフィギュラブルプロセッサの回路構成を前記変化済回路構成に変更させた場合、前記受信したコンフィギュレーションデータを、前記コンフィギュレーションデータ記憶領域に記憶させる、請求項８に記載のデータ処理装置。
【請求項１４】
情報を記憶する記憶部をさらに備え、
前記記憶部は、前記受信したプログラムデータおよび前記受信したコンフィギュレーションデータをそれぞれ複数個記憶するプログラムデータ記憶領域およびコンフィギュレーションデータ記憶領域を含み、
前記制御部は、前記受信したプログラムデータを前記プログラムデータ記憶領域に順次記憶させ、前記受信したコンフィギュレーションデータを前記コンフィギュレーションデータ記憶領域に順次記憶させ、
前記制御部は、新たに受信したコンフィギュレーションデータの名称が、前記コンフィギュレーションデータ記憶領域に最新のデータとして記憶されているコンフィギュレーションデータの名称と異なる場合、前記新たに受信したコンフィギュレーションデータに基づいて、前記リコンフィギュラブルプロセッサの回路構成を前記変化済回路構成に変更させる、請求項４に記載のデータ処理装置。
【請求項１５】
ネットワークに接続され、回路構成を変更可能なリコンフィギュラブルプロセッサおよび所定の処理を行なうプロセッサのうち、少なくとも前記プロセッサを有するデータ処理装置であるプログラム実行装置に、タスクを構成する複数のサブタスクのうち、少なくとも１つのサブタスクとしてのプログラムデータを実行させるデータ処理装置であって、
所定のコードに基づいて、所定の処理を行なう制御部と、
前記ネットワークとデータを送受信する通信部とを備え、
前記制御部は、前記プログラム実行装置から、前記リコンフィギュラブルプロセッサおよび前記プロセッサの少なくとも一方の情報を、前記ネットワークおよび前記通信部を介して受信し、
前記制御部は、受信した前記リコンフィギュラブルプロセッサおよび前記プロセッサの少なくとも一方の情報に基づいて、所定の判定処理を行ない、前記判定処理の結果、所定条件成立に基づいて、前記プログラム実行装置に前記プログラムデータを実行させる装置に設定する、データ処理装置。
【請求項１６】
前記判定処理は、前記制御部が、前記サブタスクに対応する、前記リコンフィギュラブルプロセッサの回路構成を変更させるためのコンフィギュレーションデータのアーキテクチャと、前記リコンフィギュラブルプロセッサのアーキテクチャとが一致するかを判定する第１の判定処理および前記リコンフィギュラブルプロセッサが未使用であるかを判定する第２の判定処理を含み、
前記第１および第２の判定処理により、前記コンフィギュレーションデータのアーキテクチャと前記リコンフィギュラブルプロセッサのアーキテクチャと一致し、かつ、前記リコンフィギュラブルプロセッサが未使用であると判定されることが、前記所定条件成立である、請求項１５に記載のデータ処理装置。
【請求項１７】
前記制御部は、前記プログラムデータを実行させる装置に設定した前記プログラム実行装置へ、前記通信部および前記ネットワークを介して、前記プログラムデータ、前記プログラムデータで使用される入力データおよび前記コンフィギュレーションデータを送信する、請求項１５に記載のデータ処理装置。
【請求項１８】
前記判定処理は、前記制御部が、前記プログラムデータが前記プロセッサのネイティブコードまたは非ネイティブコードであるかを判定する第１の判定処理および前記リコンフィギュラブルプロセッサの回路構成を変更させるためのコンフィギュレーションデータのアーキテクチャと、前記リコンフィギュラブルプロセッサのアーキテクチャとが一致するかを判定する第２の判定処理を含む、請求項１５に記載のデータ処理装置。
【請求項１９】
前記所定条件成立は、第１の条件成立または第２の条件成立であり、
前記判定処理は、前記プロセッサが未使用であるかを判定する第３の判定処理および前記リコンフィギュラブルプロセッサが未使用であるかを判定する第４の判定処理を含み、
前記第１の判定処理により、前記プログラムデータが前記プロセッサのネイティブコードまたは非ネイティブコードであると判定され、かつ、前記第３の判定処理により前記プロセッサが未使用であると判定されることが、前記第１の条件成立であり、この場合、前記制御部は、前記プログラムデータ、前記プログラムデータで使用される入力データを未使用の前記プロセッサを有する前記プログラム実行装置へ送信し、
前記第２の判定処理により、前記コンフィギュレーションデータのアーキテクチャと、前記リコンフィギュラブルプロセッサのアーキテクチャとが一致すると判定され、かつ、前記第４の判定処理により前記リコンフィギュラブルプロセッサが未使用であると判定されることが、前記第２の条件成立であり、この場合、前記制御部は、前記プログラムデータ、前記入力データおよび前記コンフィギュレーションデータを、未使用の前記リコンフィギュラブルプロセッサを有する前記プログラム実行装置へ送信する、請求項１８に記載のデータ処理装置。
【請求項２０】
情報を記憶する記憶部をさらに備え、
前記記憶部は、複数の前記リコンフィギュラブルプロセッサのアーキテクチャにそれぞれ対応する複数の第１のプログラムデータと、複数の前記プロセッサにそれぞれ対応する複数のネイティブコードでそれぞれ記載された複数の第２のプログラムデータと、前記プロセッサの非ネイティブコードで記載された第３のプログラムデータとを格納している、請求項１５に記載のデータ処理装置。
【請求項２１】
前記所定条件成立は、第１の条件成立、第２の条件成立または第３の条件成立であり、
前記判定処理は、前記制御部が、前記リコンフィギュラブルプロセッサが未使用であるかを判定する第１の判定処理と、前記プロセッサが未使用であるかを判定する第２の判定処理と、前記複数の第１のプログラムデータのうち、前記複数の前記リコンフィギュラブルプロセッサのうちの判定対象となるリコンフィギュラブルプロセッサのアーキテクチャに対応する第１のプログラムデータと一致するデータがあるかを判定する第３の判定処理と、前記複数の第２のプログラムデータのうち、前記複数のプロセッサのうちの判定対象となるプロセッサのネイティブコードに対応する第２のプログラムデータと一致するデータがあるかを判定する第４の判定処理と、前記第３のプログラムデータが前記プロセッサの非ネイティブコードであるかを判定する第５の判定処理とを含み、
前記第１の判定処理により、前記リコンフィギュラブルプロセッサが未使用であると判定され、かつ、前記第３の判定処理により、前記一致するデータがあると判定されることが、前記第１の条件成立であり、この場合、前記制御部は、前記リコンフィギュラブルプロセッサのアーキテクチャに対応する第１のプログラムデータを前記プログラム実行装置へ送信するデータとして選択し、
前記第２の判定処理により、前記プロセッサが未使用であると判定され、かつ、前記第４の判定処理により、前記一致するデータがあると判定されることが、前記第２の条件成立であり、この場合、前記制御部は、前記プロセッサのネイティブコードに対応する第２のプログラムデータを前記プログラム実行装置へ送信するデータとして選択し、
前記第２の判定処理により、前記プロセッサが未使用であると判定され、かつ、前記第５の判定処理により、前記第３のプログラムデータが前記プロセッサの非ネイティブコードであると判定されることが、前記第３の条件成立であり、この場合、前記制御部は、前記プロセッサの非ネイティブコードで記載された前記第３のプログラムデータを前記プログラム実行装置へ送信するデータとして選択する、請求項２０に記載のデータ処理装置。
【請求項２２】
前記制御部は、前記第１の条件成立の場合、未使用の前記リコンフィギュラブルプロセッサを有する前記プログラム実行装置へ、前記リコンフィギュラブルプロセッサの回路構成を変更させるためのコンフィギュレーションデータを送信する、請求項２１に記載のデータ処理装置。
【請求項２３】
前記プロセッサは、前記第３の条件成立の場合、インタープリンタを使用して、前記第３のプログラムデータを実行する、請求項２１に記載のデータ処理装置。
【請求項２４】
前記制御部は、前記プロセッサが実行したプログラムデータのリストおよび前記リコンフィギュラブルプロセッサが実行したプログラムデータのリストを前記プログラムデータを実行させる装置に設定した前記プログラム実行装置から前記ネットワークおよび前記通信部を介して受信し、
前記制御部は、送信するデータの名称が受信したデータと同じ名称である場合、前記送信するデータの名称の情報を、前記プログラムデータを実行させる装置に設定した前記プログラム実行装置へ送信する、請求項１５に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に関し、特に、ネットワークに接続され、分散されたタスクを処理する機能を備えたデータ処理装置、および、ネットワークに接続され、タスクを分散させて、ネットワークに接続された他の機器にタスクを実行させるデータ処理装置に関する。
【背景技術】
【０００２】
インターネットを代表とするネットワーク技術の広がりに伴い、ネットワーク上に繋がったクライアントとなる複数のコンピュータを使って処理を行なうグリッドコンピューティングが注目されている。
【０００３】
グリッドコンピューティングでは、コンピュータが実行するタスクを小さく分割して複数のサブタスクを作成し、当該複数のサブタスクをネットワーク上のアイドル状態にある複数のコンピュータにそれぞれ割り当てて実行させる。そして、当該複数のコンピュータにそれぞれ実行させて得られた複数の結果を結合することで余剰なプロセッサ資源を活用し、大きな計算能力を得る。これが、グリッドコンピューティングという技術である。このグリッドコンピューティング技術が、米国特許第６１１２２２５号明細書（特許文献１）に開示されている。
【０００４】
また、幅広い用途に対して専用ハードウェアを使用した場合と、同等なレベルの高速な処理を実現するために、回路構成を変更可能なリコンフィギュラブルロジックを使用したリコンフィギュラブルプロセッサ（回路）の開発も盛んに行なわれている。以下においては、リコンフィギュラブルプロセッサを略してＲＰとも称する。
【０００５】
このリコンフィギュラブルロジックを使用して、特定用途のプログラムの実行の高速化を図った技術が、特開平１０−２５４６９６号公報（特許文献２）および米国特許第６２８２６２７号明細書（特許文献３）が開示されている。また、リコンフィギュラブルロジックにおいて、最適に回路を変更（構成）する技術が、特開平１０−２５６３８３号公報（特許文献４）および米国特許第６５５３３９５号明細書（特許文献５）に開示されている。
【特許文献１】米国特許第６１１２２２５号明細書
【特許文献２】特開平１０−２５４６９６号公報
【特許文献３】米国特許第６２８２６２７号明細書
【特許文献４】特開平１０−２５６３８３号公報
【特許文献５】米国特許第６５５３３９５号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のグリッドコンピューティングの技術では、クライアントとなるコンピュータがリコンフィギュラブルプロセッサを備えていても、リコンフィギュラブルプロセッサが十分に活用されていないという問題点がある。
【０００７】
本発明は、上述の問題点を解決するためになされたものであって、その目的は、グリッドコンピューティングにおいて、高速に処理を実行可能な、データ処理装置を提供することである。
【課題を解決するための手段】
【０００８】
上述の課題を解決するために、この発明のある局面に従うと、タスクを管理する装置が接続されたネットワークに接続され、タスクを構成する複数のサブタスクのうち、少なくとも１つのサブタスクとしてのプログラムデータを実行するデータ処理装置であって、データ処理装置は、所定のコードに基づいて、所定の処理を行なう制御部と、回路構成を変更可能なリコンフィギュラブルプロセッサと、ネットワークとデータを送受信する通信部とを備え、制御部は、受信データに基づいて、リコンフィギュラブルプロセッサの回路構成をプログラムデータを実行するための変化済回路構成へ変更させる回路変更処理を行なう。
【０００９】
この発明の他の局面に従うと、ネットワークに接続され、回路構成を変更可能なリコンフィギュラブルプロセッサおよび所定の処理を行なうプロセッサのうち、少なくともプロセッサを有するデータ処理装置であるプログラム実行装置に、タスクを構成する複数のサブタスクのうち、少なくとも１つのサブタスクとしてのプログラムデータを実行させるデータ処理装置であって、データ処理装置は、所定のコードに基づいて、所定の処理を行なう制御部と、ネットワークとデータを送受信する通信部とを備え、制御部は、プログラム実行装置から、リコンフィギュラブルプロセッサおよびプロセッサの少なくとも一方の情報を、ネットワークおよび通信部を介して受信し、制御部は、受信したリコンフィギュラブルプロセッサおよびプロセッサの少なくとも一方の情報に基づいて、所定の判定処理を行ない、判定処理の結果、所定条件成立に基づいて、プログラム実行装置にプログラムデータを実行させる装置に設定する。
【発明の効果】
【００１０】
本発明に係るデータ処理装置によると、データ処理装置は、タスクを管理する装置が接続されたネットワークに接続され、回路構成を変更可能なリコンフィギュラブルプロセッサの回路構成が、受信データに基づいて変更され、回路構成が変更されたリコンフィギュラブルプロセッサが、タスクを構成するサブタスクとしてのプログラムデータを実行する。
【００１１】
したがって、ネットワークでタスクを分散して処理可能であって、回路構成を変更可能なリコンフィギュラブルプロセッサによりタスクが分散されたサブタスクを効率よく高速に処理可能なデータ処理装置を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１３】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態における、グリッドコンピューティングを構成したネットワークシステム１０００の概略を示す図である。
【００１４】
図１を参照して、ネットワークシステム１０００は、ネットワーク１００と、インターネットなどの外部のネットワーク１５０と、ネットワーク２００とを含む。
【００１５】
ネットワーク１００は、ＤＣ（Dispatching Computer）１１０と、ＡＣ（Assistant Computer）１２０．１と、ＡＣ１２０．２と、通信部１４０とを含む。
【００１６】
ＤＣ１１０は、グリッドコンピューティングを使用してタスク（プログラム）を実行する場合、タスクを管理するコンピュータである。また、ＤＣ１１０は、グリッドコンピューティングを使用してタスクを実行する場合、ネットワークに接続された他のコンピュータに対してタスクを割り当てるコンピュータである。
【００１７】
ＡＣ１２０．１，ＡＣ１２０．２は、詳細は後述するが、ＤＣ１１０により割り当てられたタスクを実行するためのコンピュータである。以下においては、ＡＣ１２０．１，ＡＣ１２０．２を総括的にＡＣ１２０とも称する。
【００１８】
本発明におけるネットワークシステム１０００において、ＤＣ１１０およびＡＣ１２０の各々は、汎用大型コンピュータ、ワークステーション、パーソナルコンピュータのいずれであってもよい。
【００１９】
なお、ＤＣ１１０およびＡＣ１２０の各々は、汎用大型コンピュータ、ワークステーション、パーソナルコンピュータに限定されることなく、情報を処理するための処理部と、ネットワークを介して情報のやり取りを行なうための通信機能を備えたコンピュータであればよい。
【００２０】
通信部１４０は、ＤＣ１１０、ＡＣ１２０．１およびＡＣ１２０．２の各々と、有線または無線で、データの授受を行なう。通信部１４０は、ネットワーク１５０と有線または無線でデータの授受を行なう。また、通信部１４０は、イーサネット（登録商標）を利用した通信用インターフェース（たとえば、ルータ）である。
【００２１】
また、通信部１４０は、無線ＬＡＮの規格であるＩＥＥＥ８０２．１１ａ、ＩＥＥＥ８０２．１１ｂ、ＩＥＥＥ８０２．１１ｇ、その他有線または無線のＬＡＮ技術を利用してデータ通信を行なう通信用インターフェースのいずれであってもよい。
【００２２】
通信部１４０は、ＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）を用いた通信プロトコルを使用する。なお、通信部１４０はＴＣＰ／ＩＰの他の通信プロトコルを使用してもよい。
【００２３】
図２は、ＤＣ１１０の内部構成を示すブロック図である。なお、図２には、説明のため通信部１４０も示している。
【００２４】
図２を参照して、ＤＣ１１０は、制御部１１２と、データバス１１３と、データ一時記憶部１１５と、記憶部１１６と、通信部１１７と、表示部１１８とを含む。
【００２５】
制御部１１２、データ一時記憶部１１５、記憶部１１６、通信部１１７、表示部１１８は、データバス１１３に接続されている。データバス１１３は、接続されている各部に対し、データを伝達する。
【００２６】
記憶部１１６には、制御部１１２に所定の処理を行なわせるためのプログラム、その他各種データ等が記憶されている。記憶部１１６は、制御部１１２によってデータアクセスされる。記憶部１１６は、大容量のデータを記憶可能なハードディスクである。なお、記憶部１１６は、ハードディスクに限定されることなく、電源を供給されなくてもデータを不揮発的に保持可能な媒体（たとえば、フラッシュメモリ）であればよい。
【００２７】
すなわち、記憶部１１６は、記憶の消去・書き込みを何度でも行えるＥＰＲＯＭ（Erasable Programmable Read Only Memory）、電気的に内容を書き換えることができるＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）、紫外線を使って記憶内容の消去・再書き込みを何度でも行えるＵＶ−ＥＰＲＯＭ（Ultra-Violet Erasable Programmable Read Only Memory）、その他、不揮発的にデータを記憶保持可能な構成を有する回路のいずれであってもよい。
【００２８】
表示部１１８は、制御部１１２により指示されたテキストや画像を表示する。
【００２９】
表示部１１８は、液晶ディスプレイ（ＬＣＤ（Liquid Crystal Display））、ＣＲＴ（Cathode Ray Tube）、ＦＥＤ（Field Emission Display）、ＰＤＰ（Plasma Display Panel）、有機ＥＬディスプレイ（Organic Electro luminescence Display）、ドットマトリクス等その他の画像表示方式の表示機器のいずれであってもよい。
【００３０】
なお、表示部１１８は、ＤＣ１１０内でなく、ＤＣ１１０の外部に設けられ、ＤＣ１１０と接続される構成であってもよい。
【００３１】
制御部１１２は、記憶部１１６に記憶されたプログラムに従って、ＤＣ１１０の内部の各部に対する各種処理や、表示部１１８にテキストや画像を表示させる処理、演算処理等を行なう機能を有する。
【００３２】
制御部１１２は、マイクロプロセッサ（Microprocessor）、プログラミングすることができるＬＳＩ（Large Scale Integration）であるＦＰＧＡ（Field Programmable Gate Array）、特定の用途のために設計、製造される集積回路であるＡＳＩＣ（Application Specific Integrated Circuit）、その他の演算機能を有する回路のいずれであってもよい。
【００３３】
データ一時記憶部１１５は、制御部１１２によってデータアクセスされ、一時的にデータを記憶するワークメモリとして使用される。
【００３４】
データ一時記憶部１１５は、データを一時的に記憶可能なＲＡＭ（Random Access Memory）、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、ＳＤＲＡＭ（Synchronous DRAM）、ダブルデータレートモードという高速なデータ転送機能を持ったＳＤＲＡＭであるＤＤＲ−ＳＤＲＡＭ（Double Data Rate SDRAM）、Rambus社が開発した高速インターフェース技術を採用したＤＲＡＭであるＲＤＲＡＭ（Rambus Dynamic Random Access Memory）、Ｄｉｒｅｃｔ−ＲＤＲＡＭ（Direct Rambus Dynamic Random Access Memory）、その他、データを揮発的に記憶保持可能な構成を有する回路のいずれであってもよい。
【００３５】
通信部１１７は、制御部１１２とデータの授受を行なう。また、通信部１１７は、前述した通信部１４０と同様のインターフェースである。
【００３６】
また、通信部１１７は、ＵＳＢ（Universal Serial Bus）１．１、ＵＳＢ２．０、その他シリアル転送を行なう通信用インターフェースのいずれであってもよい。また、通信部１１７は、セントロニクス仕様、ＩＥＥＥ１２８４（Institute of Electrical and Electronic Engineers 1284）、その他パラレル転送を行なう通信用インターフェースのいずれであってもよい。また、通信部１１７は、ＩＥＥＥ１３９４、その他ＳＣＳＩ規格を利用した通信用インターフェースのいずれであってもよい。
【００３７】
図３は、ＡＣ１２０の内部構成を示すブロック図である。なお、図３には、説明のため通信部１４０も示している。
【００３８】
図３を参照して、ＡＣ１２０は、制御部１２２と、データバス１２３と、データ一時記憶部１２５と、記憶部１２６と、通信部１２７と、表示部１２８とを含む。なお、表示部１２８は、ＡＣ１２０内でなく、ＡＣ１２０の外部に設けられ、ＡＣ１２０と接続される構成であってもよい。
【００３９】
制御部１２２、データバス１２３、データ一時記憶部１２５、記憶部１２６、通信部１２７および表示部１２８は、それぞれ、前述した制御部１１２、データバス１１３、データ一時記憶部１１５、記憶部１１６、通信部１１７および表示部１１８と同様な構成および機能を有するので詳細な構成は説明しない。
【００４０】
ＡＣ１２０は、さらに、リコンフィギュラブルプロセッサ１２４を含む。リコンフィギュラブルプロセッサ１２４は、データバス１２３に接続されている。
【００４１】
リコンフィギュラブルプロセッサ１２４は、回路構成を変更可能なプロセッサである。具体的には、リコンフィギュラブルプロセッサ１２４は、記憶部１２６に記憶されたプログラムを効率よく処理する回路構成に変更可能である。
【００４２】
リコンフィギュラブルプロセッサ１２４は、プログラミングすることができるＬＳＩ（Large Scale Integration）であるＦＰＧＡ（Field Programmable Gate Array）である。なお、リコンフィギュラブルプロセッサ１２４は、ＦＰＧＡに限定されることなく、製造後に回路構成が変更可能な回路を有するものであればよい。
【００４３】
なお、リコンフィギュラブルプロセッサ１２４が実行するタスク（プログラム）を効率よく高速に処理するために、リコンフィギュラブルプロセッサ１２４の回路構成を変更させるためのデータを、コンフィギュレーションデータと称する。コンフィギュレーションデータは、記憶部１２６に記憶される。
【００４４】
制御部１２２は、コンフィギュレーションデータに基づいて、リコンフィギュラブルプロセッサ１２４の回路構成を変更させる。
【００４５】
なお、ＡＣ１２０が有するリコンフィギュラブルプロセッサ１２４は１つに限定されることなく、複数個であってもよい。また、ＤＣ１１０およびＡＣ１２０が有する制御部の個数も１つに限定されることなく、複数個であってもよい。
【００４６】
再び、図１を参照して、ネットワーク２００は、通信部２４０と、ＡＣ１２０．３と、ＡＣ１２０．４とを含む。
【００４７】
通信部２４０は、ＡＣ１２０．３およびＡＣ１２０．４の各々と、有線または無線で、データの授受を行なう。通信部２４０は、ネットワーク１５０と有線または無線でデータの授受を行なう。それ以外は、通信部２４０は、通信部１４０と同様な構成および機能を有するので詳細な説明は繰り返さない。
【００４８】
ＡＣ１２０．３およびＡＣ１２０．４は、前述したＡＣ１２０．１，ＡＣ１２０．２と同様な構成および機能を有する。以下においては、ＡＣ１２０．３およびＡＣ１２０．４も、総括的にＡＣ１２０とも称する。
【００４９】
なお、本発明におけるネットワークシステム１０００は、図１の構成に限定されず、その構成は任意である。たとえば、ＤＣ１１０にネットワークで接続されるＡＣ１２０の数は、任意である。
【００５０】
また、図２のＤＣ１１０内に、１以上のリコンフィギュラブルプロセッサ１２４が設けられてもよい。
【００５１】
次に、ネットワークシステム１０００において、グリッドコンピューティングを使用してタスクを実行する処理について説明する。
【００５２】
図４は、第１の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。以下においては、第１の実施の形態において、グリッドコンピューティングを使用してタスクを実行する処理を第１グリッドコンピューティングタスク実行処理とも称する。
【００５３】
図４を参照して、ステップＳ１００では、ＤＣ１１０が、ｍ（自然数）個のＡＣ１２０へシステム情報送信要求を出す（送信する）。ここで、システム情報送信要求とは、システム情報送信要求を受信したＡＣ１２０に、ＡＣ１２０のシステム情報をＤＣ１１０へ送信させるための要求である。
【００５４】
具体的には、ＤＣ１１０内の制御部１１２が、ネットワークを介してＡＣ１２０．１，ＡＣ１２０．２，ＡＣ１２０．３、ＡＣ１２０．４にシステム情報送信要求を送信する。システム情報送信要求を受信する処理は、ＡＣ１２０で行なわれる。
【００５５】
ステップＳ２００では、ＡＣ１２０内の制御部１２２が、システム情報送信要求を受信したか否かを判定する。ステップＳ２００において、ＹＥＳならば、ステップＳ２０２に進む。一方、ステップＳ２００において、ＮＯならば、再度、ステップＳ２００の処理が行なわれる。
【００５６】
ステップＳ２０２では、制御部１２２が、ＡＣ１２０のシステム情報を、システム情報送信要求を送信したＡＣ１２０へ送信する。システム情報には、未使用（以下においては、アイドル状態とも称する）である制御部１２２の種類と数の情報と、未使用のリコンフィギュラブルプロセッサ１２４の種類と数の情報と、記憶部１２６内の未使用領域のサイズの情報とが含まれる。
【００５７】
ここで、制御部が「未使用」である状態とは、使用率が、０％だけでなく、たとえば、１０％未満と低い状態のことも含める。たとえば、スクリーンセーバ等が起動されている状態であっても、制御部が「未使用」の状態であるとする。その後、ステップＳ２１０に進む。
【００５８】
ＡＣ１２０から送信されたシステム情報を受信する処理は、ＤＣ１１０で行なわれる。
【００５９】
ステップＳ１０２では、制御部１１２が、システム情報を受信したか否かを判定する。ステップＳ１０２において、ＹＥＳならば、ステップＳ１１０に進む。一方、ステップＳ１０２において、ＮＯならば、再度、ステップＳ１０２の処理が行なわれる。
【００６０】
ステップＳ１１０では、サブタスク実行可能判定処理が行なわれる。ここで、サブタスク実行可能判定処理とは、受信したシステム情報に基づいて、システム情報を送信したＡＣ１２０が、タスクを分割することで得られたサブタスクを実行可能かどうかを制御部１１２が判定する処理である。以下においては、システム情報を送信したＡＣ１２０を、システム情報送信ＡＣとも称する。
【００６１】
図５は、サブタスク実行可能判定処理のフローチャートである。
【００６２】
図５を参照して、ステップＳ１１２では、制御部１１２が、受信したシステム情報に基づいて、後述するＡＣ１２０に実行させるためのサブタスクのプログラムデータのアーキテクチャと、制御部１２２のアーキテクチャとが一致し、かつ、制御部１２２が未使用であるか否かを判定する。以下においては、ＡＣ１２０に実行させるためのサブタスクを実行サブタスクとも称する。具体的には、制御部１１２が、実行サブタスクのプログラムデータのコードが、制御部１２２のネイティブコードであり、かつ、制御部１２２が未使用であるか否かを判定する。
【００６３】
実行サブタスクは、リコンフィギュラブルプロセッサ１２４で、所定の処理を実行させるためのプログラムデータと、当該プログラムデータで使用される入力データと、前述のコンフィギュレーションデータとを含む。ここで、入力データとは、当該プログラムデータで使用されるパラメータ値等のデータである。
【００６４】
ステップＳ１１２において、ＹＥＳならばステップＳ１１４に進む。一方、ステップＳ１１２において、ＮＯならば、このサブタスク実行可能判定処理は終了し、ステップＳ１１０の次の処理に進む。
【００６５】
ステップＳ１１４では、制御部１１２が、受信したシステム情報に基づいて、実行サブタスクに含まれるコンフィギュレーションデータのアーキテクチャとリコンフィギュラブルプロセッサ１２４（ＲＰ）のアーキテクチャとが一致し、かつ、リコンフィギュラブルプロセッサ１２４（ＲＰ）が未使用であるか否かを判定する。
【００６６】
ステップＳ１１４において、ＹＥＳならばステップＳ１１６に進む。一方、ステップＳ１１４において、ＮＯならば、このサブタスク実行可能判定処理は終了し、ステップＳ１１０の次の処理に進む。
【００６７】
ステップＳ１１６では、制御部１１２が、受信したシステム情報に基づいて、記憶部１２６の空き容量が、実行サブタスクにより使用されるデータ量以上であるか否かを判定する。
【００６８】
ステップＳ１１６において、ＹＥＳならば、ステップＳ１１９に進む。一方、ステップＳ１１６において、ＮＯならば、このサブタスク実行可能判定処理は終了し、ステップＳ１１０の次の処理に進む。
【００６９】
ステップＳ１１９では、制御部１１２が、サブタスク実行可能フラグをオンにする。ここで、サブタスク実行可能フラグとは、記憶部１１６に設けられたフラグである。また、サブタスク実行可能フラグは、受信したシステム情報を送信したＡＣ１２０に対応付けて記憶部１１６に設けられる。
【００７０】
すなわち、ステップＳ１００においてシステム情報送信要求を送信したｍ個のＡＣ１２０のそれぞれについて、ｍ個のサブタスク実行可能フラグが記憶部１１６に設けられる。詳細は後述するが、制御部１１２は、サブタスク実行可能フラグがオンであれば、対応するＡＣ１２０に実行サブタスクを実行させる。
【００７１】
その後、このサブタスク実行可能判定処理は終了し、ステップＳ１１０の次の処理に進む。
【００７２】
ステップＳ１１０の処理が終わると、ステップＳ１２０に進む。
【００７３】
ステップＳ１２０では、制御部１１２が、サブタスク実行可能フラグの状態に基づいて、ステップＳ１１０の判定に利用したシステム情報に対応するＡＣ１２０が実行サブタスクを実行可能か否かを判定する。具体的には、制御部１１２が、記憶部１１６に記憶されている、ステップＳ１１０の判定に利用したシステム情報に対応するＡＣ１２０のサブタスク実行可能フラグがオンであるか否かを判定する。
【００７４】
ステップＳ１２０において、ＹＥＳならば、ステップＳ１２２に進む。一方、ステップＳ１２０において、ＮＯならば、ステップＳ１２４に進む。
【００７５】
ステップＳ１２２では、前述したステップＳ１２０において、オンであると判定したサブタスク実行可能フラグに対応するＡＣ１２２を、実行サブタスクの割当先として設定する。以下においては、実行サブタスクが割当先として設定されたＡＣ１２２を実行サブタスク割当ＡＣとも称する。そして、ステップＳ１２４に進む。
【００７６】
ステップＳ１２４では、ステップＳ１００においてシステム情報送信要求を送信したｍ個のＡＣ１２０全てからシステム情報を受信したか否かを判定する。
【００７７】
ステップＳ１２４において、ＹＥＳならば、ステップＳ１３０に進む。一方、ステップＳ１２４において、ＮＯならば、再度、ステップＳ１０２の処理が行なわれる。
【００７８】
なお、ステップＳ１２４の処理は、ステップＳ１００の処理が開始されてから所定時間（たとえば、３分）以上経過したら終了し、ステップＳ１３０に進む。この場合、システム情報を受信していないＡＣ１２０に対応するサブタスク実行可能フラグはオフのままとなる。
【００７９】
ステップＳ１３０では、制御部１１２が、実行サブタスクの割当先として設定したＡＣ１２０があるか否かを判定する。具体的には、制御部１１２が、記憶部１１６から、ｍ個のサブタスク実行可能フラグのうち、オンに設定されているサブタスク実行可能フラグがあるか否かを判定する。
【００８０】
ステップＳ１３０において、ＹＥＳならば、ステップＳ１４０に進む。一方、ステップＳ１３０において、ＮＯならば、ステップＳ１３２に進む。
【００８１】
ステップＳ１３２では、エラー処理が行なわれる。
【００８２】
エラー処理では、制御部１１２が、表示部１１８に、たとえば、「サブタスクを実行できるＡＣはありません」というメッセージを表示させる処理をする。そして、ＤＣ１１０の第１グリッドコンピューティングタスク実行処理は終了する。
【００８３】
ステップＳ１４０では、制御部１１２が、プログラム使用データを分割する。具体的には、制御部１１２が、実行サブタスクに含まれるプログラムデータで使用される入力データを分割するデータ分割処理を行なう。本発明では、ｍ個のＡＣ１２０の各々について、処理能力（計算能力）をベンチマーク等を使用して予め計測しておく。
【００８４】
データ分割処理では、ｍ個のＡＣ１２０のうち、実行サブタスク割当ＡＣとなった複数のＡＣの各々が、割り当てられた実行サブタスクに含まれる入力データを使用して、プログラムデータの実行時間がほぼ同じになるように、制御部１１２が、各実行サブタスク割当ＡＣに対応する入力データを分割する。
【００８５】
ここでプログラムデータの実行時間とは、実行サブタスク割当ＡＣが、プログラムデータを処理し始めてから処理し終わるまでの時間である。
【００８６】
また、入力データを分割とは、処理能力が高い実行サブタスク割当ＡＣの入力データの数を、処理能力が低い実行サブタスク割当ＡＣよりも多くなるように入力データの数を分割することである。
【００８７】
この場合、処理能力が高い実行サブタスク割当ＡＣの入力データの数は、たとえば、４０個とし、処理能力が低い実行サブタスク割当ＡＣの入力データの数は、たとえば、１０個とする。
【００８８】
なお、入力データを使用して、実行サブタスク割当ＡＣが実行するプログラムデータにより必要となるメモリの容量が、ＡＣ１２０内の記憶部１２６の空き領域の容量以上であるときは、空き領域の容量より小さくなるように、対応する入力データの数を減少させる。
【００８９】
また、制御部１１２は、ステップＳ１３０において、ｍ個のサブタスク実行可能フラグのうち、オンに設定されているサブタスク実行可能フラグが１つと判定されている場合、データ分割処理は行なわない。この場合、実行サブタスク割当ＡＣは１つとなる。また、当該１つの実行サブタスク割当ＡＣに割り当てられた実行サブタスクは、分割される前のタスクとなる。その後、ステップＳ１４２に進む。
【００９０】
ステップＳ１４２では、制御部１１２が、前述の全ての実行サブタスク割当ＡＣの各々へ、対応する実行サブタスクを送信する。その後、ステップＳ１５０に進む。
【００９１】
ＤＣ１１０から送信された実行サブタスクを受信する処理は、ＡＣ１２０で行なわれる。
【００９２】
ステップＳ２１０では、制御部１２２が、ＤＣ１１０から実行サブタスクを受信したか否かを判定する。
【００９３】
ステップＳ２１０において、ＹＥＳならば、ステップＳ２１２に進む。一方、ステップＳ２１０において、ＮＯならば、再度、ステップＳ２１０の処理が行なわれる。
【００９４】
ステップＳ２１２では、制御部１２２が、実行サブタスクの受信を完了したことを示す受信完了通知を、当該実行サブタスクを送信したＤＣ１１０へ送信する。その後、ステップＳ２２０に進む。
【００９５】
ＡＣ１２０から送信された受信完了通知を受信する処理は、ＤＣ１１０で行なわれる。
【００９６】
ステップＳ１５０では、制御部１１２が、ステップＳ１４２において、実行サブタスクを送信したＡＣ１２０から受信完了通知を受信したか否かが判定される。
【００９７】
ステップＳ１５０において、ＹＥＳならば、ステップＳ１６０に進む。一方、ステップＳ１５０において、ＮＯならば、再度、ステップＳ１４２の処理が行なわれる。
【００９８】
なお、ステップＳ１４２では、制御部１１２が、実行サブタスクを送信してから所定時間（たとえば、１分）経過しても、対応するＡＣ１２０から受信完了通知が送信されない場合、実行サブタスクの送信が正常に行なわれなかったと判断し、再度、実行サブタスク割当ＡＣへ、対応する実行サブタスクを送信する。
【００９９】
ステップＳ２２０では、制御部１２２が、受信した実行サブタスクに含まれるコンフィギュレーションデータに基づいて、未使用のリコンフィギュラブルプロセッサ１２４の回路構成を変更させる。以下においては、コンフィギュレーションデータに基づいて、変更されたリコンフィギュラブルプロセッサ１２４の回路構成を最適化済回路構成とも称する。
【０１００】
最適化済回路構成のリコンフィギュラブルプロセッサ１２４は、受信した実行サブタスクに含まれるプログラムデータを回路構成変更前のリコンフィギュラブルプロセッサ１２４よりも効率よく高速に処理することが可能となる。最適化済回路構成のリコンフィギュラブルプロセッサ１２４は、回路構成変更前のリコンフィギュラブルプロセッサ１２４に比べて、同じプログラムデータを実行する速度は、たとえば、数倍〜数十倍の速度となる。その後、ステップＳ２３０に進む。
【０１０１】
ステップＳ２３０では、最適化済回路構成のリコンフィギュラブルプロセッサ１２４が、受信した実行サブタスクに含まれるプログラムデータを入力データに基づいて実行する。リコンフィギュラブルプロセッサ１２４は、入力データに基づいてプログラムデータを実行することにより、結果データを算出する。当該プログラムデータの実行が完了すると、ステップＳ２４０に進む。
【０１０２】
ステップＳ２４０では、制御部１２２が、実行サブタスクを送信したＤＣ１１０へ、プログラムデータの実行が完了した旨を示す実行完了通知を送信する。その後、ステップＳ２５０に進む。
【０１０３】
ＡＣ１２０から送信された実行完了通知を受信する処理は、ＤＣ１１０で行なわれる。
【０１０４】
ステップＳ１６０では、制御部１１２が、ステップＳ１４２において、実行サブタスクを送信したＡＣ１２０から実行完了通知を受信したか否かが判定される。
【０１０５】
ステップＳ１６０において、ＹＥＳならば、ステップＳ１７０に進む。一方、ステップＳ１６０において、ＮＯならば、再度、ステップＳ１６０の処理が繰り返される。
【０１０６】
ステップＳ２５０では、制御部１２２が、実行サブタスクを送信したＤＣ１１０へ、ステップＳ２３０により実行されたプログラムデータにより算出された結果データの送信を行なう。そして、ＡＣ１２０の第１グリッドコンピューティングタスク実行処理は終了する。
【０１０７】
ＡＣ１２０から送信された結果データを受信する処理は、ＤＣ１１０で行なわれる。
【０１０８】
ステップＳ１７０では、制御部１１２が、ステップＳ１４２において実行サブタスクを送信した全ての実行サブタスク割当ＡＣの各々から、対応する実行サブタスクに含まれるプログラムデータの実行により算出された結果データを受信したか否かを判定する。
【０１０９】
ステップＳ１７０において、ＹＥＳならば、ステップＳ１７２に進む。一方、ステップＳ１７０において、ＮＯならば、再度、ステップＳ１７０の処理が繰り返される。
【０１１０】
ステップＳ１７２では、受信した全ての実行サブタスク割当ＡＣにそれぞれ対応する複数の結果データに基づいて、複数のサブタスクの元となるタスクの最終結果を算出する。なお、実行サブタスク割当ＡＣが１つの場合は、当該１つの実行サブタスク割当ＡＣの結果データがそのまま、タスクの最終結果となる。そして、ＤＣ１２０の第１グリッドコンピューティングタスク実行処理は終了する。
【０１１１】
以上説明した、第１の実施の形態における、第１グリッドコンピューティングタスク実行処理により、実行するサブタスク（プログラム）を効率よく高速に処理するためにリコンフィギュラブルプロセッサ１２４の回路構成が変更される。したがって、回路構成変更後（最適化済回路構成）のリコンフィギュラブルプロセッサ１２４は、サブタスクを効率よく高速に処理可能となる。その結果、各々が、最適化済回路構成のリコンフィギュラブルプロセッサ１２４を有する複数のＡＣ１２０に、タスクを分割した複数のサブタスクをそれぞれ実行させることで、高速にタスクを処理可能なデータ処理装置群（複数のＡＣ１２０）を備えるグリッドコンピューティングが実現できる。
【０１１２】
＜第２の実施の形態＞
第１の実施の形態では、サブタスクが、リコンフィギュラブルプロセッサを使用するタスクであったため、サブタスクに含まれるプログラムデータを実行する実行サブタスク割当ＡＣは、リコンフィギュラブルプロセッサ１２４を備えている必要があった。このため、グリッドコンピューティングに利用可能なコンピュータの種類が限られていた。
【０１１３】
本実施の形態では、汎用的なタスクを利用することで、幅広い種類のコンピュータをグリッドコンピューティングに利用可能とさせる。
【０１１４】
図６は、本発明の第２の実施の形態における、グリッドコンピューティングを構成したネットワークシステム１０００Ａの概略を示す図である。
【０１１５】
図６を参照して、ネットワークシステム１０００Ａはネットワークシステム１０００と比較して、ネットワーク１００の代わりに、ネットワーク１００Ａを含む点と、ネットワーク２００の代わりに、ネットワーク２００Ａを含む点とが異なる。
【０１１６】
ネットワーク１００Ａは、ネットワーク１００と比較して、ＡＣ１２０．２の代わりにＡＣ１２１．１を含む点が異なる。ネットワーク２００Ａは、ネットワーク２００と比較して、ＡＣ１２０．３の代わりにＡＣ１２０．２を含む点と、ＡＣ１２０．４の代わりにＡＣ１２１．２を含む点とが異なる。
【０１１７】
以下においては、ＡＣ１２１．１，ＡＣ１２１．２を総括的にＡＣ１２１とも称する。
【０１１８】
図７は、ＡＣ１２１の内部構成を示すブロック図である。なお、図７には、説明のため通信部１４０も示している。
【０１１９】
図７を参照して、ＡＣ１２１は、制御部１２２Ａと、データバス１２３Ａと、データ一時記憶部１２５Ａと、記憶部１２６Ａと、通信部１２７Ａと、表示部１２８Ａとを含む。なお、表示部１２８Ａは、ＡＣ１２１内でなく、ＡＣ１２１の外部に設けられ、ＡＣ１２１と接続される構成であってもよい。
【０１２０】
制御部１２２Ａ、データバス１２３Ａ、データ一時記憶部１２５Ａ、記憶部１２６Ａ、通信部１２７Ａおよび表示部１２８Ａは、それぞれ、前述した制御部１２２、データバス１２３、データ一時記憶部１２５、記憶部１２６、通信部１２７および表示部１２８と同様な構成および機能を有するので詳細な構成は説明しない。すなわち、ＡＣ１２１はＡＣ１２０と比較して、リコンフィギュラブルプロセッサ１２４を含まない点が異なる。
【０１２１】
再び図６を参照して、本発明におけるネットワークシステム１０００Ａは、図６の構成に限定されず、その構成は任意である。たとえば、ＤＣ１１０にネットワークで接続されるＡＣ１２０およびＡＣ１２１の数は、任意である。
【０１２２】
また、ＤＣ１１０内に、１以上のリコンフィギュラブルプロセッサ１２４が設けられてもよい。以下においては、記憶部１２６または記憶部１２６ＡをＡＣ内記憶部とも称する。また、制御部１２２または制御部１２２Ａを総括的にＡＣ内制御部とも称する。
【０１２３】
次に、第２の実施の形態のネットワークシステム１０００Ａにおいて、グリッドコンピューティングを使用してタスクを実行する処理について説明する。
【０１２４】
図８は、第２の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。以下においては、第２の実施の形態において、グリッドコンピューティングを使用してタスクを実行する処理を第２グリッドコンピューティングタスク実行処理とも称する。なお、図８において、「ＡＣ」と記載されているフローチャートの処理は、ＡＣ１２０またはＡＣ１２１により行なわれる処理である。以下においては、ＡＣ１２０またはＡＣ１２１を総括的にＡＣとも称する。
【０１２５】
図８を参照して、ステップＳ１００Ａでは、ＤＣ１１０が、ｓ（自然数）個のＡＣ１２０およびｔ（自然数）個のＡＣ１２１へ前述のシステム情報送信要求を出す（送信する）。なお、ｓ＋ｔ＝ｍ（自然数）となる。
【０１２６】
具体的には、ＤＣ１１０内の制御部１１２が、ネットワークを介してＡＣ１２０．１，ＡＣ１２０．２，ＡＣ１２１．１、ＡＣ１２１．２にシステム情報送信要求を送信する。システム情報送信要求を受信する処理は、ＡＣ（ＡＣ１２０またはＡＣ１２１）で行なわれる。
【０１２７】
ステップＳ２００Ａ，Ｓ２０２Ａの処理をＡＣ１２０が行なう場合、ＡＣ１２０は、それぞれ、前述のステップＳ２００，Ｓ２０２と同様な処理を行なうので詳細な説明は繰り返さない。
【０１２８】
ステップＳ２００Ａ，Ｓ２０２Ａの処理をＡＣ１２１が行なう場合、制御部１２２Ａが、それぞれ、前述のステップＳ２００，Ｓ２０２と同様な処理を行なうので詳細な説明は繰り返さない。
【０１２９】
ＡＣ１２０またはＡＣ１２１から送信されたシステム情報を受信する処理は、ＤＣ１１０で行なわれる。
【０１３０】
ステップＳ１０２Ａでは、前述したステップＳ１０２と同様な処理が行なわれるので詳細な説明は繰り返さない。
【０１３１】
ステップＳ１１０Ａでは、サブタスク実行可能判定処理Ａが行なわれる。ここで、サブタスク実行可能判定処理Ａとは、受信したシステム情報に基づいて、システム情報を送信したＡＣ１２０またはＡＣ１２１が、タスクを分割することで得られたサブタスクを実行可能かどうかを制御部１１２が判定する処理である。
【０１３２】
図９は、サブタスク実行可能判定処理Ａのフローチャートである。
【０１３３】
図９を参照して、ステップＳ１１１Ａでは、制御部１１２が、受信したシステム情報に基づいて、未使用のプロセッサが存在するか否かを判定する。
【０１３４】
ここで、受信したシステム情報が、ＡＣ１２０が送信した情報ならば、ステップＳ１１１Ａにより未使用のプロセッサが存在すると判定される条件は、制御部１２２およびリコンフィギュラブルプロセッサ１２４の少なくとも一方が未使用であるという条件である。
【０１３５】
また、受信したシステム情報が、ＡＣ１２１が送信した情報ならば、ステップＳ１１１Ａにより未使用のプロセッサが存在すると判定される条件は、制御部１２２Ａが未使用であるという条件である。
【０１３６】
ステップＳ１１１Ａにおいて、ＹＥＳならばステップＳ１１２Ａに進む。一方、ステップＳ１１１Ａにおいて、ＮＯならば、このサブタスク実行可能判定処理Ａは終了し、ステップＳ１１０Ａの次の処理に進む。
【０１３７】
ステップＳ１１２Ａでは、制御部１１２が、受信したシステム情報に基づいて、受信したシステム情報に対応するＡＣ内記憶部の空き容量が、実行サブタスクＡにより使用されるデータ量以上であるか否かを判定する。
【０１３８】
ここで、実行サブタスクＡとは、ＡＣ１２０またはＡＣ１２１に実行させるためのサブタスクである。
【０１３９】
本実施の形態では、実行サブタスクＡは３種類のサブタスクＡ１，Ａ２，Ａ３に分類される。
【０１４０】
サブタスクＡ１は、制御部１２２で、所定の処理を実行させるためのプログラムデータであって、制御部１２２の非ネイティブコードで記述されたプログラムデータと、当該プログラムデータで使用される入力データとを含む。サブタスクＡ１に含まれるプログラムデータは、たとえば、Ｊａｖａ（登録商標）のようなプロセッサのアーキテクチャに依存しない言語（コード）で記述される。
【０１４１】
サブタスクＡ２は、制御部１２２で、所定の処理を実行させるためのプログラムデータであって、制御部１２２のネイティブコードで記述されたプログラムデータと、当該プログラムデータで使用される入力データとを含む。
【０１４２】
サブタスクＡ３は、リコンフィギュラブルプロセッサ１２４で、所定の処理を実行させるためのプログラムデータであって、当該プログラムデータで使用される入力データと、前述のコンフィギュレーションデータとを含む。
【０１４３】
ステップＳ１１２Ａにおいて、ＹＥＳならばステップＳ１１３Ａに進む。一方、ステップＳ１１２Ａにおいて、ＮＯならば、このサブタスク実行可能判定処理Ａは終了し、ステップＳ１１０Ａの次の処理に進む。
【０１４４】
ステップＳ１１３Ａでは、制御部１１２が、実行サブタスクＡのプログラムデータが汎用コード（サブタスクＡ１に含まれるプログラムデータのコード（たとえば、Ｊａｖａ（登録商標））で記述されているか否かを判定する。
【０１４５】
ステップＳ１１３Ａにおいて、ＹＥＳならば、制御部１１２は、実行サブタスクＡを前述のサブタスクＡ１とする。なお、サブタスクＡ１を実行させるＡＣは、システム情報を送信したＡＣに設定する。そして、ステップＳ１１９Ａに進む。一方、ステップＳ１１３Ａにおいて、ＮＯならば、ステップＳ１１４Ａに進む。
【０１４６】
ステップＳ１１４Ａでは、制御部１１２が、受信したシステム情報に基づいて、システム情報を送信したＡＣに実行させるための実行サブタスクＡのプログラムデータのアーキテクチャとシステム情報を送信したＡＣ内制御部のアーキテクチャが一致し、かつ、システム情報を送信したＡＣ内制御部が未使用であるか否かを判定する。具体的には、制御部１１２が、実行サブタスクＡのプログラムデータのコードが、ＡＣ内制御部のネイティブコードであり、かつ、ＡＣ内制御部が未使用であるか否かを判定する。
【０１４７】
ステップＳ１１４Ａにおいて、ＹＥＳならばステップＳ１１５Ａに進む。一方、ステップＳ１１４Ａにおいて、ＮＯならば、このサブタスク実行可能判定処理Ａは終了し、ステップＳ１１０Ａの次の処理に進む。
【０１４８】
ステップＳ１１５Ａでは、制御部１１２が、受信したシステム情報に基づいて、システム情報を送信したＡＣに実行させるための実行サブタスクＡのプログラムデータのアーキテクチャが特定のものであるか否かを判定する。具体的には、実行サブタスクＡのプログラムデータのコードが、システム情報を送信したＡＣのＡＣ内制御部のネイティブコードであるか否かを判定する。
【０１４９】
ステップＳ１１５Ａにおいて、ＹＥＳならば制御部１１２は、実行サブタスクＡを前述のサブタスクＡ２とする。なお、サブタスクＡ２を実行させるＡＣは、システム情報を送信したＡＣに設定する。そして、ステップＳ１１９Ａに進む。一方、ステップＳ１１５Ａにおいて、ＮＯならば、ステップＳ１１６Ａに進む。
【０１５０】
ステップＳ１１６Ａでは、制御部１１２が、受信したシステム情報に基づいて、実行サブタスクＡに含まれるコンフィギュレーションデータのアーキテクチャとリコンフィギュラブルプロセッサ１２４（ＲＰ）のアーキテクチャとが一致し、かつ、リコンフィギュラブルプロセッサ１２４（ＲＰ）が未使用であるか否かを判定する。
【０１５１】
したがって、システム情報を送信したＡＣが、ＡＣ１２１である場合、ステップＳ１１６Ａの条件は満たさず、このサブタスク実行可能判定処理Ａは終了し、ステップＳ１１０Ａの次の処理に進む。
【０１５２】
ステップＳ１１６Ａにおいて、ＹＥＳならば制御部１１２は、実行サブタスクＡを前述のサブタスクＡ３とする。なお、サブタスクＡ３を実行させるＡＣは、システム情報を送信したＡＣに設定する。そして、ステップＳ１１９Ａに進む。一方、ステップＳ１１６Ａにおいて、ＮＯならば、このサブタスク実行可能判定処理は終了し、ステップＳ１１０Ａの次の処理に進む。
【０１５３】
ステップＳ１１９Ａでは、制御部１１２が、サブタスク実行可能フラグＡをオンにする。ここで、サブタスク実行可能フラグＡとは、記憶部１１６に設けられたフラグである。また、サブタスク実行可能フラグＡは、受信したシステム情報を送信したＡＣに対応付けて記憶部１１６に設けられる。
【０１５４】
すなわち、ステップＳ１００Ａにおいてシステム情報送信要求を送信したｓ個のＡＣ１２０のそれぞれについて、ｓ個のサブタスク実行可能フラグＡが記憶部１１６に設けられる。また、ステップＳ１００Ａにおいてシステム情報送信要求を送信したｔ個のＡＣ１２１のそれぞれについて、ｔ個のサブタスク実行可能フラグＡが記憶部１１６に設けられる。制御部１１２は、サブタスク実行可能フラグＡがオンであれば、対応するＡＣに実行サブタスクＡを実行させる。
【０１５５】
その後、このサブタスク実行可能判定処理Ａは終了し、ステップＳ１１０Ａの次の処理に進む。
【０１５６】
ステップＳ１１０Ａの処理が終わると、ステップＳ１２０Ａに進む。
【０１５７】
ステップＳ１２０Ａでは、制御部１１２が、サブタスク実行可能フラグＡの状態に基づいて、ステップＳ１１０Ａの判定に利用したシステム情報に対応するＡＣが実行サブタスクＡを実行可能か否かを判定する。具体的には、制御部１１２が、記憶部１１６に記憶されている、ステップＳ１１０Ａの判定に利用したシステム情報に対応するＡＣのサブタスク実行可能フラグＡがオンであるか否かを判定する。
【０１５８】
ステップＳ１２０Ａにおいて、ＹＥＳならば、ステップＳ１２２Ａに進む。一方、ステップＳ１２０Ａにおいて、ＮＯならば、ステップＳ１２４Ａに進む。
【０１５９】
ステップＳ１２２Ａでは、前述したステップＳ１２０Ａにおいて、オンであると判定したサブタスク実行可能フラグＡに対応するＡＣを、実行サブタスクＡの割当先として設定する。以下においては、実行サブタスクが割当先として設定されたＡＣ１２０を実行サブタスク割当ＡＣＲとも称する。また、以下においては、実行サブタスクが割当先として設定されたＡＣ１２１を実行サブタスク割当ＡＣＡとも称する。そして、ステップＳ１２４Ａに進む。
【０１６０】
ステップＳ１２４Ａでは、ステップＳ１００Ａにおいてシステム情報送信要求を送信したｍ個のＡＣ（ｓ個のＡＣ１２０およびｔ個のＡＣ１２１）全てからシステム情報を受信したか否かを判定する。
【０１６１】
ステップＳ１２４Ａにおいて、ＹＥＳならば、ステップＳ１３０Ａに進む。一方、ステップＳ１２４Ａにおいて、ＮＯならば、再度、ステップＳ１０２Ａの処理が行なわれる。
【０１６２】
なお、ステップＳ１２４Ａの処理は、ステップＳ１００Ａの処理が開始されたから所定時間（たとえば、３分）以上経過したら終了し、ステップＳ１３０Ａに進む。この場合、システム情報を受信していないＡＣに対応するサブタスク実行可能フラグＡはオフのままとなる。
【０１６３】
ステップＳ１３０Ａでは、制御部１１２が、実行サブタスクＡの割当先として設定したＡＣがあるか否かを判定する。具体的には、制御部１１２が、記憶部１１６から、ｍ個のサブタスク実行可能フラグＡのうち、オンに設定されているサブタスク実行可能フラグＡがあるか否かを判定する。
【０１６４】
ステップＳ１３０Ａにおいて、ＹＥＳならば、ステップＳ１４０Ａに進む。一方、ステップＳ１３０Ａにおいて、ＮＯならば、ステップＳ１３２Ａに進む。
【０１６５】
ステップＳ１３２Ａでは、前述のステップＳ１３２と同様な処理が行なわれるので詳細な説明は繰り返さない。そして、ＤＣ１１０の第２グリッドコンピューティングタスク実行処理は終了する。
【０１６６】
ステップＳ１４０Ａでは、ＡＣ内制御部が、プログラム使用データを分割する。具体的には、制御部１１２が、実行サブタスクＡに含まれるプログラムデータで使用される入力データを分割するデータ分割処理を行なう。本発明では、ｍ個のＡＣの各々について、処理能力（計算能力）をベンチマーク等を使用して予め計測しておく。
【０１６７】
データ分割処理では、ｍ個のＡＣのうち、実行サブタスク割当ＡＣＲまたは実行サブタスク割当ＡＣＡとなった複数のＡＣの各々が、割り当てられた実行サブタスクに含まれる入力データを使用して、プログラムデータの実行時間がほぼ同じになるように、制御部１１２が、実行サブタスク割当ＡＣＲまたは実行サブタスク割当ＡＣＡに対応する入力データを分割する。
【０１６８】
また、入力データを分割とは、処理能力が高い実行サブタスク割当ＡＣＲまたは実行サブタスク割当ＡＣＡの入力データの数を、処理能力が低い実行サブタスク割当ＡＣＲまたは実行サブタスク割当ＡＣＡよりも多くなるように入力データの数を分割することである。
【０１６９】
なお、入力データを使用して、実行サブタスク割当ＡＣＲまたは実行サブタスク割当ＡＣＡが実行するプログラムデータにより必要となるメモリの容量が、ＡＣ内記憶部の空き領域の容量以上であるときは、空き領域の容量より小さくなるように、対応する入力データの数を減少させる。
【０１７０】
また、制御部１１２は、ステップＳ１３０Ａにおいて、ｍ個のサブタスク実行可能フラグＡのうち、オンに設定されているサブタスク実行可能フラグＡが１つと判定されている場合、データ分割処理は行なわない。この場合、実行サブタスク割当ＡＣＲまたは実行サブタスク割当ＡＣＡは１つとなる。この場合、実行サブタスク割当ＡＣＲまたは実行サブタスク割当ＡＣＡに割り当てられた実行サブタスクは、分割される前のタスクとなる。その後、ステップＳ１４２Ａに進む。
【０１７１】
ステップＳ１４２Ａでは、制御部１１２が、前述の全ての実行サブタスク割当ＡＣＲおよび実行サブタスク割当ＡＣＡの各々へ、対応する実行サブタスクＡ（サブタスクＡ１，Ａ２，Ａ３）を送信する。その後、ステップＳ１５０Ａに進む。
【０１７２】
ＤＣ１１０から送信された実行サブタスクＡを受信する処理は、対応するＡＣで行なわれる。
【０１７３】
ステップＳ２１０Ａでは、ＡＣ内制御部が、ＤＣ１１０から実行サブタスクＡを受信したか否かを判定する。
【０１７４】
ステップＳ２１０Ａにおいて、ＹＥＳならば、ステップＳ２１２Ａに進む。一方、ステップＳ２１０Ａにおいて、ＮＯならば、再度、ステップＳ２１０Ａの処理が行なわれる。
【０１７５】
ステップＳ２１２Ａでは、ＡＣ内制御部が、実行サブタスクＡの受信を完了したことを示す受信完了通知を、当該実行サブタスクＡを送信したＤＣ１１０へ送信する。その後、ステップＳ２１５Ａに進む。
【０１７６】
ＡＣから送信された受信完了通知を受信する処理は、ＤＣ１１０で行なわれる。
【０１７７】
ステップＳ１５０Ａでは、制御部１１２が、ステップＳ１４２Ａにおいて、実行サブタスクを送信したＡＣから受信完了通知を受信したか否かが判定される。
【０１７８】
ステップＳ１５０Ａにおいて、ＹＥＳならば、ステップＳ１６０Ａに進む。一方、ステップＳ１５０Ａにおいて、ＮＯならば、再度、ステップＳ１４２Ａの処理が行なわれる。
【０１７９】
なお、ステップＳ１４２Ａでは、制御部１１２が、実行サブタスクＡを送信してから所定時間（たとえば、１分）経過しても、対応するＡＣから受信完了通知が送信されない場合、実行サブタスクＡの送信が正常に行なわれなかったと判断し、再度、実行サブタスク割当ＡＣＲまたは実行サブタスク割当ＡＣＡへ、対応する実行サブタスクＡを送信する。
【０１８０】
ステップＳ２１５Ａでは、受信した実行サブタスクＡに対応するＡＣのＡＣ内制御部が、ＲＰ（リコンフィギュラブルプロセッサ１２４）の回路構成の変更が必要であるか否かを判定する。すなわち、実行サブタスクＡが、コンフィギュレーションデータを含むサブタスクＡ３であるか否かが判定される。
【０１８１】
ステップＳ２１５Ａにおいて、ＹＥＳならば、ステップＳ２２０Ａに進む。一方、ステップＳ２１５Ａにおいて、ＮＯならば、ステップＳ２３０Ａに進む。
【０１８２】
ステップＳ２１５Ａにおいて、回路構成が必要であるか否かの判定は、ＤＣから受信した実行サブタスクＡが、コンフィギュレーションデータを含むサブタスクＡ３であるか否かの判定である。
【０１８３】
なお、実行サブタスクＡを受信したＡＣが、ＡＣ１２１である場合は、実行サブタスクＡは、サブタスクＡ１またはサブタスクＡ２であるので、ステップＳ２１５Ａにより、ステップＳ２３０Ａに進む。
【０１８４】
ステップＳ２２０Ａでは、前述のステップＳ２２０と同様な処理が行なわれるので詳細な説明は繰り返さない。その後、ステップＳ２３０Ａの処理が行なわれる。
【０１８５】
ステップＳ２３０Ａでは、実行サブタスクＡを受信したＡＣが実行サブタスクＡを実行する。
【０１８６】
実行サブタスクＡがサブタスクＡ１である場合、ＡＣはＡＣ１２０またはＡＣ１２１である。この場合、ＡＣ内制御部は、実行サブタスクＡに含まれる非ネイティブコードで記述されたプログラムデータを、入力データを使用して、たとえば、Ｊａｖａ（登録商標）ヴァーチャルマシーン等のインタープリンタにより実行することにより、結果データを算出する。したがって、非ネイティブコードの処理は、ネイティブコードの処理に比べて、非常に遅くなる。
【０１８７】
実行サブタスクＡがサブタスクＡ２である場合、ＡＣはＡＣ１２０またはＡＣ１２１である。この場合、ＡＣ内制御部は、実行サブタスクＡに含まれるネイティブコードで記述されたプログラムデータを、入力データを使用して実行することにより、結果データを算出する。
【０１８８】
実行サブタスクＡがサブタスクＡ３である場合、ＡＣはＡＣ１２０である。この場合、ステップＳ２２０Ａの処理により、最適化済回路構成となったリコンフィギュラブルプロセッサ１２４が、実行サブタスクＡに含まれるプログラムデータを、入力データを使用して実行することにより、結果データを算出する。したがって、プログラムデータを効率よく高速に処理することが可能となる。
【０１８９】
実行サブタスクＡに含まれるプログラムデータが実行されると、ステップＳ２４０Ａに進む。
【０１９０】
ステップＳ２４０Ａでは、実行サブタスクＡに対応するＡＣのＡＣ内制御部が、実行サブタスクを送信したＤＣ１１０へ、プログラムデータの実行が完了した旨を示す実行完了通知を送信する。その後、ステップＳ２５０Ａに進む。
【０１９１】
ＡＣから送信された実行完了通知を受信する処理は、ＤＣ１１０で行なわれる。
【０１９２】
ステップＳ１６０Ａでは、制御部１１２が、ステップＳ１４２Ａにおいて、実行サブタスクを送信したＡＣから実行完了通知を受信したか否かが判定される。
【０１９３】
ステップＳ１６０Ａにおいて、ＹＥＳならば、ステップＳ１７０Ａに進む。一方、ステップＳ１６０Ａにおいて、ＮＯならば、再度、ステップＳ１６０Ａの処理が繰り返される。
【０１９４】
ステップＳ２５０Ａでは、ＡＣ内制御部が、実行サブタスクを送信したＤＣ１１０へ、ステップＳ２３０Ａにより実行されたプログラムデータにより算出された結果データの送信を行なう。そして、ＡＣ１２０またはＡＣ１２１の第２グリッドコンピューティングタスク実行処理は終了する。
【０１９５】
ＡＣから送信された結果データを受信する処理は、ＤＣ１１０で行なわれる。
【０１９６】
ステップＳ１７０Ａでは、制御部１１２が、ステップＳ１４２Ａにおいて実行サブタスクＡを送信した全ての実行サブタスク割当ＡＣＲおよび全ての実行サブタスク割当ＡＣＡの各々から、対応する実行サブタスクＡに含まれるプログラムデータの実行により算出された結果データを受信したか否かを判定する。
【０１９７】
ステップＳ１７０Ａにおいて、ＹＥＳならば、ステップＳ１７２Ａに進む。一方、ステップＳ１７０Ａにおいて、ＮＯならば、再度、ステップＳ１７０Ａの処理が繰り返される。
【０１９８】
ステップＳ１７２Ａでは、受信した全ての実行サブタスク割当ＡＣＲおよび全ての実行サブタスク割当ＡＣＡにそれぞれ対応する複数の結果データに基づいて、複数のサブタスクの元となるタスクの最終結果を算出する。なお、前述のステップＳ１２２Ａにより実行サブタスクＡの割り当て先として設定されたＡＣが１つの場合、実行サブタスク割当ＡＣＲまたは実行サブタスク割当ＡＣＡの結果データがそのまま、タスクの最終結果となる。そして、ＤＣ１２０の第２グリッドコンピューティングタスク実行処理は終了する。
【０１９９】
以上説明した、第２の実施の形態における、第２グリッドコンピューティングタスク実行処理により、リコンフィギュラブルプロセッサを備えないコンピュータをグリッドコンピューティングに利用することができる。したがって、幅広い種類のコンピュータをグリッドコンピューティングに利用可能にすることができる。
【０２００】
＜第３の実施の形態＞
第１の実施の形態では、グリッドコンピューティングに利用可能なコンピュータの種類が限られていた。
【０２０１】
第２の実施の形態では、プログラムデータが汎用コードで記述されたものを使用することで、幅広い種類のコンピュータをグリッドコンピューティングに利用可能にすることができるが、汎用コードで記述されたプログラムデータは、インタープリンタを使用して実行しなければならず、グリッドコンピューティングの処理速度が遅くなるという問題があった。
【０２０２】
そこで、１つのプログラムデータに対して、複数種類のコードで記述された複数のプログラムデータを予め準備しておく。
【０２０３】
本実施の形態におけるグリッドコンピューティングを構成したネットワークシステムは第２の実施の形態におけるネットワークシステム１０００Ａとする。したがって、その構成および機能の詳細な説明は繰り返さない。
【０２０４】
前述の複数種類のコードで記述された複数のプログラムデータは、以下に説明するプログラムデータＡ，Ｂ，Ｃである。
【０２０５】
プログラムデータＡは、リコンフィギュラブルプロセッサ１２４のプログラムデータである。
【０２０６】
プログラムデータＡは、プログラムデータＡを実行させる複数種類のＡＣのリコンフィギュラブルプロセッサ１２４毎に、それぞれ複数準備される。また、複数のプログラムデータＡにそれぞれ対応した複数のコンフィギュレーションデータも準備する。複数のコンフィギュレーションデータの各々は、対応するリコンフィギュラブルプロセッサ１２４に応じた合成ツールを使用することで作成することができる。
【０２０７】
プログラムデータＢは、制御部１２２のネイティブコードで記述されたプログラムデータである。なお、プログラムデータＢは、たとえば、Ｃ言語等の高級言語で記述されたプログラムデータを、当該プログラムデータを実行させる制御部のアーキテクチャに応じたコンパイラを使用してコンパイルしたものである。プログラムデータＢは、プログラムデータＢを実行させる複数種類のＡＣのリコンフィギュラブルプロセッサ１２４毎に、それぞれ複数準備される。
【０２０８】
プログラムデータＣは、制御部１２２の非ネイティブコード（たとえば、Ｊａｖａ（登録商標）等）で記述されたプログラムデータである。
【０２０９】
したがって、本実施の形態では、複数のプログラムデータＡをそれぞれ含む複数の前述のサブタスクＡ３が予め準備される。また、複数のプログラムデータＢをそれぞれ含む複数の前述のサブタスクＡ２が予め準備される。
【０２１０】
また、プログラムデータＣを含む前述のサブタスクＡ１が予め準備される。以下においては、ＡＣ（ＡＣ１２０またはＡＣ１２１）に実行させるためのサブタスクＡ１，Ａ２，Ａ３を総括的に実行サブタスクＰとも称する。
【０２１１】
サブタスクＡ１、複数のサブタスクＡ２，複数のサブタスクＡ３は、ＤＣ１１０の記憶部１１６に記憶される。
【０２１２】
なお、プログラムデータは、前述のプログラムデータＡ，Ｂ，Ｃの３種類に限定されることなく、４種類以上であってもよいし、３種類のうち少なくとも１つ以上であってもよい。
【０２１３】
次に、第３の実施の形態のネットワークシステム１０００Ａにおいて、グリッドコンピューティングを使用してタスクを実行する処理について説明する。
【０２１４】
図１０は、第３の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。以下においては、第３の実施の形態において、グリッドコンピューティングを使用してタスクを実行する処理を第３グリッドコンピューティングタスク実行処理とも称する。なお、図１０において、「ＡＣ」と記載されているフローチャートの処理は、ＡＣ１２０またはＡＣ１２１により行なわれる処理である。
【０２１５】
図１０を参照して、ステップＳ１００Ｂで行なわれる処理は、前述のステップＳ１００Ａで行なわれる処理と同様なので詳細な説明は繰り返さない。
【０２１６】
ステップＳ２００Ｂ，Ｓ２０２Ｂで行なわれる処理は、前述のステップＳ２００Ａ，Ｓ２０２Ａで行なわれる処理と同様なので詳細な説明は繰り返さない。
【０２１７】
ステップＳ１０２Ｂで行なわれる処理は、前述のステップＳ１０２Ａで行なわれる処理と同様なので詳細な説明は繰り返さない。
【０２１８】
ステップＳ１１０Ｂでは、サブタスク実行可能判定処理Ｂが行なわれる。ここで、サブタスク実行可能判定処理Ｂとは、受信したシステム情報に基づいて、システム情報を送信したＡＣ１２０またはＡＣ１２１が、タスクを分割することで得られたサブタスクを実行可能かどうかを制御部１１２が判定する処理である。
【０２１９】
図１１は、サブタスク実行可能判定処理Ｂのフローチャートである。
【０２２０】
図１１を参照して、ステップＳ１１１Ｂでは、前述のステップＳ１１１Ａと同様な処理が行なわれるので詳細な説明は繰り返さない。
【０２２１】
ステップＳ１１１Ｂにおいて、ＹＥＳならばステップＳ１１２Ｂに進む。一方、ステップＳ１１１Ｂにおいて、ＮＯならば、このサブタスク実行可能判定処理Ｂは終了し、ステップＳ１１０Ｂの次の処理に進む。
【０２２２】
ステップＳ１１２Ｂでは、制御部１１２が、受信したシステム情報に基づいて、受信したシステム情報に対応するＡＣ内記憶部の空き容量が、実行サブタスクＰにより使用されるデータ量以上であるか否かを判定する。
【０２２３】
ここで、実行サブタスクＰとは、ＡＣ１２０またはＡＣ１２１に実行させるためのサブタスクであって、システム情報を送信したＡＣに対応するサブタスク（サブタスクＡ１，Ａ２，Ａ３のいずれか）である。
【０２２４】
ステップＳ１１２Ｂにおいて、ＹＥＳならばステップＳ１１３Ｂに進む。一方、ステップＳ１１２Ｂにおいて、ＮＯならば、このサブタスク実行可能判定処理Ｂは終了し、ステップＳ１１０Ｂの次の処理に進む。
【０２２５】
ステップＳ１１３Ｂでは、制御部１１２が、受信したシステム情報に基づいて、複数のサブタスクＡ３にそれぞれ含まれる複数のコンフィギュレーションデータのいずれかのアーキテクチャと、当該リコンフィギュラブルプロセッサ１２４のアーキテクチャとが一致し、かつ、当該リコンフィギュラブルプロセッサ１２４（ＲＰ）が未使用であるか否かを判定する。この場合、複数のサブタスクＡ３は、システム情報を送信したＡＣに実行させるためのタスクである。
【０２２６】
したがって、システム情報を送信したＡＣが、ＡＣ１２１である場合、ステップＳ１１３Ｂの条件は満たさず、ステップＳ１１５Ｂに進む。
【０２２７】
ステップＳ１１３Ｂにおいて、ＹＥＳならばステップＳ１１４Ｂに進む。一方、ステップＳ１１３Ｂにおいて、ＮＯならば、ステップＳ１１５Ｂに進む。
【０２２８】
ステップＳ１１４Ｂでは、ステップＳ１１３Ｂの処理において、一致したと判定されたコンフィギュレーションデータおよびプログラムデータＡを含むサブタスクＡ３の情報をシステム情報を送信したＡＣに対応付けて記憶部１１６に記憶させる。すなわち、システム情報を送信したＡＣに実行させるためのサブタスクには、プログラムデータＡを含むサブタスクＡ３が選択されたことになる。そして、後述するステップＳ１１９Ｂに進む。
【０２２９】
ステップＳ１１５Ｂでは、制御部１１２が、受信したシステム情報に基づいて、複数のサブタスクＡ２にそれぞれ含まれる複数のプログラムデータＢのいずれかのアーキテクチャと、当該対応する制御部のアーキテクチャとが一致し、かつ、当該対応する制御部が未使用であるか否かを判定する。この場合、複数のサブタスクＡ２の各々は、システム情報を送信したＡＣに実行させるためのタスクである。
【０２３０】
具体的には、制御部１１２が、受信したシステム情報に基づいて、複数のプログラムデータＢのいずれかのコードが、対応する制御部のネイティブコードと一致し、かつ、対応する制御部が未使用であるか否かを判定する。
【０２３１】
ステップＳ１１５Ｂにおいて、ＹＥＳならばステップＳ１１６Ｂに進む。一方、ステップＳ１１５Ｂにおいて、ＮＯならば、ステップＳ１１７Ｂに進む。
【０２３２】
ステップＳ１１６Ｂでは、ステップＳ１１５Ｂの処理において、一致したと判定された、プログラムデータＢを含むサブタスクＡ２の情報をシステム情報を送信したＡＣに対応付けて記憶部１１６に記憶させる。すなわち、システム情報を送信したＡＣに対応する制御部に実行させるためのサブタスクには、プログラムデータＢを含むサブタスクＡ２が選択されたことになる。そして、後述するステップＳ１１９Ｂに進む。
【０２３３】
ステップＳ１１７Ｂでは、制御部１１２が、受信したシステム情報に基づいて、記憶部１１６にサブタスクＡ１（プログラムデータＣを含むタスク）が存在し、かつ、サブタスクＡ１を実行させるＡＣ内制御部が未使用であるか否かを判定する。
【０２３４】
ステップＳ１１７Ｂにおいて、ＹＥＳならばステップＳ１１８Ｂに進む。一方、ステップＳ１１７Ｂにおいて、ＮＯならば、このサブタスク実行可能判定処理Ｂは終了し、ステップＳ１１０Ｂの次の処理に進む。
【０２３５】
ステップＳ１１８Ｂでは、ステップＳ１１７Ｂの処理において、非ネイティブコードで記述されたプログラムデータＣを含むサブタスクＡ１の情報を、システム情報を送信したＡＣに対応付けて記憶部１１６に記憶させる。すなわち、システム情報を送信したＡＣに対応する制御部に実行させるためのサブタスクには、プログラムデータＣを含むサブタスクＡ１が選択されたことになる。そして、ステップＳ１１９Ｂに進む。
【０２３６】
ステップＳ１１９Ｂでは、制御部１１２が、システム情報を送信したＡＣに対応するサブタスク実行可能フラグＢをオンにする。サブタスク実行可能フラグＢは、前述のサブタスク実行可能フラグＡと同様なので詳細な説明は繰り返さない。
【０２３７】
制御部１１２は、サブタスク実行可能フラグＢがオンであれば、対応するＡＣに対応するサブタスクを実行させる。
【０２３８】
その後、このサブタスク実行可能判定処理Ｂは終了し、ステップＳ１１０Ｂの次の処理に進む。
【０２３９】
ステップＳ１１０Ｂの処理が終わると、ステップＳ１２０Ｂの処理が行なわれる。
【０２４０】
ステップＳ１２０Ｂでは、前述のサブタスク実行可能フラグＡの代わりにサブタスク実行可能フラグＢを用いて、前述のステップＳ１２０Ａが行なわれるので詳細な説明は繰り返さない。
【０２４１】
ステップＳ１２０Ｂにおいて、ＹＥＳならば、ステップＳ１２２Ｂに進む。一方、ステップＳ１２０Ｂにおいて、ＮＯならば、ステップＳ１２４Ｂに進む。
【０２４２】
ステップＳ１２２Ｂでは、前述したステップＳ１２０Ｂにおいて、オンであると判定したサブタスク実行可能フラグＢに対応するＡＣを、実行サブタスクＰの割当先として設定（選択）する。以下においては、実行サブタスクが割当先として設定されたＡＣ１２２を実行サブタスク割当ＡＣＲとも称する。また、以下においては、実行サブタスクが割当先として設定されたＡＣ１２２Ａを実行サブタスク割当ＡＣＡとも称する。そして、ステップＳ１２４Ｂに進む。
【０２４３】
ステップＳ１２４Ｂでは、前述のステップＳ１２４Ａと同様な処理が行なわれるので詳細な説明は繰り返さない。
【０２４４】
ステップＳ１２４Ｂにおいて、ＹＥＳならば、ステップＳ１３０Ｂに進む。一方、ステップＳ１２４Ｂにおいて、ＮＯならば、再度、ステップＳ１０２Ｂの処理が行なわれる。
【０２４５】
ステップＳ１３０Ｂでは、前述のサブタスク実行可能フラグＡの代わりにサブタスク実行可能フラグＢを用いて、前述のステップＳ１３０Ａが行なわれるので詳細な説明は繰り返さない。
【０２４６】
ステップＳ１３０Ｂにおいて、ＹＥＳならば、ステップＳ１４０Ｂに進む。一方、ステップＳ１３０Ｂにおいて、ＮＯならば、ステップＳ１３２Ｂに進む。
【０２４７】
ステップＳ１３２Ｂでは、前述のステップＳ１３２と同様な処理が行なわれるので詳細な説明は繰り返さない。そして、ＤＣ１１０の第３グリッドコンピューティングタスク実行処理は終了する。
【０２４８】
ステップＳ１４０Ｂでは、前述のサブタスク実行可能フラグＡの代わりにサブタスク実行可能フラグＢを用いて、前述のステップＳ１４０Ａと同様な処理が行なわれるので詳細な説明は繰り返さない。その後、ステップＳ１４２Ｂに進む。
【０２４９】
ステップＳ１４２Ｂでは、制御部１１２が、前述の全ての実行サブタスク割当ＡＣＲおよび実行サブタスク割当ＡＣＡの各々へ、対応する実行サブタスクＰ（サブタスクＡ１，Ａ２，Ａ３）を送信する。その後、ステップＳ１５０Ｂに進む。
【０２５０】
ＤＣ１１０から送信された実行サブタスクＰを受信する処理は、対応するＡＣで行なわれる。
【０２５１】
ステップＳ２１０Ｂでは、ＡＣ内制御部が、ＤＣ１１０から実行サブタスクＰを受信したか否かを判定する。
【０２５２】
ステップＳ２１０Ｂにおいて、ＹＥＳならば、ステップＳ２１２Ｂに進む。一方、ステップＳ２１０Ｂにおいて、ＮＯならば、再度、ステップＳ２１０Ｂの処理が行なわれる。
【０２５３】
Ｓ２１２Ｂでは、前述の実行サブタスクＡの代わりに実行サブタスクＰを用いて、前述のステップＳ２１２Ａの処理が行なわれるので詳細な説明は繰り返さない。その後、ステップＳ２１５Ｂに進む。
【０２５４】
ＡＣから送信された受信完了通知を受信する処理は、ＤＣ１１０で行なわれる。
【０２５５】
ステップＳ１５０Ｂでは、前述の実行サブタスクＡの代わりに実行サブタスクＰを用いて、前述のステップＳ１５０Ａと同様の処理が行なわれるので詳細な説明は繰り返さない。
【０２５６】
ステップＳ１５０Ｂにおいて、ＹＥＳならば、ステップＳ１６０Ｂに進む。一方、ステップＳ１５０Ｂにおいて、ＮＯならば、再度、ステップＳ１４２Ｂの処理が行なわれる。
【０２５７】
ステップＳ２１５Ｂでは、前述の実行サブタスクＡの代わりに実行サブタスクＰを用いて、前述のステップＳ２１５Ａと同様の処理が行なわれるので詳細な説明は繰り返さない。
【０２５８】
ステップＳ２１５Ｂにおいて、ＹＥＳならば、ステップＳ２２０Ｂに進む。一方、ステップＳ２１５Ｂにおいて、ＮＯならば、ステップＳ２３０Ｂに進む。
【０２５９】
ステップＳ２２０Ｂでは、前述のステップＳ２２０と同様な処理が行なわれるので詳細な説明は繰り返さない。その後、ステップＳ２３０Ｂの処理が行なわれる。
【０２６０】
ステップＳ２３０Ｂ，Ｓ２４０Ｂでは、前述の実行サブタスクＡの代わりに実行サブタスクＰを用いて、それぞれ、前述のステップＳ２３０Ａ，Ｓ２４０Ａと同様な処理が行なわれるので詳細な説明は繰り返さない。その後、ステップＳ２５０Ｂに進む。
【０２６１】
ＡＣから送信された実行完了通知を受信する処理は、ＤＣ１１０で行なわれる。
【０２６２】
ステップＳ１６０Ｂでは、前述のステップＳ１６０Ａと同様な処理が行なわれるので詳細な説明は繰り返さない。
【０２６３】
ステップＳ１６０Ｂにおいて、ＹＥＳならば、ステップＳ１７０Ｂに進む。一方、ステップＳ１６０Ｂにおいて、ＮＯならば、再度、ステップＳ１６０Ｂの処理が繰り返される。
【０２６４】
ステップＳ２５０Ｂでは、前述のステップＳ２５０Ａと同様な処理が行なわれるので詳細な説明は繰り返さない。そして、ＡＣ１２０またはＡＣ１２１の第３グリッドコンピューティングタスク実行処理は終了する。
【０２６５】
ＡＣから送信された結果データを受信する処理は、ＤＣ１１０で行なわれる。
【０２６６】
Ｓ１７０Ｂでは、前述の実行サブタスクＡの代わりに実行サブタスクＰを用いて、それぞれ、前述のステップＳ１７０Ａと同様な処理が行なわれるので詳細な説明は繰り返さない。
【０２６７】
ステップＳ１７０Ｂにおいて、ＹＥＳならば、ステップＳ１７２Ｂに進む。一方、ステップＳ１７０Ｂにおいて、ＮＯならば、再度、ステップＳ１７０Ｂの処理が繰り返される。
【０２６８】
ステップＳ１７２Ｂでは、前述のステップＳ１７２Ａと同様な処理が行なわれるので詳細な説明は繰り返さない。そして、ＤＣ１２０の第３グリッドコンピューティングタスク実行処理は終了する。
【０２６９】
以上説明した、第３の実施の形態における、第３グリッドコンピューティングタスク実行処理では、１つのプログラムデータに対して、複数種類のコードで記述された複数のプログラムデータを予め準備しておく。また、グリッドコンピューティングを構成する複数のコンピュータの各々に対し、最も効率よく高速処理可能なプログラムデータを実行させる。
【０２７０】
したがって、幅広い種類のコンピュータを高速に処理させることができるグリッドコンピューティングを実現できる。
【０２７１】
＜第４の実施の形態＞
第１〜第３の実施の形態では、ＤＣがプログラムデータをＡＣに実行させる場合、ＤＣは、プログラムデータおよびコンフィギュレーションデータの少なくとも一方を必ず、ＡＣへ送信していた。このため、データを転送する時間がかかり、タスク実行のターンアラウンド時間が長くなってしまっていた。
【０２７２】
本実施の形態では、ＡＣ内記憶部に、実行または使用したプログラムデータおよびコンフィギュレーションデータは記憶させておく。そして、ＤＣが、ＡＣ内記憶部に、送信しようとしているデータが記憶部に存在すれば、データ転送を省略することでターンアラウンド時間を削減する。
【０２７３】
本実施の形態におけるグリッドコンピューティングを構成したネットワークシステムは第２の実施の形態におけるネットワークシステム１０００Ａとする。したがって、その構成および機能の詳細な説明は繰り返さない。
【０２７４】
また、ＤＣ１１０の記憶部１１６には、第３の実施の形態と同様、サブタスクＡ１、複数のサブタスクＡ２，複数のサブタスクＡ３が記憶されているとする。以下においては、ＤＣ１１０を単にＤＣとも称する。
【０２７５】
図１２は、第４の実施の形態におけるＡＣ１２０のブロック図である。
【０２７６】
図１２を参照して、第４の実施の形態におけるＡＣ１２０は、第１〜第３の実施の実施の形態におけるＡＣ１２０と比較して、記憶部１２６が、プログラムデータ記憶領域１２６Ｍとコンフィギュレーションデータ記憶領域１２６Ｎを含む点が異なる。
【０２７７】
プログラムデータ記憶領域１２６Ｍは、ＡＣにより実行されたプログラムデータを記憶する。プログラムデータ記憶領域１２６Ｍは、複数個のプログラムデータを記憶可能である。
【０２７８】
コンフィギュレーションデータ記憶領域１２６Ｎは、ＡＣにより使用されたコンフィギュレーションデータを記憶する。コンフィギュレーションデータ記憶領域１２６Ｎは、複数個のコンフィギュレーションデータを記憶可能である。
【０２７９】
なお、本実施の形態におけるＡＣ１２１内の記憶部１２６Ａもプログラムデータ記憶領域１２６Ｍとコンフィギュレーションデータ記憶領域１２６Ｎを含む。
【０２８０】
次に、第４の実施の形態のネットワークシステム１０００Ａにおいて、グリッドコンピューティングを使用してタスクを実行する処理について説明する。
【０２８１】
図１３は、第４の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。以下においては、第４の実施の形態において、グリッドコンピューティングを使用してタスクを実行する処理を第４グリッドコンピューティングタスク実行処理とも称する。なお、図１３において、「ＡＣ」と記載されているフローチャートの処理は、ＡＣ１２０またはＡＣ１２１により行なわれる処理である。なお、本実施の形態の処理は、基本的には、第３の実施の形態と同様な処理が行なわれる。したがって、第３の実施の形態と異なる部分の処理についてのみ説明する。
【０２８２】
図１３を参照して、ＡＣの処理においては、ステップＳ２３０Ｂの代わりに行なわれる後述するステップＳ２３０Ｃの処理の後、ステップＳ２３５Ｃの処理が行なわれる。詳細は後述するがステップＳ２３０Ｃでは、後述する所定条件Ａを満たせば、実行サブタスクＰが実行される。
【０２８３】
ステップＳ２３５Ｃでは、データの記憶処理が行なわれる。具体的には、ＡＣ内制御部が、ステップＳ２３０ＣでＡＣにより実行された実行サブタスクＰを、ＡＣ内記憶部に記憶させる。
【０２８４】
実行サブタスクＰには、ＡＣが実行したネイティブコードで記述されたプログラムデータ、ＡＣが実行した非ネイティブコードで記述されたプログラムデータ、ＡＣが実行したリコンフィギュラブルプロセッサ１２４のプログラムデータのいずれかと、ＡＣがプログラムデータを実行する際に使用した入力データとが含まれる。なお、ステップＳ２２０Ｂの処理が行なわれた場合は、実行サブタスクＰには、コンフィギュレーションデータも含まれる。
【０２８５】
ＡＣは、ステップＳ２３５Ｃの処理が実行される毎に、ＡＣ内制御部が、ＡＣ内記憶部に、実行サブタスクＰを記憶させる。ＡＣ内制御部は、実行サブタスクＰに含まれるプログラムデータを、重複しないようにファイル名を付けてプログラムデータ記憶領域１２６Ｍに記憶させる。なお、なお、ＡＣ内制御部は、プログラムデータ記憶領域１２６Ｍに新たに受信したプログラムデータを記憶させるための領域が不足している場合、プログラムデータ記憶領域１２６Ｍに記憶されてから最も長い間使用されていないプログラムデータを削除する。
【０２８６】
ＡＣ内制御部は、実行サブタスクＰに含まれるコンフィギュレーションデータを、重複しないようにファイル名を付けてコンフィギュレーションデータ記憶領域１２６Ｎに記憶させる。なお、ＡＣ内制御部は、コンフィギュレーションデータ記憶領域１２６Ｍに新たに受信したコンフィギュレーションデータを記憶させるための領域が不足している場合、コンフィギュレーションデータ記憶領域１２６Ｎに記憶されてから最も長い間使用されていないコンフィギュレーションデータを削除する。
【０２８７】
第４の実施の形態では、ステップＳ２００Ｂの代わりにステップＳ２００Ｃの処理が行なわれる。
【０２８８】
ステップＳ２００Ｃでは、ステップＳ２００Ｂと同様な処理が行なわれる。しかし、ステップＳ２００Ｃでは、ステップＳ２００Ｂにより送信されるシステム情報に含まれる情報に対し、情報Ａおよび情報Ｂが追加される。
【０２８９】
情報Ａは、プログラムデータ記憶領域１２６Ｍに記憶に記憶されているプログラムデータのリスト情報である。情報Ｂは、コンフィギュレーションデータ記憶領域１２６Ｎに記憶されているコンフィギュレーションデータのリスト情報である。
【０２９０】
本実施の形態では、さらに、ＤＣの処理において、ステップＳ１３０Ｂの条件を満たせば、ステップＳ１３８Ｃに進む。
【０２９１】
ステップＳ１３８Ｃでは、制御部１１２が、データの転送が必要であるか否かを判定する。具体的には、制御部１１２が、ＡＣから受信したシステム情報に含まれるプログラムデータのリスト情報およびコンフィギュレーションデータのリスト情報に基づいて、プログラムデータおよびコンフィギュレーションデータの少なくとも一方を対応するＡＣへ送信する必要があるか否かを判定する。
【０２９２】
ステップＳ１３８Ｃにおいて、ＹＥＳならば、ステップＳ１４０Ｂに進む。一方、ステップＳ１３８Ｃにおいて、ＮＯならば、ステップＳ１３９Ｃに進む。
【０２９３】
本実施の形態では、さらに、ＤＣの処理において、ステップＳ１３９Ｃの処理が行なわれる。
【０２９４】
ステップＳ１３９Ｃでは、ＤＣが、対応するＡＣにデータを転送する代わりにデータのファイル名の情報のみを送信する。その後、ステップＳ１６０Ｂに進む。すなわち、ステップＳ１３８ＣおよびステップＳ１３９Ｃにより、制御部１１２は、ＡＣへ送信しようとしているデータが、プログラムデータのリスト情報およびコンフィギュレーションデータのリスト情報にあれば、ファイル名の情報のみを送信し、データ本体は送信しない。
【０２９５】
ファイル名の情報を受信する処理は、ＡＣのステップＳ２０５Ｃにおいて行なわれる。
【０２９６】
ステップＳ２０５Ｃでは、ＡＣ内制御部が、ＤＣからファイル名の情報を受信したか否かを判定する。ステップＳ２０５Ｃにおいて、ＹＥＳならば、ステップＳ２１５Ｂに進む。一方、ステップＳ２０５Ｃにおいて、ＮＯならば、ステップＳ２１０Ｂに進む。
【０２９７】
ステップＳ２１０Ｂでは、第３の実施の形態における処理と同様な処理が行なわれるので詳細な説明は繰り返さない。ステップＳ２１０Ｂにおいて、ＹＥＳならば、ステップＳ２１２Ｂに進む。一方、ステップＳ２１０Ｂにおいて、ＮＯならば、再度、ステップＳ２０５Ｃの処理が繰り返される。
【０２９８】
ステップＳ２３０Ｃでは、ＤＣから受信したファイル名の情報に基づいて所定条件Ａを満たさない場合、受信したデータに対して、前述のステップＳ２３０Ｂと同様な処理が行なわれるので詳細な説明は繰り返さない。
【０２９９】
ここで、所定条件Ａとは、ＤＣから受信したファイル名に対応するデータが、プログラムデータ記憶領域１２６Ｍおよびコンフィギュレーションデータ記憶領域１２６Ｎにの少なくとも一方に記憶されているという条件である。
【０３００】
ステップＳ２３０Ｃでは、前述の所定条件Ａを満たせば、ＡＣ内制御部は、プログラムデータ記憶領域１２６Ｍおよびコンフィギュレーションデータ記憶領域１２６Ｎから、受信したファイル名に対応するデータを読み出して、ステップＳ２３０Ｂと同様な処理で、プログラムデータを実行する。
【０３０１】
以上説明した、第４の実施の形態における、第４グリッドコンピューティングタスク実行処理では、ＡＣが実行しようとしているデータが、ＡＣ内記憶部にある場合は、ＤＣは、ＡＣへデータの転送処理を省略するので、ＡＣがサブタスクのプログラムデータを開始するまでの時間が短縮される。したがって、タスク実行のターンアラウンド時間が削減される。
【０３０２】
＜第５の実施の形態＞
本実施の形態では、第４の実施の形態の処理の一部を変更することで、さらにターンアラウンド時間の削減を図る。
【０３０３】
本実施の形態におけるグリッドコンピューティングを構成したネットワークシステムは第２の実施の形態におけるネットワークシステム１０００Ａとする。したがって、その構成および機能の詳細な説明は繰り返さない。
【０３０４】
また、ＤＣ１１０の記憶部１１６には、第３の実施の形態と同様、サブタスクＡ１、複数のサブタスクＡ２，複数のサブタスクＡ３が記憶されているとする。
【０３０５】
次に、第５の実施の形態のネットワークシステム１０００Ａにおいて、グリッドコンピューティングを使用してタスクを実行する処理について説明する。
【０３０６】
図１４は、第５の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。以下においては、第５の実施の形態において、グリッドコンピューティングを使用してタスクを実行する処理を第５グリッドコンピューティングタスク実行処理とも称する。
【０３０７】
なお、本実施の形態の処理は、基本的には、第４の実施の形態と同様な処理が行なわれる。したがって、第４の実施の形態と異なる部分の処理についてのみ説明する。
【０３０８】
図１４を参照して、第５グリッドコンピューティングタスク実行処理は、第４グリッドコンピューティングタスク実行処理と比較して、ステップＳ２１５Ｂの代わりにステップＳ２１５Ｄの処理が行なわれる点と、ステップＳ２２０Ｂの代わりにステップＳ２２０Ｄの処理が行なわれる点とが異なる。
【０３０９】
ステップＳ２１５Ｄでは、ＡＣ内制御部が、ＲＰ（リコンフィギュラブルプロセッサ１２４）の回路構成の変更が必要であるか否かを判定する。ステップＳ２１５Ｄにおいて、ＹＥＳならば、ステップＳ２２０Ｄに進む。一方、ステップＳ２１５Ｄにおいて、ＮＯならば、ステップＳ２３０Ｃに進む。
【０３１０】
ステップＳ２０５Ｃにおいてファイル名の情報を受信した場合、前述のステップＳ２１５Ｄによる回路構成が必要であるか否かの判定は、ＤＣから受信したファイル名に対応するデータがコンフィギュレーションデータ記憶領域１２６Ｎに最新のデータとして記憶されているか否かの判定である。
【０３１１】
ステップＳ２０５Ｃにおいてファイル名の情報を受信していない場合、ステップＳ２１５Ｄによる回路構成が必要であるか否かの判定は、ＤＣから受信した実行サブタスクＰが、コンフィギュレーションデータを含むサブタスクＡ３であるか否かの判定である。
【０３１２】
ステップＳ２０５Ｃにおいてファイル名の情報を受信した場合、ステップＳ２２０Ｄでは、ＡＣ内制御部が、受信したファイル名の情報に基づいて、コンフィギュレーションデータ記憶領域１２６Ｎから、対応するコンフィギュレーションデータを読出し、未使用のリコンフィギュラブルプロセッサ１２４の回路構成を変更させる。
【０３１３】
ステップＳ２０５Ｃにおいてファイル名の情報を受信していない場合、ステップＳ２２０Ｄでは、ＡＣ内制御部が、新たに受信した実行サブタスクＰに含まれるコンフィギュレーションデータに基づいて、未使用のリコンフィギュラブルプロセッサ１２４の回路構成を変更させる。
【０３１４】
すなわち、ステップＳ２１５Ｄ，Ｓ２２０Ｄの処理により、未使用のリコンフィギュラブルプロセッサ１２４の回路構成を変更させるための新たに受信したコンフィギュレーションデータが、最新のデータとしてコンフィギュレーションデータ記憶領域１２６Ｎに記憶されている場合、リコンフィギュラブルプロセッサ１２４の回路構成の変更は行なわれない。この場合、リコンフィギュラブルプロセッサ１２４の回路構成は、新たに受信したコンフィギュレーションデータに基づいた回路構成となっている。
【０３１５】
以上説明した、第５の実施の形態における、第５グリッドコンピューティングタスク実行処理では、リコンフィギュラブルプロセッサ１２４の回路構成の無駄な変更処理をなくすことで、ＡＣがサブタスクのプログラムデータを開始するまでの時間が短縮される。したがって、第４の実施の形態よりも、さらに、タスク実行のターンアラウンド時間がさらに削減される。
【０３１６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０３１７】
【図１】本発明の第１の実施の形態における、グリッドコンピューティングを構成したネットワークシステムの概略を示す図である。
【図２】ＤＣの内部構成を示すブロック図である。
【図３】ＡＣの内部構成を示すブロック図である。
【図４】第１の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。
【図５】サブタスク実行可能判定処理のフローチャートである。
【図６】本発明の第２の実施の形態における、グリッドコンピューティングを構成したネットワークシステムの概略を示す図である。
【図７】ＡＣの内部構成を示すブロック図である。
【図８】第２の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。
【図９】サブタスク実行可能判定処理Ａのフローチャートである。
【図１０】第３の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。
【図１１】サブタスク実行可能判定処理Ｂのフローチャートである。
【図１２】第４の実施の形態におけるＡＣ１２０のブロック図である。
【図１３】第４の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。
【図１４】第５の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。
【符号の説明】
【０３１８】
１１０  ＤＣ、１２０，１２０．１，１２０．２，１２０．３，１２０．４，１２１．１，１２１．２  ＡＣ、１４０，２４０  通信部、１１２，１２２，１２２Ａ  制御部、１１３，１２３，１２３Ａ  データバス、１１５，１２５，１２５Ａ  データ一時記憶部、１１６，１２６，１２６Ａ  記憶部、１１７，１２７，１２７Ａ  通信部、１１８，１２８，１２８Ａ  表示部、１２４  リコンフィギュラブルプロセッサ、１０００，１０００Ａ  ネットワークシステム。
【図１】
2006190167.tif 000003
【図２】
2006190167.tif 000004
【図３】
2006190167.tif 000005
【図４】
2006190167.tif 000006
【図５】
2006190167.tif 000007
【図６】
2006190167.tif 000008
【図７】
2006190167.tif 000009
【図８】
2006190167.tif 000010
【図９】
2006190167.tif 000011
【図１０】
2006190167.tif 000012
【図１１】
2006190167.tif 000013
【図１２】
2006190167.tif 000014
【図１３】
2006190167.tif 000015
【図１４】
2006190167.tif 000016