JP5137434B2 - データ処理装置、分散処理システム、データ処理方法、及びデータ処理プログラム - Google Patents

データ処理装置、分散処理システム、データ処理方法、及びデータ処理プログラム Download PDF

Info

Publication number
JP5137434B2
JP5137434B2 JP2007084939A JP2007084939A JP5137434B2 JP 5137434 B2 JP5137434 B2 JP 5137434B2 JP 2007084939 A JP2007084939 A JP 2007084939A JP 2007084939 A JP2007084939 A JP 2007084939A JP 5137434 B2 JP5137434 B2 JP 5137434B2
Authority
JP
Japan
Prior art keywords
task
data
data processing
unit
distributed
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.)
Active
Application number
JP2007084939A
Other languages
English (en)
Other versions
JP2008242983A (ja
Inventor
裕樹 加藤
幸司 小林
典孝 羽山
一文 尾山
渡 小野木
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Sony Computer Entertainment Inc
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 Sony Interactive Entertainment Inc, Sony Computer Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Priority to JP2007084939A priority Critical patent/JP5137434B2/ja
Priority to US12/593,191 priority patent/US8719367B2/en
Priority to EP07827872.8A priority patent/EP2144164B1/en
Priority to PCT/JP2007/001093 priority patent/WO2008120281A1/ja
Priority to CN200780052409.6A priority patent/CN101652750B/zh
Publication of JP2008242983A publication Critical patent/JP2008242983A/ja
Application granted granted Critical
Publication of JP5137434B2 publication Critical patent/JP5137434B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Description

本発明は、分散処理技術に関し、とくに、ネットワークで接続された複数のデータ処理装置に分散してタスクを処理させるデータ処理装置、分散処理システム、データ処理方法、及びデータ処理プログラムに関する。
多くのリソースを必要とする大規模な計算を、複数のプロセッサに分散して処理させることが可能な分散処理システムが知られている。
しかし、単一のプロセッサで処理されることを想定して設計されたアプリケーションを複数のモジュールに分割し、複数のプロセッサに分散して処理させることは、一般には容易ではない。また、予め複数のプロセッサに分散して処理させることを想定してアプリケーションを設計する場合は、データの授受などの問題から、どのモジュールをどのプロセッサに処理させるのかということまで考慮して設計する必要があり、柔軟性や汎用性に欠ける。
本発明はこうした状況に鑑みてなされたものであり、その目的は、より利便性の高い分散処理技術を提供することにある。
本発明のある態様は、データ処理装置に関する。このデータ処理装置は、データを処理するタスクに関する情報を取得するタスク情報取得部と、前記タスクが必要とするデータの入手先が、前記タスクを実行する装置にネットワークを介して接続された前記タスクを実行する装置とは別の装置である場合に、前記入手先の装置が前記タスクを実行する装置へ前記タスクが必要とするデータを送信するための送信タスクを生成して前記入手先の装置へ送信する通信タスク生成部と、を備えることを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、より利便性の高い分散処理技術を提供することができる。
(第1の実施の形態)
図1は、第1の実施の形態に係る分散処理システム10の構成を示す。分散処理システム10は、分散処理管理装置80と複数の端末20を含む。これらの装置は、データ処理装置の一例であり、インターネットやLANなどのネットワーク12により接続されている。分散処理管理装置80は、アプリケーションを複数の端末20に分散させて処理する際に、複数の端末20間における処理の実行を管理する。
図2は、分散処理管理装置80の構成を示す。分散処理管理装置80は、通信部82、制御部90、リソースデータベース84を備える。制御部90は、処理能力情報取得部91、アプリケーション情報取得部92、タスク分配部93、タスク送信部95、実行状況管理部96を含む。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
処理能力情報取得部91は、ネットワーク12を介して、複数の端末20から、それぞれの端末20の処理能力に関する情報を取得する。処理能力情報取得部91は、それぞれの端末20から、その端末20に搭載されているプロセッサの種別、動作クロック周波数、メモリの容量などを取得する。また、処理能力情報取得部91は、端末20から、所定のタイミングで、その時点でのプロセッサの稼働率、メモリの使用量などの情報を取得する。端末20が全て同じ構成を有している場合は、処理能力情報取得部91は、プロセッサの稼働率として、タスクを実行中ではない、すなわち空いているプロセッサ32の数を取得してもよい。処理能力情報取得部91は、取得した情報をリソースデータベース84に登録する。
図3は、リソースデータベース84の内部データの例を示す。リソースデータベース84には、端末ID欄102、プロセッサ周波数欄104、プロセッサ数欄106、メモリ欄108、プロセッサ稼働率欄110、メモリ使用率欄112、分配日時欄114、分配中タスクID欄116、分配中タスク量欄118、実行済タスク量欄120が設けられている。端末ID欄102は、端末20のIDを格納する。プロセッサ周波数欄104は、端末20に搭載されているプロセッサの動作周波数を格納する。プロセッサ数欄106は、端末20に搭載されているプロセッサの数を格納する。メモリ欄108は、端末20に搭載されているメモリの容量を格納する。プロセッサ稼働率欄110は、端末20のプロセッサの稼働率を格納する。メモリ使用率欄112は、端末20のメモリの使用率を格納する。分配日時欄114は、端末20にタスクを分配した日時を格納する。分配中タスクID欄116は、端末20に分配したタスクのIDを格納する。分配中タスク量欄118は、端末20に分配したタスクの量を格納する。実行済タスク量欄120は、端末20が既に実行したタスクの量を格納する。
アプリケーション情報取得部92は、端末20に処理させる複数のタスクを含むアプリケーションの情報を取得する。本実施の形態では、アプリケーション情報取得部92は、アプリケーションに含まれる複数のタスクの実行順序と、タスク間のデータの授受に関する情報を記述したXML文書を取得し、XML文書をパースすることによりアプリケーションに関する情報を取得する。
タスク分配部93は、処理能力情報取得部91が取得したそれぞれの端末20の処理能力に関する情報に基づいて、アプリケーション情報取得部92が取得したXML文書に記述されたアプリケーションに含まれる複数のタスクをいずれの端末20に処理させるかを決定する。例えば、第1のタスクが2つのプロセッサを必要とし、第2のタスクが3つのプロセッサを必要とする場合、その時点で、5つのプロセッサが使用可能な端末20が存在すれば、全てのタスクを同じ端末20に分配することができる。しかし、全てのタスクを実行可能な端末20が存在しない場合は、タスク分配部93は、複数の端末20に分散してタスクを分配する。この場合、アプリケーション情報取得部92とタスク分配部93が、タスクの情報を取得するタスク情報取得部としての機能を担う。
通信タスク生成部94は、複数のタスクを複数の端末20に分配したときに、タスクを実行するためのデータの授受が端末20間で必要である場合は、ネットワーク12を介して端末20間でデータを授受するための通信タスクを生成し、端末20へ送信されるタスクに付加する。データを送信する側の端末20に送信されるタスクには、タスクが出力した出力データを後続のタスクを実行する装置に送信する送信タスクが付加される。データを受信する側の端末20に送信されるタスクには、タスクが必要とするデータの入手先の装置から受信したデータを、タスクの入力インタフェースに応じたデータ型に変換して、入力データを生成する受信タスクが付加される。これらの通信タスクには、タスクが必要とするデータの入手先、すなわち送信側の端末20や、後続のタスクを実行する装置、すなわち受信側の端末20の処理能力に応じて、予め通信パラメータが設定される。通信パラメータは、例えば、端末20の通信速度、バッファの容量、端末20を接続するネットワークの種別などに応じて設定されてもよい。また、通信パラメータは、タスクが必要とするデータの内容に応じて設定されてもよい。例えば、通信パラメータには、送信側の端末20が送信すべきデータを選択するための情報や、受信側の端末20が受信したデータの中からデータを選択、変換、又はマージして入力データを生成するための情報などが含まれてもよい。また、通信パラメータには、入力データを入力するタイミングに関する情報などが含まれてもよい。タスクが必要とするデータに関する情報は、アプリケーション情報取得部92が取得するXML文書に記述されていてもよい。
タスク送信部95は、タスク分配部93により分配されたタスクを、ネットワーク12を介して端末20へ送信する。実行状況管理部96は、タスクを分配した各端末20からタスクの実行状況を取得し、リソースデータベース84に記録して、各端末20におけるタスクの実行状況を管理する。必要であれば、タスク送信部95は、タスク分配部93にタスクの再分配を指示する。
図4は、アプリケーションに関する情報を記述したXML文書の例を示す。図4に示した例では、アプリケーションに含まれる2つのタスク「senderInstance_A」及び「receiverInstance_A」の情報が記述されている。第2のタスク「receiverInstance_A」に関する情報が記述された部分において、<stream>要素130に、第2のタスクに入力されるデータが宣言されている。ここでは、<channelIn1>要素に、<channelOut1>要素に記述されたデータを第2のタスクに入力すべきことが宣言されている。<channelOut1>要素には、データの入手先が、第1のタスク「senderInstance_A」から出力されたデータであることが記述されている。すなわち、第1のタスクから出力されたデータを、第2のデータに入力すべきであることが分かる。
図5は、図4に示したXML文書に記述されたタスク間の関係を示す。以下、通信タスク生成部94により生成される通信タスクと区別するために、アプリケーションを構成するタスクを「コアタスク」と呼ぶ。まず、第1のコアタスク142が実行され、第1のコアタスク142から出力されたデータが第2のコアタスク154に入力され、第2のコアタスク154が実行される。この例では、第1のコアタスク142から出力されるデータを、第2のコアタスク154へ入力する必要があるので、タスク分配部93が、第1のコアタスク142と第2のコアタスク154を異なる端末20へ分配する場合は、通信タスク生成部94は、第1のコアタスク142に、第1のコアタスク142から出力されるデータを第2のコアタスク154が分配される端末20へ送信する送信タスク144を付加する。また、第2のコアタスク154に、第1のコアタスク142が分配される端末20から送信されるデータを受信して第2のコアタスク154の入力データを生成する受信タスク152を付加する。タスク送信部95は、通信タスクが付加された第1のタスク140及び第2のタスク150を、分配されたそれぞれの端末20へ送信する。
図6は、端末20の構成を示す。端末20は、通信部21及び制御部50を備える。制御部50は、タスク取得部51、タスク実行部52、受信タスク実行部53、及び送信タスク実行部54を含む。これらの機能ブロックも、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。
タスク取得部51は、ネットワーク12を介して、分散処理管理装置80からタスクを取得する。タスク実行部52は、取得したタスクを実行する。タスク実行部52は、後述するように、端末20に複数搭載されているプロセッサと、それぞれのプロセッサに設けられたローカルメモリとにより実現される。受信タスク実行部53は、取得したタスクに受信タスクが付加されている場合、受信タスクを実行し、タスクが必要とするデータの入手先の装置から受信したデータから生成した入力データを、タスク実行部52へ転送する。受信タスク実行部53は、後述するように、ローカルメモリの入力バッファに入力データを転送する。送信タスク実行部54は、取得したタスクに送信タスクが付加されている場合、送信タスクを実行し、ローカルメモリの出力バッファに格納された出力データの中から必要なデータを選択して後続のタスクを実行する装置へ送信する。
図7は、端末20のハードウェア構成を示す。端末20は、マイクロプロセッサユニット(MPU)22、グラフィクス処理ユニット(GPU)40、メインメモリ42、補助記憶装置(HDD)44、ネットワーク制御部46を備え、それぞれがメインバス38を介して接続される。ネットワーク制御部46は、ネットワーク12を介して他の端末20や分散処理管理装置80などの装置との間でデータを送受信する。
MPU22は、非対称型のマルチプロセッサユニットであり、1つの入出力ユニット24と、タスク実行部52の一例である複数の処理ユニット30を有する。入出力ユニット24は、他の構成との間でデータの入出力を行うユニットであり、プロセッサ26とローカルメモリ28を含む。ローカルメモリ28は、例えばキャッシュメモリである。各処理ユニット30は、それぞれがアプリケーションに含まれるタスクを独立して実行するユニットであり、それぞれプロセッサ32とローカルメモリ34を含む。メインメモリ42から読み出されたプログラム、データ、動作パラメータなどがローカルメモリ34に書き込まれ、プロセッサ32により実行される。
入出力ユニット24は、メインバス38を介して、GPU40、メインメモリ42、HDD44、ネットワーク制御部46などの端末20内の他の構成との間でデータを送受信する。また、ネットワーク制御部46を介して他の装置との間でデータを送受信する。本実施の形態では、処理ユニット30は、他の処理ユニット30、入出力ユニット24、GPU40、及びメインメモリ42との間でデータの送受信を行うことはできるが、ネットワーク制御部46を介して他の装置との間で直接データの送受信を行うことはできない。処理ユニット30は、入出力ユニット24を介して、他の装置との間でデータを送受信する。
別の実施の形態においては、処理ユニット30も他の装置との間で直接データの送受信が行えるように構成してもよい。また、MPU22は、対称型のマルチプロセッサユニットであってもよく、その場合、いずれかの処理ユニット30が入出力ユニット24の機能を果たしてもよいし、全ての処理ユニット30が他の装置との間で直接データの送受信を行ってもよい。
端末20に分配されたタスクは、入出力ユニット24において実行されるプロセス管理機能による管理のもと、複数の処理ユニット30の少なくとも一部により実行される。入出力ユニット24は、複数の処理ユニット30のうち使用されていない処理ユニット30を選択してタスクを実行させる。
図8は、入出力ユニット24の機能的な構成を示す。入出力ユニット24は、インタフェース部67、制御部60、タスクキュー68を含む。制御部60は、ファイル入出力インタフェース61、通信インタフェース62、データベースインタフェース63、メモリ入出力インタフェース64、プロセス管理部65、及び実行状況管理部66を含む。
インタフェース部67は、メインバス38を介したデータの送受信を行う。ファイル入出力インタフェース61は、例えばHDD44に格納されたファイルの入出力を行う。通信インタフェース62は、例えばネットワーク制御部46を介した他の装置との間のデータの入出力を行う。データベースインタフェース63は、例えばHDD44に格納された、又はメインメモリ42にロードされたデータベースとの間でデータの入出力を行う。メモリ入出力インタフェース64は、例えばメインメモリ42上のデータの入出力を行う。
プロセス管理部65は、処理ユニット30において実行されるプロセスを管理する。処理ユニット30が実行すべきタスクは、タスクキュー68に順次格納されている。処理ユニット30のプロセッサ32が、次のタスクを実行可能な状態になると、タスクキュー68を参照して次のタスクが取得され、実行される。プロセス管理部65は、それぞれの処理ユニット30のプロセッサ32がタスクを実行中であるか否かを管理し、分散処理管理装置80へ通知する。
実行状況管理部66は、処理ユニット30のプロセッサ32が、端末20間に分散されたアプリケーションのタスクを実行しているときに、その実行状況を管理する。実行状況管理部66は、例えば、処理ユニット30が実行すべきタスクが過剰にタスクキュー68に積まれ、分配されたアプリケーションのタスクをすぐには実行することができない状況にある場合、その旨を分散処理管理装置80へ通知して、タスクを他の端末20へ再分配するよう依頼する。
プロセス管理機能は、処理ユニット30のそれぞれにより実行されてもよい。この場合、各処理ユニット30のプロセス管理機能は、その処理ユニット30が他のタスクを実行可能な状態になると、実行待ちのタスクをタスクキューから取得して実行する。このように、タスクは処理ユニット30により実行されるので、端末20へ与えられるタスクは、処理ユニット30で処理されるプログラムとして設計されていることが好ましい。また、タスクは、単一の端末20の処理能力で処理可能に設計されることが好ましい。
(第2の実施の形態)
第1の実施の形態では、分散処理管理装置80がアプリケーションを構成するタスクを複数の端末20に分配する際に、必要に応じて通信タスクを自動的に生成したが、第2の実施の形態では、タスクを分配された端末20が通信タスクを生成する。
図9は、第2の実施の形態に係る分散処理管理装置80の構成を示す。第2の実施の形態の分散処理管理装置80は、図2に示した第1の実施の形態の分散処理管理装置80の構成に比して、通信タスク生成部94に代えてタスク情報通知部97を備える。その他の構成及び動作は第1の実施の形態と同様である。
タスク情報通知部97は、タスクを分配した端末20に、タスクが必要とするデータの入手先の装置に関する情報を通知する。これにより、端末20は、入手先の装置からデータを入手するための送信タスクを自ら生成して入手先の装置に送信することができる。タスク情報通知部97は、タスクが必要とするデータの内容に関する情報を更に通知してもよい。例えば、タスクの入力データのデータ型、データ長、入力タイミングに関する条件などを通知してもよい。
図10は、第2の実施の形態に係る端末20の構成を示す。第2の実施の形態の端末20は、図6に示した第1の実施の形態の端末20の構成に比して、タスク情報取得部55及び通信タスク生成部56を更に備える。その他の構成及び動作は第1の実施の形態と同様である。
タスク情報取得部55は、データを処理するタスクに関する情報を取得する。タスク情報取得部55は、タスク取得部51が取得するタスクが必要とするデータの入手先に関する情報を取得する。通信タスク生成部56は、取得したタスクが必要とするデータの入手先が、自端末にネットワークを介して接続された別の端末である場合に、入手先の端末が自端末へ、タスクが必要とするデータを送信するための送信タスクを生成して入手先の端末へ送信する。また、通信タスク生成部56は、入手先の端末からデータを受信してタスクの入力データを生成するための受信タスクを生成して受信タスク実行部53へ送る。
図11は、アプリケーションの例を示す。アプリケーション200は、動画像から人の顔を検出して認証するアプリケーションであり、動画像をデコードするコアタスク162、デコードされた動画像の中から人の顔を検出するコアタスク174及び184、検出された顔の画像を認識するコアタスク194、認識された顔をデータベースと照合して認証するコアタスク196を含む。なお、顔を検出するタスクは、動画像の上半分から顔を検出するコアタスク174と動画像の下半分から顔を検出するコアタスク184に分割されている。
図11の例では、アプリケーション200に含まれる各タスクは、異なる複数の端末に分配されている。具体的には、コアタスク162は端末160に、コアタスク174は端末170に、コアタスク184は端末180に、コアタスク194及び196は端末190に、それぞれ分配される。
分散処理管理装置80のタスク情報通知部97は、コアタスク174が分配された端末170に、顔の検出に必要な動画像のデータが端末160から出力される旨を通知する。また、コアタスク174は動画像の上半分のみを処理すればよいので、コアタスク162から出力されるデータのうち、動画像の上半分のデータのみを取得すればよい旨を通知する。端末170の通信タスク生成部56は、端末160で実行されるコアタスク162が出力したデータを端末170に送信する送信タスク164を生成して端末160に送信する。この送信タスク164には、タスク情報通知部97から通知された情報に基づいて、コアタスク162が出力したデータの中から動画像の上半分のデータを選択する旨の通信パラメータが予め設定される。また、通信タスク生成部56は、端末160からデータを受信してコアタスク174に入力する入力データを生成する受信タスク172を生成する。同様に、端末180の通信タスク生成部56は、送信タスク166を生成して端末160に送信するとともに、受信タスク182を生成する。送信タスク164は、設定された通信パラメータにしたがって、コアタスク162の出力バッファから動画像の上半分のデータを選択して受信タスク172へ送信する。同様に、送信タスク166は、動画像の下半分のデータを選択して受信タスク182へ送信する。
コアタスク194は、コアタスク174を実行する端末170から出力されるデータと、コアタスク184を実行する端末180から出力されるデータの双方を必要とするので、それぞれの端末がデータを送信するための送信タスク176及び送信タスク186を生成して、それぞれの端末へ送信する。また、送信タスク176及び送信タスク186から受信したデータをマージして入力データを生成する受信タスク191及び受信タスク192を生成する。受信タスク191及び受信タスク192は、端末170及び180から受信したデータの中から必要なデータを選択して、コアタスク194の入力データを生成してもよい。また、受信タスク191及び受信タスク192は、端末170及び180から受信したデータから生成した入力データをコアタスク194へ入力するタイミングを調整してもよい。例えば、コアタスク194は、コアタスク174とコアタスク184の双方の結果を必要とするので、受信タスク191及び受信タスク192は、いずれか一方の出力データを受信しても、他方の出力データを受信するまで待機してもよい。なお、受信タスク191及び受信タスク192は、一つの受信タスクとしてまとめられてもよい。
コアタスク194とコアタスク196は、同一の端末190に分配されたので、これらのタスク間におけるデータの授受は、ネットワークを介した通信を必要としない。したがって、送信タスクと受信タスクは生成されない。この場合、通信タスク生成部56は、タスク情報通知部97から通知された情報に基づいて、コアタスク194が出力したデータの中からコアタスク196が必要とするデータを選択し、必要であれば適切なデータ型に変換したり、データの順序を並べ替えたり、他のコアタスクが出力したデータとマージしたりして、コアタスク196を実行する処理ユニット30の入力バッファ35に転送するためのDMAコマンドを生成する。コアタスク194が実行されて出力データが出力バッファ36に格納されると、通信タスク生成部56により生成されたDMAコマンドが、コアタスク194が実行された処理ユニット30又はコアタスク196が実行される処理ユニット30のDMAコントローラ37により実行され、コアタスク196の入力データが入力バッファ35にセットされる。
図12は、図11に示したようにタスクが分配されたときに、コアタスク194の入力データが生成される様子を説明するための図である。端末170において、コアタスク174が実行されると、コアタスク174が実行された処理ユニット30の出力バッファ36に出力データが格納される。送信タスク176には、出力バッファ36に格納されている出力データの中から、コアタスク194が必要とするデータを選択するための情報を含む通信パラメータが予め設定されているので、送信タスク176は、必要なデータを選択して送信データ178を生成し、コアタスク194が分配されている端末190へ送信する。同様に、送信タスク186は、出力バッファ36に格納された出力データの中から、コアタスク194が必要とするデータを選択して送信データ188を生成し、端末190へ送信する。なお、コアタスク174又は184が出力した出力データは、出力バッファ36からメインメモリ42に転送されてもよい。この場合、送信タスク176又は186は、メインメモリ42に格納されているデータの中から必要なデータを選択して送信データ178又は188を生成してもよい。
端末190において実行される受信タスク191及び192は、それぞれ、端末170、端末180から送信データ178、188を受信すると、コアタスク194の入力インタフェースに応じたデータ型に変換し、それらのデータをマージして、コアタスク194を実行する処理ユニット30の入力バッファ35に入力データ198を格納する。このとき、必要であれば、コアタスク194の入力データを入力バッファ35へ転送するタイミングを調整する。例えば、入力バッファ35が、全ての入力データを格納する容量を有していない場合は、コアタスク194の進行に応じて、必要ではなくなったデータを上書きする形で、後続の入力データを入力バッファ35へ転送する。この場合、受信タスク191及び192は、受信した送信データ178及び188をいったんメインメモリ42などに格納しておいてもよい。
図13は、図11に示したアプリケーションに含まれるタスクの別の分配例を示す。図13に示した例では、コアタスク174、184、194、及び196が、同一の端末190に分配されている。この場合、コアタスク174及び184とコアタスク194との間のデータの授受に端末間通信を必要としないので、送信タスク176及び186、受信タスク191及び192は生成されない。
図14は、図13に示したようにタスクが分配されたときに、コアタスク194の入力データが生成される様子を説明するための図である。コアタスク174が実行される処理ユニット30aと、コアタスク184が実行される処理ユニット30bと、コアタスク194が実行される処理ユニット30cは、全て同じ端末190内にある。したがって、処理ユニット30cは、コアタスク184の出力データが格納されている処理ユニット30aの出力バッファ36aと、コアタスク194の出力データが格納されている処理ユニット30bの出力バッファ36bに、直接アクセスしてデータを入手することが可能である。そのため、この場合は、送信タスクと受信タスクは生成されない。その代わりに、通信タスク生成部56により、出力バッファ36a及び36bに格納されたデータの中から、コアタスク194が必要とするデータを選択して入力バッファ35cに転送するDMAコマンドのリストが生成される。DMAコントローラ37cは、生成されたDMAコマンドを実行して、入力バッファ35cにコアタスク194の入力データ198を格納する。
このように、アプリケーションに複数の含まれるタスクが同じ端末20に分配された場合であっても、異なる複数の端末20に分配された場合であっても、データの入出力に必要な通信タスク又はDMAコマンドを自動的に生成するので、適切にデータの授受が行われる。したがって、アプリケーションの設計者は、タスクが端末20間にどのように分散されるのかを意識せずにアプリケーションを設計することができる。これにより、大規模なアプリケーションを容易に構築することが可能な環境を提供することができる。また、各タスクは入力データを入手して実行環境が整えば、他のタスクとは無関係に非同期的に実行することができるので、処理を効率化することができる。また、端末20におけるプロセッサ32の使用状況に応じて、適切にタスクが分配されるので、アプリケーションの設計者は、タスクをどのように分散させて処理させるかを意識せずにアプリケーションを設計することができる。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
実施の形態では、分散処理管理装置80から端末20にタスクが分配される例について説明したが、これに限定されない。例えば、あるデータ処理装置が、複数のタスクを含むアプリケーションを実行しようとするときに、他の装置の空いているリソースを利用するために他の装置へタスクを分配する場合や、複数のタスクを分配されたデータ処理装置が、分配されたタスクの一部を他の装置へ再分配する場合にも、実施の形態で説明した技術を適用可能である。このような場合であっても、通信タスクを自動生成することにより、複数の装置へタスクを自由に分配することができ、分配された装置では、分配されたタスクを実行可能な環境が整った段階で非同期的にタスクを実行することができるので、分散処理の効率を飛躍的に向上させることができる。
第1の実施の形態に係る分散処理システムの構成を示す図である。 分散処理管理装置の構成を示す図である。 リソースデータベースの内部データの例を示す図である。 アプリケーションに関する情報を記述したXML文書の例を示す図である。 図4に示したXML文書に記述されたタスク間の関係を示す図である。 端末の構成を示す図である。 端末のハードウェア構成を示す図である。 入出力ユニットの機能的な構成を示す図である。 第2の実施の形態に係る分散処理管理装置の構成を示す図である。 第2の実施の形態に係る端末の構成を示す図である。 アプリケーションの例を示す図である。 図11に示したようにタスクが分配されたときに、コアタスクの入力データが生成される様子を説明するための図である。 図11に示したアプリケーションに含まれるタスクの別の分配例を示す図である。 図13に示したようにタスクが分配されたときに、コアタスクの入力データが生成される様子を説明するための図である。
符号の説明
10 分散処理システム、12 ネットワーク、20 端末、21 通信部、22 MPU、24 入出力ユニット、26 プロセッサ、28 ローカルメモリ、30 処理ユニット、32 プロセッサ、34 ローカルメモリ、42 メインメモリ、46 ネットワーク制御部、50 制御部、51 タスク取得部、52 タスク実行部、53 受信タスク実行部、54 送信タスク実行部、55 タスク情報取得部、56 通信タスク生成部、60 制御部、65 プロセス管理部、66 実行状況管理部、68 タスクキュー、80 分散処理管理装置、84 リソースデータベース、90 制御部、91 処理能力情報取得部、92 アプリケーション情報取得部、93 タスク分配部、94 通信タスク生成部、95 タスク送信部、96 実行状況管理部、97 タスク情報通知部。

Claims (19)

  1. データを処理するアプリケーションに含まれる、複数の装置に分散して実行される複数のタスクのうち、自装置が取得して実行するタスク、又は、自装置がタスクの分配を管理する装置に分配されるタスクに関する情報を取得するタスク情報取得部と、
    前記タスクが必要とするデータの入手先が、前記タスクを実行する装置にネットワークを介して接続された前記タスクを実行する装置とは別の装置である場合に、前記入手先の装置が前記タスクを実行する装置へ前記タスクが必要とするデータを送信するための第1の送信タスクを生成して、生成した前記第1の送信タスクを前記入手先の装置へ送信する通信タスク生成部と、
    を備えることを特徴とするデータ処理装置。
  2. 前記第1の送信タスクは、前記入手先の装置が保持するデータの中から必要なデータを選択して送信することを特徴とする請求項1に記載のデータ処理装置。
  3. 前記第1の送信タスクには、前記入手先の装置又は前記タスクを実行する装置の処理能力又は前記タスクが必要とするデータの内容に応じて、予め通信パラメータが設定されることを特徴とする請求項1又は2に記載のデータ処理装置。
  4. 前記通信タスク生成部は、前記タスクを実行する装置が、前記入手先の装置により実行された前記第1の送信タスクから送信されたデータを受信して前記タスクの入力データを生成するための受信タスクを生成することを特徴とする請求項1から3のいずれかに記載のデータ処理装置。
  5. 前記入手先の装置が複数ある場合、前記通信タスク生成部は、それぞれの前記入手先の装置について前記第1の送信タスクを生成して送信し、
    前記受信タスクは、複数の前記入手先の装置により実行された前記第1の送信タスクから送信されたデータを受信して前記入力データを生成することを特徴とする請求項4に記載のデータ処理装置。
  6. 前記受信タスクは、前記入手先の装置から受信したデータから生成した前記入力データを前記タスクへ入力するタイミングを調整することを特徴とする請求項4又は5に記載のデータ処理装置。
  7. 前記受信タスクは、前記入手先の装置から受信したデータを、前記タスクの入力インタフェースに応じたデータ型に変換して、前記入力データを生成することを特徴とする請求項4から6のいずれかに記載のデータ処理装置。
  8. 前記タスクを取得するタスク取得部と、
    前記タスクを実行するタスク実行部と、
    前記受信タスクを実行し、前記入手先の装置から受信したデータから生成した前記入力データを、前記タスク実行部へ転送する受信タスク実行部と、
    を更に備えることを特徴とする請求項4から7のいずれかに記載のデータ処理装置。
  9. 前記タスク実行部は、
    前記タスクの入力データを格納する入力バッファと、
    前記タスクの出力データを格納する出力バッファと、を含み、
    前記受信タスク実行部は、前記入力データを前記入力バッファへ転送することを特徴とする請求項8に記載のデータ処理装置。
  10. 後続のタスクを実行する装置から、後続のタスクが必要とするデータを、後続のタスクを実行する装置へ送信するための第2の送信タスクを取得する送信タスク取得部と、
    前記第2の送信タスクを実行し、前記出力バッファに格納された出力データを前記後続のタスクを実行する装置へ送信する送信タスク実行部と、
    を更に備えることを特徴とする請求項9に記載のデータ処理装置。
  11. ネットワークを介して、複数の前記タスクを実行する装置から、それぞれの装置の処理能力に関する情報を取得する処理能力情報取得部と、
    複数の前記タスクを実行する装置に処理させる複数のタスクを含むアプリケーションの情報を取得するアプリケーション情報取得部と、
    前記処理能力情報取得部が取得したそれぞれの装置の処理能力に関する情報に基づいて、前記アプリケーションに含まれる複数のタスクをいずれの装置に処理させるかを決定するタスク分配部と、
    前記タスク分配部により分配されたタスクを、前記ネットワークを介して前記複数のタスクを実行する装置へ送信するタスク送信部と、
    を更に備えることを特徴とする請求項1から7のいずれかに記載のデータ処理装置。
  12. 前記アプリケーション情報取得部は、前記アプリケーションに含まれる複数のタスクの実行順序と、タスク間のデータの授受に関する情報を記述したファイルを読み込むことにより、前記アプリケーションの情報を取得することを特徴とする請求項11に記載のデータ処理装置。
  13. 前記ファイルは、マークアップ言語で記述されており、
    前記アプリケーション情報取得部は、前記マークアップ言語で記述された文書をパースすることにより前記アプリケーションの情報を取得することを特徴とする請求項12に記載のデータ処理装置。
  14. 前記タスクは、単一の前記タスクを実行する装置の処理能力で処理可能に設計されたことを特徴とする請求項11から13のいずれかに記載のデータ処理装置。
  15. 複数のデータ処理装置と、
    前記複数のデータ処理装置とネットワークを介して接続され、アプリケーションを前記複数のデータ処理装置に分散させて処理する際に、前記複数のデータ処理装置を管理する分散処理管理装置と、を備え、
    前記分散処理管理装置は、
    ネットワークを介して、前記複数のデータ処理装置から、それぞれのデータ処理装置の処理能力に関する情報を取得する処理能力情報取得部と、
    前記データ処理装置に処理させる複数のタスクを含むアプリケーションの情報を取得するアプリケーション情報取得部と、
    前記処理能力情報取得部が取得したそれぞれの処理システムの処理能力に関する情報に基づいて、前記アプリケーションに含まれる複数のタスクをいずれのデータ処理装置に処理させるかを決定するタスク分配部と、
    前記タスク分配部により決定されたデータ処理装置へタスクを送信するタスク送信部と、
    前記タスクが必要とする入力データの入手先に関する情報を前記データ処理装置へ通知するタスク情報通知部と、を備え、
    前記データ処理装置は、
    前記タスクを取得するタスク取得部と、
    前記タスクを実行するタスク実行部と、
    前記タスクが必要とするデータの入手先に関する情報を取得するタスク情報取得部と、
    前記タスクが必要とするデータの入手先が、該データ処理装置にネットワークを介して接続された該データ処理装置とは別のデータ処理装置である場合に、前記入手先のデータ処理装置が該データ処理装置へ前記タスクが必要とするデータを送信するための送信タスクを生成して、生成した前記送信タスクを前記入手先のデータ処理装置へ送信する通信タスク生成部と、を備えることを特徴とする分散処理システム。
  16. 複数のデータ処理装置と、
    前記複数のデータ処理装置とネットワークを介して接続され、アプリケーションを前記複数のデータ処理装置に分散させて処理する際に、前記複数のデータ処理装置を管理する分散処理管理装置と、を備え、
    前記分散処理管理装置は、
    ネットワークを介して、前記複数のデータ処理装置から、それぞれのデータ処理装置の処理能力に関する情報を取得する処理能力情報取得部と、
    前記データ処理装置に処理させる複数のタスクを含むアプリケーションの情報を取得するアプリケーション情報取得部と、
    前記処理能力情報取得部が取得したそれぞれの処理システムの処理能力に関する情報に基づいて、前記アプリケーションに含まれる複数のタスクをいずれのデータ処理装置に処理させるかを決定するタスク分配部と、
    前記タスク分配部により決定されたデータ処理装置へタスクを送信するタスク送信部と、
    1つのアプリケーションに含まれる複数のタスクを、複数のデータ処理装置に分散して配分したときに、タスクを実行するためのデータの授受がデータ処理装置間で必要である場合は、前記ネットワークを介してデータを授受するための通信タスクを生成し、生成した前記通信タスクをデータ処理装置へ送信されるタスクに付加する通信タスク生成部と、を備え、
    前記データ処理装置は、
    前記タスクを取得するタスク取得部と、
    前記タスクに付加された通信タスクを実行する通信タスク実行部と、
    前記タスクを実行するタスク実行部と、を備えることを特徴とする分散処理システム。
  17. データを処理するアプリケーションに含まれる、複数の装置に分散して実行される複数のタスクのうち、自装置が取得して実行するタスク、又は、自装置がタスクの分配を管理する装置に分配されるタスクに関する情報を取得するステップと、
    前記タスクが必要とするデータの入手先が、前記タスクを実行する装置にネットワークを介して接続された前記タスクを実行する装置とは別の装置である場合に、前記入手先の装置が前記タスクを実行する装置へ前記タスクが必要とするデータを送信するための送信タスクを生成して、生成した前記送信タスクを前記入手先の装置へ送信するステップと、
    を備えることを特徴とするデータ処理方法。
  18. データを処理するアプリケーションに含まれる、複数の装置に分散して実行される複数のタスクのうち、自装置が取得して実行するタスク、又は、自装置がタスクの分配を管理する装置に分配されるタスクに関する情報を取得する機能と、
    前記タスクが必要とするデータの入手先が、前記タスクを実行する装置にネットワークを介して接続された前記タスクを実行する装置とは別の装置である場合に、前記入手先の装置が前記タスクを実行する装置へ前記タスクが必要とするデータを送信するための送信タスクを生成して、生成した前記送信タスクを前記入手先の装置へ送信する機能と、
    をコンピュータに実現させることを特徴とするデータ処理プログラム。
  19. データを処理するアプリケーションに含まれる、複数の装置に分散して実行される複数のタスクのうち、自装置が取得して実行するタスク、又は、自装置がタスクの分配を管理する装置に分配されるタスクに関する情報を取得する機能と、
    前記タスクが必要とするデータの入手先が、前記タスクを実行する装置にネットワークを介して接続された前記タスクを実行する装置とは別の装置である場合に、前記入手先の装置が前記タスクを実行する装置へ前記タスクが必要とするデータを送信するための送信タスクを生成して、生成した前記送信タスクを前記入手先の装置へ送信する機能と、
    をコンピュータに実現させることを特徴とするデータ処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2007084939A 2007-03-28 2007-03-28 データ処理装置、分散処理システム、データ処理方法、及びデータ処理プログラム Active JP5137434B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007084939A JP5137434B2 (ja) 2007-03-28 2007-03-28 データ処理装置、分散処理システム、データ処理方法、及びデータ処理プログラム
US12/593,191 US8719367B2 (en) 2007-03-28 2007-10-09 Data processing apparatus, distributed processing system, data processing method and data processing program
EP07827872.8A EP2144164B1 (en) 2007-03-28 2007-10-09 Data processing device, distributed processing system, data processing method, and data processing program
PCT/JP2007/001093 WO2008120281A1 (ja) 2007-03-28 2007-10-09 データ処理装置、分散処理システム、データ処理方法、及びデータ処理プログラム
CN200780052409.6A CN101652750B (zh) 2007-03-28 2007-10-09 数据处理装置、分散处理系统、数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007084939A JP5137434B2 (ja) 2007-03-28 2007-03-28 データ処理装置、分散処理システム、データ処理方法、及びデータ処理プログラム

Publications (2)

Publication Number Publication Date
JP2008242983A JP2008242983A (ja) 2008-10-09
JP5137434B2 true JP5137434B2 (ja) 2013-02-06

Family

ID=39807874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007084939A Active JP5137434B2 (ja) 2007-03-28 2007-03-28 データ処理装置、分散処理システム、データ処理方法、及びデータ処理プログラム

Country Status (5)

Country Link
US (1) US8719367B2 (ja)
EP (1) EP2144164B1 (ja)
JP (1) JP5137434B2 (ja)
CN (1) CN101652750B (ja)
WO (1) WO2008120281A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120324203A1 (en) * 2010-03-04 2012-12-20 Nec Corporation Storage device
CA2811630C (en) 2010-08-24 2020-06-16 Solano Labs, Inc. Method and apparatus for clearing cloud compute demand
US20120127183A1 (en) * 2010-10-21 2012-05-24 Net Power And Light, Inc. Distribution Processing Pipeline and Distributed Layered Application Processing
JP2013097548A (ja) * 2011-10-31 2013-05-20 Pfu Ltd 情報処理システム、情報処理装置、クライアント端末、情報処理方法、及びプログラム
KR101893982B1 (ko) * 2012-04-09 2018-10-05 삼성전자 주식회사 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치
RU2538920C2 (ru) * 2013-05-06 2015-01-10 Общество с ограниченной ответственностью "Аби ИнфоПоиск" Способ распределения задач сервером вычислительной системы, машиночитаемый носитель информации и система для реализации способа
US10437650B2 (en) * 2014-06-19 2019-10-08 Nec Corporation Controlling execution of tasks in a series of operational processing by identifying processing units based on task command, task setting information, state of operational processing
US10171558B2 (en) 2014-09-12 2019-01-01 Microsoft Technology Licensing, Llc Cross device application discovery and control
GB2533284B (en) * 2014-12-11 2017-04-12 Imagination Tech Ltd Performing object detection
US10026070B2 (en) 2015-04-28 2018-07-17 Solano Labs, Inc. Cost optimization of cloud computing resources
CN105516620A (zh) * 2015-12-10 2016-04-20 阔地教育科技有限公司 一种分配控制装置、图像处理装置和直录播互动系统
WO2017163447A1 (ja) * 2016-03-22 2017-09-28 三菱電機株式会社 情報処理システム、情報処理装置及び情報処理方法
JP2021196912A (ja) * 2020-06-15 2021-12-27 ヤフー株式会社 実行装置、実行方法、および実行プログラム
JP7170957B2 (ja) * 2020-10-05 2022-11-14 三菱電機株式会社 分散処理システム、分散処理方法、分散処理プログラムおよびスケジューリング装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0766334B2 (ja) * 1989-05-11 1995-07-19 松下電送株式会社 画像表示装置
US6128642A (en) * 1997-07-22 2000-10-03 At&T Corporation Load balancing based on queue length, in a network of processor stations
EP1018086B1 (en) * 1998-07-24 2007-02-14 Jarg Corporation Search system and method based on multiple ontologies
US7039919B1 (en) * 1998-10-02 2006-05-02 Microsoft Corporation Tools and techniques for instrumenting interfaces of units of a software program
US6728748B1 (en) * 1998-12-01 2004-04-27 Network Appliance, Inc. Method and apparatus for policy based class of service and adaptive service level management within the context of an internet and intranet
US6970913B1 (en) * 1999-07-02 2005-11-29 Cisco Technology, Inc. Load balancing using distributed forwarding agents with application based feedback for different virtual machines
US20010034845A1 (en) * 2000-02-15 2001-10-25 Brunt George B. Secure web-based document control process and system
WO2001067690A1 (fr) * 2000-03-07 2001-09-13 Nippon Telegraph And Telephone Corporation Reseau d'information semantique
US7054924B1 (en) * 2000-09-29 2006-05-30 Cisco Technology, Inc. Method and apparatus for provisioning network devices using instructions in extensible markup language
JP2002354066A (ja) * 2001-05-30 2002-12-06 Logic Corp 通信プロトコル並列処理方式及び通信プロトコル並列処理装置
US7406511B2 (en) * 2002-08-26 2008-07-29 International Business Machines Corporation System and method for processing transactions in a multisystem database environment
JP4171910B2 (ja) * 2004-03-17 2008-10-29 日本電気株式会社 並列処理システム及び並列処理プログラム
US8024733B2 (en) * 2004-05-13 2011-09-20 International Business Machines Corporation Component model for batch computing in a distributed object environment
JP2008511931A (ja) * 2004-08-30 2008-04-17 ユニバーシティ オブ ユタ リサーチ ファウンデーション 遠隔計算システムのためのローカルに動作されるデスクトップ環境
JP2006343996A (ja) * 2005-06-09 2006-12-21 Oki Electric Ind Co Ltd 分散処理システム
US20070130105A1 (en) * 2005-10-28 2007-06-07 Microsoft Corporation Obtaining server usage information
US20070156630A1 (en) * 2005-12-29 2007-07-05 Carola Steinmaier System and method for processing a table over a network
US20080148342A1 (en) * 2006-12-13 2008-06-19 Cisco Technology, Inc. Management of application specific data traffic

Also Published As

Publication number Publication date
US20100095302A1 (en) 2010-04-15
WO2008120281A1 (ja) 2008-10-09
EP2144164A1 (en) 2010-01-13
EP2144164A4 (en) 2011-12-07
JP2008242983A (ja) 2008-10-09
CN101652750B (zh) 2014-08-13
CN101652750A (zh) 2010-02-17
EP2144164B1 (en) 2020-04-29
US8719367B2 (en) 2014-05-06

Similar Documents

Publication Publication Date Title
JP5137434B2 (ja) データ処理装置、分散処理システム、データ処理方法、及びデータ処理プログラム
KR101332840B1 (ko) 병렬 컴퓨팅 프레임워크 기반의 클러스터 시스템, 호스트 노드, 계산 노드 및 어플리케이션 실행 방법
JP4456490B2 (ja) Dma装置
JP2007041720A (ja) ジョブステップ実行プログラムおよびジョブステップ実行方法
JP5022030B2 (ja) コンピュータシステム、これを構成するサーバ、そのジョブ実行制御方法及びプログラム
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
CN104094235B (zh) 多线程计算
TWI221250B (en) Multi-processor system
JP2007079789A (ja) 計算機システム及びイベント処理方法
WO2017056725A1 (ja) 車載制御装置
CN103019838B (zh) 一种基于多dsp处理器平台的分布式实时多任务操作系统
JP2007207026A (ja) Dma転送装置
JP5036523B2 (ja) プログラム並列化装置
JP2006287745A5 (ja)
CN105190542A (zh) 可伸缩计算结构
JP5660149B2 (ja) 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム
CN112970010A (zh) 流式传输平台流和架构
US8775767B2 (en) Method and system for allocating memory to a pipeline
JPWO2010016169A1 (ja) マルチプロセッサシステム及びその制御方法
US10713188B2 (en) Inter-process signaling system and method
KR101332839B1 (ko) 병렬 컴퓨팅 프레임워크 기반 클러스터 시스템의 호스트 노드 및 메모리 관리 방법
CN112416053B (zh) 多核架构的同步信号产生电路、芯片和同步方法及装置
JP2007152623A (ja) 描画制御装置、描画制御方法、記憶媒体およびプログラム
KR20130104958A (ko) 다중 운영체제들을 실행하는 장치 및 방법
JP2008276322A (ja) 情報処理装置、情報処理システムおよび情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090918

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101125

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120905

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121113

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121113

R150 Certificate of patent or registration of utility model

Ref document number: 5137434

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151122

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250