WO2011078162A1 - Scheduling device, scheduling method and program - Google Patents

Scheduling device, scheduling method and program Download PDF

Info

Publication number
WO2011078162A1
WO2011078162A1 PCT/JP2010/072994 JP2010072994W WO2011078162A1 WO 2011078162 A1 WO2011078162 A1 WO 2011078162A1 JP 2010072994 W JP2010072994 W JP 2010072994W WO 2011078162 A1 WO2011078162 A1 WO 2011078162A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
dag
execution order
processing
order information
Prior art date
Application number
PCT/JP2010/072994
Other languages
French (fr)
Japanese (ja)
Inventor
小林 大
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2011547562A priority Critical patent/JP5810918B2/en
Publication of WO2011078162A1 publication Critical patent/WO2011078162A1/en

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Disclosed is a scheduling device for improving system performance and usage efficiency of resources when time-sharing a parallel data processing system by a plurality of dataflow programs. A scheduling device comprises a program analysis unit that refers to first and second dataflow programs and generates first and second DAGs representing both dataflow programs, and first and second processing execution order information units representing execution order of processing corresponding to both DAG nodes; a processing assignment unit for assigning processing corresponding to nodes of the first and second DAGs to a plurality of data processing devices on the basis of the first and second processing execution order information units; and a data assignment unit for referring to the first and second DAGs and the first and second processing execution order information units, and exchanging data used in the processing corresponding to the nodes of the first and second DAGs between a storage unit of a storage device and storage units provided in each of the plurality of data processing devices.

Description

スケジューリング装置、スケジューリング方法及びプログラムScheduling apparatus, scheduling method and program
[関連出願についての記載]
 本発明は、日本国特許出願:特願2009-293082号(2009年12月24日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、スケジューリング装置、スケジューリング方法及びプログラムに関し、特に、並列データ処理システムにおけるスケジューリング装置、スケジューリング方法及びプログラムに関する。
[Description of related applications]
The present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2009-293082 (filed on Dec. 24, 2009), the entire contents of which are incorporated herein by reference. Shall.
The present invention relates to a scheduling device, a scheduling method, and a program, and more particularly, to a scheduling device, a scheduling method, and a program in a parallel data processing system.
 並列データ処理システムにおいては、ネットワークに並列に接続された複数の計算機に処理するデータを記憶させ、複数の計算機で並列にデータ処理を行う。並列データ処理システムの典型的な方式として、処理に応じてデータを配置する並列データベース方式(非特許文献1)と、データ配置に応じて処理を配置するMapReduce方式(非特許文献2)がある。MapReduce方式では、データは、内容に拠らずに分割され、並列データ処理システムを構成する計算機に格納される。 In a parallel data processing system, data to be processed is stored in a plurality of computers connected in parallel to the network, and data processing is performed in parallel by the plurality of computers. As a typical method of a parallel data processing system, there are a parallel database method (Non-Patent Document 1) that arranges data according to processing, and a MapReduce method (Non-Patent Document 2) that arranges processing according to data arrangement. In the MapReduce method, data is divided without depending on the contents and stored in a computer constituting a parallel data processing system.
 並列データ処理システムにおいてデータを処理して結果を得るためのプログラムは、処理内容を節点とし、データの流れを枝とする有向無閉路グラフ(DAG:Directed Acyclic Graph)構造によって表現することができる。かかるプログラムを、データフロープログラムと呼ぶ。 A program for processing data in a parallel data processing system to obtain a result can be expressed by a directed acyclic graph (DAG) structure with the processing content as a node and the data flow as a branch. . Such a program is called a data flow program.
 非特許文献1に記載された並列データベースでは、SQL等のクエリ言語で記載された一連のプログラムが、クエリオプティマイザと呼ばれるシステム内部処理の一部によって、DAG構造のクエリ木に変換される。また、非特許文献3に記載されたPig Latin及び非特許文献4に記載されたDryadLINQでは、プログラムを記述するユーザが直接DAG構造のプログラムを記述する。 In the parallel database described in Non-Patent Document 1, a series of programs described in a query language such as SQL is converted into a query tree having a DAG structure by a part of system internal processing called a query optimizer. In Pig Latin described in Non-Patent Document 3 and DryLINQ described in Non-Patent Document 4, a user who writes a program directly writes a program having a DAG structure.
 DAG構造で表現されたデータフロープログラムは、処理スケジューラ機能により、利用するシステムにおける処理動作に変換されて順に実行される。非特許文献3に記載されたPig Latin及び非特許文献5に記載されたHadoopでは、DAG構造の各節点にあたる処理内容は、処理スケジューラ機能(JobTracker)によって、MapReduce処理に変換されて実行される。 The data flow program expressed in the DAG structure is converted into processing operations in the system to be used and executed in order by the processing scheduler function. In Pig Latin described in Non-Patent Document 3 and Hadoop described in Non-Patent Document 5, processing contents corresponding to each node of the DAG structure are converted into MapReduce processing by a processing scheduler function (JobTracker) and executed.
 複数の計算機によって構成されたシステムを時分割して利用する技術は、並列計算機上の計算スケジューリングとして多数知られている。非特許文献6において、複数の計算機にまたがる処理を、異なる処理に置き換えるギャングスケジュール技術が記載されている。特許文献1に記載された技術では、さらに、処理をプロセスからギャンググループという単位に分割して時分割利用している。また、特許文献2に記載されたスケジュール方式では、ジョブが複数のプロセスから成る場合に、各計算機上でのプロセスの切り替えにジョブの情報を利用する。 Many technologies that use a system composed of a plurality of computers in a time-sharing manner are known as computation scheduling on a parallel computer. Non-Patent Document 6 describes a gang schedule technique in which a process that spans multiple computers is replaced with a different process. In the technique described in Patent Document 1, the processing is further divided into units called gang groups from the process and used in a time-sharing manner. Also, in the schedule method described in Patent Document 2, when a job is composed of a plurality of processes, job information is used to switch processes on each computer.
 複数のデータ処理プログラムを時分割で置き換えるには、処理に利用する計算機以外に、使用しないデータを蓄えるための記憶装置(以下「ストレージ装置」という。)を用いる。ところで、複数の計算機又は記憶装置にまたがるデータを入れ替える技術が知られている。特許文献3に記載された方法によると、データの利用傾向を反映してデータを再展開することができる。また、特許文献4に記載された方法によると、処理を停止することなく、データセットを入れ替えることができる。このようにデータ処理プログラムを時分割で置き換える制御を行う機能を、以下では、データスケジューラ機能又はデータ割当機能という。 In order to replace a plurality of data processing programs in a time-sharing manner, a storage device (hereinafter referred to as “storage device”) for storing unused data is used in addition to a computer used for processing. By the way, a technique for exchanging data across a plurality of computers or storage devices is known. According to the method described in Patent Document 3, data can be re-developed reflecting the data usage tendency. Further, according to the method described in Patent Document 4, it is possible to replace data sets without stopping the processing. The function for performing the control for replacing the data processing program in a time division manner is hereinafter referred to as a data scheduler function or a data allocation function.
 なお、非特許文献7において、処理の途中で生成された中間データを破棄せずに保持することで、システムを高速化する技術が記載されている。 Note that Non-Patent Document 7 describes a technique for speeding up the system by holding intermediate data generated during processing without discarding it.
特許第3885748号公報Japanese Patent No. 3885748 特開2001-249821号公報JP 2001-249821 A 特願2009-083426号Japanese Patent Application No. 2009-083426 特願2009-202543号Japanese Patent Application No. 2009-202543
 上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者によってなされたものである。
 処理スケジューラ機能(ないし処理割当機能)によって、並列データ処理システムに複数のデータフロープログラムを割り当てるとともに、並列データ処理システムを時分割で利用することを考える。
The disclosures of the above-mentioned patent documents and non-patent documents are incorporated herein by reference. The following analysis was made by the present inventors.
Consider a case where a plurality of data flow programs are allocated to a parallel data processing system by a processing scheduler function (or a processing allocation function) and the parallel data processing system is used in a time-sharing manner.
 特許文献1、2及び非特許文献6に記載された並列計算機向けのスケジューリング技術では、プロセス間の同期について言及しているものの、利用しているデータのフローについては言及していない。また、非特許文献1~7に記載された並列データ処理システムでは、時分割利用については言及しておらず、これらのシステムと特許文献3、4に記載された技術との組み合わせによると、処理スケジューラとデータスケジューラとが個別に動作し、システムが非効率になる。 The scheduling techniques for parallel computers described in Patent Documents 1 and 2 and Non-Patent Document 6 refer to synchronization between processes, but do not refer to the flow of data being used. In addition, the parallel data processing systems described in Non-Patent Documents 1 to 7 do not mention time-sharing use, and according to the combination of these systems and the technologies described in Patent Documents 3 and 4, The scheduler and the data scheduler operate separately, and the system becomes inefficient.
 非効率化の要因の1つとして、処理の実行中に発生する処理の入れ替えが挙げられる。すなわち、処理スケジューラによって割り当てられた、データフロープログラム内の1つの処理が行われている間に、データスケジューラによって、時分割でこの処理と他の処理との入れ替えが行われる。計算機が高速かつ低容量の記憶素子を用いて頻繁に扱うデータを処理するキャッシュ機構を有している場合、データスケジューラによる入れ替えが発生すると、キャッシュヒット率が減少して処理時間が増大する。また、処理中に中間データを破棄しない上述の機能を利用した場合には、処理中に入れ替え対象となるデータの量が処理の前後の時点よりもはるかに多くなり、データの入れ替えのための時間が増大する。 One of the causes of inefficiency is the replacement of processing that occurs during processing execution. That is, while one process in the data flow program assigned by the process scheduler is being performed, the data scheduler switches this process with another process in a time-sharing manner. When the computer has a cache mechanism for processing frequently handled data using a high-speed and low-capacity storage element, if the data scheduler is replaced, the cache hit rate decreases and the processing time increases. In addition, when the above function that does not discard intermediate data during processing is used, the amount of data to be replaced during processing is much larger than before and after processing, and the time for data replacement Will increase.
 非効率化の他の要因として、ストレージ装置の性能の飽和が挙げられる。ストレージ装置が複数の下層データ記憶部から成る場合、デバイス及びネットワークの性能に応じて、下層データ記憶部のデータ転送能力は制限される。したがって、多数のデータ処理装置が同一の下層データ記憶部とデータのやり取りを行うと、データ転送量がデータ転送能力によって制限され、データ処理装置当りのデータ転送速度が減少してしまうことがある。 の 他 Another factor for inefficiency is saturation of storage device performance. When the storage device includes a plurality of lower layer data storage units, the data transfer capability of the lower layer data storage unit is limited according to the performance of the device and the network. Therefore, when a large number of data processing devices exchange data with the same lower layer data storage unit, the data transfer amount is limited by the data transfer capability, and the data transfer rate per data processing device may decrease.
 非効率化のさらに他の要因として、データ再利用情報を用いないことが挙げられる。例えば、処理Aと処理Bとが同一のデータを処理する場合には、処理Aの後に処理Bを行うことにより、処理Aのデータ退避及び処理Bのデータ挿入を省略することができる。しかしながら、データスケジューラが処理の順序とデータの流れを把握していない場合には、このようなことを実現することはできない。 Another factor for inefficiency is the lack of data reuse information. For example, when the process A and the process B process the same data, the process A can be omitted after the process A by performing the process B after the process A. However, this cannot be realized when the data scheduler does not grasp the processing order and the data flow.
 そこで、並列データ処理システムを複数のデータフロープログラムによって時分割利用する場合において、システム性能及び資源の利用効率を向上させることが課題となる。本発明の目的は、かかる課題を解決するスケジューリング装置、スケジューリング方法及びプログラムを提供することにある。 Therefore, when a parallel data processing system is used in a time-sharing manner by a plurality of data flow programs, it becomes a problem to improve system performance and resource utilization efficiency. The objective of this invention is providing the scheduling apparatus, the scheduling method, and program which solve this subject.
 本発明の第1の視点に係るスケジューリング装置は、
 第1のデータフロープログラムを参照して、該第1のデータフロープログラムを表す第1の有向無閉路グラフ(DAG:Directed Acyclic Graph)と、該第1のDAGの節点に相当する処理の実行順序を表す第1の処理実行順序情報とを生成するとともに、第2のデータフロープログラムを参照して、該第2のデータフロープログラムを表す第2のDAGと、該第2のDAGの節点に相当する処理の実行順序を表す第2の処理実行順序情報とを生成するプログラム解析部と、
 前記第1の処理実行順序情報及び前記第2の処理実行順序情報に基いて、前記第1のDAG及び前記第2のDAGの節点に相当する処理を複数のデータ処理装置に割り当てる処理割当部と、
 前記第1のDAG及び前記第2のDAG並びに前記第1の処理実行順序情報及び前記第2の処理実行順序情報を参照して、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替えるデータ割当部と、を有する。
The scheduling apparatus according to the first aspect of the present invention is:
Referring to the first data flow program, a first directed acyclic graph (DAG) representing the first data flow program and execution of a process corresponding to a node of the first DAG Generating first processing execution order information representing the order, and referring to the second data flow program, the second DAG representing the second data flow program, and the nodes of the second DAG A program analysis unit that generates second process execution order information representing the execution order of the corresponding processes;
A process allocation unit that allocates a process corresponding to a node of the first DAG and the second DAG to a plurality of data processing devices based on the first process execution order information and the second process execution order information; ,
Referring to the first DAG, the second DAG, the first process execution order information, and the second process execution order information, they correspond to the nodes of the first DAG and the second DAG. A data allocation unit that exchanges data used for processing between a storage unit of the storage device and a storage unit provided in each of the plurality of data processing devices.
 本発明の第2の視点に係るスケジューリング方法は、
 コンピュータが、第1のデータフロープログラムを参照して、該第1のデータフロープログラムを表す第1の有向無閉路グラフ(DAG:Directed Acyclic Graph)と、該第1のDAGの節点に相当する処理の実行順序を表す第1の処理実行順序情報とを生成するとともに、第2のデータフロープログラムを参照して、該第2のデータフロープログラムを表す第2のDAGと、該第2のDAGの節点に相当する処理の実行順序を表す第2の処理実行順序情報とを生成する工程と、
 前記第1の処理実行順序情報及び前記第2の処理実行順序情報に基いて、前記第1のDAG及び前記第2のDAGの節点に相当する処理を複数のデータ処理装置に割り当てる処理割当工程と、
 前記第1のDAG及び前記第2のDAG並びに前記第1の処理実行順序情報及び前記第2の処理実行順序情報を参照して、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替えるデータ割当工程と、を含む。
The scheduling method according to the second aspect of the present invention is:
The computer refers to the first data flow program and corresponds to a first directed acyclic graph (DAG) representing the first data flow program and a node of the first DAG. Generating first process execution order information representing a process execution order, referring to a second data flow program, a second DAG representing the second data flow program, and the second DAG; Generating second process execution order information representing an execution order of processes corresponding to the nodes;
A process allocating step of allocating processes corresponding to nodes of the first DAG and the second DAG to a plurality of data processing devices based on the first process execution order information and the second process execution order information; ,
Referring to the first DAG, the second DAG, the first process execution order information, and the second process execution order information, they correspond to the nodes of the first DAG and the second DAG. A data allocation step of replacing data used for processing between a storage unit of the storage device and a storage unit provided in each of the plurality of data processing devices.
 本発明の第3の視点に係るプログラムは、
 第1のデータフロープログラムを参照して、該第1のデータフロープログラムを表す第1の有向無閉路グラフ(DAG:Directed Acyclic Graph)と、該第1のDAGの節点に相当する処理の実行順序を表す第1の処理実行順序情報とを生成するとともに、第2のデータフロープログラムを参照して、該第2のデータフロープログラムを表す第2のDAGと、該第2のDAGの節点に相当する処理の実行順序を表す第2の処理実行順序情報とを生成する処理と、
 前記第1の処理実行順序情報及び前記第2の処理実行順序情報に基いて、前記第1のDAG及び前記第2のDAGの節点に相当する処理を複数のデータ処理装置に割り当てる処理と、
 前記第1のDAG及び前記第2のDAG並びに前記第1の処理実行順序情報及び前記第2の処理実行順序情報を参照して、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替える処理と、をコンピュータに実行させる。
The program according to the third aspect of the present invention is:
Referring to the first data flow program, a first directed acyclic graph (DAG) representing the first data flow program and execution of a process corresponding to a node of the first DAG Generating first processing execution order information representing the order, and referring to the second data flow program, the second DAG representing the second data flow program, and the nodes of the second DAG A process of generating second process execution order information representing an execution order of the corresponding process;
A process of allocating a process corresponding to a node of the first DAG and the second DAG to a plurality of data processing devices based on the first process execution order information and the second process execution order information;
Referring to the first DAG, the second DAG, the first process execution order information, and the second process execution order information, they correspond to the nodes of the first DAG and the second DAG. A computer is caused to execute a process of exchanging data used for processing between a storage unit of a storage device and a storage unit provided in each of the plurality of data processing devices.
 本発明に係るスケジューリング装置、スケジューリング方法及びプログラムによると、並列データ処理システムを複数のデータフロープログラムによって時分割利用する場合において、システム性能及び資源の利用効率を向上させることができる。 The scheduling apparatus, scheduling method, and program according to the present invention can improve system performance and resource utilization efficiency when a parallel data processing system is time-sharedly used by a plurality of data flow programs.
第1の実施形態に係る並列データ処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the parallel data processing system which concerns on 1st Embodiment. 第1の実施形態に係る並列データ処理システムの物理的な構成を示すブロック図である。It is a block diagram which shows the physical structure of the parallel data processing system which concerns on 1st Embodiment. 第1の実施形態に係る並列データ処理システムにおける並列データ処理に係る機能を示すブロック図である。It is a block diagram which shows the function which concerns on the parallel data processing in the parallel data processing system which concerns on 1st Embodiment. 第1の実施形態に係る並列データ処理システムにおける並列データセットの時分割利用に係る機能を示すブロック図である。It is a block diagram which shows the function which concerns on the time division utilization of the parallel data set in the parallel data processing system which concerns on 1st Embodiment. DAG構造で表されたデータフロープログラムを一例として示す図である。It is a figure which shows the data flow program represented by the DAG structure as an example. 第2の実施形態に係る並列データ処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the parallel data processing system which concerns on 2nd Embodiment. 第2の実施形態に係る並列データ処理システムの他の構成を示すブロック図である。It is a block diagram which shows the other structure of the parallel data processing system which concerns on 2nd Embodiment. 第3の実施形態に係る並列データ処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the parallel data processing system which concerns on 3rd Embodiment. 第3の実施形態に係る並列データ処理システムの他の構成を示すブロック図である。It is a block diagram which shows the other structure of the parallel data processing system which concerns on 3rd Embodiment. 第3の実施形態に係る並列データ処理システムのスケジューリング装置におけるデータ処理装置割当リストを一例として示す図である。It is a figure which shows as an example the data processor allocation list | wrist in the scheduling apparatus of the parallel data processing system which concerns on 3rd Embodiment. 第4の実施形態に係る並列データ処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the parallel data processing system which concerns on 4th Embodiment. 第5の実施形態に係る並列データ処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the parallel data processing system which concerns on 5th Embodiment.
 第1の展開形態によると、上記第1の視点に係るスケジューリング装置が提供される。 According to the first development form, the scheduling device according to the first viewpoint is provided.
 第2の展開形態によると、
 前記データ割当部は、前記複数のデータ処理装置に対して、前記第1のDAGの節点に相当する処理に用いられるデータの割り当てと、前記第2のDAGの節点に相当する処理に用いられるデータの割り当てとを、各処理が終了する度に交互に繰り返す、スケジューリング装置が提供される。
According to the second deployment form,
The data allocating unit allocates data used for processing corresponding to the nodes of the first DAG and data used for processing corresponding to the nodes of the second DAG to the plurality of data processing devices. The scheduling device is provided that alternately repeats the allocation of each time each processing is completed.
 第3の展開形態によると、
 前記データ割当部は、前記複数のデータ処理装置に対して、前記第1のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てと、前記第2のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てとを、これらの複数の処理のそれぞれが終了する度に交互に繰り返す、スケジューリング装置が提供される。
According to the third deployment mode,
The data allocating unit corresponds to the plurality of data processing devices, the allocation of data used for a plurality of processes corresponding to the plurality of nodes of the first DAG, and the plurality of nodes of the second DAG. There is provided a scheduling device that alternately repeats allocation of data used for a plurality of processes each time the plurality of processes are completed.
 第4の展開形態によると、
 前記データ割当部は、前記複数のデータ処理装置に対して割り当てられたデータに対する、前記第1のDAG又は前記第2のDAGのうちの一方のDAGの節点に相当する処理が、所定の期間の経過前に終了しなかった場合には、他方のDAGの節点に相当する処理に用いられるデータを前記複数のデータ処理装置に割り当てる、スケジューリング装置が提供される。
According to the fourth deployment mode,
The data allocating unit performs processing corresponding to a node of one of the first DAG and the second DAG for data allocated to the plurality of data processing devices in a predetermined period. A scheduling device is provided that allocates data used for processing corresponding to a node of the other DAG to the plurality of data processing devices when the processing is not completed before the lapse.
 第5の展開形態によると、
 前記データ割当部は、前記複数のデータ処理装置に割り当てたデータを対象とする処理を識別する処理識別子を生成し、
 前記処理割当部は、前記処理識別子を参照して、前記複数のデータ処理装置に処理を割り当てる、スケジューリング装置が提供される。
According to the fifth development form,
The data allocation unit generates a process identifier for identifying a process targeted for data allocated to the plurality of data processing devices;
A scheduling device is provided in which the process assignment unit assigns a process to the plurality of data processing devices with reference to the process identifier.
 第6の展開形態によると、
 前記データ割当部は、第1の処理の後に第2の処理を実行する実行順序が前記第1の処理実行順序情報及び前記第2の処理実行順序情報の少なくともいずれか一方に含まれ、該第2の処理に使用されるデータが前記ストレージ装置の記憶部に記録されている場合において、前記複数のデータ処理装置のうちのいずれかのデータ処理装置から該第1の処理を終了した旨の信号を受信したときには、該第1の処理に使用されるデータを該データ処理装置の記憶部から前記ストレージ装置の記憶部に転送させるとともに、該第2の処理に使用されるデータを前記ストレージ装置の記憶部から該データ処理装置の記憶部に送信させる、スケジューリング装置が提供される。
According to the sixth development form,
The data allocation unit includes an execution order for executing a second process after the first process in at least one of the first process execution order information and the second process execution order information. A signal indicating that the first processing has been completed from any one of the plurality of data processing devices in a case where data used for the second processing is recorded in the storage unit of the storage device Is received, the data used for the first processing is transferred from the storage unit of the data processing device to the storage unit of the storage device, and the data used for the second processing is transferred to the storage device. A scheduling device is provided that causes a storage unit to transmit to the storage unit of the data processing device.
 第7の展開形態によると、
 前記プログラム解析部は、前記第1のDAG及び前記第2のDAGの節点に相当する処理を、前記複数のデータ処理装置のうちのいずれのデータ処理装置に割り当てるかを示すデータ処理装置割当リストを出力し、
 前記データ割当部は、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、前記ストレージ装置の記憶部と前記データ処理装置割当リストに含まれるデータ処理装置の記憶部との間においてのみ入れ替えることを特徴とする、スケジューリング装置が提供される。
According to the seventh development form,
The program analysis unit has a data processing device allocation list indicating to which data processing device of the plurality of data processing devices the processing corresponding to the nodes of the first DAG and the second DAG is allocated. Output,
The data allocation unit stores data used for processing corresponding to the nodes of the first DAG and the second DAG in a storage unit of the storage device and a data processing device allocation list included in the data processing device allocation list. A scheduling apparatus is provided, wherein the scheduling apparatus is replaced only with a part.
 第8の展開形態によると、
 前記データ割当部は、さらに前記ストレージ装置の性能を示す情報を参照し、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報に含まれる実行順序を変更すべきか否かを判定し、変更すべきと判定した場合には、変更内容を含む変更依頼を前記プログラム解析部に出力し、
 前記プログラム解析部は、前記変更依頼に応じて、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報を変更して、前記処理割当部及び前記データ割当部に出力する、スケジューリング装置が提供される。
According to the eighth deployment form,
Whether the data allocation unit should further refer to information indicating the performance of the storage device and change the execution order included in the first process execution order information and / or the second process execution order information. If it is determined that it should be changed, a change request including the change contents is output to the program analysis unit,
The program analysis unit changes the first process execution order information and / or the second process execution order information in response to the change request, and outputs the change to the process allocation unit and the data allocation unit A scheduling device is provided.
 第9の展開形態によると、上記第2の視点に係るスケジューリング方法が提供される。 According to the ninth development mode, the scheduling method according to the second viewpoint is provided.
 第10の展開形態によると、上記第3の視点に係るプログラムが提供される。 According to the tenth development form, a program according to the third viewpoint is provided.
 第11の展開形態によると、上記第10の展開形態に係るプログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。 According to the eleventh development form, a computer-readable recording medium recording the program according to the tenth development form is provided.
 (実施形態1)
 第1の実施形態に係る並列データ処理システムについて、図面を参照して説明する。図2は、本実施形態に係る並列データ処理システムの構成を示すブロック図である。図2を参照すると、並列データ処理システムは、ネットワーク80を介して接続された、1又は2以上のデータ処理装置50a-1~50a-n、ストレージ装置40a及びスケジューリング装置10aを有する。また、並列データ処理システムを利用するユーザが用いる計算機であるユーザ装置70も、ネットワーク80に接続されている。図2においては、一例として、データ処理装置の台数を3台とした(n=3)が、データ処理装置の台数はこれに限られない。
(Embodiment 1)
The parallel data processing system according to the first embodiment will be described with reference to the drawings. FIG. 2 is a block diagram showing the configuration of the parallel data processing system according to this embodiment. Referring to FIG. 2, the parallel data processing system includes one or more data processing devices 50a-1 to 50a-n, a storage device 40a, and a scheduling device 10a connected via a network 80. A user device 70 that is a computer used by a user who uses the parallel data processing system is also connected to the network 80. In FIG. 2, as an example, the number of data processing apparatuses is three (n = 3), but the number of data processing apparatuses is not limited to this.
 データ処理装置50a-i(i=1、2、…)は、それぞれ、CPU71、データ記憶部72及びデータ転送部73を有する。CPU71により、後述する分散データ排出部、データ受信部、データ処理部を実現する。データ記憶部72により、後述する上層データ記憶部を実現する。CPU71及びとデータ転送部73により、後述するデータ受信部を実現する。 The data processing devices 50a-i (i = 1, 2,...) Each have a CPU 71, a data storage unit 72, and a data transfer unit 73. The CPU 71 implements a distributed data discharge unit, a data reception unit, and a data processing unit which will be described later. The data storage unit 72 realizes an upper layer data storage unit to be described later. The CPU 71 and the data transfer unit 73 implement a data receiving unit described later.
 ストレージ装置40aは、CPU81、データ記憶部82及びデータ転送部83を有する。CPU81及びデータ転送部83により、後述するデータ転送部を実現する。CPU81及びデータ記憶部82により、後述する下層データ記憶部を実現する。 The storage device 40a includes a CPU 81, a data storage unit 82, and a data transfer unit 83. The CPU 81 and the data transfer unit 83 realize a data transfer unit described later. The CPU 81 and the data storage unit 82 realize a lower layer data storage unit to be described later.
 スケジューリング装置10aは、CPU91、データ記憶部92及びデータ転送部93を有する計算機である。CPU91、データ記憶部92及びデータ転送部93を用いて、後述するプログラム解析部、処理割当部、データ割当部を実現する。 The scheduling device 10 a is a computer having a CPU 91, a data storage unit 92, and a data transfer unit 93. The CPU 91, the data storage unit 92, and the data transfer unit 93 are used to implement a program analysis unit, a process allocation unit, and a data allocation unit, which will be described later.
 スケジューリング装置10aは、図2のような単一の計算機でもよい。また、スケジューリング装置10aを複数の計算機によって実現し、各計算機がスケジューリング装置10aの複数の機能のそれぞれを個別に実行するようにしてもよい。また、データ処理装置50a-iの一部又はストレージ装置40aが、スケジューリング装置10aの機能を代替するようにしてもよい。 The scheduling device 10a may be a single computer as shown in FIG. Alternatively, the scheduling device 10a may be realized by a plurality of computers, and each computer may individually execute each of the plurality of functions of the scheduling device 10a. Further, a part of the data processing device 50a-i or the storage device 40a may replace the function of the scheduling device 10a.
 データ記憶部72、82、92は、例えば、ハードディスクドライブ、フラッシュメモリ、DRAM、MRAM(Magnetoresistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、PRAM(Phase change RAM)、RAIDコントローラに結合された記憶装置、磁気テープのようにデータを記録可能な物理媒体、又は、ストレージノードの外部に設置された媒体にデータを記録する制御装置である。 The data storage units 72, 82, and 92 are, for example, a hard disk drive, flash memory, DRAM, MRAM (Magnetorative Random Access Memory), FeRAM (Ferroelectric Random Access Memory), PRAM (Phase change RAM), and a RAM that is stored in a PRAM (Phase change RAM). It is a control device that records data on an apparatus, a physical medium capable of recording data such as a magnetic tape, or a medium installed outside a storage node.
 ネットワーク80及びデータ転送部73、83、93は、例えば、Ethernet(登録商標)、Fibre Channel、FCoE(Fibre Channel over Ethernet(登録商標))、InfiniBand、QsNet、Myrinet若しくはEthernet、又は、これらを利用するTCP/IP若しくはRDMAのような上位プロトコルによって実現しうる。ただし、ネットワーク80の実現方法は、これらに限られない。 The network 80 and the data transfer units 73, 83, and 93 use, for example, Ethernet (registered trademark), Fiber Channel, FCoE (Fibre Channel over Ethernet (registered trademark)), InfiniBand, QsNet, Myrnet, or Ethernet. It can be realized by an upper protocol such as TCP / IP or RDMA. However, the implementation method of the network 80 is not limited to these.
 まず、図3を参照して、並列データ処理に係る機能について説明する。 First, the functions related to parallel data processing will be described with reference to FIG.
 データ処理装置50a-iは、上層データ記憶部61に処理されるデータを記憶する。複数のデータ処理装置50a-1~50a-nがある場合、1つの処理内容に必要なデータセットは分割され、それぞれ個別のデータ処理装置50a-iに格納されている。例えば、データセットに含まれる個々のデータの識別子、又は、識別子をハッシュ関数で処理した値の範囲を分割することで、どのデータがどのデータ処理装置50a-iに格納されるかを決定するハッシュ分割を利用することができる。また、任意のデータを任意の上層データ記憶部61に格納する任意配置を利用することもできる。なお、データの配置方法は、これらに限られない。 The data processing devices 50a-i store data to be processed in the upper layer data storage unit 61. When there are a plurality of data processing devices 50a-1 to 50a-n, a data set necessary for one processing content is divided and stored in individual data processing devices 50a-i. For example, an identifier of individual data included in a data set or a hash that determines which data is stored in which data processing device 50a-i by dividing a range of values obtained by processing the identifier with a hash function Division can be used. An arbitrary arrangement in which arbitrary data is stored in an arbitrary upper data storage unit 61 can also be used. Note that the data arrangement method is not limited to these.
 図3を参照すると、スケジューリング装置10aは、プログラム解析部21及び処理割当部22を有する。 Referring to FIG. 3, the scheduling apparatus 10 a includes a program analysis unit 21 and a process allocation unit 22.
 プログラム解析部21は、ユーザ装置70からのプログラムを受信し、プログラムを実行するデータ処理装置50a-iを特定し、処理制御を行う。 The program analysis unit 21 receives the program from the user device 70, specifies the data processing device 50a-i that executes the program, and performs processing control.
 ユーザからのプログラムは、データに対する複数の処理内容と、処理に利用するデータを指し示す利用データ情報と、処理の順序制約とが記載されたデータフロープログラムである。データフロープログラムは、処理内容を節点とし、処理に利用するデータを指し示す利用データ情報を枝とする、有向無閉路グラフ(DAG)構造によって表すことができる。 The program from the user is a data flow program in which a plurality of processing contents for data, usage data information indicating data used for processing, and processing order constraints are described. The data flow program can be represented by a directed acyclic graph (DAG) structure with processing contents as nodes and usage data information indicating data used for processing as branches.
 図5は、DAG構造で表されたデータフロープログラムを一例として示す図である。データフロープログラムは、一例として、非特許文献3、4に記載された言語でデータフロー構造を直接記載したプログラムである。また、データフロープログラムは、ユーザによる、SQL等のクエリ言語に基くプログラムを、データベース管理システムのクエリオプティマイザによって変換して得られたクエリ木を表す情報であってもよい。なお、データフロープログラムは、これらに限定されない。 FIG. 5 is a diagram illustrating an example of a data flow program represented by a DAG structure. As an example, the data flow program is a program that directly describes the data flow structure in the languages described in Non-Patent Documents 3 and 4. The data flow program may be information representing a query tree obtained by converting a program based on a query language such as SQL by a query optimizer of the database management system. The data flow program is not limited to these.
 プログラム解析部21は、入力されたデータフロープログラムを解釈し、利用可能なデータ処理装置50a-iの性能及び空き情報、並びに、利用するデータの配置情報に基いて、データ処理実行順序を決定する。 The program analysis unit 21 interprets the input data flow program and determines the data processing execution order based on the performance and availability information of the available data processing devices 50a-i and the arrangement information of the data to be used. .
 例えば、データ配置が任意配置である場合には、DAGの節点における処理内容を、全ノードに対するMap処理及びReduce処理に分解して実行することができる。また、個別のデータロード処理を割り当て、そのデータ量に応じた計算量を計算し、計算量が最小となる順に、DAGの節点を各データ処理装置に配置してもよい。なお、プログラム解析部21による処理実行順序を決定する方法は、これらに限定されない。 For example, when the data arrangement is an arbitrary arrangement, the processing contents at the nodes of the DAG can be decomposed and executed into Map processing and Reduce processing for all nodes. Alternatively, individual data load processing may be assigned, the calculation amount corresponding to the data amount may be calculated, and the nodes of the DAG may be arranged in each data processing device in the order in which the calculation amount is minimized. In addition, the method of determining the process execution order by the program analysis part 21 is not limited to these.
 処理割当部22は、プログラム解析部21により決定された処理実行順序を表す処理実行順序情報に基いて、データ処理装置50a-iのデータ処理部65を制御し、実際にデータの処理を行わせる。 The process allocation unit 22 controls the data processing unit 65 of the data processing device 50a-i based on the process execution order information representing the process execution order determined by the program analysis unit 21, and actually processes the data. .
 次に、図4を参照して、並列データセットの時分割利用に係る機能について説明する。 Next, functions related to time-sharing use of parallel data sets will be described with reference to FIG.
 図4を参照すると、ストレージ装置40aは、下層データ記憶部45及びデータ転送部46を有する。 Referring to FIG. 4, the storage device 40a includes a lower layer data storage unit 45 and a data transfer unit 46.
 下層データ記憶部45は、複数の処理の対象とされるデータを格納している。 The lower layer data storage unit 45 stores data to be processed.
 データ転送部46は、格納するデータの一部をデータ転送命令に応じてデータ処理装置50a-iにコピー又は移動する。 The data transfer unit 46 copies or moves a part of the stored data to the data processing device 50a-i according to the data transfer command.
 図4を参照すると、データ処理装置50a-iは、上層データ記憶部61、分散データ排出部62、データ受信部63及びデータ処理部65を有する。 Referring to FIG. 4, the data processing device 50a-i includes an upper layer data storage unit 61, a distributed data discharge unit 62, a data reception unit 63, and a data processing unit 65.
 上層データ記憶部61は、少なくとも1つの処理の対象となるデータを格納している。 The upper layer data storage unit 61 stores at least one processing target data.
 データ受信部63は、ストレージ装置40aから送信されたデータを上層データ記憶部61に格納する。 The data receiving unit 63 stores the data transmitted from the storage device 40a in the upper layer data storage unit 61.
 分散データ排出部62は、データ処理排出命令によって、上層データ記憶部61のデータの一部と、現在のデータ処理部65の処理時点で復元可能な情報を表す処理情報を、データ処理排出命令によって示されたストレージ装置40aの下層データ記憶部45にコピー又は移動する。 In response to the data processing discharge command, the distributed data discharge unit 62 outputs a part of the data in the upper data storage unit 61 and processing information representing information that can be restored at the time of processing of the current data processing unit 65 according to the data processing discharge command. Copy or move to the lower layer data storage unit 45 of the indicated storage device 40a.
 分散データ排出部62は、例えば、特許文献4に記載された方法によって実現した場合には、データ処理装置の処理を停止することなくデータを排出することができる。また、データ処理部65がVM(Virtual Machine)上で動作する場合には、分散データ排出部62は、VMマイグレーション機能及びチェックポイント機能を用いて、処理とデータを記録可能なデータに変換してストレージ装置40aに送信してもよい。 When the distributed data discharge unit 62 is realized by, for example, the method described in Patent Document 4, it can discharge data without stopping the processing of the data processing device. Further, when the data processing unit 65 operates on a VM (Virtual Machine), the distributed data discharge unit 62 converts the process and data into recordable data using the VM migration function and the checkpoint function. You may transmit to the storage apparatus 40a.
 図4を参照すると、スケジューリング装置10aは、データ割当部23をさらに有する。 Referring to FIG. 4, the scheduling apparatus 10a further includes a data allocation unit 23.
 データ割当部23は、データ転送命令を発行することにより、ストレージ装置40aからデータ処理装置50a-iにデータを転送する。また、データ割当部23は、データ処理排出命令を発行することにより、データ処理装置50a-iからストレージ装置40aにデータを排出する。なお、データ割当部23は、データ転送命令及びデータ処理排出命令を同時に発行することにより、上層データ記憶部61と下層データ記憶部45との間でデータを入れ替えることができる。 The data allocation unit 23 issues data transfer instructions to transfer data from the storage device 40a to the data processing device 50a-i. In addition, the data allocation unit 23 issues data processing discharge commands to discharge data from the data processing devices 50a-i to the storage device 40a. The data allocation unit 23 can exchange data between the upper layer data storage unit 61 and the lower layer data storage unit 45 by simultaneously issuing a data transfer command and a data processing discharge command.
 このとき、特許文献3に記載された方法によると、下層データ記憶部45から上層データ記憶部61にさらにデータを転送する場合に、次の処理に適したデータ配置にすることができる。 At this time, according to the method described in Patent Document 3, when data is further transferred from the lower layer data storage unit 45 to the upper layer data storage unit 61, the data arrangement suitable for the next processing can be achieved.
 図1は、本実施形態に係る並列データ処理システムの構成を示すブロック図である。図1の並列データ処理システムは、並列データセットの時分割利用を行う並列データ処理システムである。なお、図1には、以下の情報のやり取りも記載されている。 FIG. 1 is a block diagram showing a configuration of a parallel data processing system according to the present embodiment. The parallel data processing system of FIG. 1 is a parallel data processing system that performs time division use of parallel data sets. In FIG. 1, the following information exchange is also described.
 図1を参照すると、スケジューリング装置10は、プログラム解析部21、処理割当部22及びデータ割当部23を有する。 1, the scheduling apparatus 10 includes a program analysis unit 21, a process allocation unit 22, and a data allocation unit 23.
 プログラム解析部21は、データフロープログラムを入力とし、処理割当部22に処理実行順序情報を出力し、データ割当部23に処理実行順序情報と、データフロープログラムのDAG構造を表すDAG構造情報とを出力する。 The program analysis unit 21 receives the data flow program, outputs the process execution order information to the process assignment unit 22, and outputs the process execution order information to the data assignment unit 23 and DAG structure information representing the DAG structure of the data flow program. Output.
 データ割当部23は、処理実行順序情報及びDAG構造情報に基いて、上層データ記憶部61と下層データ記憶部45との間で効率良くデータを入れ替えることができるタイミングで、データ転送命令及びデータ処理排出命令を出力する。 The data allocation unit 23 performs data transfer instructions and data processing at a timing at which data can be efficiently exchanged between the upper layer data storage unit 61 and the lower layer data storage unit 45 based on the process execution order information and the DAG structure information. Output eject command.
 例えば、図5における処理は、Load2、Filter1、Load1、Mining、Load3、Filter2、Statistical、JOINの順に実行されることが処理実行順序情報に含まれているものとする。このとき、データ割当部23は、Filter1の実行後にLoad1が行われることを知り得るため、このタイミングでデータの入れ替えを行わず、Filter1のデータをそのまま上層データ記憶部61に残すことができる。また、Miningの実行後、Load3、Filter2ではMining3の結果は利用されないため、データ割当部23は、Miningの結果データを下層データ記憶部45に排出し、data3を上層データ記憶部61に転送することができる。 For example, it is assumed that the processing execution order information includes that the processing in FIG. 5 is executed in the order of Load2, Filter1, Load1, Mining, Load3, Filter2, Statistical, JOIN. At this time, since the data allocation unit 23 can know that Load1 is performed after execution of Filter1, the data of Filter1 can be left in the upper layer data storage unit 61 as it is without replacing data at this timing. In addition, since the result of Mining3 is not used in Load3 and Filter2 after execution of Mining, the data allocation unit 23 discharges the Mining result data to the lower layer data storage unit 45 and transfers data3 to the upper layer data storage unit 61. Can do.
 上層データ記憶部61がランダムアクセスを高速に行うことができるDRAM又はSSDで構成され、下層データ記憶部45がシーケンシャルアクセスを高速に行うことができるHDDで構成されている場合には、このような制御に基いて、予め使用するデータをシーケンシャルアクセスにより上層データ記憶部61に転送することで、システムの性能を向上することができる。一方、上層データ記憶部61が格納するデータ容量に応じて電力を消費するデータグリッド構成を採用し、下層データ記憶部45が格納するデータ容量に拠らずほぼ一定の電力を消費する大容量HDDを採用している場合には、このような制御に基いて、上層データ記憶部61のデータ量を削減することで、システムの消費電力を削減することができる。 When the upper layer data storage unit 61 is configured by a DRAM or SSD capable of performing random access at high speed, and the lower layer data storage unit 45 is configured by an HDD capable of performing sequential access at high speed, such a case Based on the control, the system performance can be improved by transferring the data to be used in advance to the upper layer data storage unit 61 by sequential access. On the other hand, a high-capacity HDD that adopts a data grid configuration that consumes power according to the data capacity stored in the upper layer data storage unit 61 and consumes substantially constant power regardless of the data capacity stored in the lower layer data storage unit 45 Is adopted, the power consumption of the system can be reduced by reducing the data amount of the upper layer data storage unit 61 based on such control.
 また、データ割当部23が処理の傾向に応じてデータ配置を変更する方法を併用した場合には、DAG構造情報を元に、次の処理に適したデータ配置となるように、上層データ記憶部にデータを配置することができる。このようなデータ配置の変更方法として、例えば、ハッシュジョインに用いられるハッシュ分割、及び、特許文献3に記載された方法が挙げられる。 In addition, when the data allocation unit 23 uses a method of changing the data arrangement according to the processing trend, the upper layer data storage unit so that the data arrangement is suitable for the next processing based on the DAG structure information. Data can be placed in Examples of such a data arrangement changing method include hash partitioning used for hash join and a method described in Patent Document 3.
 本実施形態に係る並列データ処理システムによると、システムを時分割利用する場合に、システム性能及び資源の利用効率を向上させることができる。その理由は、データフロープログラムにおける処理の順序を参照することで、上層データ記憶部61のデータ量を制御することができるからである。 The parallel data processing system according to the present embodiment can improve system performance and resource utilization efficiency when the system is used in a time-sharing manner. This is because the data amount of the upper data storage unit 61 can be controlled by referring to the processing order in the data flow program.
 (実施形態2)
 第2の実施形態に係る並列データ処理システムについて、図面を参照して説明する。本実施形態では、データ処理装置における処理終了を検知することで、並列データ処理システムのさらに効率の良い時分割利用を実現する。図6は、本実施形態に係る並列データ処理システムの構成を示すブロック図である。
(Embodiment 2)
A parallel data processing system according to the second embodiment will be described with reference to the drawings. In the present embodiment, by detecting the end of processing in the data processing apparatus, more efficient time division use of the parallel data processing system is realized. FIG. 6 is a block diagram showing the configuration of the parallel data processing system according to this embodiment.
 図6を参照すると、本実施形態に係る並列データ処理システムにおけるデータ処理装置51は、第1の実施形態における機能に加え、CPU71(図2参照)を用いて実現される処理終了検知部66をさらに有する。 Referring to FIG. 6, the data processing device 51 in the parallel data processing system according to the present embodiment includes a processing end detection unit 66 realized using the CPU 71 (see FIG. 2) in addition to the functions in the first embodiment. Also have.
 処理終了検知部66は、処理割当部22によって命令された1つの処理が終了したことを検知し、処理終了信号を出力する。ここで、1つの処理とは、DAG構造の1つの節点に相当する処理のうちの、データ処理装置51に割り当てられた処理を指す。処理終了検知部66は、例えば、プログラムの末端に特殊な割り込み命令を設けることで実現し得る。 The process end detection unit 66 detects that one process instructed by the process allocation unit 22 has ended, and outputs a process end signal. Here, one process refers to a process assigned to the data processing device 51 among processes corresponding to one node of the DAG structure. The process end detection unit 66 can be realized, for example, by providing a special interrupt instruction at the end of the program.
 本実施形態に係る並列データ処理システムのスケジューリング装置11におけるデータ割当部25は、さらに処理終了信号を入力とする。プログラム解析部21は、第1の実施形態と同様に、データフロープログラムを入力とし、処理割当部22に処理実行順序情報を出力し、DAG構造情報をデータ割当部25に処理実行順序情報と、データフロープログラムのDAG構造を表すDAG構造情報とを出力する。 The data allocation unit 25 in the scheduling device 11 of the parallel data processing system according to the present embodiment further receives a process end signal. As in the first embodiment, the program analysis unit 21 receives the data flow program, outputs the process execution order information to the process allocation unit 22, and outputs the DAG structure information to the data allocation unit 25. DAG structure information representing the DAG structure of the data flow program is output.
 データ割当部25は、入力された処理実行順序情報、DAG構造情報及び処理終了信号に基いて、上層データ記憶部61と下層データ記憶部45との間で効率良くデータを入れ替えることができるタイミングで、データ転送命令及びデータ処理排出命令を出力するとともに、データ処理装置51を識別するデータ処理装置識別情報と、処理内容を識別する処理識別情報とをストレージ装置41のデータ転送部47に出力する。 The data allocation unit 25 is a timing at which data can be efficiently exchanged between the upper layer data storage unit 61 and the lower layer data storage unit 45 based on the input process execution order information, DAG structure information, and process end signal. The data transfer command and the data processing discharge command are output, and the data processing device identification information for identifying the data processing device 51 and the processing identification information for identifying the processing content are output to the data transfer unit 47 of the storage device 41.
 処理終了検知部66を導入することによって、データ割当部25は、各データ処理装置51における処理終了タイミングを知ることができ、さらに効率良くデータの入れ替え処理を行うことができる。 By introducing the processing end detection unit 66, the data allocation unit 25 can know the processing end timing in each data processing device 51, and can perform the data replacement processing more efficiently.
 例えば、図5における処理は、Load2、Filter1、Load1、Mining、Load3、Filter2、Statistical、JOINの順に実行されることが処理実行順序情報に含まれているものとする。また、データの処理方式をMapReduce方式とする。すなわち、すべてのデータ処理装置51は処理対象データを任意配置で保持し、各節点における処理はすべてのデータ処理装置51にばらまかれるものとする。 For example, it is assumed that the processing execution order information includes that the processing in FIG. 5 is executed in the order of Load2, Filter1, Load1, Mining, Load3, Filter2, Statistical, JOIN. In addition, the data processing method is a MapReduce method. That is, all the data processing devices 51 hold the processing target data in an arbitrary arrangement, and the processing at each node is distributed to all the data processing devices 51.
 この場合、処理Filter1が終了したデータ処理装置51から順次、処理Load1を行うことができる。また、処理Filter2が終了したデータ処理装置51から順次、処理Filter1の結果データをロードし、次の処理Statisticalに備えることができる。 In this case, the process Load1 can be performed sequentially from the data processing device 51 that has completed the process Filter1. In addition, the result data of the process filter 1 can be sequentially loaded from the data processing device 51 in which the process filter 2 has been completed, and can be prepared for the next process statistical.
 また、処理が終了したことを検出することができるため、処理途中でデータを入れ替えてしまうことを防ぐことができる。データ処理装置51は、処理途中において、処理対象データに加え、処理の途中で生成される中間データを保持することがある。処理途中においてデータを入れ替えると、このような中間データを含むデータを入れ替える必要があるため、データ入れ替え処理に要する時間が増大することがある。すなわち、処理の終了を検出できることにより、中間データの入れ替えを回避でき、システムにおける資源の利用効率を向上させ、処理時間を短縮することもできる。 Also, since it is possible to detect that the processing has been completed, it is possible to prevent data from being replaced during the processing. The data processing device 51 may hold intermediate data generated during the processing in addition to the processing target data during the processing. If data is exchanged in the middle of processing, it is necessary to exchange data including such intermediate data, which may increase the time required for data exchange processing. That is, since the end of processing can be detected, replacement of intermediate data can be avoided, resource utilization efficiency in the system can be improved, and processing time can be shortened.
 また、処理終了検知部66に加え、排出済みのデータにもアクセス可能な機構を分散データ排出部62に導入した場合には、プログラム解析部21は、すべてのデータが上層データ記憶部6内に存在すると判定でき、かつ、多くのデータを下層データ記憶部45に格納することができる。このとき、プログラム解析部21として、時分割利用に対応しない従来の実装の多くを流用することができる。 In addition to the processing end detection unit 66, when a mechanism capable of accessing the discharged data is introduced to the distributed data discharge unit 62, the program analysis unit 21 stores all the data in the upper layer data storage unit 6. It can be determined that it exists, and a large amount of data can be stored in the lower layer data storage unit 45. At this time, many of the conventional implementations that do not support time-division use can be used as the program analysis unit 21.
 排出済みのデータにもアクセス可能とするための機構として、例えば、特許文献4に記載された方法が挙げられる。 For example, a method described in Patent Document 4 can be cited as a mechanism for making it possible to access discharged data.
 図7は、本実施形態に係る並列データ処理システムの他の構成を示すブロック図である。図7を参照すると、この並列データ処理システムにおいては、ストレージ装置42は、複数の下層データ記憶部45を有する。このとき、各データ処理装置52は、各下層データ記憶部45に個別にアクセスすることができる。 FIG. 7 is a block diagram showing another configuration of the parallel data processing system according to the present embodiment. Referring to FIG. 7, in this parallel data processing system, the storage apparatus 42 has a plurality of lower layer data storage units 45. At this time, each data processing device 52 can individually access each lower layer data storage unit 45.
 下層データ記憶部45は、デバイス及びネットワークの性能に応じて、データ転送能力が制限される。したがって、多数の上層データ記憶部61が同一の下層データ記憶部45とデータのやり取りを行うと、データ転送量がデータ転送能力によって制限され、データ処理装置52当たりのデータ転送速度が減少してしまうことがある。 The data transfer capability of the lower layer data storage unit 45 is limited according to the performance of the device and the network. Therefore, when a large number of upper layer data storage units 61 exchange data with the same lower layer data storage unit 45, the data transfer amount is limited by the data transfer capability, and the data transfer rate per data processing device 52 decreases. Sometimes.
 そこで、データ割当部26は、処理終了検知部66から処理終了信号を受け、データ処理排出命令を送信する際、ストレージ装置42の資源がより均等に使用されるように、下層データ記憶部45の割り当てを計算し、計算した割り当てに基いて下層データ記憶部45を識別する情報を下層データ記憶部識別情報として送信する。 Therefore, the data allocation unit 26 receives the processing end signal from the processing end detection unit 66 and transmits the data processing discharge command so that the resources of the storage device 42 are used more evenly when the data processing discharge command is transmitted. The allocation is calculated, and information for identifying the lower layer data storage unit 45 based on the calculated allocation is transmitted as the lower layer data storage unit identification information.
 割り当て方法として、例えば、ラウンドロビン手法を用いることができる。すなわち、下層データ記憶部45を任意の順に並べた下層データ記憶部リストを保持し、処理終了検知部を受信する度に、下層データ記憶部リストの先頭から順に下層データ記憶部45を割り当てるようにしてもよい。また、他の割り当て方法として、ネットワーク上の転送時間を考慮し、データ処理装置52に近い下層データ記憶部45から順に割り当てるようにしてもよい。なお、割当方法は、これらに限定されない。 As the allocation method, for example, a round robin method can be used. That is, a lower layer data storage unit list in which the lower layer data storage unit 45 is arranged in an arbitrary order is held, and each time a process end detection unit is received, the lower layer data storage unit 45 is assigned in order from the top of the lower layer data storage unit list. May be. Further, as another allocation method, the transfer time on the network may be taken into consideration, and the allocation may be performed in order from the lower layer data storage unit 45 close to the data processing device 52. The allocation method is not limited to these.
 このとき、データ処理装置52の分散データ排出部67は、指定された下層データ記憶部45にデータを排出する。 At this time, the distributed data discharge unit 67 of the data processing device 52 discharges the data to the designated lower layer data storage unit 45.
 このような構成によると、ストレージ装置42のデータ転送能力をより多く使用してデータの入れ替えを行うことができ、システムのデータ処理能力を向上させることができる。 According to such a configuration, data can be replaced by using more data transfer capability of the storage apparatus 42, and the data processing capability of the system can be improved.
 (実施形態3)
 第3の実施形態に係る並列データ処理システムについて、図面を参照して説明する。本実施形態では、全部ではなく一部のデータ処理装置50を利用する際にはさらに効率が良くなる時分割利用を実現する。図8は、本実施形態に係る並列データ処理システムの構成を示すブロック図である。
(Embodiment 3)
A parallel data processing system according to a third embodiment will be described with reference to the drawings. In this embodiment, when using some but not all of the data processing devices 50, time-sharing usage is realized, which is more efficient. FIG. 8 is a block diagram showing the configuration of the parallel data processing system according to this embodiment.
 本実施形態に係る並列データ処理システムでは、プログラム解析部27は、DAGの各節点の処理をデータ処理装置50に割り当てる際に、必ずしもすべてのデータ処理装置50に割り当てるだけでなく、一部のデータ処理装置50に割り当てるようにしてもよい。また、プログラム解析部27は、DAGの各節点に対応する処理をどのデータ処理装置50に割り当てたかを示すデータ処理装置割当リストをさらに出力する。 In the parallel data processing system according to the present embodiment, when the program analysis unit 27 assigns the processing of each node of the DAG to the data processing device 50, the program analysis unit 27 does not necessarily assign all the data processing devices 50 but also some data. You may make it allocate to the processing apparatus 50. FIG. In addition, the program analysis unit 27 further outputs a data processing device assignment list indicating to which data processing device 50 the processing corresponding to each node of the DAG is assigned.
 図10は、本実施形態に係る並列データ処理システムのスケジューリング装置13におけるデータ処理装置割当リストを一例として示す図である。なお、図10のリストは例示にすぎず、リストのフォーマットはこれに限定されない。 FIG. 10 is a diagram showing, as an example, a data processing device allocation list in the scheduling device 13 of the parallel data processing system according to the present embodiment. The list in FIG. 10 is merely an example, and the format of the list is not limited to this.
 データ割当部28は、処理実行順序情報及びDAG構造情報以外に、さらにデータ処理装置割当リストを入力とし、データ転送命令及びデータ処理排出命令を生成するために利用する。データ割当部28は、データ処理装置割当リストを用いることによって、システム内の資源をさらに効率良く扱う命令を生成することができる。 The data allocation unit 28 uses the data processing device allocation list as an input in addition to the processing execution order information and the DAG structure information, and uses it to generate a data transfer command and a data processing discharge command. The data allocation unit 28 can generate an instruction for more efficiently handling the resources in the system by using the data processing device allocation list.
 一例として、図5に示したデータフロープログラムの処理を、図10に記載したデータ処理装置割当リストに示したデータ処理装置で行われる場合に、処理Filter2の後に処理Statisticalを実行することを考える。図10を参照すると、処理Filter2はデータ処理装置6、7で実行され、処理Statisticalはデータ処理装置1~7で実行される。また、処理Filter2の前に、処理Miningがデータ処理装置2~5で実行されているものとする。 As an example, when the processing of the data flow program shown in FIG. 5 is performed by the data processing device shown in the data processing device assignment list shown in FIG. 10, it is assumed that the processing Statistical is executed after the processing Filter2. Referring to FIG. 10, the process Filter 2 is executed by the data processing apparatuses 6 and 7, and the process Statistical is executed by the data processing apparatuses 1 to 7. Further, it is assumed that the processing Mining is executed by the data processing devices 2 to 5 before the processing Filter 2.
 このとき、データ処理装置割当リストの情報を使うことで、処理Miningの結果をストレージ装置40に追いやり、処理Miningの入力に用いた処理Filter1の出力データをそのままデータ処理装置2~5に残し、処理Filter2の出力と処理Filter1の出力を利用して処理Statisticalを実行することができる。これにより、データ転送量を削減し、システム資源のさらに効率の良い利用が可能となる。 At this time, by using the information of the data processing device allocation list, the result of the processing Mining is transferred to the storage device 40, and the output data of the processing Filter 1 used for the input of the processing Mining is left as it is in the data processing devices 2 to 5. The process Statistical can be executed using the output of the Filter 2 and the output of the process Filter 1. As a result, the amount of data transfer can be reduced, and system resources can be used more efficiently.
 図9は、本実施形態に係る並列データ処理システムの他の構成を示すブロック図である。図9を参照すると、データ処理装置53は、省電力制御部67をさらに有する。 FIG. 9 is a block diagram showing another configuration of the parallel data processing system according to the present embodiment. Referring to FIG. 9, the data processing device 53 further includes a power saving control unit 67.
 省電力制御部67は、電力制御命令に応じて、データ処理装置53の処理能力と消費電力を変化させる。一般に、処理能力を高めるにしたがって、消費電力は増大する。 The power saving control unit 67 changes the processing capability and power consumption of the data processing device 53 according to the power control command. Generally, the power consumption increases as the processing capacity is increased.
 省電力制御部67による電力制御として、例えば、電力制御命令に応じてデータ処理装置53の電源をオン・オフすることが考えられる。また、電力制御の他の例として、ACPI(Advanced Configuration and Power Interface)を用いて、データ処理装置を構成するHDDの回転数を制御したり、CPUの動作周波数を制御する等の省電力技術を利用することができる。なお、省電力制御の方法は、これらに限定されない。 As power control by the power saving control unit 67, for example, it is conceivable to turn on / off the power of the data processing device 53 in accordance with a power control command. As another example of power control, ACPI (Advanced Configuration and Power Interface) is used to control the number of rotations of the HDD that constitutes the data processing device, and to control the operating frequency of the CPU. Can be used. Note that the power saving control method is not limited thereto.
 図9を参照すると、データ割当部29は、データ処理装置53の省電力制御部67に、電力制御命令を出力する。このとき、データ割当部29は、システムの性能を維持しつつ、システムの使用電力を効率良く制御することができる。 Referring to FIG. 9, the data allocation unit 29 outputs a power control command to the power saving control unit 67 of the data processing device 53. At this time, the data allocation unit 29 can efficiently control the power used by the system while maintaining the performance of the system.
 図5に示したデータフロープログラムの処理を、図10に記載したデータ処理装置割当リストに示したデータ処理装置で行われる場合には、データ処理装置1~7で処理Statisticalが行われた後、データ処理装置3、5で処理JOINが行われる。したがって、データ処理装置1、2、4、6、7は、処理JOINが開始される時点で使用されなくなる。そこで、データ処理装置1、2、4、6、7のデータをストレージ装置40に退避し、データ処理装置1、2、4、6、7の電力を低下させる制御を行うことで、データ処理装置3、5で行われている処理の性能に影響を及ぼすことなく、システム全体の消費電力を削減することができる。 When the processing of the data flow program shown in FIG. 5 is performed in the data processing devices shown in the data processing device allocation list shown in FIG. 10, after the processing Statistical is performed in the data processing devices 1 to 7, Processing JOIN is performed in the data processing devices 3 and 5. Therefore, the data processing devices 1, 2, 4, 6, and 7 are not used when the processing JOIN is started. Therefore, the data processing devices 1, 2, 4, 6, and 7 are saved in the storage device 40, and the data processing devices 1, 2, 4, 6, and 7 are controlled to reduce the power. The power consumption of the entire system can be reduced without affecting the performance of the processing performed in steps 3 and 5.
 (実施形態4)
 第4の実施形態に係る並列データ処理システムについて、図面を参照して説明する。第4の実施形態では、スケジューリング装置は複数のプログラム解析部を有し、さらに効率の良い時分割利用を実現する。図11は、本実施形態に係る並列データ処理システムの構成を示すブロック図である。
(Embodiment 4)
A parallel data processing system according to a fourth embodiment will be described with reference to the drawings. In the fourth embodiment, the scheduling apparatus has a plurality of program analysis units, and realizes more efficient time division use. FIG. 11 is a block diagram showing the configuration of the parallel data processing system according to this embodiment.
 図11を参照すると、スケジューリング装置16は、プログラム解析部A31及びプログラム解析部B32を有する。プログラム解析部A31は、データフロープログラムAを入力とし、データフロープログラムAに対する処理実行順序情報とDAG構造情報を出力する。同様に、プログラム解析部B32は、データフロープログラムBを入力とし、データフロープログラムBに対する処理実行順序情報とDAG構造情報を出力する。このとき、プログラム解析部A31、B32は、それぞれ、データ処理装置50を独占的に利用していることを前提として、処理割当を行う。 Referring to FIG. 11, the scheduling device 16 includes a program analysis unit A31 and a program analysis unit B32. The program analysis unit A31 receives the data flow program A and outputs process execution order information and DAG structure information for the data flow program A. Similarly, the program analysis unit B32 receives the data flow program B and outputs process execution order information and DAG structure information for the data flow program B. At this time, each of the program analysis units A31 and B32 performs processing assignment on the assumption that the data processing device 50 is exclusively used.
 例えば、単一の並列データ処理システムを複数のアプリケーション間で共有する場合が考えられる。また、他の例として、単一の並列データ処理システムを、異なる企業のアプリケーション間で共有する場合が考えられる。 For example, a single parallel data processing system may be shared among multiple applications. As another example, a single parallel data processing system may be shared between applications of different companies.
 データ割当部35は、複数のプログラム解析部A31、B32から出力された複数の処理実行順序情報及びDAG構造情報を入力とする。データ割当部35は、複数の処理実行順序情報及びDAG構造情報に基いて、複数のDAG構造にまたがる処理発行順序を決定する。 The data allocation unit 35 receives a plurality of process execution order information and DAG structure information output from the plurality of program analysis units A31 and B32. The data allocation unit 35 determines a process issuance order across a plurality of DAG structures based on a plurality of process execution order information and DAG structure information.
 データ割当部35は、実施形態1ないし3と同様にデータ処理排出命令とデータ転送命令を送信するとともに、次に上層データ記憶部61にロードされるデータを対象とする処理内容を識別する処理識別子を、処理割当部33に送信する。 The data allocation unit 35 transmits a data processing discharge command and a data transfer command as in the first to third embodiments, and identifies a processing identifier for processing content targeted for data loaded into the upper layer data storage unit 61 next Is transmitted to the process allocation unit 33.
 処理割当部33は、複数のプログラム解析部A31、B32のそれぞれから出力された処理実行順序情報と、データ割当部35から出力された処理識別子に基づいて処理を選択し、その処理を命じる処理制御を、各データ処理部65に発行する。 The process allocation unit 33 selects a process based on the process execution order information output from each of the plurality of program analysis units A31 and B32 and the process identifier output from the data allocation unit 35, and processes the process. Is issued to each data processing unit 65.
 一例として、データフロープログラムK1及びデータフロープログラムK2が、それぞれ図5に示したDAG構造を有し、いずれも、Load2、Filter1、Load1、Mining、Load3、Filter2、Statistical、JOINの順に処理が実行されることが決定されたものとする。 As an example, the data flow program K1 and the data flow program K2 each have the DAG structure shown in FIG. It is decided that
 第1のデータ割当方法として、データフロープログラムK1、K2のそれぞれの節点ごとに、割当を行うようにしてもよい。すなわち、K1.Load2、K2.Load2、K1.Filter1、K2.Filter1、…、のような順序で割り当てることで、それぞれのデータフロープログラムK1、K2は、並列データ処理システムを均等に利用することができる。 As a first data allocation method, allocation may be performed for each node of the data flow programs K1 and K2. That is, K1. Load2, K2. Load2, K1. Filter1, K2. By assigning them in the order of Filter1,..., Each data flow program K1, K2 can use the parallel data processing system equally.
 第2のデータ割当方法として、データの入れ替え量を少なくする単位で切り替えを行うようにしてもよい。すなわち、K1.(Load2、Filter1)、K2.(Load2、Filter1)、K1.(Load1、Mining)、K2.(Load1、Mining)、…のような順序で割り当てることができる。このとき、データ入れ替え回数を削減することができる。 As a second data allocation method, switching may be performed in units that reduce the amount of data exchange. That is, K1. (Load2, Filter1), K2. (Load2, Filter1), K1. (Load1, Mining), K2. (Load1, Mining),... At this time, the number of data exchanges can be reduced.
 第3のデータ割当方法として、データフロープログラムK1とK2とを所定の時間単位で切り替えるようにしてもよい。例えば、5秒経過後に処理が途中であってもK1の処理を排出してK2の処理をロードし、さらに5秒経過後にK2の処理を排出してK1の処理の続きをロードするような処理の切替を繰り返すようにしてもよい。このとき、仮にデータフロープログラムK1が処理に長い時間を要するものであっても、これに影響されることなく、データフロープログラムK2の処理を平行して進めることができる。 As a third data allocation method, the data flow programs K1 and K2 may be switched in a predetermined time unit. For example, even if the process is halfway after 5 seconds, the process of K1 is discharged and the process of K2 is loaded, and after 5 seconds, the process of K2 is discharged and the continuation of the process of K1 is loaded. The switching may be repeated. At this time, even if the data flow program K1 requires a long time for processing, the processing of the data flow program K2 can proceed in parallel without being affected by this.
 なお、これらのデータ割当方法は例示にすぎず、本発明はこれらに限定されない。 Note that these data allocation methods are merely examples, and the present invention is not limited to these.
 本実施形態の並列データ処理システムによると、単一の並列データ処理システムを時分割で利用して、複数のデータフロープログラムを実行することができる。 According to the parallel data processing system of the present embodiment, a plurality of data flow programs can be executed using a single parallel data processing system in a time-sharing manner.
 (実施形態5)
 第5の実施形態に係る並列データ処理システムについて、図面を参照して説明する。図12は、本実施形態に係る並列データ処理システムの構成を示すブロック図である。本実施形態では、データ割当部37はプログラム解析部36が決定した処理実行順序を変更することができる。
(Embodiment 5)
A parallel data processing system according to a fifth embodiment will be described with reference to the drawings. FIG. 12 is a block diagram showing the configuration of the parallel data processing system according to this embodiment. In this embodiment, the data allocation unit 37 can change the processing execution order determined by the program analysis unit 36.
 プログラム解析部36は、第1の処理実行順情報とDAG構造情報をデータ割当部37に出力する。 The program analysis unit 36 outputs the first process execution order information and the DAG structure information to the data allocation unit 37.
 データ割当部37は、ストレージ装置40のデータの格納方法などの情報から、処理実行順序を変更したほうが良いものと判断した場合には、変更した処理実行順情報を表す処理実行順序変更依頼をプログラム解析部36に出力する。 If the data allocation unit 37 determines from the information such as the data storage method of the storage apparatus 40 that the process execution order should be changed, the data allocation unit 37 programs a process execution order change request indicating the changed process execution order information. The data is output to the analysis unit 36.
 プログラム解析部36は、処理実行順序変更依頼を受けた場合には、これを精査して、新しい第2の処理実行順序情報を生成する。並列データ処理システムの時分割利用は、第2の処理実行順序情報に基いて行われる。 When the program analysis unit 36 receives a processing execution order change request, the program analysis unit 36 examines the request and generates new second processing execution order information. The time division use of the parallel data processing system is performed based on the second processing execution order information.
 例えば、処理A及び処理Bが利用するデータセットが同一の場合、又は、処理A及び処理Bが利用するデータを同時に読み出すことが下層データ記憶部45のデバイス特性上効率が良い場合において、処理Aの実行順序と処理Bの実行順序とが離れているときには、処理順序を変更することが好ましい。この場合には、データ割当部37は、処理順序を変更して、処理Aの実行に引き続いて処理Bが実行されるようにし、処理Aと処理Bにおいて利用するデータセットを同時に上層データ記憶部61に配置するようにデータ処理装置50及びストレージ装置40を制御する。これにより、並列データ処理システムの性能を向上させることができる。なお、処理順序が変更される場合は、これに限定されない。 For example, when the data sets used by the process A and the process B are the same, or when reading data used by the process A and the process B at the same time is efficient in terms of device characteristics of the lower layer data storage unit 45, the process A When the execution order of and the execution order of the process B are separated, it is preferable to change the process order. In this case, the data allocation unit 37 changes the processing order so that the process B is executed subsequent to the execution of the process A, and the data sets used in the process A and the process B are simultaneously stored in the upper data storage unit. The data processing device 50 and the storage device 40 are controlled so as to be arranged in 61. Thereby, the performance of a parallel data processing system can be improved. In addition, when a processing order is changed, it is not limited to this.
 本発明に係る並列データ処理システムは、並列データベースシステム、並列データ処理システム、分散ストレージ、並列ファイルシステム、分散データベース、データグリッド、クラスタコンピュータに適用することができる。特に、本発明に係る並列データ処理システムによると、複数のアプリケーションにまたがる複数の処理又は単一アプリケーション内の複数の処理によって、並列データ処理システムを時分割で効率良く利用することができる。 The parallel data processing system according to the present invention can be applied to parallel database systems, parallel data processing systems, distributed storage, parallel file systems, distributed databases, data grids, and cluster computers. In particular, according to the parallel data processing system according to the present invention, the parallel data processing system can be efficiently used in a time division manner by a plurality of processes over a plurality of applications or a plurality of processes in a single application.
 本発明において、下記の付記に掲げる形態が少なくとも含まれる。
(付記1)第1のデータフロープログラムを参照して、該第1のデータフロープログラムを表す第1の有向無閉路グラフ(DAG:Directed Acyclic Graph)と、該第1のDAGの節点に相当する処理の実行順序を表す第1の処理実行順序情報とを生成するとともに、第2のデータフロープログラムを参照して、該第2のデータフロープログラムを表す第2のDAGと、該第2のDAGの節点に相当する処理の実行順序を表す第2の処理実行順序情報とを生成するプログラム解析部と、
 前記第1の処理実行順序情報及び前記第2の処理実行順序情報に基いて、前記第1のDAG及び前記第2のDAGの節点に相当する処理を複数のデータ処理装置に割り当てる処理割当部と、
 前記第1のDAG及び前記第2のDAG並びに前記第1の処理実行順序情報及び前記第2の処理実行順序情報を参照して、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替えるデータ割当部と、を備えていることを特徴とするスケジューリング装置。
In the present invention, at least the forms listed in the following supplementary notes are included.
(Supplementary Note 1) Referring to the first data flow program, the first directed acyclic graph (DAG) representing the first data flow program and the nodes of the first DAG First processing execution order information representing the execution order of the processing to be performed, and referring to the second data flow program, the second DAG representing the second data flow program, and the second A program analysis unit for generating second process execution order information indicating the execution order of processes corresponding to nodes of the DAG;
A process allocation unit that allocates a process corresponding to a node of the first DAG and the second DAG to a plurality of data processing devices based on the first process execution order information and the second process execution order information; ,
Referring to the first DAG, the second DAG, the first process execution order information, and the second process execution order information, they correspond to the nodes of the first DAG and the second DAG. A scheduling apparatus comprising: a data allocation unit that replaces data used for processing between a storage unit of a storage device and a storage unit provided in each of the plurality of data processing devices.
(付記2)前記データ割当部は、前記複数のデータ処理装置に対して、前記第1のDAGの節点に相当する処理に用いられるデータの割り当てと、前記第2のDAGの節点に相当する処理に用いられるデータの割り当てとを、各処理が終了する度に交互に繰り返すことを特徴とする、付記1に記載のスケジューリング装置。 (Supplementary Note 2) The data allocation unit allocates data used for processing corresponding to the nodes of the first DAG to the plurality of data processing devices, and processing corresponding to the nodes of the second DAG. The scheduling apparatus according to appendix 1, wherein the allocation of data used in the process is alternately repeated every time each process is completed.
(付記3)前記データ割当部は、前記複数のデータ処理装置に対して、前記第1のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てと、前記第2のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てとを、これらの複数の処理のそれぞれが終了する度に交互に繰り返すことを特徴とする、付記1に記載のスケジューリング装置。 (Supplementary Note 3) The data allocation unit allocates data to be used for a plurality of processes corresponding to a plurality of nodes of the first DAG and a plurality of the second DAGs to the plurality of data processing devices. The scheduling apparatus according to appendix 1, wherein allocation of data used for a plurality of processes corresponding to the nodes is alternately repeated every time the plurality of processes are completed.
(付記4)前記データ割当部は、前記複数のデータ処理装置に対して割り当てられたデータに対する、前記第1のDAG又は前記第2のDAGのうちの一方のDAGの節点に相当する処理が、所定の期間の経過前に終了しなかった場合には、他方のDAGの節点に相当する処理に用いられるデータを前記複数のデータ処理装置に割り当てることを特徴とする、付記2又は3に記載のスケジューリング装置。 (Supplementary Note 4) The data allocating unit performs processing corresponding to a node of one of the first DAG and the second DAG with respect to data allocated to the plurality of data processing devices. The supplementary note 2 or 3, characterized in that if it does not end before the lapse of a predetermined period, data used for processing corresponding to a node of the other DAG is assigned to the plurality of data processing devices. Scheduling device.
(付記5)前記データ割当部は、前記複数のデータ処理装置に割り当てたデータを対象とする処理を識別する処理識別子を生成し、
 前記処理割当部は、前記処理識別子を参照して、前記複数のデータ処理装置に処理を割り当てることを特徴とする、付記1乃至4のいずれか一に記載のスケジューリング装置。
(Supplementary Note 5) The data allocation unit generates a process identifier for identifying a process targeting data allocated to the plurality of data processing devices,
The scheduling apparatus according to any one of appendices 1 to 4, wherein the process allocation unit allocates a process to the plurality of data processing apparatuses with reference to the process identifier.
(付記6)前記データ割当部は、第1の処理の後に第2の処理を実行する実行順序が前記第1の処理実行順序情報及び前記第2の処理実行順序情報の少なくともいずれか一方に含まれ、該第2の処理に使用されるデータが前記ストレージ装置の記憶部に記録されている場合において、前記複数のデータ処理装置のうちのいずれかのデータ処理装置から該第1の処理を終了した旨の信号を受信したときには、該第1の処理に使用されるデータを該データ処理装置の記憶部から前記ストレージ装置の記憶部に転送させるとともに、該第2の処理に使用されるデータを前記ストレージ装置の記憶部から該データ処理装置の記憶部に送信させることを特徴とする、付記1乃至5のいずれか一に記載のスケジューリング装置。 (Supplementary Note 6) In the data allocation unit, an execution order for executing the second process after the first process is included in at least one of the first process execution order information and the second process execution order information. When the data used for the second processing is recorded in the storage unit of the storage device, the first processing is terminated from any one of the plurality of data processing devices. When the signal indicating that it has been received is received, the data used for the first processing is transferred from the storage unit of the data processing device to the storage unit of the storage device, and the data used for the second processing is transferred The scheduling apparatus according to any one of appendices 1 to 5, wherein the scheduling apparatus causes the storage unit of the storage apparatus to transmit to the storage unit of the data processing apparatus.
(付記7)前記データ割当部は、前記ストレージ装置が複数の記憶部を備えている場合に、前記第1のDAG又は前記第2のDAGの節点に相当する処理に用いられるデータを該複数の記憶部のうちのいずれの記憶部に出力すべきかを、前記複数のデータ処理装置に通知することを特徴とする、付記6に記載のスケジューリング装置。 (Supplementary note 7) When the storage device includes a plurality of storage units, the data allocation unit receives data used for processing corresponding to the nodes of the first DAG or the second DAG. The scheduling apparatus according to appendix 6, wherein the data processing apparatus is notified of which one of the storage sections is to be output.
(付記8)前記データ割当部は、前記第1のDAG又は前記第2のDAGの節点に相当する処理に用いられるデータを出力すべき記憶部を、前記複数の記憶部の中からラウンドロビンアルゴリズムに基いて選択するように、前記複数のデータ処理装置に通知することを特徴とする、付記7に記載のスケジューリング装置。 (Supplementary Note 8) The data allocating unit is configured to select a storage unit to output data used for processing corresponding to a node of the first DAG or the second DAG, from among the plurality of storage units. The scheduling apparatus according to appendix 7, wherein the scheduling is notified to the plurality of data processing apparatuses so as to make a selection based on the data.
(付記9)前記プログラム解析部は、前記第1のDAG及び前記第2のDAGの節点に相当する処理を、前記複数のデータ処理装置のうちのいずれのデータ処理装置に割り当てるかを示すデータ処理装置割当リストを出力し、
 前記データ割当部は、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、前記ストレージ装置の記憶部と前記データ処理装置割当リストに含まれるデータ処理装置の記憶部との間において入れ替えることを特徴とする、付記1乃至8のいずれか一に記載のスケジューリング装置。
(Additional remark 9) The said program analysis part is a data processing which shows to which data processing apparatus among the said several data processing apparatuses the process corresponded to the node of said 1st DAG and said 2nd DAG Output device allocation list,
The data allocation unit stores data used for processing corresponding to the nodes of the first DAG and the second DAG in a storage unit of the storage device and a data processing device allocation list included in the data processing device allocation list. The scheduling apparatus according to any one of appendices 1 to 8, wherein the scheduling apparatus is exchanged between the first and second sections.
(付記10)前記データ割当部は、前記複数のデータ処理装置のうちの、前記データ処理装置割当リストに含まれていないデータ処理装置に対し、消費電量を削減するように通知することを特徴とする、付記9に記載のスケジューリング装置。 (Additional remark 10) The said data allocation part notifies the data processing apparatus which is not contained in the said data processing apparatus allocation list among these data processing apparatuses so that power consumption may be reduced, It is characterized by the above-mentioned. The scheduling apparatus according to appendix 9.
(付記11)前記データ割当部は、さらに前記ストレージ装置の性能を示す情報を参照し、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報に含まれる実行順序を変更すべきか否かを判定し、変更すべきと判定した場合には、変更内容を含む変更依頼を前記プログラム解析部に出力し、
 前記プログラム解析部は、前記変更依頼に応じて、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報を変更して、前記処理割当部及び前記データ割当部に出力することを特徴とする、付記1乃至10のいずれか一に記載のスケジューリング装置。
(Additional remark 11) The said data allocation part further refers to the information which shows the performance of the said storage apparatus, The execution order contained in the said 1st process execution order information and / or the said 2nd process execution order information If it is determined whether or not to change, and if it is determined to be changed, a change request including the change contents is output to the program analysis unit,
The program analysis unit changes the first process execution order information and / or the second process execution order information in response to the change request, and outputs the change to the process allocation unit and the data allocation unit The scheduling apparatus according to any one of appendices 1 to 10, wherein:
(付記12)付記1乃至11のいずれか一に記載のスケジューリング装置と、
 前記複数のデータ処理装置、及び/又は、前記ストレージ装置と、を備えていることを特徴とする、並列データ処理システム。
(Supplementary note 12) The scheduling apparatus according to any one of supplementary notes 1 to 11,
A parallel data processing system comprising the plurality of data processing devices and / or the storage device.
(付記13)コンピュータが、第1のデータフロープログラムを参照して、該第1のデータフロープログラムを表す第1の有向無閉路グラフ(DAG:Directed Acyclic Graph)と、該第1のDAGの節点に相当する処理の実行順序を表す第1の処理実行順序情報とを生成するとともに、第2のデータフロープログラムを参照して、該第2のデータフロープログラムを表す第2のDAGと、該第2のDAGの節点に相当する処理の実行順序を表す第2の処理実行順序情報とを生成する工程と、
 前記第1の処理実行順序情報及び前記第2の処理実行順序情報に基いて、前記第1のDAG及び前記第2のDAGの節点に相当する処理を複数のデータ処理装置に割り当てる処理割当工程と、
 前記第1のDAG及び前記第2のDAG並びに前記第1の処理実行順序情報及び前記第2の処理実行順序情報を参照して、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替えるデータ割当工程と、を含むことを特徴とするスケジューリング方法。
(Additional remark 13) The computer refers to the first data flow program, the first directed acyclic graph (DAG) representing the first data flow program, and the first DAG Generating first process execution order information representing the execution order of processes corresponding to nodes, referring to a second data flow program, a second DAG representing the second data flow program, and Generating second process execution order information representing an execution order of processes corresponding to nodes of the second DAG;
A process allocating step of allocating processes corresponding to nodes of the first DAG and the second DAG to a plurality of data processing devices based on the first process execution order information and the second process execution order information; ,
Referring to the first DAG, the second DAG, the first process execution order information, and the second process execution order information, they correspond to the nodes of the first DAG and the second DAG. A data allocation step of exchanging data used for processing between a storage unit of a storage device and a storage unit provided in each of the plurality of data processing devices.
(付記14)前記データ割当工程において、前記複数のデータ処理装置に対して、前記第1のDAGの節点に相当する処理に用いられるデータの割り当てと、前記第2のDAGの節点に相当する処理に用いられるデータの割り当てとを、各処理が終了する度に交互に繰り返すことを特徴とする、付記13に記載のスケジューリング方法。 (Supplementary Note 14) In the data allocation step, for the plurality of data processing devices, allocation of data used for processing corresponding to the nodes of the first DAG and processing corresponding to the nodes of the second DAG 14. The scheduling method according to appendix 13, wherein the allocation of data used for the process is alternately repeated every time each process is completed.
(付記15)前記データ割当工程において、前記複数のデータ処理装置に対して、前記第1のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てと、前記第2のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てとを、これらの複数の処理のそれぞれが終了する度に交互に繰り返すことを特徴とする、付記13に記載のスケジューリング方法。 (Supplementary Note 15) In the data allocation step, allocation of data used for a plurality of processes corresponding to a plurality of nodes of the first DAG and a plurality of the second DAGs to the plurality of data processing devices. 14. The scheduling method according to appendix 13, wherein allocation of data used for a plurality of processes corresponding to the nodes is alternately repeated every time the plurality of processes are completed.
(付記16)前記データ割当工程において、前記複数のデータ処理装置に対して割り当てられたデータに対する、前記第1のDAG又は前記第2のDAGのうちの一方のDAGの節点に相当する処理が、所定の期間の経過前に終了しなかった場合には、他方のDAGの節点に相当する処理に用いられるデータを前記複数のデータ処理装置に割り当てることを特徴とする、付記14又は15に記載のスケジューリング方法。 (Supplementary Note 16) In the data allocation step, a process corresponding to a node of one of the first DAG and the second DAG with respect to data allocated to the plurality of data processing devices, The supplementary item 14 or 15, wherein when not completed before the elapse of a predetermined period, data used for processing corresponding to a node of the other DAG is allocated to the plurality of data processing devices. Scheduling method.
(付記17)前記データ割当工程において、前記複数のデータ処理装置に割り当てたデータを対象とする処理を識別する処理識別子を生成し、
 前記処理割当工程において、前記処理識別子を参照して、前記複数のデータ処理装置に処理を割り当てることを特徴とする、付記13乃至16のいずれか1に記載のスケジューリング方法。
(Supplementary Note 17) In the data allocation step, a process identifier for identifying a process targeted for data allocated to the plurality of data processing devices is generated,
The scheduling method according to any one of appendices 13 to 16, wherein, in the process assignment step, a process is assigned to the plurality of data processing devices with reference to the process identifier.
(付記18)第1のデータフロープログラムを参照して、該第1のデータフロープログラムを表す第1の有向無閉路グラフ(DAG:Directed Acyclic Graph)と、該第1のDAGの節点に相当する処理の実行順序を表す第1の処理実行順序情報とを生成するとともに、第2のデータフロープログラムを参照して、該第2のデータフロープログラムを表す第2のDAGと、該第2のDAGの節点に相当する処理の実行順序を表す第2の処理実行順序情報とを生成する処理と、
 前記第1の処理実行順序情報及び前記第2の処理実行順序情報に基いて、前記第1のDAG及び前記第2のDAGの節点に相当する処理を複数のデータ処理装置に割り当てる処理と、
 前記第1のDAG及び前記第2のDAG並びに前記第1の処理実行順序情報及び前記第2の処理実行順序情報を参照して、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替える処理と、をコンピュータに実行させることを特徴とするプログラム。
(Supplementary Note 18) Referring to the first data flow program, the first directed acyclic graph (DAG) representing the first data flow program and the nodes of the first DAG First processing execution order information representing the execution order of the processing to be performed, and referring to the second data flow program, the second DAG representing the second data flow program, and the second A process of generating second process execution order information representing an execution order of processes corresponding to nodes of the DAG;
A process of allocating a process corresponding to a node of the first DAG and the second DAG to a plurality of data processing devices based on the first process execution order information and the second process execution order information;
Referring to the first DAG, the second DAG, the first process execution order information, and the second process execution order information, they correspond to the nodes of the first DAG and the second DAG. A program for causing a computer to execute processing for replacing data used for processing between a storage unit of a storage device and a storage unit provided in each of the plurality of data processing devices.
 本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。 In the frame of the entire disclosure (including claims) of the present invention, the embodiment can be changed and adjusted based on the basic technical concept. Various combinations and selections of various disclosed elements are possible within the scope of the claims of the present invention. That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.
10、10a、11、12、13、15、16、17 スケジューリング装置
21、27、36 プログラム解析部
22、33 処理割当部
23、25、26、28、29、35、37 データ割当部
31 プログラム解析部A
32 プログラム解析部B
40、40a、41、42 ストレージ装置
45 下層データ記憶部
46、47 データ転送部
50、50a-1~50a-n、51、52、53 データ処理装置
61 上層データ記憶部
62、67 分散データ排出部
63 データ受信部
65 データ処理部
66 処理終了検知部
68 省電力制御部
70 ユーザ装置
71、81、91 CPU
72、82、92 データ記憶部
73、83、93 データ転送部
80 ネットワーク
10, 10a, 11, 12, 13, 15, 16, 17 Scheduling device 21, 27, 36 Program analysis unit 22, 33 Processing allocation unit 23, 25, 26, 28, 29, 35, 37 Data allocation unit 31 Program analysis Part A
32 Program analysis part B
40, 40a, 41, 42 Storage device 45 Lower layer data storage unit 46, 47 Data transfer unit 50, 50a-1 to 50a-n, 51, 52, 53 Data processing unit 61 Upper layer data storage unit 62, 67 Distributed data output unit 63 Data receiving unit 65 Data processing unit 66 Processing end detection unit 68 Power saving control unit 70 User devices 71, 81, 91 CPU
72, 82, 92 Data storage unit 73, 83, 93 Data transfer unit 80 Network

Claims (10)

  1.  第1のデータフロープログラムを参照して、該第1のデータフロープログラムを表す第1の有向無閉路グラフ(DAG:Directed Acyclic Graph)と、該第1のDAGの節点に相当する処理の実行順序を表す第1の処理実行順序情報とを生成するとともに、第2のデータフロープログラムを参照して、該第2のデータフロープログラムを表す第2のDAGと、該第2のDAGの節点に相当する処理の実行順序を表す第2の処理実行順序情報とを生成するプログラム解析部と、
     前記第1の処理実行順序情報及び前記第2の処理実行順序情報に基いて、前記第1のDAG及び前記第2のDAGの節点に相当する処理を複数のデータ処理装置に割り当てる処理割当部と、
     前記第1のDAG及び前記第2のDAG並びに前記第1の処理実行順序情報及び前記第2の処理実行順序情報を参照して、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替えるデータ割当部と、を備えていることを特徴とするスケジューリング装置。
    Referring to the first data flow program, a first directed acyclic graph (DAG) representing the first data flow program and execution of a process corresponding to a node of the first DAG Generating first processing execution order information representing the order, and referring to the second data flow program, the second DAG representing the second data flow program, and the nodes of the second DAG A program analysis unit that generates second process execution order information representing the execution order of the corresponding processes;
    A process allocation unit that allocates a process corresponding to a node of the first DAG and the second DAG to a plurality of data processing devices based on the first process execution order information and the second process execution order information; ,
    Referring to the first DAG, the second DAG, the first process execution order information, and the second process execution order information, they correspond to the nodes of the first DAG and the second DAG. A scheduling apparatus comprising: a data allocation unit that replaces data used for processing between a storage unit of a storage device and a storage unit provided in each of the plurality of data processing devices.
  2.  前記データ割当部は、前記複数のデータ処理装置に対して、前記第1のDAGの節点に相当する処理に用いられるデータの割り当てと、前記第2のDAGの節点に相当する処理に用いられるデータの割り当てとを、各処理が終了する度に交互に繰り返すことを特徴とする、請求項1に記載のスケジューリング装置。 The data allocating unit allocates data used for processing corresponding to the nodes of the first DAG and data used for processing corresponding to the nodes of the second DAG to the plurality of data processing devices. The scheduling apparatus according to claim 1, wherein the allocation is alternately repeated every time each process is completed.
  3.  前記データ割当部は、前記複数のデータ処理装置に対して、前記第1のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てと、前記第2のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てとを、これらの複数の処理のそれぞれが終了する度に交互に繰り返すことを特徴とする、請求項1に記載のスケジューリング装置。 The data allocating unit corresponds to the plurality of data processing devices, the allocation of data used for a plurality of processes corresponding to the plurality of nodes of the first DAG, and the plurality of nodes of the second DAG. The scheduling apparatus according to claim 1, wherein allocation of data used for a plurality of processes is alternately repeated every time each of the plurality of processes ends.
  4.  前記データ割当部は、前記複数のデータ処理装置に対して割り当てられたデータに対する、前記第1のDAG又は前記第2のDAGのうちの一方のDAGの節点に相当する処理が、所定の期間の経過前に終了しなかった場合には、他方のDAGの節点に相当する処理に用いられるデータを前記複数のデータ処理装置に割り当てることを特徴とする、請求項2又は3に記載のスケジューリング装置。 The data allocating unit performs processing corresponding to a node of one of the first DAG and the second DAG for data allocated to the plurality of data processing devices in a predetermined period. 4. The scheduling apparatus according to claim 2, wherein if the processing is not completed before the lapse of time, data used for processing corresponding to a node of the other DAG is allocated to the plurality of data processing apparatuses.
  5.  前記データ割当部は、前記複数のデータ処理装置に割り当てたデータを対象とする処理を識別する処理識別子を生成し、
     前記処理割当部は、前記処理識別子を参照して、前記複数のデータ処理装置に処理を割り当てることを特徴とする、請求項1乃至4のいずれか1項に記載のスケジューリング装置。
    The data allocation unit generates a process identifier for identifying a process targeted for data allocated to the plurality of data processing devices;
    The scheduling apparatus according to claim 1, wherein the process allocation unit allocates a process to the plurality of data processing apparatuses with reference to the process identifier.
  6.  前記データ割当部は、第1の処理の後に第2の処理を実行する実行順序が前記第1の処理実行順序情報及び前記第2の処理実行順序情報の少なくともいずれか一方に含まれ、該第2の処理に使用されるデータが前記ストレージ装置の記憶部に記録されている場合において、前記複数のデータ処理装置のうちのいずれかのデータ処理装置から該第1の処理を終了した旨の信号を受信したときには、該第1の処理に使用されるデータを該データ処理装置の記憶部から前記ストレージ装置の記憶部に転送させるとともに、該第2の処理に使用されるデータを前記ストレージ装置の記憶部から該データ処理装置の記憶部に送信させることを特徴とする、請求項1乃至5のいずれか1項に記載のスケジューリング装置。 The data allocation unit includes an execution order for executing a second process after the first process in at least one of the first process execution order information and the second process execution order information. A signal indicating that the first processing has been completed from any one of the plurality of data processing devices in a case where data used for the second processing is recorded in the storage unit of the storage device Is received, the data used for the first processing is transferred from the storage unit of the data processing device to the storage unit of the storage device, and the data used for the second processing is transferred to the storage device. The scheduling apparatus according to claim 1, wherein the scheduling apparatus causes the storage section to transmit to the storage section of the data processing apparatus.
  7.  前記プログラム解析部は、前記第1のDAG及び前記第2のDAGの節点に相当する処理を、前記複数のデータ処理装置のうちのいずれのデータ処理装置に割り当てるかを示すデータ処理装置割当リストを出力し、
     前記データ割当部は、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、前記ストレージ装置の記憶部と前記データ処理装置割当リストに含まれるデータ処理装置の記憶部との間において入れ替えることを特徴とする、請求項1乃至6のいずれか1項に記載のスケジューリング装置。
    The program analysis unit has a data processing device allocation list indicating to which data processing device of the plurality of data processing devices the processing corresponding to the nodes of the first DAG and the second DAG is allocated. Output,
    The data allocation unit stores data used for processing corresponding to the nodes of the first DAG and the second DAG in a storage unit of the storage device and a data processing device allocation list included in the data processing device allocation list. The scheduling apparatus according to any one of claims 1 to 6, wherein the scheduling apparatus is exchanged with each other.
  8.  前記データ割当部は、さらに前記ストレージ装置の性能を示す情報を参照し、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報に含まれる実行順序を変更すべきか否かを判定し、変更すべきと判定した場合には、変更内容を含む変更依頼を前記プログラム解析部に出力し、
     前記プログラム解析部は、前記変更依頼に応じて、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報を変更して、前記処理割当部及び前記データ割当部に出力することを特徴とする、請求項1乃至7のいずれか1項に記載のスケジューリング装置。
    Whether the data allocation unit should further refer to information indicating the performance of the storage device and change the execution order included in the first process execution order information and / or the second process execution order information. If it is determined that it should be changed, a change request including the change contents is output to the program analysis unit,
    The program analysis unit changes the first process execution order information and / or the second process execution order information in response to the change request, and outputs the change to the process allocation unit and the data allocation unit The scheduling apparatus according to claim 1, wherein
  9.  コンピュータが、第1のデータフロープログラムを参照して、該第1のデータフロープログラムを表す第1の有向無閉路グラフ(DAG:Directed Acyclic Graph)と、該第1のDAGの節点に相当する処理の実行順序を表す第1の処理実行順序情報とを生成するとともに、第2のデータフロープログラムを参照して、該第2のデータフロープログラムを表す第2のDAGと、該第2のDAGの節点に相当する処理の実行順序を表す第2の処理実行順序情報とを生成する工程と、
     前記第1の処理実行順序情報及び前記第2の処理実行順序情報に基いて、前記第1のDAG及び前記第2のDAGの節点に相当する処理を複数のデータ処理装置に割り当てる処理割当工程と、
     前記第1のDAG及び前記第2のDAG並びに前記第1の処理実行順序情報及び前記第2の処理実行順序情報を参照して、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替えるデータ割当工程と、を含むことを特徴とするスケジューリング方法。
    The computer refers to the first data flow program and corresponds to a first directed acyclic graph (DAG) representing the first data flow program and a node of the first DAG. Generating first process execution order information representing a process execution order, referring to a second data flow program, a second DAG representing the second data flow program, and the second DAG; Generating second process execution order information representing an execution order of processes corresponding to the nodes;
    A process allocating step of allocating processes corresponding to nodes of the first DAG and the second DAG to a plurality of data processing devices based on the first process execution order information and the second process execution order information; ,
    Referring to the first DAG, the second DAG, the first process execution order information, and the second process execution order information, they correspond to the nodes of the first DAG and the second DAG. A data allocation step of exchanging data used for processing between a storage unit of a storage device and a storage unit provided in each of the plurality of data processing devices.
  10.  第1のデータフロープログラムを参照して、該第1のデータフロープログラムを表す第1の有向無閉路グラフ(DAG:Directed Acyclic Graph)と、該第1のDAGの節点に相当する処理の実行順序を表す第1の処理実行順序情報とを生成するとともに、第2のデータフロープログラムを参照して、該第2のデータフロープログラムを表す第2のDAGと、該第2のDAGの節点に相当する処理の実行順序を表す第2の処理実行順序情報とを生成する処理と、
     前記第1の処理実行順序情報及び前記第2の処理実行順序情報に基いて、前記第1のDAG及び前記第2のDAGの節点に相当する処理を複数のデータ処理装置に割り当てる処理と、
     前記第1のDAG及び前記第2のDAG並びに前記第1の処理実行順序情報及び前記第2の処理実行順序情報を参照して、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替える処理と、をコンピュータに実行させることを特徴とするプログラム。
    Referring to the first data flow program, a first directed acyclic graph (DAG) representing the first data flow program and execution of a process corresponding to a node of the first DAG Generating first processing execution order information representing the order, and referring to the second data flow program, the second DAG representing the second data flow program, and the nodes of the second DAG A process of generating second process execution order information representing an execution order of the corresponding process;
    A process of allocating a process corresponding to a node of the first DAG and the second DAG to a plurality of data processing devices based on the first process execution order information and the second process execution order information;
    Referring to the first DAG, the second DAG, the first process execution order information, and the second process execution order information, they correspond to the nodes of the first DAG and the second DAG. A program for causing a computer to execute processing for replacing data used for processing between a storage unit of a storage device and a storage unit provided in each of the plurality of data processing devices.
PCT/JP2010/072994 2009-12-24 2010-12-21 Scheduling device, scheduling method and program WO2011078162A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011547562A JP5810918B2 (en) 2009-12-24 2010-12-21 Scheduling apparatus, scheduling method and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009293082 2009-12-24
JP2009-293082 2009-12-24

Publications (1)

Publication Number Publication Date
WO2011078162A1 true WO2011078162A1 (en) 2011-06-30

Family

ID=44195689

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/072994 WO2011078162A1 (en) 2009-12-24 2010-12-21 Scheduling device, scheduling method and program

Country Status (2)

Country Link
JP (1) JP5810918B2 (en)
WO (1) WO2011078162A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015526821A (en) * 2012-08-20 2015-09-10 キャメロン,ドナルド,ケヴィン Processing resource allocation
WO2016063482A1 (en) * 2014-10-23 2016-04-28 日本電気株式会社 Accelerator control device, accelerator control method, and program storage medium
WO2016181648A1 (en) * 2015-05-12 2016-11-17 日本電気株式会社 Accelerator control device, accelerator control method, and recording medium
WO2017131187A1 (en) * 2016-01-29 2017-08-03 日本電気株式会社 Accelerator control device, accelerator control method and program
JP2018049444A (en) * 2016-09-21 2018-03-29 日本電気株式会社 Parallel computing system and management method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256221A (en) * 2002-02-28 2003-09-10 Fujitsu Ltd Parallel process executing method and multi-processor type computer
JP2008176804A (en) * 2008-02-18 2008-07-31 Nec Corp Task scheduling system, method, and program
JP2008217134A (en) * 2007-02-28 2008-09-18 Univ Waseda Memory management method, information processor, creation method of program, and program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389587B1 (en) * 1999-02-04 2002-05-14 Sun Microsystems, Inc. User interface for developing and executing data flow programs and methods, apparatus, and articles of manufacture for optimizing the execution of data flow programs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256221A (en) * 2002-02-28 2003-09-10 Fujitsu Ltd Parallel process executing method and multi-processor type computer
JP2008217134A (en) * 2007-02-28 2008-09-18 Univ Waseda Memory management method, information processor, creation method of program, and program
JP2008176804A (en) * 2008-02-18 2008-07-31 Nec Corp Task scheduling system, method, and program

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015526821A (en) * 2012-08-20 2015-09-10 キャメロン,ドナルド,ケヴィン Processing resource allocation
WO2016063482A1 (en) * 2014-10-23 2016-04-28 日本電気株式会社 Accelerator control device, accelerator control method, and program storage medium
JPWO2016063482A1 (en) * 2014-10-23 2017-08-17 日本電気株式会社 Accelerator control device, accelerator control method, and computer program
WO2016181648A1 (en) * 2015-05-12 2016-11-17 日本電気株式会社 Accelerator control device, accelerator control method, and recording medium
JPWO2016181648A1 (en) * 2015-05-12 2018-03-01 日本電気株式会社 Accelerator control device, accelerator control method, and recording medium
US10606635B2 (en) 2015-05-12 2020-03-31 Nec Corporation Accelerator control apparatus, accelerator control method, and storage medium
WO2017131187A1 (en) * 2016-01-29 2017-08-03 日本電気株式会社 Accelerator control device, accelerator control method and program
JPWO2017131187A1 (en) * 2016-01-29 2018-11-15 日本電気株式会社 Accelerator control device, accelerator control method and program
US10831547B2 (en) 2016-01-29 2020-11-10 Nec Corporation Accelerator control apparatus for analyzing big data, accelerator control method, and program
JP2018049444A (en) * 2016-09-21 2018-03-29 日本電気株式会社 Parallel computing system and management method

Also Published As

Publication number Publication date
JPWO2011078162A1 (en) 2013-05-09
JP5810918B2 (en) 2015-11-11

Similar Documents

Publication Publication Date Title
CN110058932B (en) Storage method and storage system for data stream driving calculation
Warneke et al. Exploiting dynamic resource allocation for efficient parallel data processing in the cloud
JP5400482B2 (en) Management computer, resource management method, resource management program, recording medium, and information processing system
KR101827369B1 (en) Apparatus and method for managing data stream distributed parallel processing service
KR101553649B1 (en) Multicore apparatus and job scheduling method thereof
US8230432B2 (en) Defragmenting blocks in a clustered or distributed computing system
CN102937918B (en) A kind of HDFS runtime data block balance method
JP5810918B2 (en) Scheduling apparatus, scheduling method and program
KR102110812B1 (en) Multicore system and job scheduling method thereof
KR20110075297A (en) Apparatus and method for parallel processing in consideration of degree of parallelism
Song et al. Modulo based data placement algorithm for energy consumption optimization of MapReduce system
CN103761146A (en) Method for dynamically setting quantities of slots for MapReduce
Sun et al. HPSO: Prefetching based scheduling to improve data locality for MapReduce clusters
Wang et al. Dependency-aware network adaptive scheduling of data-intensive parallel jobs
CN107528871B (en) Data analysis in storage systems
Perwej The ambient scrutinize of scheduling algorithms in big data territory
CN111352735A (en) Data acceleration method, device, storage medium and equipment
Maleki et al. TMaR: a two-stage MapReduce scheduler for heterogeneous environments
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
Chen et al. Data prefetching and eviction mechanisms of in-memory storage systems based on scheduling for big data processing
Tandon et al. Minimizing remote accesses in mapreduce clusters
Khan et al. Data locality in Hadoop cluster systems
Ehsan et al. LiPS: A cost-efficient data and task co-scheduler for MapReduce
Subedi et al. Rise: Reducing i/o contention in staging-based extreme-scale in-situ workflows
Chen et al. A real-time scheduling strategy based on processing framework of Hadoop

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10839392

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011547562

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10839392

Country of ref document: EP

Kind code of ref document: A1