JP2012256380A - 分散処理プログラム、分散処理装置、分散処理システム、および分散処理方法 - Google Patents

分散処理プログラム、分散処理装置、分散処理システム、および分散処理方法 Download PDF

Info

Publication number
JP2012256380A
JP2012256380A JP2012221735A JP2012221735A JP2012256380A JP 2012256380 A JP2012256380 A JP 2012256380A JP 2012221735 A JP2012221735 A JP 2012221735A JP 2012221735 A JP2012221735 A JP 2012221735A JP 2012256380 A JP2012256380 A JP 2012256380A
Authority
JP
Japan
Prior art keywords
job
agent
processing
assigned
processing result
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
JP2012221735A
Other languages
English (en)
Inventor
Taketoshi Yoshida
武俊 吉田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012221735A priority Critical patent/JP2012256380A/ja
Publication of JP2012256380A publication Critical patent/JP2012256380A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】エージェント間でのジョブの処理結果の転送時間の短縮化を図ること。
【解決手段】(A)マスターMがエージェントA1にジョブJ1を投入する。(B)マスターMがジョブJ2の割当先をエージェントA2に決定する。マスターMはエージェントA1に処理結果R1のエージェントA2への転送要求を送信する。エージェントA1はエージェントA2に処理結果R1を直接転送する。(C)マスターMが最後のジョブJ3の割当先をエージェントA3に決定する。マスターMはエージェントA2に処理結果R2のエージェントA3への転送要求を送信する。エージェントA2はエージェントA3に処理結果R2を直接転送する。(D)マスターMはエージェントA1〜A3に処理結果R1〜R3の取得要求を配信する。エージェントA1〜A3は処理結果R1〜R3をマスターMに返す。
【選択図】図1

Description

この発明は、マスターサーバー(マスター計算機ともいう。以下、単に「マスター」と称す。)が複数のエージェント計算機(以下、単に「エージェント」と称す。)に分散処理させるグリッドコンピューティングにおける分散処理プログラム、分散処理装置、分散処理システム、および分散処理方法に関する。
従来、ネットワークを介して通信可能なマスターとエージェント群との間でやり取りされるジョブの流れでは、まず、マスターがジョブおよびその処理に必要なデータをエージェントに投入する。つぎに、投入されたエージェントはジョブの処理を実行する。そして、そのエージェントは、ジョブの処理結果をマスターに返す。処理結果を受けたマスターは、その処理結果とそれを元に処理を行うジョブを同一または他のエージェントに投入する。これらを繰り返すことで、ジョブ全体をエージェントに分散処理させている(たとえば、下記特許文献1を参照。)。
特許文献1は、マスターに相当するグリッド仲介装置とエージェントに相当するリソース計算機との間の処理能力(データサイズ/処理時間)を考慮してジョブを割り当てるリソース計算機を決定する技術である。
なお、マスターが複数のエージェントに分散処理させるグリッドコンピューティングシステムではなく、双方のコンピュータA,Bのうち余力のあるコンピュータにプログラムを実行させるという技術がある(下記特許文献2を参照。)。
特許文献2は、具体的には、プログラムを有するコンピュータAと当該プログラムに与えるデータを有するコンピュータBとの間で、コンピュータBがコンピュータAにデータを与えて、そのデータによりコンピュータAがプログラムにより処理結果を出力してコンピュータBに転送する第1の手順と、コンピュータAがコンピュータBにプログラムを与えて、そのプログラムによりコンピュータBが処理結果を出力する第2の手順とのうち、いずれの手順を採用するかを、双方のコンピュータA,Bの稼働状況や処理能力により決定する。
なお、マスターが複数のエージェントに分散処理させるグリッドコンピューティングシステムではなく、単に複数のCPUが搭載された計算機システムである(下記特許文献2を参照。)。特許文献3では、エージェントに相当する第1のCPUおよび第2のCPUを管理するマスターサーバーが存在しない。また、CPUごとに割り当てられるジョブの種別が固定されている。したがって、第1および第2のCPU間ではジョブ管理属性テーブルが転送されるだけであり、ジョブ実行結果リストは、第1のCPUから第2のCPUへは転送されず、第2のCPUが記憶装置に対して参照することとなる。
特開2005−208922号公報 特開2002−99521号公報 特開平8−147249号公報
しかしながら、上述した特許文献1では、一のリソース計算機による処理結果をグリッド仲介装置に返す構成であるため、その処理結果を用いて処理されるジョブを他のリソース計算機に投入する場合、処理結果は、一のリソース計算機⇒グリッド仲介装置⇒他のリソース計算機という転送経路で、他のリソース計算機に投入される。したがって、処理結果の転送時間が長くなり、ネットワーク上のトラフィックが増大するという問題がある。
また、上述した特許文献2および特許文献3はいずれもマスターが複数のエージェントに分散処理させるグリッドコンピューティングシステムではなく、マスターが存在しない構成である。したがって、特許文献1の一のリソース計算機からグリッド仲介装置を介さずに他のリソース計算機に直接処理結果を転送しようとしても、処理結果を用いて処理されるジョブの投入先を決定する機能がない。
このため、特許文献1に開示されているように、処理結果は、一のリソース計算機⇒グリッド仲介装置⇒他のリソース計算機という転送経路で、他のリソース計算機に投入されることとなり、特許文献2または特許文献3を適用した場合であっても、処理結果の転送時間が長くなり、ネットワーク上のトラフィックが増大するという問題がある。
この発明は、上述した従来技術による問題点を解消するため、マスターの管理下にあるエージェント間でのジョブの処理結果の転送時間の短縮化を図ることにより、マスターとエージェント群との間のネットワークのトラフィックの低減化を図ることができる分散処理プログラム、分散処理装置、分散処理システム、および分散処理方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この分散処理プログラム、分散処理装置、分散処理システム、および分散処理方法は、エージェント群にアクセス可能なマスターサーバーを、第1のジョブの割当先のエージェントにより前記第1のジョブの処理が完了したことを検出し、前記第1のジョブの処理結果を用いて処理される第2および第3のジョブを生成し、前記エージェント群の中から選ばれた前記第2のジョブの割当先候補における前記第2および第3のジョブの予測処理時間の総和を算出し、前記第1のジョブの割当先のエージェントと前記第2のジョブの割当先候補との間の通信レートとを取得し、前記処理結果のデータサイズと、前記取得手段によって取得された通信レートとに基づいて、前記第1のジョブの割当先のエージェントから前記割当先候補への前記処理結果の転送時間を算出し、前記算出された転送時間が予測処理時間の総和より大きい場合、前記第2のジョブと前記第3のジョブとをクラスタ化し、前記完了が検出された場合、クラスタ化されたクラスタの割当先のエージェントを、前記第1のジョブの割当先のエージェントに決定し、前記エージェント群と通信し、前記第1のジョブの割当先のエージェントに対し、前記クラスタの処理要求を送信することを要件とする。
この分散処理プログラム、分散処理装置、分散処理システム、および分散処理方法によれば、マスターの管理下にあるエージェント間でのジョブの処理結果の転送時間の短縮化を図ることにより、マスターとエージェント群との間のネットワークのトラフィックの低減化を図ることができるという効果を奏する。
本実施の形態にかかるグリッドコンピューティングシステム100におけるジョブの投入例1を示す説明図である。 本実施の形態にかかるグリッドコンピューティングシステム100におけるジョブの投入例2を示す説明図である。 本実施の形態にかかるグリッドコンピューティングシステム100におけるジョブの投入例3を示す説明図である。 実施の形態にかかる分散処理装置のハードウェア構成を示すブロック図である。 通信レート管理テーブルの記憶内容を示す説明図である。 ジョブ管理テーブルの記憶内容を示す説明図である。 エージェント管理テーブルの記憶内容を示す説明図である。 マスターの機能的構成を示すブロック図である。 エージェントの機能的構成を示すブロック図である。 グリッドコンピューティングシステムにおけるエージェント間通信レート測定シーケンス図である。 グリッドコンピューティングシステムにおける分散処理シーケンス図である。 図11に示したジョブ割当処理(ステップS1102,S1108)の詳細な処理手順を示すフローチャートである。 図12に示したジョブID割当処理(ステップS1201)の詳細な処理手順を示すフローチャートである。 図12に示した予測処理時間算出処理(ステップS1202)の詳細な処理手順を示すフローチャートである。 図14に示した予測処理時間の計算処理(ステップS1404)の詳細な処理手順を示すフローチャートである。 図12に示した割当先決定処理(ステップS1203)の詳細な処理手順を示すフローチャート(前半)である。 図12に示した割当先決定処理(ステップS1203)の詳細な処理手順を示すフローチャート(後半)である。 図17に示したクラスタ化処理(ステップS1709)の詳細な処理手順を示すフローチャートである。 一連のジョブの分散処理を時系列(A)〜(C)で示した説明図である。 一連のジョブの分散処理を時系列(D)〜(F)で示した説明図である。 図19−1(A)におけるジョブJ1の割当先決定時のジョブ管理テーブル600の記憶内容を示す説明図である。 図19−1(B)におけるジョブJ1の処理情報登録時のジョブ管理テーブル600の記憶内容を示す説明図である。 図19−1(B)におけるジョブJ1−1の割当先候補の絞込み時のジョブ管理テーブル600の記憶内容を示す説明図である。 図19−1(B)におけるジョブJ1−1の割当先候補の転送時間を示す説明図である。 図19−1(C)におけるジョブJ1−2の割当先候補の絞込み時のジョブ管理テーブル600の記憶内容を示す説明図である。 図19−2(D)におけるジョブJ1−3の割当先候補の絞込み時のジョブ管理テーブル600の記憶内容を示す説明図である。 ジョブJ1−2,J1−3の処理情報の登録後のジョブ管理テーブル600の記憶内容を示す説明図である。 図19−2(E)におけるジョブJ1−4の割当先候補の絞込み時のジョブ管理テーブル600の記憶内容を示す説明図である。 図19−2(D)におけるジョブJ1−4の割当先時のジョブ管理テーブル600の記憶内容を示す説明図である。
以下に添付図面を参照して、この分散処理プログラム、分散処理装置、分散処理システム、および分散処理方法の好適な実施の形態を詳細に説明する。なお、本明細書において、分散処理装置とは、グリッドコンピューティングシステムを構成する計算機(マスターまたはエージェント)であり、分散処理プログラムとは、分散処理装置にインストールされたプログラムである。
本実施の形態にかかるグリッドコンピューティングシステムは、インターネット、LAN、WANなどのネットワークを介して通信可能なマスターとエージェント群から構成される。各エージェントは異なる処理能力(同一でもよい)を持ち、また、OSやハードウェア・アーキテクチャなど異なる構造(同一でもよい)を持つ。また、ネットワークの通信品質は一定または画一的である必要もない。
このグリッドコンピューティングシステムでは、マスターがジョブと呼ばれる解析用プログラムを順次生成して、適切なエージェントに割り当ててジョブを投入する。ジョブの処理結果は、その都度マスターに返すのではなく、その処理結果を用いて処理されるジョブの割当先のエージェントに、マスターを介さず直接転送される。
なお、処理結果を用いて処理されるジョブの割当先と処理結果の転送先とが同一のエージェントであれば、割当先のエージェントを先に決めてその割当先のエージェントに処理結果を転送してもよく、処理結果の転送先のエージェントを先に決めてその転送先のエージェントに、処理結果を用いて処理されるジョブを割り当てて投入してもよい。
また、各割当先のエージェントで処理された処理結果は、すべてのジョブの処理が完了したあとに、各割当先のエージェントからマスターに返すことで、ジョブの処理中におけるトラフィックの低減化を図ることができる。
(ジョブ投入の類型)
図1は、本実施の形態にかかるグリッドコンピューティングシステム100におけるジョブの投入例1を示す説明図である。説明を簡略化するため、(A)〜(D)において、エージェントを3台にして説明する。図1においては、ネットワーク110を介してマスターMが3台のエージェントA1〜A3に分散処理させるグリッドコンピューティングシステム100が示されている。
(A)では、マスターMがジョブJ1を生成し、その割当先に指定されたエージェントA1にジョブJ1を投入(ネットワーク110経由で送信)する。割当先は、エージェントA1〜A3におけるジョブJ1の予測処理時間を算出して決定する。ジョブJ1が投入されたエージェントA1は、ジョブJ1の処理が完了すると、その旨のデータや必要に応じて処理結果のデータサイズ、ジョブJ1の処理時間、エージェントA1のCPU負荷をマスターMに返す。ジョブJ1の処理結果R1そのものは返さない。
(B)では、マスターMがジョブJ1の処理が完了したことを検出し、あらたに生成された次のジョブJ2の割当先を、ジョブ処理中でないエージェントA1〜A3の中からエージェントA2に決定している。割当先は、エージェントA1〜A3におけるジョブJ2の予測処理時間を算出して決定する。
ジョブJ2は、ジョブJ1の処理結果R1を用いて処理されるジョブである。マスターMはジョブJ2をエージェントA2に投入する。また、マスターMは、処理結果R1を保持するエージェントA1に、処理結果R1のエージェントA2への転送要求を送信する。転送要求を受けたエージェントA1は、ジョブJ2の割当先であるエージェントA2に処理結果R1を直接転送する。
なお、エージェントA1では処理結果R1は保持したままである。ジョブJ2が投入されたエージェントA2は、ジョブJ2の処理が完了すると、その旨のデータや必要に応じて処理結果のデータサイズ、ジョブJ2の処理時間、エージェントA2のCPU負荷をマスターMに返す。ジョブJ2の処理結果R2そのものは返さない。
(C)では、(B)と同様、マスターMがジョブJ2の処理が完了したことを検出し、あらたに生成された最後のジョブJ3の割当先を、ジョブ処理中でないエージェントA1〜A3の中からエージェントA3に決定している。割当先は、エージェントA1〜A3におけるジョブJ3の予測処理時間を算出して決定する。ジョブJ3は、ジョブJ2の処理結果R2を用いて処理されるジョブである。マスターMはジョブJ3をエージェントA3に投入する。
また、マスターMは、処理結果R2を保持するエージェントA2に、処理結果R2のエージェントA3への転送要求を送信する。転送要求を受けたエージェントA2は、ジョブJ3の割当先であるエージェントA3に処理結果R2を直接転送する。なお、エージェントA2では処理結果R2は保持したままである。
ジョブJ3が投入されたエージェントA3は、ジョブJ3の処理が完了すると、その旨のデータや必要に応じて処理結果のデータサイズ、ジョブJ2の処理時間、エージェントA2のCPU負荷をマスターMに返す。
(D)では、最後のジョブJ3の処理の完了が検出されると、マスターMは割当先のエージェントA1〜A3に対し、処理結果R1〜R3の取得要求を配信する。各エージェントA1〜A3は、その取得要求を受信すると、保持している処理結果R1〜R3をマスターMに返す。
図2は、本実施の形態にかかるグリッドコンピューティングシステム100におけるジョブの投入例2を示す説明図である。図2は、マスターMからの処理結果の転送要求が不要な場合の例である。(A)および(B)の状態は、図1の(A)および(B)と同一であるため説明を省略する。
(C)では、(B)と同様、マスターMがジョブJ2の処理が完了したことを検出するが、あらたに生成された最後のジョブJ3の割当先を、ジョブ処理中でないエージェントA1〜A3の中から、前段のジョブJ2を処理したエージェントA2に決定している。マスターMはジョブJ3をエージェントA2に投入する。
この場合、エージェントA2が処理結果R2とジョブJ3とを保持することになるため、処理結果R2を転送する必要はなく、ジョブJ3の処理結果R3は処理結果R2とともにエージェントA2で保持される。
(D)では、最後のジョブJ3の処理の完了が検出されると、マスターMは割当先のエージェントA1,A2に対し、処理結果R1〜R3の取得要求を配信する。各エージェントA1,A2は、その取得要求を受信すると、保持している処理結果R1〜R3をマスターMに返す。
図3は、本実施の形態にかかるグリッドコンピューティングシステム100におけるジョブの投入例3を示す説明図である。図3は、マスターMで生成されたジョブが共通するジョブ(親ジョブ。図3ではジョブJ1)の処理結果を用いて処理される複数のジョブ(図3では3個。ジョブJ1−1〜J1−3)をクラスタ化して処理する例である。(A)の状態は、図1の(A)と同一であるため説明を省略する。
(B)において、マスターMでは、ジョブJ1の処理結果R1を用いて処理されるジョブJ1−1〜J1−3が順次生成される。マスターMは、まず、最初に生成されたジョブJ1−1の割当先のエージェントA1を決定する。そして、予測処理時間の合計が割当先候補であるエージェントA1から他のエージェントA2,A3への転送時間よりも長くなるまでジョブのクラスタ化をおこなう。ここでは、ジョブJ1−1〜J1−3からなるクラスタが得られる。マスターMはクラスタ(ジョブJ1−1〜J1−3)をエージェントA1に投入する。
(C)では、マスターMがクラスタ(ジョブJ1−1〜J1−3)の処理が完了したことを検出し、あらたに生成された最後のジョブJ2の割当先を、ジョブ処理中でないエージェントA1〜A3の中からエージェントA2に決定している。割当先は、エージェントA1〜A3におけるジョブJ2の予測処理時間を算出して決定する。ジョブJ2は、クラスタ(ジョブJ1−1〜J1−3)の処理結果R1−1〜R1−3を用いて処理されるジョブである。マスターMはジョブJ2をエージェントA2に投入する。
また、マスターMは、処理結果R1−1〜R1−3を保持するエージェントA1に、処理結果R1−1〜R1−3のエージェントA2への転送要求を送信する。転送要求を受けたエージェントA1は、ジョブJ2の割当先であるエージェントA2に処理結果R1−1〜R1−3を直接転送する。なお、エージェントA1では処理結果R1−1〜R1−3は保持したままである。
ジョブJ2が投入されたエージェントA2は、ジョブJ2の処理が完了すると、その旨のデータや必要に応じて処理結果のデータサイズ、ジョブJ2の処理時間、エージェントA2のCPU負荷をマスターMに返す。
(D)では、最後のジョブJ2の処理の完了が検出されると、マスターMは割当先のエージェントA1,A2に対し、処理結果R1,R1−1〜R1−3,R2の取得要求を配信する。各エージェントA1,A2は、その取得要求を受信すると、保持している処理結果R1,R1−1〜R1−3,R2をマスターMに返す。
(分散処理装置のハードウェア構成)
まず、実施の形態にかかる分散処理装置(マスターM、エージェントA)のハードウェア構成について説明する。図4は、実施の形態にかかる分散処理装置のハードウェア構成を示すブロック図である。
図4において、分散処理装置は、CPU401と、ROM402と、RAM403と、HDD(ハードディスクドライブ)404と、HD(ハードディスク)405と、FDD(フレキシブルディスクドライブ)406と、着脱可能な記録媒体の一例としてのFD(フレキシブルディスク)407と、ディスプレイ408と、I/F(インターフェース)409と、キーボード410と、マウス411と、スキャナ412と、プリンタ413と、を備えている。また、各構成部はバス400によってそれぞれ接続されている。
ここで、CPU401は、分散処理装置の全体の制御を司る。ROM402は、ブートプログラムなどのプログラムを記憶している。RAM403は、CPU401のワークエリアとして使用される。HDD404は、CPU401の制御にしたがってHD405に対するデータのリード/ライトを制御する。HD405は、HDD404の制御で書き込まれたデータを記憶する。
FDD406は、CPU401の制御にしたがってFD407に対するデータのリード/ライトを制御する。FD407は、FDD406の制御で書き込まれたデータを記憶したり、FD407に記憶されたデータを分散処理装置に読み取らせたりする。
また、着脱可能な記録媒体として、FD407のほか、CD−ROM(CD−R、CD−RW)、MO、DVD(Digital Versatile Disk)、メモリーカードなどであってもよい。ディスプレイ408は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ408は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F409は、通信回線を通じてインターネットなどのネットワーク110に接続され、このネットワーク110を介して他の装置に接続される。そして、I/F409は、ネットワーク110と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F409には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード410は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス411は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ412は、画像を光学的に読み取り、分散処理装置内に画像データを取り込む。なお、スキャナ412は、OCR機能を持たせてもよい。また、プリンタ413は、画像データや文書データを印刷する。プリンタ413には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(通信レート管理テーブルの記憶内容)
図5は、通信レート管理テーブルの記憶内容を示す説明図である。通信レート管理テーブル500は、処理結果の転送時間を求める場合に用いられる。通信レート管理テーブル500はマスターMに備えられる。図5において、通信レート管理テーブル500には、エージェント間またはマスター−エージェント間の通信レートが記憶されている。
各エージェントは、送信元となる計算機がマスターMから依頼を受けて宛先の計算機との通信レートを測定する。測定手法としては、たとえば、pingコマンドを宛先に送信してから応答が受信されるまでの時間により測定することができる。通信レート管理テーブル500は、図4に示したRAM403やHD405などの記録領域によりその機能を実現する。
(ジョブ管理テーブルの記憶内容)
図6は、ジョブ管理テーブルの記憶内容を示す説明図である。ジョブ管理テーブル600は、あらたに生成されたジョブの各エージェントによる予測処理時間を求める場合に用いられる。ジョブ管理テーブル600はマスターMに備えられる。図6において、ジョブ管理テーブル600には、CPU処理能力比、ジョブ情報、CPU負荷がエージェントごとに記憶されている。CPU処理能力比とは、特定のCPUの処理能力(たとえば、クロック周波数)を基準とした各エージェントのCPUの処理能力の比率である。
ジョブ情報とは、ジョブID、処理時間、サイズを含む情報である。ジョブIDとは、エージェントに割り当てられる、または割り当てられたジョブの識別コードである。ジョブIDは、マスターMがジョブを割り当てる際に記憶される。
処理時間とは、エージェントに投入されたジョブの当該エージェントでの実際の処理時間である。サイズとは、エージェントにおいてジョブが処理された際に得られる処理結果のデータサイズである。処理時間とサイズは、ジョブが投入されたエージェントから返ってくる処理情報に含まれている情報であり、処理情報が受信されると書き込まれる。
CPU負荷とは、エージェントのCPU負荷であり、ジョブの投入前が過去のCPU負荷であり、ジョブの投入後が現在のCPU負荷となる。CPU負荷もマスターMに返ってくる処理情報に含まれる情報であり、処理情報が受信されると書き込まれる。ジョブ管理テーブル600は、図4に示したRAM403やHD405などの記録領域によりその機能を実現する。
(エージェント管理テーブルの記憶内容)
図7は、エージェント管理テーブルの記憶内容を示す説明図である。エージェント管理テーブル700は、ジョブの割当先となるエージェントや処理結果の転送先となるエージェントのIPアドレスを特定する場合に用いられる。エージェント管理テーブル700はマスターMに備えられる。図7において、エージェント管理テーブル700には、エージェントごとにIPアドレスが記憶されている。エージェント管理テーブル700は、図4に示したRAM403やHD405などの記録領域によりその機能を実現する。
(分散処理装置の機能的構成)
つぎに、分散処理装置の機能的構成について説明する。まず、マスターMについて説明する。図8は、マスターMの機能的構成を示すブロック図である。図8において、マスターMは、検出部801と、生成部802と、決定部803と、通信部804、制御部805と、算出部806と、取得部807と、クラスタ化処理部808と、から構成されている。これら各機能801〜808は、具体的には、たとえば、図4に示したROM402、RAM403、HD405などの記憶領域に記憶されたプログラムをCPU401に実行させることにより、または、I/F409によりその機能を実現する。
まず、検出部801は、ジョブの割当先のエージェントによりジョブの処理が完了したことを検出する機能を有する。具体的には、たとえば、ジョブの処理が完了したエージェントからその旨のメッセージや、ジョブ情報やCPU負荷などが含まれている処理情報を受信することで、ジョブ処理の完了を検出することができる。
また、生成部802は、一連のジョブを生成する機能を有する。一連のジョブは先頭のジョブからツリー構造のようにつながっており、親となる前段のジョブの処理結果を用いて後段のジョブの処理が実行される。また、生成部802は、ジョブが生成される都度、そのジョブに固有のジョブIDを割り付ける。たとえば、最初に生成されたジョブについては、“J1”、そのジョブJ1の処理結果を用いて処理されるジョブが生成されると、そのジョブに“J2”を割り付ける。
また、共通するジョブの処理結果を用いて処理されるジョブ群が生成されると、枝番を用いてジョブIDを割り付ける。たとえば、図3に示したように、共通するジョブJ1の処理結果R1を用いて処理されるジョブ群については、“J1−1”、“J1−2”、“J1−3”というように、ジョブIDを割り付ける。このようにジョブIDを割り付けることにより、一連のジョブがツリー構造として認識される。
また、決定部803は、生成部802によって生成されたジョブの割当先のエージェントをエージェント群の中から決定する機能を有する。具体的には、あるジョブの完了が検出されると、そのジョブを用いて処理されるジョブの割当先のエージェントを決定する。割当先のエージェントの決定処理としては、各エージェントにおける割当予定のジョブの予測処理時間によって決定する。具体的には、予測処理時間が最短のエージェントを割当先に決定する。また、ジョブ処理中でないエージェントの中から決定したり、マスターMとの通信レートが高いエージェントに決定したり、ランダムに決定したりすることとしてもよい。
また、通信部804は、エージェント群と通信する機能を有する。具体的には、たとえば、エージェントから送信されてくる、通信レートや処理情報、処理結果を受信したり、エージェントに対し各種リクエスト、ジョブなどを送信する。
また、制御部805は、通信部804を制御して、エージェント群との通信を制御する機能を有する、具体的には、たとえば、図1(A)に示したように、割当先のエージェントA1に対し、ジョブJ1の処理要求を送信する。また、図1(B)に示したように、ジョブJ2の割当先のエージェントA2への処理結果R1の転送要求を、処理結果R1を保持するエージェントA1に送信する。
また、図2(C)に示したように、ジョブJ2の処理結果R2を用いて処理されるジョブJ3の割当先が処理結果R2を保持するエージェントと同一である場合、処理結果R2の転送要求は送信しない。また、図1(D)に示したように、最後のジョブJ3の処理の完了が検出された場合、割当先となったエージェントA1〜A3に対し、処理結果R1〜R3の取得要求を送信する。
また、算出部806は、エージェント群の中から選ばれたジョブの割当先候補ごとに、ジョブの予測処理時間を算出する機能を有する。具体的には、たとえば、ジョブ管理テーブル600を参照して、割り当てられるジョブの予測処理時間を割当先候補ごとに算出する。この予測処理時間は、下記式(1)により算出することができる。
Tpik=tpik×Lai/Lbi・・・(1)
ここで、Tpikは、割当先候補のエージェントAiのジョブJkの予測処理時間、tpikは、ジョブ管理テーブル600に記憶された割当先候補のエージェントAiのジョブJkに関する処理時間、Laiは、ジョブ管理テーブル600に記憶された割当先候補のエージェントAiの現在のCPU負荷、Lbiは、ジョブ管理テーブル600に記憶された割当先のエージェントAiの過去のCPU負荷である。
また、tpikは、異なるパラメータでジョブJkの処理時間がジョブ管理テーブル600に記憶されている場合にはその処理時間がtpikとなる。また、同一の処理結果を用いて処理されたジョブの処理時間が記憶されている場合にはその処理時間がtpikとなる。また、ジョブJkと同一または近似(たとえば、10%程度の差)するデータサイズのジョブの処理時間が記憶されている場合にはその処理時間がtpikとなる。また、最初に生成されたジョブなどのように処理時間tpikが設定できない場合は、下記式(2)により、予測処理時間を算出する。
Tpik=1/Pi・・・(2)
ただし、Piは、割当先候補のエージェントAiのCPU処理能力比である。なお、予測処理時間Tpikは、割当先候補となるエージェントAiの台数分算出されるが、最短の予測処理時間Tpikのみに絞り込む。
また、取得部807は、エージェント間の通信レートを取得する機能を有する。具体的には、たとえば、分散処理の実行に先立って、各エージェントに他のエージェントとの通信レートの取得要求を送信する。各エージェントは、取得要求を受けると他のエージェントに対しpingコマンドを送信するなどして他のエージェントとの通信レートを測定する。そして、得られた通信レートをレスポンスとしてマスターMが受けることで、エージェント間の通信レートを取得することができる。
取得された通信レートは、通信レート管理テーブル500に書き込まれるため、通信レートが必要なときは、送信元のエージェントと宛先のエージェントを指定すれば、通信レート管理テーブル500から該当する通信レートを取得することができる。たとえば、図1の(B)において、エージェントA1,A2間の通信レートを取得したい場合、処理結果R1を保持するエージェントA1を送信先、ジョブJ2の割当先のエージェントA2を宛先として、通信レート管理テーブル500から通信レートC12を読み出す。
この場合、算出部806では、処理結果のデータサイズと、取得部807によって取得された通信レートとに基づいて、処理結果を保持するエージェントから割当先候補への処理結果の転送時間を算出する。この転送時間は、下記式(3)により算出することができる。
Ttj=sj/Cmi・・・(3)
ただし、Ttjは、ジョブJkの親となるジョブJjを処理したエージェントAmからジョブJkの割当先候補となるエージェントAiへのジョブJjの処理結果Rjの転送時間、sjは処理結果Rjのデータサイズ、Cmiは、エージェントAmを送信元、エージェントAiを宛先とした場合の通信レートである。データサイズsjはジョブ管理テーブル600に記憶されている。通信レートCmiは、通信レート管理テーブル500に記憶されている。
またこの場合、決定部803は、さらに、予測処理時間Tpikと算出部806によって算出された転送時間Ttjとを比較することにより、割当先候補のエージェントを割当先に決定する。具体的には、たとえば、Tpik<Ttjとなった場合、割当先候補のエージェントAiをジョブJkの割当先のエージェントに決定する。割当先のエージェントAiは、エージェントAmからの処理結果Rjの転送先にもなる。
また、クラスタ化処理部808は、生成部802によって生成されたジョブ群をクラスタ化する機能を有する。クラスタ化の対象となるジョブ群は、親ジョブが共通するジョブ群である。具体的には、たとえば、図3に示したような親ジョブJ1の処理結果R1を用いるジョブ群J1−1〜J1−3である。
つぎに、エージェントの機能的構成について説明する。図9は、エージェントの機能的構成を示すブロック図である。図9において、エージェントAは、実行部901と、受信部902と、特定部903と、送信部904と、から構成されている。これら各機能901〜904は、具体的には、たとえば、図4に示したROM402、RAM403、HD405などの記憶領域に記憶されたプログラムをCPU401に実行させることにより、または、I/F409によりその機能を実現する。
まず、実行部901は、マスターMによって割り当てられたジョブの処理を実行する機能を有する。ジョブの処理は、エージェントのCPUによって実行され、その処理結果はエージェント内の記憶領域に保持される。
また、受信部902は、実行部901による実行によって得られたジョブの処理結果の転送要求をマスターMから受信する機能を有する。転送要求やマスターMからの処理結果の取得要求が受信されない限り、処理結果は他の計算機に送信されることはない。
また、特定部903は、受信部902によって受信された転送要求から処理結果を用いて処理されるジョブの割当先のエージェントを特定する機能を有する。転送要求には、割当先のエージェントのIPアドレスが埋め込まれているため、このIPアドレスを抽出する。
また、送信部904は、特定部903によって特定されたエージェントに処理結果を送信する機能を有する。転送要求から抽出されたIPアドレスを宛先に設定することで処理結果を転送することができる。
(グリッドコンピューティングシステム100のシーケンス)
つぎに、グリッドコンピューティングシステム100のシーケンスについて説明する。図10は、グリッドコンピューティングシステム100におけるエージェント間通信レート測定シーケンス図である。
図10において、マスターMは、通信レートの測定対象となるエージェントを指定して、その指定エージェントに対し、通信レート測定要求を送信する(ステップS1001)。通信レート測定要求には、通信レートの測定対象となる指定エージェントおよび被測定エージェントのIPアドレスが含まれている。
指定エージェントは、通信レート測定要求を受けると、被測定エージェントに対し、pingコマンドによるエコー要求を送信する(ステップS1002)。被測定エージェントは、エコー要求を受けると指定エージェントに対しエコー応答を返す(ステップS1003)。
指定エージェントは、エコー要求を送信してからエコー応答を受信するまでの通信時間と、エコー要求およびエコー応答のデータサイズとにより、指定エージェントを送信元、被測定エージェントを宛先とした場合の通信レートを算出する(ステップS1004)。そして、算出された通信レートをマスターMに送信する(ステップS1005)。マスターMは、通信レートを受けると、通信レート管理テーブル500に測定結果として登録する(ステップS1006)。
図11は、グリッドコンピューティングシステム100における分散処理シーケンス図である。まず、マスターMは、最初にジョブを生成し(ステップS1101)、生成されたジョブについてのジョブ割当処理を実行し(ステップS1102)、割当先エージェントAaに対してジョブ処理要求を送信する(ステップS1103)。ジョブ処理要求には、生成されたジョブが含まれている。
割当先エージェントAaは、ジョブ処理要求を受けると、ジョブ処理を実行する(ステップS1104)。そして、得られた処理結果のデータサイズ、処理時間、処理前後のCPU負荷を、処理情報としてマスターMに返す(ステップS1105)。マスターMは、処理情報を受けると、ジョブ管理テーブル600に登録する(ステップS1106)。
マスターMは、後続のジョブを生成し(ステップS1107)、生成されたジョブについてのジョブ割当処理を実行し(ステップS1108)、割当先エージェントAbに対してジョブ処理要求を送信する(ステップS1109)。ジョブ処理要求には、生成されたジョブが含まれている。このジョブは、先の割当先エージェントAaで処理されたジョブの処理結果を用いて処理されるジョブである。また、マスターMは、先の割当先エージェントAaに対して割当先エージェントAbへの処理結果の転送要求を送信する(ステップS1110)。
先の割当先エージェントAaは、この転送要求を受けると、処理結果を割当先エージェントAbへ転送する(ステップS1111)。割当先エージェントAbは、先の割当先エージェントAaからの処理結果と、その処理結果を用いて処理されるジョブが投入されたため、そのジョブの処理を実行する(ステップS1112)。そして、得られた処理結果のデータサイズ、処理時間、処理前後のCPU負荷を、処理情報としてマスターMに返す(ステップS1113)。マスターMは、処理情報を受けると、ジョブ管理テーブル600に登録する(ステップS1114)。
このあと、グリッドコンピューティングシステム100では、ジョブの生成が終了するまで、ステップS1107〜S1114を繰り返し実行する。最後のジョブについて処理情報の登録が完了すると、マスターMは、前記割当先エージェントAa〜Azに対し処理結果の取得要求を配信する(ステップS1115)。各割当先エージェントAa〜Azは、その取得要求を受けると、マスターMに対し処理結果を返す(ステップS1116)。これにより、一連のジョブの分散処理が終了することとなる。
図12は、図11に示したジョブ割当処理(ステップS1102,S1108)の詳細な処理手順を示すフローチャートである。図12において、まず、生成されたジョブに対してジョブID割当処理を実行し(ステップS1201)、つぎに、予測処理時間算出処理を実行し(ステップS1202)、最後に、割当先決定処理を実行する(ステップS1203)ことで、ジョブ割当処理を終了する。
図13は、図12に示したジョブID割当処理(ステップS1201)の詳細な処理手順を示すフローチャートである。まず、ジョブが生成されるまで待ち受け(ステップS1301:No)、ジョブが生成された場合(ステップS1301:Yes)、親ジョブ、すなわち、生成されたジョブに与える処理結果の処理元となるジョブがあるか否かを判断する(ステップS1302)。たとえば、図3の例では、生成されたジョブがジョブJ1−2である場合、親ジョブはジョブJ1である。
親ジョブがない場合(ステップS1302:No)、ジョブIDを生成してそのジョブに割り当てる(ステップS1303)。これにより、ジョブID割当処理を終了する。一方、親ジョブがある場合(ステップS1302:Yes)、固有の文字列を生成し(ステップS1304)、文字列の接頭に親ジョブのジョブIDを付与して、今回生成されたジョブのジョブIDを生成する(ステップS1305)。そして生成されたジョブIDを割り当てる(ステップS1306)。これにより、ジョブID割当処理を終了して、予測処理時間算出処理に移行する。
図3の例では、ジョブJ1−1までジョブIDが付与されているとすると、今回生成されたジョブについては、親ジョブJ1が存在するため、固有の文字列“2”を生成する。なお、ジョブJ1−1がすでに存在するため、“1”は生成できない。そして、生成された文字列“2”の接頭に、親ジョブのジョブID:J1を付与することで、今回生成されたジョブのジョブID:J1−2が生成、割り当てられる。
図14は、図12に示した予測処理時間算出処理(ステップS1202)の詳細な処理手順を示すフローチャートである。まず、未選択のエージェントがあるか否かを判断する(ステップS1401)。未選択のエージェントがある場合(ステップS1401:Yes)、未選択のエージェントを抽出する(ステップS1402)。具体的には、未選択のエージェントについてのエージェント管理テーブル700のエントリを特定する(ステップS1402)。そして、そのエージェントがジョブ処理中であるか否かを判断する(ステップS1403)。
ジョブ処理中である場合(ステップS1403:Yes)、ステップS1401に戻る。一方、ジョブ処理中でない場合(ステップS1403:No)、予測処理時間の計算処理を実行する(ステップS1404)。そして、予測処理時間が算出されると、ステップS1401に戻る。一方、ステップS1401において、未選択のエージェントがない場合(ステップS1401:No)、予測処理時間算出処理を終了して、割当先決定処理(ステップS1203)に移行する。
図15は、図14に示した予測処理時間の計算処理(ステップS1404)の詳細な処理手順を示すフローチャートである。まず、処理時間がすでに登録済みであるか否かを判断し(ステップS1501)、登録済みである場合(ステップS1501:Yes)、処理時間、過去のCPU負荷、現在のCPU負荷を、選択エージェントにおけるジョブ管理テーブル600のエントリから取得する(ステップS1502)。そして、ステップS1507に移行する。
登録済みの処理時間とは、今回生成されたジョブと同一のジョブであるが、与えられたパラメータが異なるジョブの処理時間である。この場合、今回生成されたジョブの処理時間の予測に先立って、すでにジョブ管理テーブル600に登録されているため、予測処理時間の算出に用いる。
一方、処理時間が登録済みでない場合(ステップS1501:No)、親が共通するジョブの処理時間が登録済みであるか否かを判断する(ステップS1503)。登録済みである場合(ステップS1503:Yes)、親が共通するジョブの処理時間、過去のCPU負荷、および現在のCPU負荷を、選択エージェントにおけるジョブ管理テーブル600のエントリから取得する(ステップS1504)。そして、ステップS1507に移行する。
要するに、親が共通するジョブどうしでは、その処理時間はほぼ同等であるとの予測に基づくものである。たとえば、あるエージェントにおけるジョブJ1−2の予測処理時間を算出する場合、親ジョブJ1が共通するジョブJ1−1の処理時間を用いて、ジョブJ1−2の予測処理時間を算出することとなる。
一方、処理時間が登録済みでない場合(ステップS1503:No)、同サイズのジョブの処理時間が登録済みであるか否かを判断する(ステップS1505)。登録済みである場合(ステップS1505:Yes)、同サイズのジョブの処理時間、過去のCPU負荷、現在のCPU負荷を、ジョブ管理テーブル600のエントリから取得する(ステップS1506)。そして、ステップS1507に移行する。
なお、同サイズのジョブは、選択エージェントのエントリに登録されていてもよく、また、他のエントリに登録されていてもよい。この場合、CPU負荷は、登録エントリのCPU負荷を読み出すこととなる。要するに、サイズがほぼ同等であれば処理時間も同等であるとの予測に基づくものである。
そして、ステップS1507では、ステップS1502、S1504、またはS1506での取得情報を用いて、選択エージェントによるジョブの予測処理時間を算出する(ステップS1507)。具体的には、取得情報を、上述した式(1)に代入することにより算出する。これにより、予測処理時間の計算処理を終了して、ステップS1401に戻る。
一方、ステップS1505において登録済みでない場合(ステップS1505:No)、選択エージェントのCPU処理能力比を用いて、選択エージェントによるジョブの予測処理時間を算出する(ステップS1508)。具体的には、選択エージェントのCPU処理能力比を、上述した式(2)に代入することにより算出する。これにより、予測処理時間の計算処理を終了して、ステップS1401に戻る。
図16は、図12に示した割当先決定処理(ステップS1203)の詳細な処理手順を示すフローチャート(前半)である。まず、生成されたジョブが最上位のジョブ、すなわち、最初に生成されたジョブであるか否かを判断する(ステップS1601)。最上位のジョブである場合(ステップS1601:Yes)、予測処理時間が最短となるエージェントをジョブの割当先エージェントに決定する(ステップS1602)。
そして、決定された割当先エージェントに対し、ジョブ処理要求を送信する(ステップS1603)。これにより、ジョブ割当処理を終了する。一方、ステップS1601において、最上位のジョブでない場合(ステップS1601:No)、図17のフローチャートに移行する。
図17は、図12に示した割当先決定処理(ステップS1203)の詳細な処理手順を示すフローチャート(後半)である。図17において、エージェントごとに算出された予測処理時間の中から最短の予測処理時間Tpikを抽出し(ステップS1701)、抽出予測処理時間Tpikの算出元エージェントを、親ジョブを処理したエージェントが保持する処理結果の転送先候補として選択する(ステップS1702)。選択転送先候補への転送時間Ttjを上記式(3)により算出して(ステップS1703)、抽出予測処理時間Tpikと転送時間Ttjとを比較する(ステップS1704)。
Tpik<Ttjでない場合(ステップS1704:No)、転送時間Ttjの方が短いことになるため、抽出予測処理時間Tpikの算出元エージェントを、ジョブの割当先エージェントに決定する(ステップS1705)。そして、決定された割当先エージェントに対しジョブ処理要求を送信する(ステップS1706)。
また、割当先と転送先とが同一エージェントであるか否かを判断し(ステップS1707)、同一である場合(ステップS1707:Yes)、転送要求を送信せずに、割当先決定処理を終了して、ステップS1401に戻る。一方、同一でない場合(ステップS1707:No)、親ジョブの処理結果を保持するエージェントに対し、その処理結果の割当先エージェントへの転送要求を送信する(ステップS1708)。これにより、割当先決定処理を終了する。
Tpik<Ttjである場合(ステップS1704:Yes)、クラスタ化処理を実行する(ステップS1709)。クラスタ化処理は、ジョブをまとめてクラスタにする処理である。詳細は後述する。
クラスタ化処理のあと、親ジョブの処理結果を保持するエージェントを、クラスタの割当先エージェントに決定し(ステップS1710)、その割当先エージェントに対しジョブ処理要求(厳密にはクラスタの処理要求)を送信する(ステップS1711)。これにより、割当先エージェントにはクラスタを構成するジョブ群が投入されることとなる。このあと、割当先決定処理を終了する。
図18は、図17に示したクラスタ化処理(ステップS1709)の詳細な処理手順を示すフローチャートである。まず、クラスタを生成する(ステップS1801)。この状態では、空集合である。つぎに、クラスタにジョブを追加する(ステップS1802)。そして、そのジョブと親が共通するジョブを生成する(ステップS1803)。図3の例では、クラスタにジョブJ1−1を追加した場合、親(ジョブJ1)が共通するジョブを生成する。このジョブは、このあとのジョブID割当処理により、ジョブJ1−2となる。
つぎに、ジョブID割当処理(ステップS1804)と予測処理時間算出処理(ステップS1805)とを実行する。このジョブID割当処理は、図13に示したジョブID割当処理と同一処理であり、予測処理時間算出処理(ステップS1805)も、図14および図15に示した予測処理時間算出処理と同一処理である。このあと、選択転送先候補への転送時間Ttjを上記式(3)により算出して(ステップS1806)、抽出予測処理時間Tpikと転送時間Ttjとを比較する(ステップS1807)。
Tpik<Ttjである場合(ステップS1807:Yes)、抽出予測処理時間Tpikの方が短いため、そのジョブをクラスタに追加する(ステップS1808)。そして、ジョブ追加後のクラスタの予測処理時間ΣTpikと転送時間Ttjとを比較する(ステップS1809)。クラスタの予測処理時間ΣTpikとは、クラスタに追加されたジョブ群の抽出予測処理時間Tpikの総和である。
ΣTpik<Ttjである場合(ステップS1809:Yes)、クラスタに余裕があるため、ジョブ生成が終了か否かを判断する(ステップS1810)。一方、ΣTpik<Ttjでない場合(ステップS1809:No)、クラスタ化処理を終了して、ステップS1710に移行する。
一方、ステップS1807において、Tpik<Ttjでない場合(ステップS1807:No)、そのジョブをクラスタに追加せずに、ステップS1810に移行する。ステップS1810では、親を共通とするジョブの生成が終了したか否かを判断し(ステップS1810)、終了していない場合(ステップS1810:No)、ステップS1803に戻り、終了した場合(ステップS1810:Yes)、クラスタ化処理を終了して、ステップS1710に移行する。
つぎに、このグリッドコンピューティングによる分散処理の一実施例について説明する。図19−1および図19−2は、一連のジョブの分散処理を時系列(A)〜(F)で示した説明図である。(A)において、マスターMは最上位のジョブJ1を生成して、その割当先エージェントを、エージェントA1〜A3の中からエージェントA1に決定し、ジョブを投入する。
図20−1は、図19−1(A)におけるジョブJ1の割当先決定時のジョブ管理テーブル600の記憶内容を示す説明図である。図20−1では、ジョブJ1の処理時間、ジョブJ1と親が共通するジョブの処理時間、ジョブJ1とサイズが同等のジョブの処理時間のいずれも登録されていないため、上記式(2)により、エージェントA1〜A3ごとに予測処理時間が算出される。予測処理時間のうち、エージェントA1の予測処理時間が最短であるため、ジョブJ1の割当先をエージェントA1に決定する。
(B)において、ジョブJ1が投入されたエージェントA1からその処理情報が返ってくるとマスターMはジョブ管理テーブル600に登録する。そして、次のジョブJ1−1を生成して、その割当先エージェントを、エージェントA1〜A3の中からエージェントA1に決定し、ジョブを投入する。ジョブJ1−1はジョブJ1を親とするジョブであり、ジョブJ1の処理結果R1を用いて処理される。
図20−2は、図19−1(B)におけるジョブJ1の処理情報登録時のジョブ管理テーブル600の記憶内容を示す説明図である。図20−2では、ジョブJ1の処理時間として15〔ms〕、ジョブJ1のデータサイズとして1〔byte〕、現在のCPU負荷として10〔%〕、過去のCPU負荷として20〔%〕が登録される。
図20−3は、図19−1(B)におけるジョブJ1−1の割当先候補の絞込み時のジョブ管理テーブル600の記憶内容を示す説明図である。図20−3においても、図20−1と同様、ジョブJ1−1の処理時間、ジョブJ1−1と親が共通するジョブの処理時間、ジョブJ1−1とサイズが同等のジョブの処理時間のいずれも登録されていないため、上記式(2)により、エージェントA1〜A3ごとに予測処理時間が算出される。予測処理時間のうち、エージェントA1の予測処理時間が最短であるため、ジョブJ1−1の割当先候補をエージェントA1に絞り込む。
図20−4は、図19−1(B)におけるジョブJ1−1の割当先候補の転送時間を示す説明図である。マスターMは通信レート管理テーブル500を参照して、処理結果R1の転送元をエージェントA1とし割当先候補A1の転送時間を算出する。そして、予測処理時間と転送時間を比較すると、転送時間の方が短いため、エージェントA1が、ジョブJ1−1の割当先に決定される。したがって、処理結果R1は転送する必要がない。
(C)において、マスターMは、ジョブJ1−1の処理情報の受信にかかわらず、つぎのジョブJ1−2を生成する。ジョブJ1−2はジョブJ1−1と親(ジョブJ1)が共通するジョブであり、ジョブJ1の処理結果R1を用いて処理される。このジョブJ1−2の割当先をエージェントA2に決定して、エージェントA2にジョブJ1−2を投入する。
また、エージェントA1に対してジョブJ1の処理結果R1の転送要求をエージェントA1に送る。エージェントA1はその転送要求にしたがって、処理結果R1をエージェントA2に転送する。これにより、エージェントA2では、ジョブJ1−2の処理を実行することができる。
図20−5は、図19−1(C)におけるジョブJ1−2の割当先候補の絞込み時のジョブ管理テーブル600の記憶内容を示す説明図である。図20−5では、エージェントA1がジョブJ1−1の処理中であるため、割当先候補から外れる。また、図20−5においても、図20−3と同様、ジョブJ1−2の処理時間、ジョブJ1−2と親が共通するジョブの処理時間、ジョブJ1−2とサイズが同等のジョブの処理時間のいずれも登録されていないため、上記式(2)により、エージェントA2,A3ごとに予測処理時間が算出される。予測処理時間のうち、エージェントA2の予測処理時間が最短であるため、ジョブJ1−2の割当先候補をエージェントA2に絞り込む。
また、図20−4に示したように、マスターMは通信レート管理テーブル500を参照して、処理結果R1の転送元をエージェントA1とし、割当先候補A2の転送時間を算出する。そして、予測処理時間と転送時間を比較すると、転送時間の方が短いため、エージェントA2が、ジョブJ1−2の割当先に決定される。この場合、エージェントA2は処理結果R1の転送先にもなる。
(D)において、マスターMは、ジョブJ1−1,J1−2の処理情報の受信にかかわらず、つぎのジョブJ1−3を生成する。ジョブJ1−3はジョブJ1−1と親(ジョブJ1)が共通するジョブであり、ジョブJ1の処理結果R1を用いて処理される。このジョブJ1−3の割当先をエージェントA3に決定して、エージェントA3にジョブJ1−3を投入する。
図20−6は、図19−2(D)におけるジョブJ1−3の割当先候補の絞込み時のジョブ管理テーブル600の記憶内容を示す説明図である。図20−6では、エージェントA1,A2がジョブJ1−1,J1−2の処理中であるため、割当先候補から外れる。また、図20−6においても、図20−5と同様、ジョブJ1−3の処理時間、ジョブJ1−3と親が共通するジョブの処理時間、ジョブJ1−3とサイズが同等のジョブの処理時間のいずれも登録されていないため、上記式(2)により、エージェントA3の予測処理時間が算出される。ここでは、エージェントA3の予測処理時間しかないため、ジョブJ1−3の割当先候補はエージェントA3となる。
図20−7は、ジョブJ1−2,J1−3の処理情報の登録後のジョブ管理テーブル600の記憶内容を示す説明図である。図20−7に示した状態では、ジョブJ1−1はまだ処理中である。
(E)において、マスターMは、ジョブJ1−1の処理情報の受信にかかわらず、つぎのジョブJ1−4を生成する。ジョブJ1−4はジョブJ1−1と親(ジョブJ1)が共通するジョブであり、ジョブJ1の処理結果R1を用いて処理される。このジョブJ1−4の割当先をエージェントA3に決定して、エージェントA3にジョブJ1−4を投入する。
図20−8は、図19−2(E)におけるジョブJ1−4の割当先候補の絞込み時のジョブ管理テーブル600の記憶内容を示す説明図である。図20−8では、エージェントA1がジョブJ1−1の処理中であるため、割当先候補から外れる。また、図20−8においては、ジョブJ1−3と親が共通するジョブJ1−2,J1−3の処理時間が登録されているため、上記式(1)により、エージェントA2,A3の予測処理時間が算出される。予測処理時間のうち、エージェントA3の予測処理時間が最短であるため、ジョブJ1−4の割当先候補をエージェントA3に絞り込む。
図20−9は、図19−2(D)におけるジョブJ1−4の割当先時のジョブ管理テーブル600の記憶内容を示す説明図である。このあと、すべてのジョブの処理が完了した場合、(F)において、各割当先エージェントA1〜A3に保持されている処理結果R1,R1−1〜R1−4の取得要求をマスターMから受けることにより、各割当先エージェントA1〜A3は、処理結果R1,R1−1〜R1−4をマスターMに返す。
以上説明したように、本実施の形態(実施例含む)によれば、エージェントによるジョブの処理結果をマスターMを経由せずに直接他のエージェントに転送するため、マスターMの管理下にあるエージェント間でのジョブの処理結果の転送時間の短縮化を図ることができる。
また、割当先の決定に際し、エージェントごとのジョブの予測処理時間をジョブの投入間に算出することにより、処理効率のよいエージェントに投入前のジョブを割り当てることができる。これにより、ジョブ全体の処理時間の短縮化を図ることができる。また、同一のジョブや類似のジョブの処理時間を参照することで、予測処理時間を簡単かつ高精度に予測することができる。
また、割当先の決定に際し、エージェント間の通信レートを参照して処理結果の転送時間を算出するため、転送時間が短くなるエージェントをジョブの割当先に決定することができ、処理結果の転送時間の短縮化を図ることができる。
また、予測処理時間が転送時間に満たないジョブ群をクラスタ化することにより、そのジョブ群の処理に用いられる処理結果を保持するエージェントに一括投入することで、処理結果の転送回数を削減することができ、ジョブ処理の効率化とエージェントの負荷低減を図ることができ、ジョブ全体の処理時間の短縮化を図ることができる。
このように、上述した実施の形態のグリッドコンピューティングシステム100では、一連のジョブの処理時間の短縮化を図ることができ、マスターMとエージェント群との間のネットワーク110のトラフィックの低減化を図ることができる。
なお、本実施の形態で説明した分散処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワーク110を介して配布することが可能な媒体であってもよい。
また、本実施の形態で説明した分散処理装置は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した分散処理装置の機能801〜808,901〜904をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、分散処理装置を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)エージェント群にアクセス可能なマスターサーバーを、
第1のジョブの割当先のエージェントにより前記第1のジョブの処理が完了したことを検出する検出手段、
前記第1のジョブの処理結果を用いて処理される第2のジョブを生成する生成手段、
前記検出手段によって完了が検出された場合、前記生成手段によって生成された第2のジョブの割当先のエージェントを前記エージェント群の中から決定する決定手段、
前記エージェント群と通信する通信手段、
前記通信手段を制御して、前記決定手段によって決定されたエージェントに対し、前記第2のジョブの処理要求を送信するとともに、前記第1のジョブの割当先のエージェントに対し、当該エージェントから前記第2のジョブの割当先のエージェントへの前記処理結果の転送要求を送信する制御手段、
として機能させることを特徴とする分散処理プログラム。
(付記2)前記マスターサーバーを、
前記エージェント群の中から選ばれた前記第2のジョブの割当先候補ごとに、前記第2のジョブの予測処理時間を算出する算出手段として機能させ、
前記決定手段は、
前記算出手段によって算出された前記各割当先候補の予測処理時間に基づいて、前記割当先候補の中から前記第2のジョブの割当先のエージェントを決定することを特徴とする付記1に記載の分散処理プログラム。
(付記3)前記算出手段は、
さらに、異なるパラメータで処理された前記第2のジョブの処理時間に基づいて、前記第2のジョブの予測処理時間を算出することを特徴とする付記2に記載の分散処理プログラム。
(付記4)前記算出手段は、
さらに、前記第2のジョブの類似ジョブの処理時間に基づいて、前記第2のジョブの予測処理時間を算出することを特徴とする付記2に記載の分散処理プログラム。
(付記5)前記類似ジョブは、前記各割当先候補において前記処理結果を用いて前記第2のジョブよりも先に処理されたジョブであることを特徴とする付記4に記載の分散処理プログラム。
(付記6)前記類似ジョブは、前記各割当先候補において前記第2のジョブよりも先に処理された前記第2のジョブと同等のデータサイズのジョブであることを特徴とする付記4に記載の分散処理プログラム。
(付記7)前記マスターサーバーを、
前記第1のジョブの割当先のエージェントと前記第2のジョブの割当先候補との間の通信レートとを取得する取得手段として機能させ、
前記算出手段は、
前記処理結果のデータサイズと、前記取得手段によって取得された通信レートとに基づいて、前記第1のジョブの割当先のエージェントから前記割当先候補への前記処理結果の転送時間を算出し、
前記決定手段は、
さらに、前記予測処理時間と前記算出手段によって算出された転送時間とを比較することにより、前記割当先候補の中から前記第2のジョブの割当先のエージェントを決定することを特徴とする付記2〜6のいずれか一つに記載の分散処理プログラム。
(付記8)前記決定手段は、
前記転送時間が前記予測処理時間よりも短い割当先候補を、前記第2のジョブの割当先のエージェントに決定することを特徴とする付記7に記載の分散処理プログラム。
(付記9)前記マスターサーバーを、
前記転送時間が前記予測処理時間以上である場合、前記処理結果を用いて処理される第3のジョブを順次生成することにより、前記第2のジョブと前記第3のジョブとをクラスタ化するクラスタ化手段として機能させ、
前記決定手段は、
前記クラスタ化手段によってクラスタ化されたクラスタの割当先のエージェントを、前記第1のジョブの割当先のエージェントに決定し、
前記制御手段は、
前記通信手段を制御して、前記第1のジョブの割当先のエージェントに対し、前記クラスタの処理要求を送信することを特徴とする付記8に記載の分散処理プログラム。
(付記10)前記算出手段は、
前記第3のジョブが生成される都度、前記割当先候補の処理能力に基づいて、前記第3のジョブの予測処理時間を算出し、
前記クラスタ化手段は、
前記算出手段によって算出された前記第3のジョブの予測処理時間が前記転送時間よりも短い場合、前記第3のジョブを前記クラスタに追加することを特徴とする付記9に記載の分散処理プログラム。
(付記11)前記クラスタ化手段は、
前記クラスタを構成するジョブの予測処理時間の合計が前記転送時間を超えるまで、順次生成されてくる前記第3のジョブを追加することを特徴とする付記9または10に記載の分散処理プログラム。
(付記12)前記検出手段は、
すべてのジョブの処理が完了したことを検出し、
前記制御手段は、
前記通信手段を制御して、前記検出手段によってすべてのジョブの処理が完了したことが検出された場合、前記各ジョブが割り当てられたエージェントに対し、前記ジョブの処理結果の取得要求を送信するとともに、当該取得要求に応じて送信されてくる前記各ジョブの処理結果を受信することを特徴とする付記1〜11のいずれか一つに記載の分散処理プログラム。
(付記13)マスターサーバーにアクセス可能なエージェントを、
前記マスターサーバーによって割り当てられた第1のジョブの処理を実行する実行手段、
前記実行手段による実行によって得られた前記第1のジョブの処理結果の転送要求を前記マスターサーバーから受信する受信手段、
前記受信手段によって受信された転送要求から前記処理結果を用いて処理される第2のジョブの割当先のエージェントを特定する特定手段、
前記特定手段によって特定されたエージェントに前記処理結果を送信する送信手段、
として機能させることを特徴とする分散処理プログラム。
(付記14)エージェント群に分散処理させる分散処理装置であって、
第1のジョブの割当先のエージェントにより前記第1のジョブの処理が完了したことを検出する検出手段と、
前記検出手段によって完了が検出された場合、前記第1のジョブの処理結果を用いて処理される第2のジョブを生成する生成手段と、
前記生成手段によって生成された第2のジョブの割当先のエージェントを前記エージェント群の中から決定する決定手段と、
前記エージェント群と通信する通信手段と、
前記通信手段を制御して、前記決定手段によって決定されたエージェントに対し、前記第2のジョブの処理要求を送信するとともに、前記第1のジョブの割当先のエージェントに対し、当該エージェントから前記第2のジョブの割当先のエージェントへの前記処理結果の転送要求を送信する制御手段と、
を備えることを特徴とする分散処理装置。
(付記15)マスターサーバーによって割り当てられた第1のジョブの処理を実行する実行手段と、
前記実行手段による実行によって得られた前記第1のジョブの処理結果の転送要求を前記マスターサーバーから受信する受信手段と、
前記受信手段によって受信された転送要求から前記処理結果を用いて処理される第2のジョブの割当先のエージェントを特定する特定手段と、
前記特定手段によって特定されたエージェントに前記処理結果を送信する送信手段と、
を備えることを特徴とする分散処理装置。
(付記16)エージェント群に分散処理させる分散処理方法であって、
第1のジョブの割当先のエージェントにより前記第1のジョブの処理が完了したことを検出する検出工程と、
前記検出工程によって完了が検出された場合、前記第1のジョブの処理結果を用いて処理される第2のジョブを生成する生成工程と、
前記生成工程によって生成された第2のジョブの割当先のエージェントを前記エージェント群の中から決定する決定工程と、
前記決定工程によって決定されたエージェントに対し、前記第2のジョブの処理要求を送信するとともに、前記第1のジョブの割当先のエージェントに対し、当該エージェントから前記第2のジョブの割当先のエージェントへの前記処理結果の転送要求を送信する送信工程と、
を含んだことを特徴とする分散処理方法。
(付記17)マスターサーバーによって割り当てられた第1のジョブの処理を実行する実行工程と、
前記実行工程による実行によって得られた前記第1のジョブの処理結果の転送要求を前記マスターサーバーから受信する受信工程と、
前記受信工程によって受信された転送要求から前記処理結果を用いて処理される第2のジョブの割当先のエージェントを特定する特定工程と、
前記特定工程によって特定されたエージェントに前記処理結果を送信する送信工程と、
を含んだことを特徴とする分散処理方法。
以上のように、分散処理プログラム、分散処理装置、分散処理システム、および分散処理方法は、ネットワークを用いたグリッドコンピューティングに有用であり、たとえば、DNAの解析、車両の衝突解析などに適している。
100 グリッドコンピューティングシステム
110 ネットワーク
500 通信レート管理テーブル
600 ジョブ管理テーブル
700 エージェント管理テーブル
801 検出部
802 生成部
803 決定部
804 通信部
805 制御部
806 算出部
807 取得部
808 クラスタ化処理部
901 実行部
902 受信部
903 特定部
904 送信部

Claims (4)

  1. エージェント群にアクセス可能なマスターサーバーを、
    第1のジョブの割当先のエージェントにより前記第1のジョブの処理が完了したことを検出する検出手段、
    前記第1のジョブの処理結果を用いて処理される第2および第3のジョブを生成する生成手段、
    前記エージェント群の中から選ばれた前記第2のジョブの割当先候補における前記第2および第3のジョブの予測処理時間の総和を算出する第1の算出手段、
    前記第1のジョブの割当先のエージェントと前記第2のジョブの割当先候補との間の通信レートとを取得する取得手段、
    前記処理結果のデータサイズと、前記取得手段によって取得された通信レートとに基づいて、前記第1のジョブの割当先のエージェントから前記割当先候補への前記処理結果の転送時間を算出する第2の算出手段、
    前記第2の算出手段によって算出された転送時間が前記第1の算出手段によって算出された予測処理時間の総和より大きい場合、前記第2のジョブと前記第3のジョブとをクラスタ化するクラスタ化手段、
    前記検出手段によって完了が検出された場合、前記クラスタ化手段によってクラスタ化されたクラスタの割当先のエージェントを、前記第1のジョブの割当先のエージェントに決定する決定手段、
    前記エージェント群と通信する通信手段、
    前記通信手段を制御して、前記第1のジョブの割当先のエージェントに対し、前記クラスタの処理要求を送信する制御手段、
    として機能させることを特徴とする分散処理プログラム。
  2. エージェント群に分散処理させる分散処理装置であって、
    第1のジョブの割当先のエージェントにより前記第1のジョブの処理が完了したことを検出する検出手段と、
    前記第1のジョブの処理結果を用いて処理される第2および第3のジョブを生成する生成手段と、
    前記エージェント群の中から選ばれた前記第2のジョブの割当先候補における前記第2および第3のジョブの予測処理時間の総和を算出する第1の算出手段と、
    前記第1のジョブの割当先のエージェントと前記第2のジョブの割当先候補との間の通信レートとを取得する取得手段と、
    前記処理結果のデータサイズと、前記取得手段によって取得された通信レートとに基づいて、前記第1のジョブの割当先のエージェントから前記割当先候補への前記処理結果の転送時間を算出する第2の算出手段と、
    前記第2の算出手段によって算出された転送時間が前記第1の算出手段によって算出された予測処理時間の総和より大きい場合、前記第2のジョブと前記第3のジョブとをクラスタ化するクラスタ化手段と、
    前記検出手段によって完了が検出された場合、前記クラスタ化手段によってクラスタ化されたクラスタの割当先のエージェントを、前記第1のジョブの割当先のエージェントに決定する決定手段と、
    前記エージェント群と通信する通信手段と、
    前記通信手段を制御して、前記第1のジョブの割当先のエージェントに対し、前記クラスタの処理要求を送信する制御手段と、
    を備えることを特徴とする分散処理装置。
  3. エージェント群と分散処理装置とを有する分散処理システムであって、
    前記分散処理装置は、
    第1のジョブの割当先のエージェントにより前記第1のジョブの処理が完了したことを検出する検出手段と、
    前記第1のジョブの処理結果を用いて処理される第2および第3のジョブを生成する生成手段と、
    前記エージェント群の中から選ばれた前記第2のジョブの割当先候補における前記第2および第3のジョブの予測処理時間の総和を算出する第1の算出手段と、
    前記第1のジョブの割当先のエージェントと前記第2のジョブの割当先候補との間の通信レートとを取得する取得手段と、
    前記処理結果のデータサイズと、前記取得手段によって取得された通信レートとに基づいて、前記第1のジョブの割当先のエージェントから前記割当先候補への前記処理結果の転送時間を算出する第2の算出手段と、
    前記第2の算出手段によって算出された転送時間が前記第1の算出手段によって算出された予測処理時間の総和より大きい場合、前記第2のジョブと前記第3のジョブとをクラスタ化するクラスタ化手段と、
    前記検出手段によって完了が検出された場合、前記クラスタ化手段によってクラスタ化されたクラスタの割当先のエージェントを、前記第1のジョブの割当先のエージェントに決定する決定手段と、
    前記エージェント群と通信する通信手段と、
    前記通信手段を制御して、前記第1のジョブの割当先のエージェントに対し、前記クラスタの処理要求を送信する制御手段と、を有し、
    前記エージェント群の各々は、
    前記分散処理装置によって割り当てられた第1のジョブの処理を実行するとともに、前記クラスタの処理要求が受信された場合、前記第1のジョブを実行することにより得られた処理結果に基づいて、前記クラスタの処理を実行する実行手段を有することを特徴とする分散処理システム。
  4. エージェント群に分散処理させる分散処理方法であって、
    第1のジョブの割当先のエージェントにより前記第1のジョブの処理が完了したことを検出する検出工程と、
    前記第1のジョブの処理結果を用いて処理される第2および第3のジョブを生成する生成工程と、
    前記エージェント群の中から選ばれた前記第2のジョブの割当先候補における前記第2および第3のジョブの予測処理時間の総和を算出する第1の算出工程と、
    前記第1のジョブの割当先のエージェントと前記第2のジョブの割当先候補との間の通信レートとを取得する取得工程と、
    前記処理結果のデータサイズと、前記取得工程によって取得された通信レートとに基づいて、前記第1のジョブの割当先のエージェントから前記割当先候補への前記処理結果の転送時間を算出する第2の算出工程と、
    前記第2の算出工程によって算出された転送時間が前記第1の算出工程によって算出された予測処理時間の総和より大きい場合、前記第2のジョブと前記第3のジョブとをクラスタ化するクラスタ化工程と、
    前記検出工程によって完了が検出された場合、前記クラスタ化工程によってクラスタ化されたクラスタの割当先のエージェントを、前記第1のジョブの割当先のエージェントに決定する決定工程と、
    前記第1のジョブの割当先のエージェントに対し、前記クラスタの処理要求を送信する送信工程と、
    を含んだことを特徴とする分散処理方法。
JP2012221735A 2012-10-03 2012-10-03 分散処理プログラム、分散処理装置、分散処理システム、および分散処理方法 Withdrawn JP2012256380A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012221735A JP2012256380A (ja) 2012-10-03 2012-10-03 分散処理プログラム、分散処理装置、分散処理システム、および分散処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012221735A JP2012256380A (ja) 2012-10-03 2012-10-03 分散処理プログラム、分散処理装置、分散処理システム、および分散処理方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007298556A Division JP2009123109A (ja) 2007-11-16 2007-11-16 分散処理プログラム、分散処理装置、および分散処理方法

Publications (1)

Publication Number Publication Date
JP2012256380A true JP2012256380A (ja) 2012-12-27

Family

ID=47527821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012221735A Withdrawn JP2012256380A (ja) 2012-10-03 2012-10-03 分散処理プログラム、分散処理装置、分散処理システム、および分散処理方法

Country Status (1)

Country Link
JP (1) JP2012256380A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017049939A (ja) * 2015-09-04 2017-03-09 株式会社日立ソリューションズ 計算機システム及びデータ配布方法
JP2017215964A (ja) * 2016-06-01 2017-12-07 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation 処理パワーの仲介を基盤としたクラウドサービス方法およびシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017049939A (ja) * 2015-09-04 2017-03-09 株式会社日立ソリューションズ 計算機システム及びデータ配布方法
JP2017215964A (ja) * 2016-06-01 2017-12-07 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation 処理パワーの仲介を基盤としたクラウドサービス方法およびシステム

Similar Documents

Publication Publication Date Title
JP5858151B2 (ja) データベース管理システム、計算機、データベース管理方法
CN106462363B (zh) 云服务器、图像形成设备和打印控制方法
CN100429613C (zh) 打印设备控制方法和打印控制装置
JP2015001828A (ja) 割当プログラム、割当装置および割当方法
JP5039950B2 (ja) オブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラム
JPH1153277A (ja) 情報処理装置
CN101604302A (zh) 高级外围总线桥及其控制方法
CN105094981B (zh) 一种数据处理的方法及装置
JP5775359B2 (ja) システム管理サーバ、管理方法及びプログラム
JP5853819B2 (ja) 制御プログラム、制御方法、記憶制御装置および情報処理システム
JP2012256380A (ja) 分散処理プログラム、分散処理装置、分散処理システム、および分散処理方法
CN105282357B (zh) 图像形成装置、移动装置和打印控制方法
US20140222896A1 (en) Distributed processing system and management method of distributed processing system
CN101822036A (zh) 信息处理设备、图像处理设备及相应的信息处理方法
JP5176558B2 (ja) 分散処理プログラム、分散処理装置、および分散処理方法
JP2009123109A (ja) 分散処理プログラム、分散処理装置、および分散処理方法
JP5423479B2 (ja) ライセンス管理装置、ライセンス管理システム、ライセンス管理方法およびプログラム
JP2008299553A (ja) 情報処理システム、コアサーバ装置、およびプログラム
JP7310378B2 (ja) 情報処理プログラム、情報処理方法、および情報処理装置
JP2007078639A (ja) 経路案内提供システム、画像形成装置および画像形成方法
JP2023074641A (ja) 情報処理システム、情報処理方法および情報処理プログラム
KR101425866B1 (ko) 대용량 데이터 가시화를 위한 위치 기반 데이터 분산 처리 방법 및 시스템
JP5962678B2 (ja) 画像形成システムにおける通信制御方法、画像形成システム用プログラム、画像形成システム用プログラムが記録された記録媒体、および画像形成システム
CN104620233B (zh) 用于对cpu内的消息通道基础设施的多流访问的虚拟化通信套接字
JP2022032145A (ja) 情報処理システム、処理実行システム、処理実行方法、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121003

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20130829