JP2006190167A - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP2006190167A
JP2006190167A JP2005002639A JP2005002639A JP2006190167A JP 2006190167 A JP2006190167 A JP 2006190167A JP 2005002639 A JP2005002639 A JP 2005002639A JP 2005002639 A JP2005002639 A JP 2005002639A JP 2006190167 A JP2006190167 A JP 2006190167A
Authority
JP
Japan
Prior art keywords
data
control unit
program data
program
subtask
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2005002639A
Other languages
English (en)
Inventor
Kei Sakamoto
圭 坂本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2005002639A priority Critical patent/JP2006190167A/ja
Publication of JP2006190167A publication Critical patent/JP2006190167A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 グリッドコンピューティングにおいて、高速に処理を実行可能な、データ処理装置を提供する。
【解決手段】 タスクを管理する装置が接続されたネットワークに接続され、回路構成を変更可能なリコンフィギュラブルプロセッサの回路構成が、受信データに基づいて変更され(S220)、回路構成が変更されたリコンフィギュラブルプロセッサが、タスクを構成するサブタスクとしてのプログラムデータを実行する(S230)。
【選択図】 図4

Description

本発明は、データ処理装置に関し、特に、ネットワークに接続され、分散されたタスクを処理する機能を備えたデータ処理装置、および、ネットワークに接続され、タスクを分散させて、ネットワークに接続された他の機器にタスクを実行させるデータ処理装置に関する。
インターネットを代表とするネットワーク技術の広がりに伴い、ネットワーク上に繋がったクライアントとなる複数のコンピュータを使って処理を行なうグリッドコンピューティングが注目されている。
グリッドコンピューティングでは、コンピュータが実行するタスクを小さく分割して複数のサブタスクを作成し、当該複数のサブタスクをネットワーク上のアイドル状態にある複数のコンピュータにそれぞれ割り当てて実行させる。そして、当該複数のコンピュータにそれぞれ実行させて得られた複数の結果を結合することで余剰なプロセッサ資源を活用し、大きな計算能力を得る。これが、グリッドコンピューティングという技術である。このグリッドコンピューティング技術が、米国特許第6112225号明細書(特許文献1)に開示されている。
また、幅広い用途に対して専用ハードウェアを使用した場合と、同等なレベルの高速な処理を実現するために、回路構成を変更可能なリコンフィギュラブルロジックを使用したリコンフィギュラブルプロセッサ(回路)の開発も盛んに行なわれている。以下においては、リコンフィギュラブルプロセッサを略してRPとも称する。
このリコンフィギュラブルロジックを使用して、特定用途のプログラムの実行の高速化を図った技術が、特開平10−254696号公報(特許文献2)および米国特許第6282627号明細書(特許文献3)が開示されている。また、リコンフィギュラブルロジックにおいて、最適に回路を変更(構成)する技術が、特開平10−256383号公報(特許文献4)および米国特許第6553395号明細書(特許文献5)に開示されている。
米国特許第6112225号明細書 特開平10−254696号公報 米国特許第6282627号明細書 特開平10−256383号公報 米国特許第6553395号明細書
しかしながら、従来のグリッドコンピューティングの技術では、クライアントとなるコンピュータがリコンフィギュラブルプロセッサを備えていても、リコンフィギュラブルプロセッサが十分に活用されていないという問題点がある。
本発明は、上述の問題点を解決するためになされたものであって、その目的は、グリッドコンピューティングにおいて、高速に処理を実行可能な、データ処理装置を提供することである。
上述の課題を解決するために、この発明のある局面に従うと、タスクを管理する装置が接続されたネットワークに接続され、タスクを構成する複数のサブタスクのうち、少なくとも1つのサブタスクとしてのプログラムデータを実行するデータ処理装置であって、データ処理装置は、所定のコードに基づいて、所定の処理を行なう制御部と、回路構成を変更可能なリコンフィギュラブルプロセッサと、ネットワークとデータを送受信する通信部とを備え、制御部は、受信データに基づいて、リコンフィギュラブルプロセッサの回路構成をプログラムデータを実行するための変化済回路構成へ変更させる回路変更処理を行なう。
この発明の他の局面に従うと、ネットワークに接続され、回路構成を変更可能なリコンフィギュラブルプロセッサおよび所定の処理を行なうプロセッサのうち、少なくともプロセッサを有するデータ処理装置であるプログラム実行装置に、タスクを構成する複数のサブタスクのうち、少なくとも1つのサブタスクとしてのプログラムデータを実行させるデータ処理装置であって、データ処理装置は、所定のコードに基づいて、所定の処理を行なう制御部と、ネットワークとデータを送受信する通信部とを備え、制御部は、プログラム実行装置から、リコンフィギュラブルプロセッサおよびプロセッサの少なくとも一方の情報を、ネットワークおよび通信部を介して受信し、制御部は、受信したリコンフィギュラブルプロセッサおよびプロセッサの少なくとも一方の情報に基づいて、所定の判定処理を行ない、判定処理の結果、所定条件成立に基づいて、プログラム実行装置にプログラムデータを実行させる装置に設定する。
本発明に係るデータ処理装置によると、データ処理装置は、タスクを管理する装置が接続されたネットワークに接続され、回路構成を変更可能なリコンフィギュラブルプロセッサの回路構成が、受信データに基づいて変更され、回路構成が変更されたリコンフィギュラブルプロセッサが、タスクを構成するサブタスクとしてのプログラムデータを実行する。
したがって、ネットワークでタスクを分散して処理可能であって、回路構成を変更可能なリコンフィギュラブルプロセッサによりタスクが分散されたサブタスクを効率よく高速に処理可能なデータ処理装置を提供することができる。
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<第1の実施の形態>
図1は、本発明の第1の実施の形態における、グリッドコンピューティングを構成したネットワークシステム1000の概略を示す図である。
図1を参照して、ネットワークシステム1000は、ネットワーク100と、インターネットなどの外部のネットワーク150と、ネットワーク200とを含む。
ネットワーク100は、DC(Dispatching Computer)110と、AC(Assistant Computer)120.1と、AC120.2と、通信部140とを含む。
DC110は、グリッドコンピューティングを使用してタスク(プログラム)を実行する場合、タスクを管理するコンピュータである。また、DC110は、グリッドコンピューティングを使用してタスクを実行する場合、ネットワークに接続された他のコンピュータに対してタスクを割り当てるコンピュータである。
AC120.1,AC120.2は、詳細は後述するが、DC110により割り当てられたタスクを実行するためのコンピュータである。以下においては、AC120.1,AC120.2を総括的にAC120とも称する。
本発明におけるネットワークシステム1000において、DC110およびAC120の各々は、汎用大型コンピュータ、ワークステーション、パーソナルコンピュータのいずれであってもよい。
なお、DC110およびAC120の各々は、汎用大型コンピュータ、ワークステーション、パーソナルコンピュータに限定されることなく、情報を処理するための処理部と、ネットワークを介して情報のやり取りを行なうための通信機能を備えたコンピュータであればよい。
通信部140は、DC110、AC120.1およびAC120.2の各々と、有線または無線で、データの授受を行なう。通信部140は、ネットワーク150と有線または無線でデータの授受を行なう。また、通信部140は、イーサネット(登録商標)を利用した通信用インターフェース(たとえば、ルータ)である。
また、通信部140は、無線LANの規格であるIEEE802.11a、IEEE802.11b、IEEE802.11g、その他有線または無線のLAN技術を利用してデータ通信を行なう通信用インターフェースのいずれであってもよい。
通信部140は、TCP(Transmission Control Protocol)/IP(Internet Protocol)を用いた通信プロトコルを使用する。なお、通信部140はTCP/IPの他の通信プロトコルを使用してもよい。
図2は、DC110の内部構成を示すブロック図である。なお、図2には、説明のため通信部140も示している。
図2を参照して、DC110は、制御部112と、データバス113と、データ一時記憶部115と、記憶部116と、通信部117と、表示部118とを含む。
制御部112、データ一時記憶部115、記憶部116、通信部117、表示部118は、データバス113に接続されている。データバス113は、接続されている各部に対し、データを伝達する。
記憶部116には、制御部112に所定の処理を行なわせるためのプログラム、その他各種データ等が記憶されている。記憶部116は、制御部112によってデータアクセスされる。記憶部116は、大容量のデータを記憶可能なハードディスクである。なお、記憶部116は、ハードディスクに限定されることなく、電源を供給されなくてもデータを不揮発的に保持可能な媒体(たとえば、フラッシュメモリ)であればよい。
すなわち、記憶部116は、記憶の消去・書き込みを何度でも行えるEPROM(Erasable Programmable Read Only Memory)、電気的に内容を書き換えることができるEEPROM(Electronically Erasable and Programmable Read Only Memory)、紫外線を使って記憶内容の消去・再書き込みを何度でも行えるUV−EPROM(Ultra-Violet Erasable Programmable Read Only Memory)、その他、不揮発的にデータを記憶保持可能な構成を有する回路のいずれであってもよい。
表示部118は、制御部112により指示されたテキストや画像を表示する。
表示部118は、液晶ディスプレイ(LCD(Liquid Crystal Display))、CRT(Cathode Ray Tube)、FED(Field Emission Display)、PDP(Plasma Display Panel)、有機ELディスプレイ(Organic Electro luminescence Display)、ドットマトリクス等その他の画像表示方式の表示機器のいずれであってもよい。
なお、表示部118は、DC110内でなく、DC110の外部に設けられ、DC110と接続される構成であってもよい。
制御部112は、記憶部116に記憶されたプログラムに従って、DC110の内部の各部に対する各種処理や、表示部118にテキストや画像を表示させる処理、演算処理等を行なう機能を有する。
制御部112は、マイクロプロセッサ(Microprocessor)、プログラミングすることができるLSI(Large Scale Integration)であるFPGA(Field Programmable Gate Array)、特定の用途のために設計、製造される集積回路であるASIC(Application Specific Integrated Circuit)、その他の演算機能を有する回路のいずれであってもよい。
データ一時記憶部115は、制御部112によってデータアクセスされ、一時的にデータを記憶するワークメモリとして使用される。
データ一時記憶部115は、データを一時的に記憶可能なRAM(Random Access Memory)、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、SDRAM(Synchronous DRAM)、ダブルデータレートモードという高速なデータ転送機能を持ったSDRAMであるDDR−SDRAM(Double Data Rate SDRAM)、Rambus社が開発した高速インターフェース技術を採用したDRAMであるRDRAM(Rambus Dynamic Random Access Memory)、Direct−RDRAM(Direct Rambus Dynamic Random Access Memory)、その他、データを揮発的に記憶保持可能な構成を有する回路のいずれであってもよい。
通信部117は、制御部112とデータの授受を行なう。また、通信部117は、前述した通信部140と同様のインターフェースである。
また、通信部117は、USB(Universal Serial Bus)1.1、USB2.0、その他シリアル転送を行なう通信用インターフェースのいずれであってもよい。また、通信部117は、セントロニクス仕様、IEEE1284(Institute of Electrical and Electronic Engineers 1284)、その他パラレル転送を行なう通信用インターフェースのいずれであってもよい。また、通信部117は、IEEE1394、その他SCSI規格を利用した通信用インターフェースのいずれであってもよい。
図3は、AC120の内部構成を示すブロック図である。なお、図3には、説明のため通信部140も示している。
図3を参照して、AC120は、制御部122と、データバス123と、データ一時記憶部125と、記憶部126と、通信部127と、表示部128とを含む。なお、表示部128は、AC120内でなく、AC120の外部に設けられ、AC120と接続される構成であってもよい。
制御部122、データバス123、データ一時記憶部125、記憶部126、通信部127および表示部128は、それぞれ、前述した制御部112、データバス113、データ一時記憶部115、記憶部116、通信部117および表示部118と同様な構成および機能を有するので詳細な構成は説明しない。
AC120は、さらに、リコンフィギュラブルプロセッサ124を含む。リコンフィギュラブルプロセッサ124は、データバス123に接続されている。
リコンフィギュラブルプロセッサ124は、回路構成を変更可能なプロセッサである。具体的には、リコンフィギュラブルプロセッサ124は、記憶部126に記憶されたプログラムを効率よく処理する回路構成に変更可能である。
リコンフィギュラブルプロセッサ124は、プログラミングすることができるLSI(Large Scale Integration)であるFPGA(Field Programmable Gate Array)である。なお、リコンフィギュラブルプロセッサ124は、FPGAに限定されることなく、製造後に回路構成が変更可能な回路を有するものであればよい。
なお、リコンフィギュラブルプロセッサ124が実行するタスク(プログラム)を効率よく高速に処理するために、リコンフィギュラブルプロセッサ124の回路構成を変更させるためのデータを、コンフィギュレーションデータと称する。コンフィギュレーションデータは、記憶部126に記憶される。
制御部122は、コンフィギュレーションデータに基づいて、リコンフィギュラブルプロセッサ124の回路構成を変更させる。
なお、AC120が有するリコンフィギュラブルプロセッサ124は1つに限定されることなく、複数個であってもよい。また、DC110およびAC120が有する制御部の個数も1つに限定されることなく、複数個であってもよい。
再び、図1を参照して、ネットワーク200は、通信部240と、AC120.3と、AC120.4とを含む。
通信部240は、AC120.3およびAC120.4の各々と、有線または無線で、データの授受を行なう。通信部240は、ネットワーク150と有線または無線でデータの授受を行なう。それ以外は、通信部240は、通信部140と同様な構成および機能を有するので詳細な説明は繰り返さない。
AC120.3およびAC120.4は、前述したAC120.1,AC120.2と同様な構成および機能を有する。以下においては、AC120.3およびAC120.4も、総括的にAC120とも称する。
なお、本発明におけるネットワークシステム1000は、図1の構成に限定されず、その構成は任意である。たとえば、DC110にネットワークで接続されるAC120の数は、任意である。
また、図2のDC110内に、1以上のリコンフィギュラブルプロセッサ124が設けられてもよい。
次に、ネットワークシステム1000において、グリッドコンピューティングを使用してタスクを実行する処理について説明する。
図4は、第1の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。以下においては、第1の実施の形態において、グリッドコンピューティングを使用してタスクを実行する処理を第1グリッドコンピューティングタスク実行処理とも称する。
図4を参照して、ステップS100では、DC110が、m(自然数)個のAC120へシステム情報送信要求を出す(送信する)。ここで、システム情報送信要求とは、システム情報送信要求を受信したAC120に、AC120のシステム情報をDC110へ送信させるための要求である。
具体的には、DC110内の制御部112が、ネットワークを介してAC120.1,AC120.2,AC120.3、AC120.4にシステム情報送信要求を送信する。システム情報送信要求を受信する処理は、AC120で行なわれる。
ステップS200では、AC120内の制御部122が、システム情報送信要求を受信したか否かを判定する。ステップS200において、YESならば、ステップS202に進む。一方、ステップS200において、NOならば、再度、ステップS200の処理が行なわれる。
ステップS202では、制御部122が、AC120のシステム情報を、システム情報送信要求を送信したAC120へ送信する。システム情報には、未使用(以下においては、アイドル状態とも称する)である制御部122の種類と数の情報と、未使用のリコンフィギュラブルプロセッサ124の種類と数の情報と、記憶部126内の未使用領域のサイズの情報とが含まれる。
ここで、制御部が「未使用」である状態とは、使用率が、0%だけでなく、たとえば、10%未満と低い状態のことも含める。たとえば、スクリーンセーバ等が起動されている状態であっても、制御部が「未使用」の状態であるとする。その後、ステップS210に進む。
AC120から送信されたシステム情報を受信する処理は、DC110で行なわれる。
ステップS102では、制御部112が、システム情報を受信したか否かを判定する。ステップS102において、YESならば、ステップS110に進む。一方、ステップS102において、NOならば、再度、ステップS102の処理が行なわれる。
ステップS110では、サブタスク実行可能判定処理が行なわれる。ここで、サブタスク実行可能判定処理とは、受信したシステム情報に基づいて、システム情報を送信したAC120が、タスクを分割することで得られたサブタスクを実行可能かどうかを制御部112が判定する処理である。以下においては、システム情報を送信したAC120を、システム情報送信ACとも称する。
図5は、サブタスク実行可能判定処理のフローチャートである。
図5を参照して、ステップS112では、制御部112が、受信したシステム情報に基づいて、後述するAC120に実行させるためのサブタスクのプログラムデータのアーキテクチャと、制御部122のアーキテクチャとが一致し、かつ、制御部122が未使用であるか否かを判定する。以下においては、AC120に実行させるためのサブタスクを実行サブタスクとも称する。具体的には、制御部112が、実行サブタスクのプログラムデータのコードが、制御部122のネイティブコードであり、かつ、制御部122が未使用であるか否かを判定する。
実行サブタスクは、リコンフィギュラブルプロセッサ124で、所定の処理を実行させるためのプログラムデータと、当該プログラムデータで使用される入力データと、前述のコンフィギュレーションデータとを含む。ここで、入力データとは、当該プログラムデータで使用されるパラメータ値等のデータである。
ステップS112において、YESならばステップS114に進む。一方、ステップS112において、NOならば、このサブタスク実行可能判定処理は終了し、ステップS110の次の処理に進む。
ステップS114では、制御部112が、受信したシステム情報に基づいて、実行サブタスクに含まれるコンフィギュレーションデータのアーキテクチャとリコンフィギュラブルプロセッサ124(RP)のアーキテクチャとが一致し、かつ、リコンフィギュラブルプロセッサ124(RP)が未使用であるか否かを判定する。
ステップS114において、YESならばステップS116に進む。一方、ステップS114において、NOならば、このサブタスク実行可能判定処理は終了し、ステップS110の次の処理に進む。
ステップS116では、制御部112が、受信したシステム情報に基づいて、記憶部126の空き容量が、実行サブタスクにより使用されるデータ量以上であるか否かを判定する。
ステップS116において、YESならば、ステップS119に進む。一方、ステップS116において、NOならば、このサブタスク実行可能判定処理は終了し、ステップS110の次の処理に進む。
ステップS119では、制御部112が、サブタスク実行可能フラグをオンにする。ここで、サブタスク実行可能フラグとは、記憶部116に設けられたフラグである。また、サブタスク実行可能フラグは、受信したシステム情報を送信したAC120に対応付けて記憶部116に設けられる。
すなわち、ステップS100においてシステム情報送信要求を送信したm個のAC120のそれぞれについて、m個のサブタスク実行可能フラグが記憶部116に設けられる。詳細は後述するが、制御部112は、サブタスク実行可能フラグがオンであれば、対応するAC120に実行サブタスクを実行させる。
その後、このサブタスク実行可能判定処理は終了し、ステップS110の次の処理に進む。
ステップS110の処理が終わると、ステップS120に進む。
ステップS120では、制御部112が、サブタスク実行可能フラグの状態に基づいて、ステップS110の判定に利用したシステム情報に対応するAC120が実行サブタスクを実行可能か否かを判定する。具体的には、制御部112が、記憶部116に記憶されている、ステップS110の判定に利用したシステム情報に対応するAC120のサブタスク実行可能フラグがオンであるか否かを判定する。
ステップS120において、YESならば、ステップS122に進む。一方、ステップS120において、NOならば、ステップS124に進む。
ステップS122では、前述したステップS120において、オンであると判定したサブタスク実行可能フラグに対応するAC122を、実行サブタスクの割当先として設定する。以下においては、実行サブタスクが割当先として設定されたAC122を実行サブタスク割当ACとも称する。そして、ステップS124に進む。
ステップS124では、ステップS100においてシステム情報送信要求を送信したm個のAC120全てからシステム情報を受信したか否かを判定する。
ステップS124において、YESならば、ステップS130に進む。一方、ステップS124において、NOならば、再度、ステップS102の処理が行なわれる。
なお、ステップS124の処理は、ステップS100の処理が開始されてから所定時間(たとえば、3分)以上経過したら終了し、ステップS130に進む。この場合、システム情報を受信していないAC120に対応するサブタスク実行可能フラグはオフのままとなる。
ステップS130では、制御部112が、実行サブタスクの割当先として設定したAC120があるか否かを判定する。具体的には、制御部112が、記憶部116から、m個のサブタスク実行可能フラグのうち、オンに設定されているサブタスク実行可能フラグがあるか否かを判定する。
ステップS130において、YESならば、ステップS140に進む。一方、ステップS130において、NOならば、ステップS132に進む。
ステップS132では、エラー処理が行なわれる。
エラー処理では、制御部112が、表示部118に、たとえば、「サブタスクを実行できるACはありません」というメッセージを表示させる処理をする。そして、DC110の第1グリッドコンピューティングタスク実行処理は終了する。
ステップS140では、制御部112が、プログラム使用データを分割する。具体的には、制御部112が、実行サブタスクに含まれるプログラムデータで使用される入力データを分割するデータ分割処理を行なう。本発明では、m個のAC120の各々について、処理能力(計算能力)をベンチマーク等を使用して予め計測しておく。
データ分割処理では、m個のAC120のうち、実行サブタスク割当ACとなった複数のACの各々が、割り当てられた実行サブタスクに含まれる入力データを使用して、プログラムデータの実行時間がほぼ同じになるように、制御部112が、各実行サブタスク割当ACに対応する入力データを分割する。
ここでプログラムデータの実行時間とは、実行サブタスク割当ACが、プログラムデータを処理し始めてから処理し終わるまでの時間である。
また、入力データを分割とは、処理能力が高い実行サブタスク割当ACの入力データの数を、処理能力が低い実行サブタスク割当ACよりも多くなるように入力データの数を分割することである。
この場合、処理能力が高い実行サブタスク割当ACの入力データの数は、たとえば、40個とし、処理能力が低い実行サブタスク割当ACの入力データの数は、たとえば、10個とする。
なお、入力データを使用して、実行サブタスク割当ACが実行するプログラムデータにより必要となるメモリの容量が、AC120内の記憶部126の空き領域の容量以上であるときは、空き領域の容量より小さくなるように、対応する入力データの数を減少させる。
また、制御部112は、ステップS130において、m個のサブタスク実行可能フラグのうち、オンに設定されているサブタスク実行可能フラグが1つと判定されている場合、データ分割処理は行なわない。この場合、実行サブタスク割当ACは1つとなる。また、当該1つの実行サブタスク割当ACに割り当てられた実行サブタスクは、分割される前のタスクとなる。その後、ステップS142に進む。
ステップS142では、制御部112が、前述の全ての実行サブタスク割当ACの各々へ、対応する実行サブタスクを送信する。その後、ステップS150に進む。
DC110から送信された実行サブタスクを受信する処理は、AC120で行なわれる。
ステップS210では、制御部122が、DC110から実行サブタスクを受信したか否かを判定する。
ステップS210において、YESならば、ステップS212に進む。一方、ステップS210において、NOならば、再度、ステップS210の処理が行なわれる。
ステップS212では、制御部122が、実行サブタスクの受信を完了したことを示す受信完了通知を、当該実行サブタスクを送信したDC110へ送信する。その後、ステップS220に進む。
AC120から送信された受信完了通知を受信する処理は、DC110で行なわれる。
ステップS150では、制御部112が、ステップS142において、実行サブタスクを送信したAC120から受信完了通知を受信したか否かが判定される。
ステップS150において、YESならば、ステップS160に進む。一方、ステップS150において、NOならば、再度、ステップS142の処理が行なわれる。
なお、ステップS142では、制御部112が、実行サブタスクを送信してから所定時間(たとえば、1分)経過しても、対応するAC120から受信完了通知が送信されない場合、実行サブタスクの送信が正常に行なわれなかったと判断し、再度、実行サブタスク割当ACへ、対応する実行サブタスクを送信する。
ステップS220では、制御部122が、受信した実行サブタスクに含まれるコンフィギュレーションデータに基づいて、未使用のリコンフィギュラブルプロセッサ124の回路構成を変更させる。以下においては、コンフィギュレーションデータに基づいて、変更されたリコンフィギュラブルプロセッサ124の回路構成を最適化済回路構成とも称する。
最適化済回路構成のリコンフィギュラブルプロセッサ124は、受信した実行サブタスクに含まれるプログラムデータを回路構成変更前のリコンフィギュラブルプロセッサ124よりも効率よく高速に処理することが可能となる。最適化済回路構成のリコンフィギュラブルプロセッサ124は、回路構成変更前のリコンフィギュラブルプロセッサ124に比べて、同じプログラムデータを実行する速度は、たとえば、数倍〜数十倍の速度となる。その後、ステップS230に進む。
ステップS230では、最適化済回路構成のリコンフィギュラブルプロセッサ124が、受信した実行サブタスクに含まれるプログラムデータを入力データに基づいて実行する。リコンフィギュラブルプロセッサ124は、入力データに基づいてプログラムデータを実行することにより、結果データを算出する。当該プログラムデータの実行が完了すると、ステップS240に進む。
ステップS240では、制御部122が、実行サブタスクを送信したDC110へ、プログラムデータの実行が完了した旨を示す実行完了通知を送信する。その後、ステップS250に進む。
AC120から送信された実行完了通知を受信する処理は、DC110で行なわれる。
ステップS160では、制御部112が、ステップS142において、実行サブタスクを送信したAC120から実行完了通知を受信したか否かが判定される。
ステップS160において、YESならば、ステップS170に進む。一方、ステップS160において、NOならば、再度、ステップS160の処理が繰り返される。
ステップS250では、制御部122が、実行サブタスクを送信したDC110へ、ステップS230により実行されたプログラムデータにより算出された結果データの送信を行なう。そして、AC120の第1グリッドコンピューティングタスク実行処理は終了する。
AC120から送信された結果データを受信する処理は、DC110で行なわれる。
ステップS170では、制御部112が、ステップS142において実行サブタスクを送信した全ての実行サブタスク割当ACの各々から、対応する実行サブタスクに含まれるプログラムデータの実行により算出された結果データを受信したか否かを判定する。
ステップS170において、YESならば、ステップS172に進む。一方、ステップS170において、NOならば、再度、ステップS170の処理が繰り返される。
ステップS172では、受信した全ての実行サブタスク割当ACにそれぞれ対応する複数の結果データに基づいて、複数のサブタスクの元となるタスクの最終結果を算出する。なお、実行サブタスク割当ACが1つの場合は、当該1つの実行サブタスク割当ACの結果データがそのまま、タスクの最終結果となる。そして、DC120の第1グリッドコンピューティングタスク実行処理は終了する。
以上説明した、第1の実施の形態における、第1グリッドコンピューティングタスク実行処理により、実行するサブタスク(プログラム)を効率よく高速に処理するためにリコンフィギュラブルプロセッサ124の回路構成が変更される。したがって、回路構成変更後(最適化済回路構成)のリコンフィギュラブルプロセッサ124は、サブタスクを効率よく高速に処理可能となる。その結果、各々が、最適化済回路構成のリコンフィギュラブルプロセッサ124を有する複数のAC120に、タスクを分割した複数のサブタスクをそれぞれ実行させることで、高速にタスクを処理可能なデータ処理装置群(複数のAC120)を備えるグリッドコンピューティングが実現できる。
<第2の実施の形態>
第1の実施の形態では、サブタスクが、リコンフィギュラブルプロセッサを使用するタスクであったため、サブタスクに含まれるプログラムデータを実行する実行サブタスク割当ACは、リコンフィギュラブルプロセッサ124を備えている必要があった。このため、グリッドコンピューティングに利用可能なコンピュータの種類が限られていた。
本実施の形態では、汎用的なタスクを利用することで、幅広い種類のコンピュータをグリッドコンピューティングに利用可能とさせる。
図6は、本発明の第2の実施の形態における、グリッドコンピューティングを構成したネットワークシステム1000Aの概略を示す図である。
図6を参照して、ネットワークシステム1000Aはネットワークシステム1000と比較して、ネットワーク100の代わりに、ネットワーク100Aを含む点と、ネットワーク200の代わりに、ネットワーク200Aを含む点とが異なる。
ネットワーク100Aは、ネットワーク100と比較して、AC120.2の代わりにAC121.1を含む点が異なる。ネットワーク200Aは、ネットワーク200と比較して、AC120.3の代わりにAC120.2を含む点と、AC120.4の代わりにAC121.2を含む点とが異なる。
以下においては、AC121.1,AC121.2を総括的にAC121とも称する。
図7は、AC121の内部構成を示すブロック図である。なお、図7には、説明のため通信部140も示している。
図7を参照して、AC121は、制御部122Aと、データバス123Aと、データ一時記憶部125Aと、記憶部126Aと、通信部127Aと、表示部128Aとを含む。なお、表示部128Aは、AC121内でなく、AC121の外部に設けられ、AC121と接続される構成であってもよい。
制御部122A、データバス123A、データ一時記憶部125A、記憶部126A、通信部127Aおよび表示部128Aは、それぞれ、前述した制御部122、データバス123、データ一時記憶部125、記憶部126、通信部127および表示部128と同様な構成および機能を有するので詳細な構成は説明しない。すなわち、AC121はAC120と比較して、リコンフィギュラブルプロセッサ124を含まない点が異なる。
再び図6を参照して、本発明におけるネットワークシステム1000Aは、図6の構成に限定されず、その構成は任意である。たとえば、DC110にネットワークで接続されるAC120およびAC121の数は、任意である。
また、DC110内に、1以上のリコンフィギュラブルプロセッサ124が設けられてもよい。以下においては、記憶部126または記憶部126AをAC内記憶部とも称する。また、制御部122または制御部122Aを総括的にAC内制御部とも称する。
次に、第2の実施の形態のネットワークシステム1000Aにおいて、グリッドコンピューティングを使用してタスクを実行する処理について説明する。
図8は、第2の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。以下においては、第2の実施の形態において、グリッドコンピューティングを使用してタスクを実行する処理を第2グリッドコンピューティングタスク実行処理とも称する。なお、図8において、「AC」と記載されているフローチャートの処理は、AC120またはAC121により行なわれる処理である。以下においては、AC120またはAC121を総括的にACとも称する。
図8を参照して、ステップS100Aでは、DC110が、s(自然数)個のAC120およびt(自然数)個のAC121へ前述のシステム情報送信要求を出す(送信する)。なお、s+t=m(自然数)となる。
具体的には、DC110内の制御部112が、ネットワークを介してAC120.1,AC120.2,AC121.1、AC121.2にシステム情報送信要求を送信する。システム情報送信要求を受信する処理は、AC(AC120またはAC121)で行なわれる。
ステップS200A,S202Aの処理をAC120が行なう場合、AC120は、それぞれ、前述のステップS200,S202と同様な処理を行なうので詳細な説明は繰り返さない。
ステップS200A,S202Aの処理をAC121が行なう場合、制御部122Aが、それぞれ、前述のステップS200,S202と同様な処理を行なうので詳細な説明は繰り返さない。
AC120またはAC121から送信されたシステム情報を受信する処理は、DC110で行なわれる。
ステップS102Aでは、前述したステップS102と同様な処理が行なわれるので詳細な説明は繰り返さない。
ステップS110Aでは、サブタスク実行可能判定処理Aが行なわれる。ここで、サブタスク実行可能判定処理Aとは、受信したシステム情報に基づいて、システム情報を送信したAC120またはAC121が、タスクを分割することで得られたサブタスクを実行可能かどうかを制御部112が判定する処理である。
図9は、サブタスク実行可能判定処理Aのフローチャートである。
図9を参照して、ステップS111Aでは、制御部112が、受信したシステム情報に基づいて、未使用のプロセッサが存在するか否かを判定する。
ここで、受信したシステム情報が、AC120が送信した情報ならば、ステップS111Aにより未使用のプロセッサが存在すると判定される条件は、制御部122およびリコンフィギュラブルプロセッサ124の少なくとも一方が未使用であるという条件である。
また、受信したシステム情報が、AC121が送信した情報ならば、ステップS111Aにより未使用のプロセッサが存在すると判定される条件は、制御部122Aが未使用であるという条件である。
ステップS111Aにおいて、YESならばステップS112Aに進む。一方、ステップS111Aにおいて、NOならば、このサブタスク実行可能判定処理Aは終了し、ステップS110Aの次の処理に進む。
ステップS112Aでは、制御部112が、受信したシステム情報に基づいて、受信したシステム情報に対応するAC内記憶部の空き容量が、実行サブタスクAにより使用されるデータ量以上であるか否かを判定する。
ここで、実行サブタスクAとは、AC120またはAC121に実行させるためのサブタスクである。
本実施の形態では、実行サブタスクAは3種類のサブタスクA1,A2,A3に分類される。
サブタスクA1は、制御部122で、所定の処理を実行させるためのプログラムデータであって、制御部122の非ネイティブコードで記述されたプログラムデータと、当該プログラムデータで使用される入力データとを含む。サブタスクA1に含まれるプログラムデータは、たとえば、Java(登録商標)のようなプロセッサのアーキテクチャに依存しない言語(コード)で記述される。
サブタスクA2は、制御部122で、所定の処理を実行させるためのプログラムデータであって、制御部122のネイティブコードで記述されたプログラムデータと、当該プログラムデータで使用される入力データとを含む。
サブタスクA3は、リコンフィギュラブルプロセッサ124で、所定の処理を実行させるためのプログラムデータであって、当該プログラムデータで使用される入力データと、前述のコンフィギュレーションデータとを含む。
ステップS112Aにおいて、YESならばステップS113Aに進む。一方、ステップS112Aにおいて、NOならば、このサブタスク実行可能判定処理Aは終了し、ステップS110Aの次の処理に進む。
ステップS113Aでは、制御部112が、実行サブタスクAのプログラムデータが汎用コード(サブタスクA1に含まれるプログラムデータのコード(たとえば、Java(登録商標))で記述されているか否かを判定する。
ステップS113Aにおいて、YESならば、制御部112は、実行サブタスクAを前述のサブタスクA1とする。なお、サブタスクA1を実行させるACは、システム情報を送信したACに設定する。そして、ステップS119Aに進む。一方、ステップS113Aにおいて、NOならば、ステップS114Aに進む。
ステップS114Aでは、制御部112が、受信したシステム情報に基づいて、システム情報を送信したACに実行させるための実行サブタスクAのプログラムデータのアーキテクチャとシステム情報を送信したAC内制御部のアーキテクチャが一致し、かつ、システム情報を送信したAC内制御部が未使用であるか否かを判定する。具体的には、制御部112が、実行サブタスクAのプログラムデータのコードが、AC内制御部のネイティブコードであり、かつ、AC内制御部が未使用であるか否かを判定する。
ステップS114Aにおいて、YESならばステップS115Aに進む。一方、ステップS114Aにおいて、NOならば、このサブタスク実行可能判定処理Aは終了し、ステップS110Aの次の処理に進む。
ステップS115Aでは、制御部112が、受信したシステム情報に基づいて、システム情報を送信したACに実行させるための実行サブタスクAのプログラムデータのアーキテクチャが特定のものであるか否かを判定する。具体的には、実行サブタスクAのプログラムデータのコードが、システム情報を送信したACのAC内制御部のネイティブコードであるか否かを判定する。
ステップS115Aにおいて、YESならば制御部112は、実行サブタスクAを前述のサブタスクA2とする。なお、サブタスクA2を実行させるACは、システム情報を送信したACに設定する。そして、ステップS119Aに進む。一方、ステップS115Aにおいて、NOならば、ステップS116Aに進む。
ステップS116Aでは、制御部112が、受信したシステム情報に基づいて、実行サブタスクAに含まれるコンフィギュレーションデータのアーキテクチャとリコンフィギュラブルプロセッサ124(RP)のアーキテクチャとが一致し、かつ、リコンフィギュラブルプロセッサ124(RP)が未使用であるか否かを判定する。
したがって、システム情報を送信したACが、AC121である場合、ステップS116Aの条件は満たさず、このサブタスク実行可能判定処理Aは終了し、ステップS110Aの次の処理に進む。
ステップS116Aにおいて、YESならば制御部112は、実行サブタスクAを前述のサブタスクA3とする。なお、サブタスクA3を実行させるACは、システム情報を送信したACに設定する。そして、ステップS119Aに進む。一方、ステップS116Aにおいて、NOならば、このサブタスク実行可能判定処理は終了し、ステップS110Aの次の処理に進む。
ステップS119Aでは、制御部112が、サブタスク実行可能フラグAをオンにする。ここで、サブタスク実行可能フラグAとは、記憶部116に設けられたフラグである。また、サブタスク実行可能フラグAは、受信したシステム情報を送信したACに対応付けて記憶部116に設けられる。
すなわち、ステップS100Aにおいてシステム情報送信要求を送信したs個のAC120のそれぞれについて、s個のサブタスク実行可能フラグAが記憶部116に設けられる。また、ステップS100Aにおいてシステム情報送信要求を送信したt個のAC121のそれぞれについて、t個のサブタスク実行可能フラグAが記憶部116に設けられる。制御部112は、サブタスク実行可能フラグAがオンであれば、対応するACに実行サブタスクAを実行させる。
その後、このサブタスク実行可能判定処理Aは終了し、ステップS110Aの次の処理に進む。
ステップS110Aの処理が終わると、ステップS120Aに進む。
ステップS120Aでは、制御部112が、サブタスク実行可能フラグAの状態に基づいて、ステップS110Aの判定に利用したシステム情報に対応するACが実行サブタスクAを実行可能か否かを判定する。具体的には、制御部112が、記憶部116に記憶されている、ステップS110Aの判定に利用したシステム情報に対応するACのサブタスク実行可能フラグAがオンであるか否かを判定する。
ステップS120Aにおいて、YESならば、ステップS122Aに進む。一方、ステップS120Aにおいて、NOならば、ステップS124Aに進む。
ステップS122Aでは、前述したステップS120Aにおいて、オンであると判定したサブタスク実行可能フラグAに対応するACを、実行サブタスクAの割当先として設定する。以下においては、実行サブタスクが割当先として設定されたAC120を実行サブタスク割当ACRとも称する。また、以下においては、実行サブタスクが割当先として設定されたAC121を実行サブタスク割当ACAとも称する。そして、ステップS124Aに進む。
ステップS124Aでは、ステップS100Aにおいてシステム情報送信要求を送信したm個のAC(s個のAC120およびt個のAC121)全てからシステム情報を受信したか否かを判定する。
ステップS124Aにおいて、YESならば、ステップS130Aに進む。一方、ステップS124Aにおいて、NOならば、再度、ステップS102Aの処理が行なわれる。
なお、ステップS124Aの処理は、ステップS100Aの処理が開始されたから所定時間(たとえば、3分)以上経過したら終了し、ステップS130Aに進む。この場合、システム情報を受信していないACに対応するサブタスク実行可能フラグAはオフのままとなる。
ステップS130Aでは、制御部112が、実行サブタスクAの割当先として設定したACがあるか否かを判定する。具体的には、制御部112が、記憶部116から、m個のサブタスク実行可能フラグAのうち、オンに設定されているサブタスク実行可能フラグAがあるか否かを判定する。
ステップS130Aにおいて、YESならば、ステップS140Aに進む。一方、ステップS130Aにおいて、NOならば、ステップS132Aに進む。
ステップS132Aでは、前述のステップS132と同様な処理が行なわれるので詳細な説明は繰り返さない。そして、DC110の第2グリッドコンピューティングタスク実行処理は終了する。
ステップS140Aでは、AC内制御部が、プログラム使用データを分割する。具体的には、制御部112が、実行サブタスクAに含まれるプログラムデータで使用される入力データを分割するデータ分割処理を行なう。本発明では、m個のACの各々について、処理能力(計算能力)をベンチマーク等を使用して予め計測しておく。
データ分割処理では、m個のACのうち、実行サブタスク割当ACRまたは実行サブタスク割当ACAとなった複数のACの各々が、割り当てられた実行サブタスクに含まれる入力データを使用して、プログラムデータの実行時間がほぼ同じになるように、制御部112が、実行サブタスク割当ACRまたは実行サブタスク割当ACAに対応する入力データを分割する。
また、入力データを分割とは、処理能力が高い実行サブタスク割当ACRまたは実行サブタスク割当ACAの入力データの数を、処理能力が低い実行サブタスク割当ACRまたは実行サブタスク割当ACAよりも多くなるように入力データの数を分割することである。
なお、入力データを使用して、実行サブタスク割当ACRまたは実行サブタスク割当ACAが実行するプログラムデータにより必要となるメモリの容量が、AC内記憶部の空き領域の容量以上であるときは、空き領域の容量より小さくなるように、対応する入力データの数を減少させる。
また、制御部112は、ステップS130Aにおいて、m個のサブタスク実行可能フラグAのうち、オンに設定されているサブタスク実行可能フラグAが1つと判定されている場合、データ分割処理は行なわない。この場合、実行サブタスク割当ACRまたは実行サブタスク割当ACAは1つとなる。この場合、実行サブタスク割当ACRまたは実行サブタスク割当ACAに割り当てられた実行サブタスクは、分割される前のタスクとなる。その後、ステップS142Aに進む。
ステップS142Aでは、制御部112が、前述の全ての実行サブタスク割当ACRおよび実行サブタスク割当ACAの各々へ、対応する実行サブタスクA(サブタスクA1,A2,A3)を送信する。その後、ステップS150Aに進む。
DC110から送信された実行サブタスクAを受信する処理は、対応するACで行なわれる。
ステップS210Aでは、AC内制御部が、DC110から実行サブタスクAを受信したか否かを判定する。
ステップS210Aにおいて、YESならば、ステップS212Aに進む。一方、ステップS210Aにおいて、NOならば、再度、ステップS210Aの処理が行なわれる。
ステップS212Aでは、AC内制御部が、実行サブタスクAの受信を完了したことを示す受信完了通知を、当該実行サブタスクAを送信したDC110へ送信する。その後、ステップS215Aに進む。
ACから送信された受信完了通知を受信する処理は、DC110で行なわれる。
ステップS150Aでは、制御部112が、ステップS142Aにおいて、実行サブタスクを送信したACから受信完了通知を受信したか否かが判定される。
ステップS150Aにおいて、YESならば、ステップS160Aに進む。一方、ステップS150Aにおいて、NOならば、再度、ステップS142Aの処理が行なわれる。
なお、ステップS142Aでは、制御部112が、実行サブタスクAを送信してから所定時間(たとえば、1分)経過しても、対応するACから受信完了通知が送信されない場合、実行サブタスクAの送信が正常に行なわれなかったと判断し、再度、実行サブタスク割当ACRまたは実行サブタスク割当ACAへ、対応する実行サブタスクAを送信する。
ステップS215Aでは、受信した実行サブタスクAに対応するACのAC内制御部が、RP(リコンフィギュラブルプロセッサ124)の回路構成の変更が必要であるか否かを判定する。すなわち、実行サブタスクAが、コンフィギュレーションデータを含むサブタスクA3であるか否かが判定される。
ステップS215Aにおいて、YESならば、ステップS220Aに進む。一方、ステップS215Aにおいて、NOならば、ステップS230Aに進む。
ステップS215Aにおいて、回路構成が必要であるか否かの判定は、DCから受信した実行サブタスクAが、コンフィギュレーションデータを含むサブタスクA3であるか否かの判定である。
なお、実行サブタスクAを受信したACが、AC121である場合は、実行サブタスクAは、サブタスクA1またはサブタスクA2であるので、ステップS215Aにより、ステップS230Aに進む。
ステップS220Aでは、前述のステップS220と同様な処理が行なわれるので詳細な説明は繰り返さない。その後、ステップS230Aの処理が行なわれる。
ステップS230Aでは、実行サブタスクAを受信したACが実行サブタスクAを実行する。
実行サブタスクAがサブタスクA1である場合、ACはAC120またはAC121である。この場合、AC内制御部は、実行サブタスクAに含まれる非ネイティブコードで記述されたプログラムデータを、入力データを使用して、たとえば、Java(登録商標)ヴァーチャルマシーン等のインタープリンタにより実行することにより、結果データを算出する。したがって、非ネイティブコードの処理は、ネイティブコードの処理に比べて、非常に遅くなる。
実行サブタスクAがサブタスクA2である場合、ACはAC120またはAC121である。この場合、AC内制御部は、実行サブタスクAに含まれるネイティブコードで記述されたプログラムデータを、入力データを使用して実行することにより、結果データを算出する。
実行サブタスクAがサブタスクA3である場合、ACはAC120である。この場合、ステップS220Aの処理により、最適化済回路構成となったリコンフィギュラブルプロセッサ124が、実行サブタスクAに含まれるプログラムデータを、入力データを使用して実行することにより、結果データを算出する。したがって、プログラムデータを効率よく高速に処理することが可能となる。
実行サブタスクAに含まれるプログラムデータが実行されると、ステップS240Aに進む。
ステップS240Aでは、実行サブタスクAに対応するACのAC内制御部が、実行サブタスクを送信したDC110へ、プログラムデータの実行が完了した旨を示す実行完了通知を送信する。その後、ステップS250Aに進む。
ACから送信された実行完了通知を受信する処理は、DC110で行なわれる。
ステップS160Aでは、制御部112が、ステップS142Aにおいて、実行サブタスクを送信したACから実行完了通知を受信したか否かが判定される。
ステップS160Aにおいて、YESならば、ステップS170Aに進む。一方、ステップS160Aにおいて、NOならば、再度、ステップS160Aの処理が繰り返される。
ステップS250Aでは、AC内制御部が、実行サブタスクを送信したDC110へ、ステップS230Aにより実行されたプログラムデータにより算出された結果データの送信を行なう。そして、AC120またはAC121の第2グリッドコンピューティングタスク実行処理は終了する。
ACから送信された結果データを受信する処理は、DC110で行なわれる。
ステップS170Aでは、制御部112が、ステップS142Aにおいて実行サブタスクAを送信した全ての実行サブタスク割当ACRおよび全ての実行サブタスク割当ACAの各々から、対応する実行サブタスクAに含まれるプログラムデータの実行により算出された結果データを受信したか否かを判定する。
ステップS170Aにおいて、YESならば、ステップS172Aに進む。一方、ステップS170Aにおいて、NOならば、再度、ステップS170Aの処理が繰り返される。
ステップS172Aでは、受信した全ての実行サブタスク割当ACRおよび全ての実行サブタスク割当ACAにそれぞれ対応する複数の結果データに基づいて、複数のサブタスクの元となるタスクの最終結果を算出する。なお、前述のステップS122Aにより実行サブタスクAの割り当て先として設定されたACが1つの場合、実行サブタスク割当ACRまたは実行サブタスク割当ACAの結果データがそのまま、タスクの最終結果となる。そして、DC120の第2グリッドコンピューティングタスク実行処理は終了する。
以上説明した、第2の実施の形態における、第2グリッドコンピューティングタスク実行処理により、リコンフィギュラブルプロセッサを備えないコンピュータをグリッドコンピューティングに利用することができる。したがって、幅広い種類のコンピュータをグリッドコンピューティングに利用可能にすることができる。
<第3の実施の形態>
第1の実施の形態では、グリッドコンピューティングに利用可能なコンピュータの種類が限られていた。
第2の実施の形態では、プログラムデータが汎用コードで記述されたものを使用することで、幅広い種類のコンピュータをグリッドコンピューティングに利用可能にすることができるが、汎用コードで記述されたプログラムデータは、インタープリンタを使用して実行しなければならず、グリッドコンピューティングの処理速度が遅くなるという問題があった。
そこで、1つのプログラムデータに対して、複数種類のコードで記述された複数のプログラムデータを予め準備しておく。
本実施の形態におけるグリッドコンピューティングを構成したネットワークシステムは第2の実施の形態におけるネットワークシステム1000Aとする。したがって、その構成および機能の詳細な説明は繰り返さない。
前述の複数種類のコードで記述された複数のプログラムデータは、以下に説明するプログラムデータA,B,Cである。
プログラムデータAは、リコンフィギュラブルプロセッサ124のプログラムデータである。
プログラムデータAは、プログラムデータAを実行させる複数種類のACのリコンフィギュラブルプロセッサ124毎に、それぞれ複数準備される。また、複数のプログラムデータAにそれぞれ対応した複数のコンフィギュレーションデータも準備する。複数のコンフィギュレーションデータの各々は、対応するリコンフィギュラブルプロセッサ124に応じた合成ツールを使用することで作成することができる。
プログラムデータBは、制御部122のネイティブコードで記述されたプログラムデータである。なお、プログラムデータBは、たとえば、C言語等の高級言語で記述されたプログラムデータを、当該プログラムデータを実行させる制御部のアーキテクチャに応じたコンパイラを使用してコンパイルしたものである。プログラムデータBは、プログラムデータBを実行させる複数種類のACのリコンフィギュラブルプロセッサ124毎に、それぞれ複数準備される。
プログラムデータCは、制御部122の非ネイティブコード(たとえば、Java(登録商標)等)で記述されたプログラムデータである。
したがって、本実施の形態では、複数のプログラムデータAをそれぞれ含む複数の前述のサブタスクA3が予め準備される。また、複数のプログラムデータBをそれぞれ含む複数の前述のサブタスクA2が予め準備される。
また、プログラムデータCを含む前述のサブタスクA1が予め準備される。以下においては、AC(AC120またはAC121)に実行させるためのサブタスクA1,A2,A3を総括的に実行サブタスクPとも称する。
サブタスクA1、複数のサブタスクA2,複数のサブタスクA3は、DC110の記憶部116に記憶される。
なお、プログラムデータは、前述のプログラムデータA,B,Cの3種類に限定されることなく、4種類以上であってもよいし、3種類のうち少なくとも1つ以上であってもよい。
次に、第3の実施の形態のネットワークシステム1000Aにおいて、グリッドコンピューティングを使用してタスクを実行する処理について説明する。
図10は、第3の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。以下においては、第3の実施の形態において、グリッドコンピューティングを使用してタスクを実行する処理を第3グリッドコンピューティングタスク実行処理とも称する。なお、図10において、「AC」と記載されているフローチャートの処理は、AC120またはAC121により行なわれる処理である。
図10を参照して、ステップS100Bで行なわれる処理は、前述のステップS100Aで行なわれる処理と同様なので詳細な説明は繰り返さない。
ステップS200B,S202Bで行なわれる処理は、前述のステップS200A,S202Aで行なわれる処理と同様なので詳細な説明は繰り返さない。
ステップS102Bで行なわれる処理は、前述のステップS102Aで行なわれる処理と同様なので詳細な説明は繰り返さない。
ステップS110Bでは、サブタスク実行可能判定処理Bが行なわれる。ここで、サブタスク実行可能判定処理Bとは、受信したシステム情報に基づいて、システム情報を送信したAC120またはAC121が、タスクを分割することで得られたサブタスクを実行可能かどうかを制御部112が判定する処理である。
図11は、サブタスク実行可能判定処理Bのフローチャートである。
図11を参照して、ステップS111Bでは、前述のステップS111Aと同様な処理が行なわれるので詳細な説明は繰り返さない。
ステップS111Bにおいて、YESならばステップS112Bに進む。一方、ステップS111Bにおいて、NOならば、このサブタスク実行可能判定処理Bは終了し、ステップS110Bの次の処理に進む。
ステップS112Bでは、制御部112が、受信したシステム情報に基づいて、受信したシステム情報に対応するAC内記憶部の空き容量が、実行サブタスクPにより使用されるデータ量以上であるか否かを判定する。
ここで、実行サブタスクPとは、AC120またはAC121に実行させるためのサブタスクであって、システム情報を送信したACに対応するサブタスク(サブタスクA1,A2,A3のいずれか)である。
ステップS112Bにおいて、YESならばステップS113Bに進む。一方、ステップS112Bにおいて、NOならば、このサブタスク実行可能判定処理Bは終了し、ステップS110Bの次の処理に進む。
ステップS113Bでは、制御部112が、受信したシステム情報に基づいて、複数のサブタスクA3にそれぞれ含まれる複数のコンフィギュレーションデータのいずれかのアーキテクチャと、当該リコンフィギュラブルプロセッサ124のアーキテクチャとが一致し、かつ、当該リコンフィギュラブルプロセッサ124(RP)が未使用であるか否かを判定する。この場合、複数のサブタスクA3は、システム情報を送信したACに実行させるためのタスクである。
したがって、システム情報を送信したACが、AC121である場合、ステップS113Bの条件は満たさず、ステップS115Bに進む。
ステップS113Bにおいて、YESならばステップS114Bに進む。一方、ステップS113Bにおいて、NOならば、ステップS115Bに進む。
ステップS114Bでは、ステップS113Bの処理において、一致したと判定されたコンフィギュレーションデータおよびプログラムデータAを含むサブタスクA3の情報をシステム情報を送信したACに対応付けて記憶部116に記憶させる。すなわち、システム情報を送信したACに実行させるためのサブタスクには、プログラムデータAを含むサブタスクA3が選択されたことになる。そして、後述するステップS119Bに進む。
ステップS115Bでは、制御部112が、受信したシステム情報に基づいて、複数のサブタスクA2にそれぞれ含まれる複数のプログラムデータBのいずれかのアーキテクチャと、当該対応する制御部のアーキテクチャとが一致し、かつ、当該対応する制御部が未使用であるか否かを判定する。この場合、複数のサブタスクA2の各々は、システム情報を送信したACに実行させるためのタスクである。
具体的には、制御部112が、受信したシステム情報に基づいて、複数のプログラムデータBのいずれかのコードが、対応する制御部のネイティブコードと一致し、かつ、対応する制御部が未使用であるか否かを判定する。
ステップS115Bにおいて、YESならばステップS116Bに進む。一方、ステップS115Bにおいて、NOならば、ステップS117Bに進む。
ステップS116Bでは、ステップS115Bの処理において、一致したと判定された、プログラムデータBを含むサブタスクA2の情報をシステム情報を送信したACに対応付けて記憶部116に記憶させる。すなわち、システム情報を送信したACに対応する制御部に実行させるためのサブタスクには、プログラムデータBを含むサブタスクA2が選択されたことになる。そして、後述するステップS119Bに進む。
ステップS117Bでは、制御部112が、受信したシステム情報に基づいて、記憶部116にサブタスクA1(プログラムデータCを含むタスク)が存在し、かつ、サブタスクA1を実行させるAC内制御部が未使用であるか否かを判定する。
ステップS117Bにおいて、YESならばステップS118Bに進む。一方、ステップS117Bにおいて、NOならば、このサブタスク実行可能判定処理Bは終了し、ステップS110Bの次の処理に進む。
ステップS118Bでは、ステップS117Bの処理において、非ネイティブコードで記述されたプログラムデータCを含むサブタスクA1の情報を、システム情報を送信したACに対応付けて記憶部116に記憶させる。すなわち、システム情報を送信したACに対応する制御部に実行させるためのサブタスクには、プログラムデータCを含むサブタスクA1が選択されたことになる。そして、ステップS119Bに進む。
ステップS119Bでは、制御部112が、システム情報を送信したACに対応するサブタスク実行可能フラグBをオンにする。サブタスク実行可能フラグBは、前述のサブタスク実行可能フラグAと同様なので詳細な説明は繰り返さない。
制御部112は、サブタスク実行可能フラグBがオンであれば、対応するACに対応するサブタスクを実行させる。
その後、このサブタスク実行可能判定処理Bは終了し、ステップS110Bの次の処理に進む。
ステップS110Bの処理が終わると、ステップS120Bの処理が行なわれる。
ステップS120Bでは、前述のサブタスク実行可能フラグAの代わりにサブタスク実行可能フラグBを用いて、前述のステップS120Aが行なわれるので詳細な説明は繰り返さない。
ステップS120Bにおいて、YESならば、ステップS122Bに進む。一方、ステップS120Bにおいて、NOならば、ステップS124Bに進む。
ステップS122Bでは、前述したステップS120Bにおいて、オンであると判定したサブタスク実行可能フラグBに対応するACを、実行サブタスクPの割当先として設定(選択)する。以下においては、実行サブタスクが割当先として設定されたAC122を実行サブタスク割当ACRとも称する。また、以下においては、実行サブタスクが割当先として設定されたAC122Aを実行サブタスク割当ACAとも称する。そして、ステップS124Bに進む。
ステップS124Bでは、前述のステップS124Aと同様な処理が行なわれるので詳細な説明は繰り返さない。
ステップS124Bにおいて、YESならば、ステップS130Bに進む。一方、ステップS124Bにおいて、NOならば、再度、ステップS102Bの処理が行なわれる。
ステップS130Bでは、前述のサブタスク実行可能フラグAの代わりにサブタスク実行可能フラグBを用いて、前述のステップS130Aが行なわれるので詳細な説明は繰り返さない。
ステップS130Bにおいて、YESならば、ステップS140Bに進む。一方、ステップS130Bにおいて、NOならば、ステップS132Bに進む。
ステップS132Bでは、前述のステップS132と同様な処理が行なわれるので詳細な説明は繰り返さない。そして、DC110の第3グリッドコンピューティングタスク実行処理は終了する。
ステップS140Bでは、前述のサブタスク実行可能フラグAの代わりにサブタスク実行可能フラグBを用いて、前述のステップS140Aと同様な処理が行なわれるので詳細な説明は繰り返さない。その後、ステップS142Bに進む。
ステップS142Bでは、制御部112が、前述の全ての実行サブタスク割当ACRおよび実行サブタスク割当ACAの各々へ、対応する実行サブタスクP(サブタスクA1,A2,A3)を送信する。その後、ステップS150Bに進む。
DC110から送信された実行サブタスクPを受信する処理は、対応するACで行なわれる。
ステップS210Bでは、AC内制御部が、DC110から実行サブタスクPを受信したか否かを判定する。
ステップS210Bにおいて、YESならば、ステップS212Bに進む。一方、ステップS210Bにおいて、NOならば、再度、ステップS210Bの処理が行なわれる。
S212Bでは、前述の実行サブタスクAの代わりに実行サブタスクPを用いて、前述のステップS212Aの処理が行なわれるので詳細な説明は繰り返さない。その後、ステップS215Bに進む。
ACから送信された受信完了通知を受信する処理は、DC110で行なわれる。
ステップS150Bでは、前述の実行サブタスクAの代わりに実行サブタスクPを用いて、前述のステップS150Aと同様の処理が行なわれるので詳細な説明は繰り返さない。
ステップS150Bにおいて、YESならば、ステップS160Bに進む。一方、ステップS150Bにおいて、NOならば、再度、ステップS142Bの処理が行なわれる。
ステップS215Bでは、前述の実行サブタスクAの代わりに実行サブタスクPを用いて、前述のステップS215Aと同様の処理が行なわれるので詳細な説明は繰り返さない。
ステップS215Bにおいて、YESならば、ステップS220Bに進む。一方、ステップS215Bにおいて、NOならば、ステップS230Bに進む。
ステップS220Bでは、前述のステップS220と同様な処理が行なわれるので詳細な説明は繰り返さない。その後、ステップS230Bの処理が行なわれる。
ステップS230B,S240Bでは、前述の実行サブタスクAの代わりに実行サブタスクPを用いて、それぞれ、前述のステップS230A,S240Aと同様な処理が行なわれるので詳細な説明は繰り返さない。その後、ステップS250Bに進む。
ACから送信された実行完了通知を受信する処理は、DC110で行なわれる。
ステップS160Bでは、前述のステップS160Aと同様な処理が行なわれるので詳細な説明は繰り返さない。
ステップS160Bにおいて、YESならば、ステップS170Bに進む。一方、ステップS160Bにおいて、NOならば、再度、ステップS160Bの処理が繰り返される。
ステップS250Bでは、前述のステップS250Aと同様な処理が行なわれるので詳細な説明は繰り返さない。そして、AC120またはAC121の第3グリッドコンピューティングタスク実行処理は終了する。
ACから送信された結果データを受信する処理は、DC110で行なわれる。
S170Bでは、前述の実行サブタスクAの代わりに実行サブタスクPを用いて、それぞれ、前述のステップS170Aと同様な処理が行なわれるので詳細な説明は繰り返さない。
ステップS170Bにおいて、YESならば、ステップS172Bに進む。一方、ステップS170Bにおいて、NOならば、再度、ステップS170Bの処理が繰り返される。
ステップS172Bでは、前述のステップS172Aと同様な処理が行なわれるので詳細な説明は繰り返さない。そして、DC120の第3グリッドコンピューティングタスク実行処理は終了する。
以上説明した、第3の実施の形態における、第3グリッドコンピューティングタスク実行処理では、1つのプログラムデータに対して、複数種類のコードで記述された複数のプログラムデータを予め準備しておく。また、グリッドコンピューティングを構成する複数のコンピュータの各々に対し、最も効率よく高速処理可能なプログラムデータを実行させる。
したがって、幅広い種類のコンピュータを高速に処理させることができるグリッドコンピューティングを実現できる。
<第4の実施の形態>
第1〜第3の実施の形態では、DCがプログラムデータをACに実行させる場合、DCは、プログラムデータおよびコンフィギュレーションデータの少なくとも一方を必ず、ACへ送信していた。このため、データを転送する時間がかかり、タスク実行のターンアラウンド時間が長くなってしまっていた。
本実施の形態では、AC内記憶部に、実行または使用したプログラムデータおよびコンフィギュレーションデータは記憶させておく。そして、DCが、AC内記憶部に、送信しようとしているデータが記憶部に存在すれば、データ転送を省略することでターンアラウンド時間を削減する。
本実施の形態におけるグリッドコンピューティングを構成したネットワークシステムは第2の実施の形態におけるネットワークシステム1000Aとする。したがって、その構成および機能の詳細な説明は繰り返さない。
また、DC110の記憶部116には、第3の実施の形態と同様、サブタスクA1、複数のサブタスクA2,複数のサブタスクA3が記憶されているとする。以下においては、DC110を単にDCとも称する。
図12は、第4の実施の形態におけるAC120のブロック図である。
図12を参照して、第4の実施の形態におけるAC120は、第1〜第3の実施の実施の形態におけるAC120と比較して、記憶部126が、プログラムデータ記憶領域126Mとコンフィギュレーションデータ記憶領域126Nを含む点が異なる。
プログラムデータ記憶領域126Mは、ACにより実行されたプログラムデータを記憶する。プログラムデータ記憶領域126Mは、複数個のプログラムデータを記憶可能である。
コンフィギュレーションデータ記憶領域126Nは、ACにより使用されたコンフィギュレーションデータを記憶する。コンフィギュレーションデータ記憶領域126Nは、複数個のコンフィギュレーションデータを記憶可能である。
なお、本実施の形態におけるAC121内の記憶部126Aもプログラムデータ記憶領域126Mとコンフィギュレーションデータ記憶領域126Nを含む。
次に、第4の実施の形態のネットワークシステム1000Aにおいて、グリッドコンピューティングを使用してタスクを実行する処理について説明する。
図13は、第4の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。以下においては、第4の実施の形態において、グリッドコンピューティングを使用してタスクを実行する処理を第4グリッドコンピューティングタスク実行処理とも称する。なお、図13において、「AC」と記載されているフローチャートの処理は、AC120またはAC121により行なわれる処理である。なお、本実施の形態の処理は、基本的には、第3の実施の形態と同様な処理が行なわれる。したがって、第3の実施の形態と異なる部分の処理についてのみ説明する。
図13を参照して、ACの処理においては、ステップS230Bの代わりに行なわれる後述するステップS230Cの処理の後、ステップS235Cの処理が行なわれる。詳細は後述するがステップS230Cでは、後述する所定条件Aを満たせば、実行サブタスクPが実行される。
ステップS235Cでは、データの記憶処理が行なわれる。具体的には、AC内制御部が、ステップS230CでACにより実行された実行サブタスクPを、AC内記憶部に記憶させる。
実行サブタスクPには、ACが実行したネイティブコードで記述されたプログラムデータ、ACが実行した非ネイティブコードで記述されたプログラムデータ、ACが実行したリコンフィギュラブルプロセッサ124のプログラムデータのいずれかと、ACがプログラムデータを実行する際に使用した入力データとが含まれる。なお、ステップS220Bの処理が行なわれた場合は、実行サブタスクPには、コンフィギュレーションデータも含まれる。
ACは、ステップS235Cの処理が実行される毎に、AC内制御部が、AC内記憶部に、実行サブタスクPを記憶させる。AC内制御部は、実行サブタスクPに含まれるプログラムデータを、重複しないようにファイル名を付けてプログラムデータ記憶領域126Mに記憶させる。なお、なお、AC内制御部は、プログラムデータ記憶領域126Mに新たに受信したプログラムデータを記憶させるための領域が不足している場合、プログラムデータ記憶領域126Mに記憶されてから最も長い間使用されていないプログラムデータを削除する。
AC内制御部は、実行サブタスクPに含まれるコンフィギュレーションデータを、重複しないようにファイル名を付けてコンフィギュレーションデータ記憶領域126Nに記憶させる。なお、AC内制御部は、コンフィギュレーションデータ記憶領域126Mに新たに受信したコンフィギュレーションデータを記憶させるための領域が不足している場合、コンフィギュレーションデータ記憶領域126Nに記憶されてから最も長い間使用されていないコンフィギュレーションデータを削除する。
第4の実施の形態では、ステップS200Bの代わりにステップS200Cの処理が行なわれる。
ステップS200Cでは、ステップS200Bと同様な処理が行なわれる。しかし、ステップS200Cでは、ステップS200Bにより送信されるシステム情報に含まれる情報に対し、情報Aおよび情報Bが追加される。
情報Aは、プログラムデータ記憶領域126Mに記憶に記憶されているプログラムデータのリスト情報である。情報Bは、コンフィギュレーションデータ記憶領域126Nに記憶されているコンフィギュレーションデータのリスト情報である。
本実施の形態では、さらに、DCの処理において、ステップS130Bの条件を満たせば、ステップS138Cに進む。
ステップS138Cでは、制御部112が、データの転送が必要であるか否かを判定する。具体的には、制御部112が、ACから受信したシステム情報に含まれるプログラムデータのリスト情報およびコンフィギュレーションデータのリスト情報に基づいて、プログラムデータおよびコンフィギュレーションデータの少なくとも一方を対応するACへ送信する必要があるか否かを判定する。
ステップS138Cにおいて、YESならば、ステップS140Bに進む。一方、ステップS138Cにおいて、NOならば、ステップS139Cに進む。
本実施の形態では、さらに、DCの処理において、ステップS139Cの処理が行なわれる。
ステップS139Cでは、DCが、対応するACにデータを転送する代わりにデータのファイル名の情報のみを送信する。その後、ステップS160Bに進む。すなわち、ステップS138CおよびステップS139Cにより、制御部112は、ACへ送信しようとしているデータが、プログラムデータのリスト情報およびコンフィギュレーションデータのリスト情報にあれば、ファイル名の情報のみを送信し、データ本体は送信しない。
ファイル名の情報を受信する処理は、ACのステップS205Cにおいて行なわれる。
ステップS205Cでは、AC内制御部が、DCからファイル名の情報を受信したか否かを判定する。ステップS205Cにおいて、YESならば、ステップS215Bに進む。一方、ステップS205Cにおいて、NOならば、ステップS210Bに進む。
ステップS210Bでは、第3の実施の形態における処理と同様な処理が行なわれるので詳細な説明は繰り返さない。ステップS210Bにおいて、YESならば、ステップS212Bに進む。一方、ステップS210Bにおいて、NOならば、再度、ステップS205Cの処理が繰り返される。
ステップS230Cでは、DCから受信したファイル名の情報に基づいて所定条件Aを満たさない場合、受信したデータに対して、前述のステップS230Bと同様な処理が行なわれるので詳細な説明は繰り返さない。
ここで、所定条件Aとは、DCから受信したファイル名に対応するデータが、プログラムデータ記憶領域126Mおよびコンフィギュレーションデータ記憶領域126Nにの少なくとも一方に記憶されているという条件である。
ステップS230Cでは、前述の所定条件Aを満たせば、AC内制御部は、プログラムデータ記憶領域126Mおよびコンフィギュレーションデータ記憶領域126Nから、受信したファイル名に対応するデータを読み出して、ステップS230Bと同様な処理で、プログラムデータを実行する。
以上説明した、第4の実施の形態における、第4グリッドコンピューティングタスク実行処理では、ACが実行しようとしているデータが、AC内記憶部にある場合は、DCは、ACへデータの転送処理を省略するので、ACがサブタスクのプログラムデータを開始するまでの時間が短縮される。したがって、タスク実行のターンアラウンド時間が削減される。
<第5の実施の形態>
本実施の形態では、第4の実施の形態の処理の一部を変更することで、さらにターンアラウンド時間の削減を図る。
本実施の形態におけるグリッドコンピューティングを構成したネットワークシステムは第2の実施の形態におけるネットワークシステム1000Aとする。したがって、その構成および機能の詳細な説明は繰り返さない。
また、DC110の記憶部116には、第3の実施の形態と同様、サブタスクA1、複数のサブタスクA2,複数のサブタスクA3が記憶されているとする。
次に、第5の実施の形態のネットワークシステム1000Aにおいて、グリッドコンピューティングを使用してタスクを実行する処理について説明する。
図14は、第5の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。以下においては、第5の実施の形態において、グリッドコンピューティングを使用してタスクを実行する処理を第5グリッドコンピューティングタスク実行処理とも称する。
なお、本実施の形態の処理は、基本的には、第4の実施の形態と同様な処理が行なわれる。したがって、第4の実施の形態と異なる部分の処理についてのみ説明する。
図14を参照して、第5グリッドコンピューティングタスク実行処理は、第4グリッドコンピューティングタスク実行処理と比較して、ステップS215Bの代わりにステップS215Dの処理が行なわれる点と、ステップS220Bの代わりにステップS220Dの処理が行なわれる点とが異なる。
ステップS215Dでは、AC内制御部が、RP(リコンフィギュラブルプロセッサ124)の回路構成の変更が必要であるか否かを判定する。ステップS215Dにおいて、YESならば、ステップS220Dに進む。一方、ステップS215Dにおいて、NOならば、ステップS230Cに進む。
ステップS205Cにおいてファイル名の情報を受信した場合、前述のステップS215Dによる回路構成が必要であるか否かの判定は、DCから受信したファイル名に対応するデータがコンフィギュレーションデータ記憶領域126Nに最新のデータとして記憶されているか否かの判定である。
ステップS205Cにおいてファイル名の情報を受信していない場合、ステップS215Dによる回路構成が必要であるか否かの判定は、DCから受信した実行サブタスクPが、コンフィギュレーションデータを含むサブタスクA3であるか否かの判定である。
ステップS205Cにおいてファイル名の情報を受信した場合、ステップS220Dでは、AC内制御部が、受信したファイル名の情報に基づいて、コンフィギュレーションデータ記憶領域126Nから、対応するコンフィギュレーションデータを読出し、未使用のリコンフィギュラブルプロセッサ124の回路構成を変更させる。
ステップS205Cにおいてファイル名の情報を受信していない場合、ステップS220Dでは、AC内制御部が、新たに受信した実行サブタスクPに含まれるコンフィギュレーションデータに基づいて、未使用のリコンフィギュラブルプロセッサ124の回路構成を変更させる。
すなわち、ステップS215D,S220Dの処理により、未使用のリコンフィギュラブルプロセッサ124の回路構成を変更させるための新たに受信したコンフィギュレーションデータが、最新のデータとしてコンフィギュレーションデータ記憶領域126Nに記憶されている場合、リコンフィギュラブルプロセッサ124の回路構成の変更は行なわれない。この場合、リコンフィギュラブルプロセッサ124の回路構成は、新たに受信したコンフィギュレーションデータに基づいた回路構成となっている。
以上説明した、第5の実施の形態における、第5グリッドコンピューティングタスク実行処理では、リコンフィギュラブルプロセッサ124の回路構成の無駄な変更処理をなくすことで、ACがサブタスクのプログラムデータを開始するまでの時間が短縮される。したがって、第4の実施の形態よりも、さらに、タスク実行のターンアラウンド時間がさらに削減される。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本発明の第1の実施の形態における、グリッドコンピューティングを構成したネットワークシステムの概略を示す図である。 DCの内部構成を示すブロック図である。 ACの内部構成を示すブロック図である。 第1の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。 サブタスク実行可能判定処理のフローチャートである。 本発明の第2の実施の形態における、グリッドコンピューティングを構成したネットワークシステムの概略を示す図である。 ACの内部構成を示すブロック図である。 第2の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。 サブタスク実行可能判定処理Aのフローチャートである。 第3の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。 サブタスク実行可能判定処理Bのフローチャートである。 第4の実施の形態におけるAC120のブロック図である。 第4の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。 第5の実施の形態におけるグリッドコンピューティングを使用してタスクを実行する処理のフローチャートである。
符号の説明
110 DC、120,120.1,120.2,120.3,120.4,121.1,121.2 AC、140,240 通信部、112,122,122A 制御部、113,123,123A データバス、115,125,125A データ一時記憶部、116,126,126A 記憶部、117,127,127A 通信部、118,128,128A 表示部、124 リコンフィギュラブルプロセッサ、1000,1000A ネットワークシステム。

Claims (24)

  1. タスクを管理する装置が接続されたネットワークに接続され、前記タスクを構成する複数のサブタスクのうち、少なくとも1つのサブタスクとしてのプログラムデータを実行するデータ処理装置であって、
    所定のコードに基づいて、所定の処理を行なう制御部と、
    回路構成を変更可能なリコンフィギュラブルプロセッサと、
    前記ネットワークとデータを送受信する通信部とを備え、
    前記制御部は、受信データに基づいて、前記リコンフィギュラブルプロセッサの回路構成を前記プログラムデータを実行するための変化済回路構成へ変更させる回路変更処理を行なう、データ処理装置。
  2. 前記プログラムデータのアーキテクチャは、前記リコンフィギュラブルプロセッサのアーキテクチャと一致する、請求項1に記載のデータ処理装置。
  3. 前記制御部は、前記リコンフィギュラブルプロセッサが未使用である場合、前記未使用のリコンフィギュラブルプロセッサの種類と数の情報を、前記通信部および前記ネットワークを介して、前記タスクを管理する装置へ送信する、請求項1に記載のデータ処理装置。
  4. 前記制御部は、前記ネットワークから、前記通信部を介して、前記サブタスクとして、前記プログラムデータ、前記プログラムデータで使用される入力データを受信し、所定条件成立時、前記リコンフィギュラブルプロセッサの回路構成を変更させるためのコンフィギュレーションデータを受信する、請求項1に記載のデータ処理装置。
  5. 前記制御部は、前記受信したコンフィギュレーションデータに基づいて、前記リコンフィギュラブルプロセッサの回路構成を前記変化済回路構成に変更させ、
    前記変化済回路構成のリコンフィギュラブルプロセッサは、前記受信したプログラムデータを実行する、請求項4に記載のデータ処理装置。
  6. 前記制御部は、前記受信したプログラムデータが、前記制御部のネイティブコードまたは非ネイティブコードのいずれであっても、前記プログラムデータに基づいて所定の処理を行なう、請求項4に記載のデータ処理装置。
  7. 前記制御部は、前記受信したプログラムデータが、前記制御部の非ネイティブコードである場合、インタープリンタを使用して、前記プログラムデータを実行する、請求項4に記載のデータ処理装置。
  8. 情報を記憶する記憶部をさらに備え、
    前記記憶部は、前記制御部により実行された前記プログラムデータおよび前記制御部により使用された前記コンフィギュレーションデータをそれぞれ複数個記憶するプログラムデータ記憶領域およびコンフィギュレーションデータ記憶領域を含む、請求項5に記載のデータ処理装置。
  9. 前記制御部は、前記プログラムデータ記憶領域および前記コンフィギュレーションデータ記憶領域にそれぞれ記憶されているプログラムデータリストおよびコンフィギュレーションデータリストを、前記通信部および前記ネットワークを介して、前記タスクを管理する装置へ送信する、請求項8に記載のデータ処理装置。
  10. 前記制御部は、前記プログラムータリストおよび前記コンフィギュレーションデータリストに含まれるデータを特定する名称の情報を前記タスクを管理する装置から受信した場合、前記名称の情報に対応するデータが記憶されている前記プログラムデータ記憶領域または前記コンフィギュレーションデータ記憶領域から、前記名称の情報対応するデータを読み出して使用または実行する、請求項9に記載のデータ処理装置。
  11. 前記制御部は、前記受信したプログラムデータを前記プログラムデータ記憶領域に順次記憶させ、前記受信したコンフィギュレーションデータを前記コンフィギュレーションデータ記憶領域に順次記憶させる、請求項8に記載のデータ処理装置。
  12. 前記制御部は、前記プログラムデータ記憶領域のうち新たに受信したプログラムデータを記憶させるための領域が不足している場合、前記プログラムデータ記憶領域に記憶されている最も長い間使用されていないプログラムデータを削除し、前記コンフィギュレーションデータ記憶領域のうち新たに受信したコンフィギュレーションデータを記憶させるための領域が不足している場合、前記コンフィギュレーションデータ記憶領域に記憶されている最も長い間使用されていないコンフィギュレーションデータを削除する、請求項11に記載のデータ処理装置。
  13. 前記制御部は、前記受信したコンフィギュレーションデータに基づいて、前記リコンフィギュラブルプロセッサの回路構成を前記変化済回路構成に変更させた場合、前記受信したコンフィギュレーションデータを、前記コンフィギュレーションデータ記憶領域に記憶させる、請求項8に記載のデータ処理装置。
  14. 情報を記憶する記憶部をさらに備え、
    前記記憶部は、前記受信したプログラムデータおよび前記受信したコンフィギュレーションデータをそれぞれ複数個記憶するプログラムデータ記憶領域およびコンフィギュレーションデータ記憶領域を含み、
    前記制御部は、前記受信したプログラムデータを前記プログラムデータ記憶領域に順次記憶させ、前記受信したコンフィギュレーションデータを前記コンフィギュレーションデータ記憶領域に順次記憶させ、
    前記制御部は、新たに受信したコンフィギュレーションデータの名称が、前記コンフィギュレーションデータ記憶領域に最新のデータとして記憶されているコンフィギュレーションデータの名称と異なる場合、前記新たに受信したコンフィギュレーションデータに基づいて、前記リコンフィギュラブルプロセッサの回路構成を前記変化済回路構成に変更させる、請求項4に記載のデータ処理装置。
  15. ネットワークに接続され、回路構成を変更可能なリコンフィギュラブルプロセッサおよび所定の処理を行なうプロセッサのうち、少なくとも前記プロセッサを有するデータ処理装置であるプログラム実行装置に、タスクを構成する複数のサブタスクのうち、少なくとも1つのサブタスクとしてのプログラムデータを実行させるデータ処理装置であって、
    所定のコードに基づいて、所定の処理を行なう制御部と、
    前記ネットワークとデータを送受信する通信部とを備え、
    前記制御部は、前記プログラム実行装置から、前記リコンフィギュラブルプロセッサおよび前記プロセッサの少なくとも一方の情報を、前記ネットワークおよび前記通信部を介して受信し、
    前記制御部は、受信した前記リコンフィギュラブルプロセッサおよび前記プロセッサの少なくとも一方の情報に基づいて、所定の判定処理を行ない、前記判定処理の結果、所定条件成立に基づいて、前記プログラム実行装置に前記プログラムデータを実行させる装置に設定する、データ処理装置。
  16. 前記判定処理は、前記制御部が、前記サブタスクに対応する、前記リコンフィギュラブルプロセッサの回路構成を変更させるためのコンフィギュレーションデータのアーキテクチャと、前記リコンフィギュラブルプロセッサのアーキテクチャとが一致するかを判定する第1の判定処理および前記リコンフィギュラブルプロセッサが未使用であるかを判定する第2の判定処理を含み、
    前記第1および第2の判定処理により、前記コンフィギュレーションデータのアーキテクチャと前記リコンフィギュラブルプロセッサのアーキテクチャと一致し、かつ、前記リコンフィギュラブルプロセッサが未使用であると判定されることが、前記所定条件成立である、請求項15に記載のデータ処理装置。
  17. 前記制御部は、前記プログラムデータを実行させる装置に設定した前記プログラム実行装置へ、前記通信部および前記ネットワークを介して、前記プログラムデータ、前記プログラムデータで使用される入力データおよび前記コンフィギュレーションデータを送信する、請求項15に記載のデータ処理装置。
  18. 前記判定処理は、前記制御部が、前記プログラムデータが前記プロセッサのネイティブコードまたは非ネイティブコードであるかを判定する第1の判定処理および前記リコンフィギュラブルプロセッサの回路構成を変更させるためのコンフィギュレーションデータのアーキテクチャと、前記リコンフィギュラブルプロセッサのアーキテクチャとが一致するかを判定する第2の判定処理を含む、請求項15に記載のデータ処理装置。
  19. 前記所定条件成立は、第1の条件成立または第2の条件成立であり、
    前記判定処理は、前記プロセッサが未使用であるかを判定する第3の判定処理および前記リコンフィギュラブルプロセッサが未使用であるかを判定する第4の判定処理を含み、
    前記第1の判定処理により、前記プログラムデータが前記プロセッサのネイティブコードまたは非ネイティブコードであると判定され、かつ、前記第3の判定処理により前記プロセッサが未使用であると判定されることが、前記第1の条件成立であり、この場合、前記制御部は、前記プログラムデータ、前記プログラムデータで使用される入力データを未使用の前記プロセッサを有する前記プログラム実行装置へ送信し、
    前記第2の判定処理により、前記コンフィギュレーションデータのアーキテクチャと、前記リコンフィギュラブルプロセッサのアーキテクチャとが一致すると判定され、かつ、前記第4の判定処理により前記リコンフィギュラブルプロセッサが未使用であると判定されることが、前記第2の条件成立であり、この場合、前記制御部は、前記プログラムデータ、前記入力データおよび前記コンフィギュレーションデータを、未使用の前記リコンフィギュラブルプロセッサを有する前記プログラム実行装置へ送信する、請求項18に記載のデータ処理装置。
  20. 情報を記憶する記憶部をさらに備え、
    前記記憶部は、複数の前記リコンフィギュラブルプロセッサのアーキテクチャにそれぞれ対応する複数の第1のプログラムデータと、複数の前記プロセッサにそれぞれ対応する複数のネイティブコードでそれぞれ記載された複数の第2のプログラムデータと、前記プロセッサの非ネイティブコードで記載された第3のプログラムデータとを格納している、請求項15に記載のデータ処理装置。
  21. 前記所定条件成立は、第1の条件成立、第2の条件成立または第3の条件成立であり、
    前記判定処理は、前記制御部が、前記リコンフィギュラブルプロセッサが未使用であるかを判定する第1の判定処理と、前記プロセッサが未使用であるかを判定する第2の判定処理と、前記複数の第1のプログラムデータのうち、前記複数の前記リコンフィギュラブルプロセッサのうちの判定対象となるリコンフィギュラブルプロセッサのアーキテクチャに対応する第1のプログラムデータと一致するデータがあるかを判定する第3の判定処理と、前記複数の第2のプログラムデータのうち、前記複数のプロセッサのうちの判定対象となるプロセッサのネイティブコードに対応する第2のプログラムデータと一致するデータがあるかを判定する第4の判定処理と、前記第3のプログラムデータが前記プロセッサの非ネイティブコードであるかを判定する第5の判定処理とを含み、
    前記第1の判定処理により、前記リコンフィギュラブルプロセッサが未使用であると判定され、かつ、前記第3の判定処理により、前記一致するデータがあると判定されることが、前記第1の条件成立であり、この場合、前記制御部は、前記リコンフィギュラブルプロセッサのアーキテクチャに対応する第1のプログラムデータを前記プログラム実行装置へ送信するデータとして選択し、
    前記第2の判定処理により、前記プロセッサが未使用であると判定され、かつ、前記第4の判定処理により、前記一致するデータがあると判定されることが、前記第2の条件成立であり、この場合、前記制御部は、前記プロセッサのネイティブコードに対応する第2のプログラムデータを前記プログラム実行装置へ送信するデータとして選択し、
    前記第2の判定処理により、前記プロセッサが未使用であると判定され、かつ、前記第5の判定処理により、前記第3のプログラムデータが前記プロセッサの非ネイティブコードであると判定されることが、前記第3の条件成立であり、この場合、前記制御部は、前記プロセッサの非ネイティブコードで記載された前記第3のプログラムデータを前記プログラム実行装置へ送信するデータとして選択する、請求項20に記載のデータ処理装置。
  22. 前記制御部は、前記第1の条件成立の場合、未使用の前記リコンフィギュラブルプロセッサを有する前記プログラム実行装置へ、前記リコンフィギュラブルプロセッサの回路構成を変更させるためのコンフィギュレーションデータを送信する、請求項21に記載のデータ処理装置。
  23. 前記プロセッサは、前記第3の条件成立の場合、インタープリンタを使用して、前記第3のプログラムデータを実行する、請求項21に記載のデータ処理装置。
  24. 前記制御部は、前記プロセッサが実行したプログラムデータのリストおよび前記リコンフィギュラブルプロセッサが実行したプログラムデータのリストを前記プログラムデータを実行させる装置に設定した前記プログラム実行装置から前記ネットワークおよび前記通信部を介して受信し、
    前記制御部は、送信するデータの名称が受信したデータと同じ名称である場合、前記送信するデータの名称の情報を、前記プログラムデータを実行させる装置に設定した前記プログラム実行装置へ送信する、請求項15に記載のデータ処理装置。
JP2005002639A 2005-01-07 2005-01-07 データ処理装置 Withdrawn JP2006190167A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005002639A JP2006190167A (ja) 2005-01-07 2005-01-07 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005002639A JP2006190167A (ja) 2005-01-07 2005-01-07 データ処理装置

Publications (1)

Publication Number Publication Date
JP2006190167A true JP2006190167A (ja) 2006-07-20

Family

ID=36797303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005002639A Withdrawn JP2006190167A (ja) 2005-01-07 2005-01-07 データ処理装置

Country Status (1)

Country Link
JP (1) JP2006190167A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130114497A (ko) * 2012-04-09 2013-10-18 삼성전자주식회사 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치
CN104145452A (zh) * 2012-03-02 2014-11-12 三菱电机株式会社 信息处理装置、电子控制单元、信息处理方法以及程序

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104145452A (zh) * 2012-03-02 2014-11-12 三菱电机株式会社 信息处理装置、电子控制单元、信息处理方法以及程序
JPWO2013128648A1 (ja) * 2012-03-02 2015-07-30 三菱電機株式会社 情報処理装置及び電子制御ユニット及び情報処理方法及びプログラム
US9223559B2 (en) 2012-03-02 2015-12-29 Mitsubishi Electric Corporation Information processing apparatus, electronic control unit, information processing method, and program
KR20130114497A (ko) * 2012-04-09 2013-10-18 삼성전자주식회사 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치
JP2013218700A (ja) * 2012-04-09 2013-10-24 Samsung Electronics Co Ltd 分散処理システム、分散処理システムのスケジューラノード及びスケジュール方法、及びそのためのプログラム生成装置
US9965322B2 (en) 2012-04-09 2018-05-08 Samsung Electronics Co., Ltd. Scheduling tasks in a distributed processing system with both reconfigurable and configurable processors
KR101893982B1 (ko) * 2012-04-09 2018-10-05 삼성전자 주식회사 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치

Similar Documents

Publication Publication Date Title
CN111448550B (zh) 网络可访问的机器学习模型训练和托管系统
US9003425B2 (en) Optimizing workflow engines
CN103207774B (zh) 用于解决线程发散的方法和系统
Abramson et al. High performance parametric modeling with Nimrod/G: Killer application for the global grid?
CN100487659C (zh) 用于优化分段资源分配的方法和设备
JP5227454B2 (ja) マルチプロセッサのための多次元スレッドグループ化
TWI531974B (zh) 管理巢狀執行串流的方法和系統
US20170054808A1 (en) Rapid client-side component processing based on component relationships
US20120180068A1 (en) Scheduling and communication in computing systems
US9058197B2 (en) Method for sharing memory of virtual machine and computer system using the same
CN104067227A (zh) 分支预测逻辑
CN103777926A (zh) 多线程处理单元中的高效存储器虚拟化
JP2011523141A (ja) マルチプロセッサにおけるデータパラレルコンピューティングのためのアプリケーションプログラミングインターフェイス
JP2014123365A (ja) MapReduceフレームワークにおけるデータ処理の最適化のためのデバイスおよび方法
CN103777925A (zh) 多线程处理单元中的高效存储器虚拟化
EP3889776A1 (en) Processing method and device for shared data and server
EP3857383B1 (en) Method for vectorizing d-heaps using horizontal aggregation simd instructions
CN103885902A (zh) 用于经由纹理硬件实施存储器访问操作的技术
WO2023087778A1 (zh) 窗口信息处理方法、装置、电子设备及存储介质
CN103885903A (zh) 用于经由纹理硬件实施存储器访问操作的技术
JP2006190167A (ja) データ処理装置
EP3438936B1 (en) Method and apparatus for managing graphics layers within a data processing system
US8976373B2 (en) Image processing apparatus, computer-readable storage medium storing program and image processing method
TW201351276A (zh) 計算工作的排程和執行
KR102130813B1 (ko) 재구성 가능 프로세서 및 재구성 가능 프로세서를 동작하는 방법

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080401