JP5810918B2 - スケジューリング装置、スケジューリング方法及びプログラム - Google Patents

スケジューリング装置、スケジューリング方法及びプログラム Download PDF

Info

Publication number
JP5810918B2
JP5810918B2 JP2011547562A JP2011547562A JP5810918B2 JP 5810918 B2 JP5810918 B2 JP 5810918B2 JP 2011547562 A JP2011547562 A JP 2011547562A JP 2011547562 A JP2011547562 A JP 2011547562A JP 5810918 B2 JP5810918 B2 JP 5810918B2
Authority
JP
Japan
Prior art keywords
data
dag
execution order
order information
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011547562A
Other languages
English (en)
Other versions
JPWO2011078162A1 (ja
Inventor
小林 大
大 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2011547562A priority Critical patent/JP5810918B2/ja
Publication of JPWO2011078162A1 publication Critical patent/JPWO2011078162A1/ja
Application granted granted Critical
Publication of JP5810918B2 publication Critical patent/JP5810918B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/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)

Description

[関連出願についての記載]
本発明は、日本国特許出願:特願2009−293082号(2009年12月24日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、スケジューリング装置、スケジューリング方法及びプログラムに関し、特に、並列データ処理システムにおけるスケジューリング装置、スケジューリング方法及びプログラムに関する。
並列データ処理システムにおいては、ネットワークに並列に接続された複数の計算機に処理するデータを記憶させ、複数の計算機で並列にデータ処理を行う。並列データ処理システムの典型的な方式として、処理に応じてデータを配置する並列データベース方式(非特許文献1)と、データ配置に応じて処理を配置するMapReduce方式(非特許文献2)がある。MapReduce方式では、データは、内容に拠らずに分割され、並列データ処理システムを構成する計算機に格納される。
並列データ処理システムにおいてデータを処理して結果を得るためのプログラムは、処理内容を節点とし、データの流れを枝とする有向無閉路グラフ(DAG:Directed Acyclic Graph)構造によって表現することができる。かかるプログラムを、データフロープログラムと呼ぶ。
非特許文献1に記載された並列データベースでは、SQL等のクエリ言語で記載された一連のプログラムが、クエリオプティマイザと呼ばれるシステム内部処理の一部によって、DAG構造のクエリ木に変換される。また、非特許文献3に記載されたPig Latin及び非特許文献4に記載されたDryadLINQでは、プログラムを記述するユーザが直接DAG構造のプログラムを記述する。
DAG構造で表現されたデータフロープログラムは、処理スケジューラ機能により、利用するシステムにおける処理動作に変換されて順に実行される。非特許文献3に記載されたPig Latin及び非特許文献5に記載されたHadoopでは、DAG構造の各節点にあたる処理内容は、処理スケジューラ機能(JobTracker)によって、MapReduce処理に変換されて実行される。
複数の計算機によって構成されたシステムを時分割して利用する技術は、並列計算機上の計算スケジューリングとして多数知られている。非特許文献6において、複数の計算機にまたがる処理を、異なる処理に置き換えるギャングスケジュール技術が記載されている。特許文献1に記載された技術では、さらに、処理をプロセスからギャンググループという単位に分割して時分割利用している。また、特許文献2に記載されたスケジュール方式では、ジョブが複数のプロセスから成る場合に、各計算機上でのプロセスの切り替えにジョブの情報を利用する。
複数のデータ処理プログラムを時分割で置き換えるには、処理に利用する計算機以外に、使用しないデータを蓄えるための記憶装置(以下「ストレージ装置」という。)を用いる。ところで、複数の計算機又は記憶装置にまたがるデータを入れ替える技術が知られている。特許文献3に記載された方法によると、データの利用傾向を反映してデータを再展開することができる。また、特許文献4に記載された方法によると、処理を停止することなく、データセットを入れ替えることができる。このようにデータ処理プログラムを時分割で置き換える制御を行う機能を、以下では、データスケジューラ機能又はデータ割当機能という。
なお、非特許文献7において、処理の途中で生成された中間データを破棄せずに保持することで、システムを高速化する技術が記載されている。
特許第3885748号公報 特開2001−249821号公報 特願2009−083426号 特願2009−202543号
David J. DeWitt and Jim Gray,"Parallel Database Systems:The Future of High Performance Database Processing,"Communications of the ACM,Vol.36,No.6,June,1992. Jeffrey Dean and Sanjay Ghemawat,"MapReduce:Simplified Data Processing on Large Clusters,"in the Proceedings of the 6th Symposium on Operating Systems Design and Implementation(OSDI 04),December,2004. Christopher Olston, et. al.,"Pig Latin:A Not−So−Foreign Language for Data Processing,"SIGMOD’08,June,2008. Yuan Yu, et. al.,"DryadLINQ: A System for General−Purpose Distributed Data−Parallel Computing Using a High−Level Language," in the Proceedings of 8th USENIX Symposium on Operating Systems Desgin and Implementation(OSDI08),December,2008. Apache Hadoop,[2009年9月28日検索]インターネット<URL:http://hadoop.apache.org/>,[online] Atsushi Hori, et. al.,"Implementation of Gang−Scheduling on Workstation Cluster,"Job Scheduling Strategies for Parallel Processing, Lecture Notes in Computer Science,Vol.1162,pp.126−139,1996. Milena G. Ivanova, et. al.,"An Architecture for Recycling Intermediates in a Column−store,"SIGMOD’09,June,2009
上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者によってなされたものである。
処理スケジューラ機能(ないし処理割当機能)によって、並列データ処理システムに複数のデータフロープログラムを割り当てるとともに、並列データ処理システムを時分割で利用することを考える。
特許文献1、2及び非特許文献6に記載された並列計算機向けのスケジューリング技術では、プロセス間の同期について言及しているものの、利用しているデータのフローについては言及していない。また、非特許文献1〜7に記載された並列データ処理システムでは、時分割利用については言及しておらず、これらのシステムと特許文献3、4に記載された技術との組み合わせによると、処理スケジューラとデータスケジューラとが個別に動作し、システムが非効率になる。
非効率化の要因の1つとして、処理の実行中に発生する処理の入れ替えが挙げられる。すなわち、処理スケジューラによって割り当てられた、データフロープログラム内の1つの処理が行われている間に、データスケジューラによって、時分割でこの処理と他の処理との入れ替えが行われる。計算機が高速かつ低容量の記憶素子を用いて頻繁に扱うデータを処理するキャッシュ機構を有している場合、データスケジューラによる入れ替えが発生すると、キャッシュヒット率が減少して処理時間が増大する。また、処理中に中間データを破棄しない上述の機能を利用した場合には、処理中に入れ替え対象となるデータの量が処理の前後の時点よりもはるかに多くなり、データの入れ替えのための時間が増大する。
非効率化の他の要因として、ストレージ装置の性能の飽和が挙げられる。ストレージ装置が複数の下層データ記憶部から成る場合、デバイス及びネットワークの性能に応じて、下層データ記憶部のデータ転送能力は制限される。したがって、多数のデータ処理装置が同一の下層データ記憶部とデータのやり取りを行うと、データ転送量がデータ転送能力によって制限され、データ処理装置当りのデータ転送速度が減少してしまうことがある。
非効率化のさらに他の要因として、データ再利用情報を用いないことが挙げられる。例えば、処理Aと処理Bとが同一のデータを処理する場合には、処理Aの後に処理Bを行うことにより、処理Aのデータ退避及び処理Bのデータ挿入を省略することができる。しかしながら、データスケジューラが処理の順序とデータの流れを把握していない場合には、このようなことを実現することはできない。
そこで、並列データ処理システムを複数のデータフロープログラムによって時分割利用する場合において、システム性能及び資源の利用効率を向上させることが課題となる。本発明の目的は、かかる課題を解決するスケジューリング装置、スケジューリング方法及びプログラムを提供することにある。
本発明の第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の節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替えるデータ割当部と、を有し、
前記データ割当部は、前記第1の処理実行順序情報及び前記第2の処理実行順序情報に基いて、前記第1のDAGおよび前記第2のDAG構造にまたがる処理発行順序を決定し、
前記処理割当部は、前記処理発行順序に基いて、前記第1のDAG及び前記第2のDAGの節点に相当する処理を前記複数のデータ処理装置に割り当てる。
ここで、前記データ割当部は、さらに前記ストレージ装置の性能を示す情報を参照し、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報に含まれる実行順序を変更すべきか否かを判定し、変更すべきと判定した場合には、変更内容を含む変更依頼を前記プログラム解析部に出力し、
前記プログラム解析部は、前記変更依頼に応じて、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報を変更して、前記処理割当部及び前記データ割当部に出力する。
本発明の第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のDAG及び前記第2のDAG並びに前記第1の処理実行順序情報及び前記第2の処理実行順序情報を参照して、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替えるデータ割当工程と、
前記ストレージ装置の性能を示す情報を参照し、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報に含まれる実行順序を変更すべきか否かを判定し、変更すべきと判定した場合には、変更内容を含む変更依頼を生成する工程と、
前記変更依頼に応じて、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報を変更する工程と、を含む。
本発明の第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のDAG及び前記第2のDAG並びに前記第1の処理実行順序情報及び前記第2の処理実行順序情報を参照して、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替える処理と、
前記ストレージ装置の性能を示す情報を参照し、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報に含まれる実行順序を変更すべきか否かを判定し、変更すべきと判定した場合には、変更内容を含む変更依頼を生成する処理と、
前記変更依頼に応じて、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報を変更する処理と、をコンピュータに実行させる。
本発明に係るスケジューリング装置、スケジューリング方法及びプログラムによると、並列データ処理システムを複数のデータフロープログラムによって時分割利用する場合において、システム性能及び資源の利用効率を向上させることができる。
第1の実施形態に係る並列データ処理システムの構成を示すブロック図である。 第1の実施形態に係る並列データ処理システムの物理的な構成を示すブロック図である。 第1の実施形態に係る並列データ処理システムにおける並列データ処理に係る機能を示すブロック図である。 第1の実施形態に係る並列データ処理システムにおける並列データセットの時分割利用に係る機能を示すブロック図である。 DAG構造で表されたデータフロープログラムを一例として示す図である。 第2の実施形態に係る並列データ処理システムの構成を示すブロック図である。 第2の実施形態に係る並列データ処理システムの他の構成を示すブロック図である。 第3の実施形態に係る並列データ処理システムの構成を示すブロック図である。 第3の実施形態に係る並列データ処理システムの他の構成を示すブロック図である。 第3の実施形態に係る並列データ処理システムのスケジューリング装置におけるデータ処理装置割当リストを一例として示す図である。 第4の実施形態に係る並列データ処理システムの構成を示すブロック図である。 第5の実施形態に係る並列データ処理システムの構成を示すブロック図である。
第1の展開形態によると、上記第1の視点に係るスケジューリング装置が提供される。
第2の展開形態によると、
前記データ割当部は、前記複数のデータ処理装置に対して、前記第1のDAGの節点に相当する処理に用いられるデータの割り当てと、前記第2のDAGの節点に相当する処理に用いられるデータの割り当てとを、各処理が終了する度に交互に繰り返す、スケジューリング装置が提供される。
第3の展開形態によると、
前記データ割当部は、前記複数のデータ処理装置に対して、前記第1のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てと、前記第2のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てとを、これらの複数の処理のそれぞれが終了する度に交互に繰り返す、スケジューリング装置が提供される。
第4の展開形態によると、
前記データ割当部は、前記複数のデータ処理装置に対して割り当てられたデータに対する、前記第1のDAG又は前記第2のDAGのうちの一方のDAGの節点に相当する処理が、所定の期間の経過前に終了しなかった場合には、他方のDAGの節点に相当する処理に用いられるデータを前記複数のデータ処理装置に割り当てる、スケジューリング装置が提供される。
第5の展開形態によると、
前記データ割当部は、前記複数のデータ処理装置に割り当てたデータを対象とする処理を識別する処理識別子を生成し、
前記処理割当部は、前記処理識別子を参照して、前記複数のデータ処理装置に処理を割り当てる、スケジューリング装置が提供される。
第6の展開形態によると、
前記データ割当部は、第1の処理の後に第2の処理を実行する実行順序が前記第1の処理実行順序情報及び前記第2の処理実行順序情報の少なくともいずれか一方に含まれ、該第2の処理に使用されるデータが前記ストレージ装置の記憶部に記録されている場合において、前記複数のデータ処理装置のうちのいずれかのデータ処理装置から該第1の処理を終了した旨の信号を受信したときには、該第1の処理に使用されるデータを該データ処理装置の記憶部から前記ストレージ装置の記憶部に転送させるとともに、該第2の処理に使用されるデータを前記ストレージ装置の記憶部から該データ処理装置の記憶部に送信させる、スケジューリング装置が提供される。
第7の展開形態によると、
前記プログラム解析部は、前記第1のDAG及び前記第2のDAGの節点に相当する処理を、前記複数のデータ処理装置のうちのいずれのデータ処理装置に割り当てるかを示すデータ処理装置割当リストを出力し、
前記データ割当部は、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、前記ストレージ装置の記憶部と前記データ処理装置割当リストに含まれるデータ処理装置の記憶部との間においてのみ入れ替えることを特徴とする、スケジューリング装置が提供される。
第8の展開形態によると、
前記データ割当部は、さらに前記ストレージ装置の性能を示す情報を参照し、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報に含まれる実行順序を変更すべきか否かを判定し、変更すべきと判定した場合には、変更内容を含む変更依頼を前記プログラム解析部に出力し、
前記プログラム解析部は、前記変更依頼に応じて、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報を変更して、前記処理割当部及び前記データ割当部に出力する、スケジューリング装置が提供される。
第9の展開形態によると、上記第2の視点に係るスケジューリング方法が提供される。
第10の展開形態によると、上記第3の視点に係るプログラムが提供される。
第11の展開形態によると、上記第10の展開形態に係るプログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
(実施形態1)
第1の実施形態に係る並列データ処理システムについて、図面を参照して説明する。図2は、本実施形態に係る並列データ処理システムの構成を示すブロック図である。図2を参照すると、並列データ処理システムは、ネットワーク80を介して接続された、1又は2以上のデータ処理装置50a−1〜50a−n、ストレージ装置40a及びスケジューリング装置10aを有する。また、並列データ処理システムを利用するユーザが用いる計算機であるユーザ装置70も、ネットワーク80に接続されている。図2においては、一例として、データ処理装置の台数を3台とした(n=3)が、データ処理装置の台数はこれに限られない。
データ処理装置50a−i(i=1、2、…)は、それぞれ、CPU71、データ記憶部72及びデータ転送部73を有する。CPU71により、後述する分散データ排出部、データ受信部、データ処理部を実現する。データ記憶部72により、後述する上層データ記憶部を実現する。CPU71及びとデータ転送部73により、後述するデータ受信部を実現する。
ストレージ装置40aは、CPU81、データ記憶部82及びデータ転送部83を有する。CPU81及びデータ転送部83により、後述するデータ転送部を実現する。CPU81及びデータ記憶部82により、後述する下層データ記憶部を実現する。
スケジューリング装置10aは、CPU91、データ記憶部92及びデータ転送部93を有する計算機である。CPU91、データ記憶部92及びデータ転送部93を用いて、後述するプログラム解析部、処理割当部、データ割当部を実現する。
スケジューリング装置10aは、図2のような単一の計算機でもよい。また、スケジューリング装置10aを複数の計算機によって実現し、各計算機がスケジューリング装置10aの複数の機能のそれぞれを個別に実行するようにしてもよい。また、データ処理装置50a−iの一部又はストレージ装置40aが、スケジューリング装置10aの機能を代替するようにしてもよい。
データ記憶部72、82、92は、例えば、ハードディスクドライブ、フラッシュメモリ、DRAM、MRAM(Magnetoresistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、PRAM(Phase change RAM)、RAIDコントローラに結合された記憶装置、磁気テープのようにデータを記録可能な物理媒体、又は、ストレージノードの外部に設置された媒体にデータを記録する制御装置である。
ネットワーク80及びデータ転送部73、83、93は、例えば、Ethernet(登録商標)、Fibre Channel、FCoE(Fibre Channel over Ethernet(登録商標))、InfiniBand、QsNet、Myrinet若しくはEthernet、又は、これらを利用するTCP/IP若しくはRDMAのような上位プロトコルによって実現しうる。ただし、ネットワーク80の実現方法は、これらに限られない。
まず、図3を参照して、並列データ処理に係る機能について説明する。
データ処理装置50a−iは、上層データ記憶部61に処理されるデータを記憶する。複数のデータ処理装置50a−1〜50a−nがある場合、1つの処理内容に必要なデータセットは分割され、それぞれ個別のデータ処理装置50a−iに格納されている。例えば、データセットに含まれる個々のデータの識別子、又は、識別子をハッシュ関数で処理した値の範囲を分割することで、どのデータがどのデータ処理装置50a−iに格納されるかを決定するハッシュ分割を利用することができる。また、任意のデータを任意の上層データ記憶部61に格納する任意配置を利用することもできる。なお、データの配置方法は、これらに限られない。
図3を参照すると、スケジューリング装置10aは、プログラム解析部21及び処理割当部22を有する。
プログラム解析部21は、ユーザ装置70からのプログラムを受信し、プログラムを実行するデータ処理装置50a−iを特定し、処理制御を行う。
ユーザからのプログラムは、データに対する複数の処理内容と、処理に利用するデータを指し示す利用データ情報と、処理の順序制約とが記載されたデータフロープログラムである。データフロープログラムは、処理内容を節点とし、処理に利用するデータを指し示す利用データ情報を枝とする、有向無閉路グラフ(DAG)構造によって表すことができる。
図5は、DAG構造で表されたデータフロープログラムを一例として示す図である。データフロープログラムは、一例として、非特許文献3、4に記載された言語でデータフロー構造を直接記載したプログラムである。また、データフロープログラムは、ユーザによる、SQL等のクエリ言語に基くプログラムを、データベース管理システムのクエリオプティマイザによって変換して得られたクエリ木を表す情報であってもよい。なお、データフロープログラムは、これらに限定されない。
プログラム解析部21は、入力されたデータフロープログラムを解釈し、利用可能なデータ処理装置50a−iの性能及び空き情報、並びに、利用するデータの配置情報に基いて、データ処理実行順序を決定する。
例えば、データ配置が任意配置である場合には、DAGの節点における処理内容を、全ノードに対するMap処理及びReduce処理に分解して実行することができる。また、個別のデータロード処理を割り当て、そのデータ量に応じた計算量を計算し、計算量が最小となる順に、DAGの節点を各データ処理装置に配置してもよい。なお、プログラム解析部21による処理実行順序を決定する方法は、これらに限定されない。
処理割当部22は、プログラム解析部21により決定された処理実行順序を表す処理実行順序情報に基いて、データ処理装置50a−iのデータ処理部65を制御し、実際にデータの処理を行わせる。
次に、図4を参照して、並列データセットの時分割利用に係る機能について説明する。
図4を参照すると、ストレージ装置40aは、下層データ記憶部45及びデータ転送部46を有する。
下層データ記憶部45は、複数の処理の対象とされるデータを格納している。
データ転送部46は、格納するデータの一部をデータ転送命令に応じてデータ処理装置50a−iにコピー又は移動する。
図4を参照すると、データ処理装置50a−iは、上層データ記憶部61、分散データ排出部62、データ受信部63及びデータ処理部65を有する。
上層データ記憶部61は、少なくとも1つの処理の対象となるデータを格納している。
データ受信部63は、ストレージ装置40aから送信されたデータを上層データ記憶部61に格納する。
分散データ排出部62は、データ処理排出命令によって、上層データ記憶部61のデータの一部と、現在のデータ処理部65の処理時点で復元可能な情報を表す処理情報を、データ処理排出命令によって示されたストレージ装置40aの下層データ記憶部45にコピー又は移動する。
分散データ排出部62は、例えば、特許文献4に記載された方法によって実現した場合には、データ処理装置の処理を停止することなくデータを排出することができる。また、データ処理部65がVM(Virtual Machine)上で動作する場合には、分散データ排出部62は、VMマイグレーション機能及びチェックポイント機能を用いて、処理とデータを記録可能なデータに変換してストレージ装置40aに送信してもよい。
図4を参照すると、スケジューリング装置10aは、データ割当部23をさらに有する。
データ割当部23は、データ転送命令を発行することにより、ストレージ装置40aからデータ処理装置50a−iにデータを転送する。また、データ割当部23は、データ処理排出命令を発行することにより、データ処理装置50a−iからストレージ装置40aにデータを排出する。なお、データ割当部23は、データ転送命令及びデータ処理排出命令を同時に発行することにより、上層データ記憶部61と下層データ記憶部45との間でデータを入れ替えることができる。
このとき、特許文献3に記載された方法によると、下層データ記憶部45から上層データ記憶部61にさらにデータを転送する場合に、次の処理に適したデータ配置にすることができる。
図1は、本実施形態に係る並列データ処理システムの構成を示すブロック図である。図1の並列データ処理システムは、並列データセットの時分割利用を行う並列データ処理システムである。なお、図1には、以下の情報のやり取りも記載されている。
図1を参照すると、スケジューリング装置10は、プログラム解析部21、処理割当部22及びデータ割当部23を有する。
プログラム解析部21は、データフロープログラムを入力とし、処理割当部22に処理実行順序情報を出力し、データ割当部23に処理実行順序情報と、データフロープログラムのDAG構造を表すDAG構造情報とを出力する。
データ割当部23は、処理実行順序情報及びDAG構造情報に基いて、上層データ記憶部61と下層データ記憶部45との間で効率良くデータを入れ替えることができるタイミングで、データ転送命令及びデータ処理排出命令を出力する。
例えば、図5における処理は、Load2、Filter1、Load1、Mining、Load3、Filter2、Statistical、JOINの順に実行されることが処理実行順序情報に含まれているものとする。このとき、データ割当部23は、Filter1の実行後にLoad1が行われることを知り得るため、このタイミングでデータの入れ替えを行わず、Filter1のデータをそのまま上層データ記憶部61に残すことができる。また、Miningの実行後、Load3、Filter2ではMining3の結果は利用されないため、データ割当部23は、Miningの結果データを下層データ記憶部45に排出し、data3を上層データ記憶部61に転送することができる。
上層データ記憶部61がランダムアクセスを高速に行うことができるDRAM又はSSDで構成され、下層データ記憶部45がシーケンシャルアクセスを高速に行うことができるHDDで構成されている場合には、このような制御に基いて、予め使用するデータをシーケンシャルアクセスにより上層データ記憶部61に転送することで、システムの性能を向上することができる。一方、上層データ記憶部61が格納するデータ容量に応じて電力を消費するデータグリッド構成を採用し、下層データ記憶部45が格納するデータ容量に拠らずほぼ一定の電力を消費する大容量HDDを採用している場合には、このような制御に基いて、上層データ記憶部61のデータ量を削減することで、システムの消費電力を削減することができる。
また、データ割当部23が処理の傾向に応じてデータ配置を変更する方法を併用した場合には、DAG構造情報を元に、次の処理に適したデータ配置となるように、上層データ記憶部にデータを配置することができる。このようなデータ配置の変更方法として、例えば、ハッシュジョインに用いられるハッシュ分割、及び、特許文献3に記載された方法が挙げられる。
本実施形態に係る並列データ処理システムによると、システムを時分割利用する場合に、システム性能及び資源の利用効率を向上させることができる。その理由は、データフロープログラムにおける処理の順序を参照することで、上層データ記憶部61のデータ量を制御することができるからである。
(実施形態2)
第2の実施形態に係る並列データ処理システムについて、図面を参照して説明する。本実施形態では、データ処理装置における処理終了を検知することで、並列データ処理システムのさらに効率の良い時分割利用を実現する。図6は、本実施形態に係る並列データ処理システムの構成を示すブロック図である。
図6を参照すると、本実施形態に係る並列データ処理システムにおけるデータ処理装置51は、第1の実施形態における機能に加え、CPU71(図2参照)を用いて実現される処理終了検知部66をさらに有する。
処理終了検知部66は、処理割当部22によって命令された1つの処理が終了したことを検知し、処理終了信号を出力する。ここで、1つの処理とは、DAG構造の1つの節点に相当する処理のうちの、データ処理装置51に割り当てられた処理を指す。処理終了検知部66は、例えば、プログラムの末端に特殊な割り込み命令を設けることで実現し得る。
本実施形態に係る並列データ処理システムのスケジューリング装置11におけるデータ割当部25は、さらに処理終了信号を入力とする。プログラム解析部21は、第1の実施形態と同様に、データフロープログラムを入力とし、処理割当部22に処理実行順序情報を出力し、DAG構造情報をデータ割当部25に処理実行順序情報と、データフロープログラムのDAG構造を表すDAG構造情報とを出力する。
データ割当部25は、入力された処理実行順序情報、DAG構造情報及び処理終了信号に基いて、上層データ記憶部61と下層データ記憶部45との間で効率良くデータを入れ替えることができるタイミングで、データ転送命令及びデータ処理排出命令を出力するとともに、データ処理装置51を識別するデータ処理装置識別情報と、処理内容を識別する処理識別情報とをストレージ装置41のデータ転送部47に出力する。
処理終了検知部66を導入することによって、データ割当部25は、各データ処理装置51における処理終了タイミングを知ることができ、さらに効率良くデータの入れ替え処理を行うことができる。
例えば、図5における処理は、Load2、Filter1、Load1、Mining、Load3、Filter2、Statistical、JOINの順に実行されることが処理実行順序情報に含まれているものとする。また、データの処理方式をMapReduce方式とする。すなわち、すべてのデータ処理装置51は処理対象データを任意配置で保持し、各節点における処理はすべてのデータ処理装置51にばらまかれるものとする。
この場合、処理Filter1が終了したデータ処理装置51から順次、処理Load1を行うことができる。また、処理Filter2が終了したデータ処理装置51から順次、処理Filter1の結果データをロードし、次の処理Statisticalに備えることができる。
また、処理が終了したことを検出することができるため、処理途中でデータを入れ替えてしまうことを防ぐことができる。データ処理装置51は、処理途中において、処理対象データに加え、処理の途中で生成される中間データを保持することがある。処理途中においてデータを入れ替えると、このような中間データを含むデータを入れ替える必要があるため、データ入れ替え処理に要する時間が増大することがある。すなわち、処理の終了を検出できることにより、中間データの入れ替えを回避でき、システムにおける資源の利用効率を向上させ、処理時間を短縮することもできる。
また、処理終了検知部66に加え、排出済みのデータにもアクセス可能な機構を分散データ排出部62に導入した場合には、プログラム解析部21は、すべてのデータが上層データ記憶部6内に存在すると判定でき、かつ、多くのデータを下層データ記憶部45に格納することができる。このとき、プログラム解析部21として、時分割利用に対応しない従来の実装の多くを流用することができる。
排出済みのデータにもアクセス可能とするための機構として、例えば、特許文献4に記載された方法が挙げられる。
図7は、本実施形態に係る並列データ処理システムの他の構成を示すブロック図である。図7を参照すると、この並列データ処理システムにおいては、ストレージ装置42は、複数の下層データ記憶部45を有する。このとき、各データ処理装置52は、各下層データ記憶部45に個別にアクセスすることができる。
下層データ記憶部45は、デバイス及びネットワークの性能に応じて、データ転送能力が制限される。したがって、多数の上層データ記憶部61が同一の下層データ記憶部45とデータのやり取りを行うと、データ転送量がデータ転送能力によって制限され、データ処理装置52当たりのデータ転送速度が減少してしまうことがある。
そこで、データ割当部26は、処理終了検知部66から処理終了信号を受け、データ処理排出命令を送信する際、ストレージ装置42の資源がより均等に使用されるように、下層データ記憶部45の割り当てを計算し、計算した割り当てに基いて下層データ記憶部45を識別する情報を下層データ記憶部識別情報として送信する。
割り当て方法として、例えば、ラウンドロビン手法を用いることができる。すなわち、下層データ記憶部45を任意の順に並べた下層データ記憶部リストを保持し、処理終了検知部を受信する度に、下層データ記憶部リストの先頭から順に下層データ記憶部45を割り当てるようにしてもよい。また、他の割り当て方法として、ネットワーク上の転送時間を考慮し、データ処理装置52に近い下層データ記憶部45から順に割り当てるようにしてもよい。なお、割当方法は、これらに限定されない。
このとき、データ処理装置52の分散データ排出部67は、指定された下層データ記憶部45にデータを排出する。
このような構成によると、ストレージ装置42のデータ転送能力をより多く使用してデータの入れ替えを行うことができ、システムのデータ処理能力を向上させることができる。
(実施形態3)
第3の実施形態に係る並列データ処理システムについて、図面を参照して説明する。本実施形態では、全部ではなく一部のデータ処理装置50を利用する際にはさらに効率が良くなる時分割利用を実現する。図8は、本実施形態に係る並列データ処理システムの構成を示すブロック図である。
本実施形態に係る並列データ処理システムでは、プログラム解析部27は、DAGの各節点の処理をデータ処理装置50に割り当てる際に、必ずしもすべてのデータ処理装置50に割り当てるだけでなく、一部のデータ処理装置50に割り当てるようにしてもよい。また、プログラム解析部27は、DAGの各節点に対応する処理をどのデータ処理装置50に割り当てたかを示すデータ処理装置割当リストをさらに出力する。
図10は、本実施形態に係る並列データ処理システムのスケジューリング装置13におけるデータ処理装置割当リストを一例として示す図である。なお、図10のリストは例示にすぎず、リストのフォーマットはこれに限定されない。
データ割当部28は、処理実行順序情報及びDAG構造情報以外に、さらにデータ処理装置割当リストを入力とし、データ転送命令及びデータ処理排出命令を生成するために利用する。データ割当部28は、データ処理装置割当リストを用いることによって、システム内の資源をさらに効率良く扱う命令を生成することができる。
一例として、図5に示したデータフロープログラムの処理を、図10に記載したデータ処理装置割当リストに示したデータ処理装置で行われる場合に、処理Filter2の後に処理Statisticalを実行することを考える。図10を参照すると、処理Filter2はデータ処理装置6、7で実行され、処理Statisticalはデータ処理装置1〜7で実行される。また、処理Filter2の前に、処理Miningがデータ処理装置2〜5で実行されているものとする。
このとき、データ処理装置割当リストの情報を使うことで、処理Miningの結果をストレージ装置40に追いやり、処理Miningの入力に用いた処理Filter1の出力データをそのままデータ処理装置2〜5に残し、処理Filter2の出力と処理Filter1の出力を利用して処理Statisticalを実行することができる。これにより、データ転送量を削減し、システム資源のさらに効率の良い利用が可能となる。
図9は、本実施形態に係る並列データ処理システムの他の構成を示すブロック図である。図9を参照すると、データ処理装置53は、省電力制御部67をさらに有する。
省電力制御部67は、電力制御命令に応じて、データ処理装置53の処理能力と消費電力を変化させる。一般に、処理能力を高めるにしたがって、消費電力は増大する。
省電力制御部67による電力制御として、例えば、電力制御命令に応じてデータ処理装置53の電源をオン・オフすることが考えられる。また、電力制御の他の例として、ACPI(Advanced Configuration and Power Interface)を用いて、データ処理装置を構成するHDDの回転数を制御したり、CPUの動作周波数を制御する等の省電力技術を利用することができる。なお、省電力制御の方法は、これらに限定されない。
図9を参照すると、データ割当部29は、データ処理装置53の省電力制御部67に、電力制御命令を出力する。このとき、データ割当部29は、システムの性能を維持しつつ、システムの使用電力を効率良く制御することができる。
図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で行われている処理の性能に影響を及ぼすことなく、システム全体の消費電力を削減することができる。
(実施形態4)
第4の実施形態に係る並列データ処理システムについて、図面を参照して説明する。第4の実施形態では、スケジューリング装置は複数のプログラム解析部を有し、さらに効率の良い時分割利用を実現する。図11は、本実施形態に係る並列データ処理システムの構成を示すブロック図である。
図11を参照すると、スケジューリング装置16は、プログラム解析部A31及びプログラム解析部B32を有する。プログラム解析部A31は、データフロープログラムAを入力とし、データフロープログラムAに対する処理実行順序情報とDAG構造情報を出力する。同様に、プログラム解析部B32は、データフロープログラムBを入力とし、データフロープログラムBに対する処理実行順序情報とDAG構造情報を出力する。このとき、プログラム解析部A31、B32は、それぞれ、データ処理装置50を独占的に利用していることを前提として、処理割当を行う。
例えば、単一の並列データ処理システムを複数のアプリケーション間で共有する場合が考えられる。また、他の例として、単一の並列データ処理システムを、異なる企業のアプリケーション間で共有する場合が考えられる。
データ割当部35は、複数のプログラム解析部A31、B32から出力された複数の処理実行順序情報及びDAG構造情報を入力とする。データ割当部35は、複数の処理実行順序情報及びDAG構造情報に基いて、複数のDAG構造にまたがる処理発行順序を決定する。
データ割当部35は、実施形態1ないし3と同様にデータ処理排出命令とデータ転送命令を送信するとともに、次に上層データ記憶部61にロードされるデータを対象とする処理内容を識別する処理識別子を、処理割当部33に送信する。
処理割当部33は、複数のプログラム解析部A31、B32のそれぞれから出力された処理実行順序情報と、データ割当部35から出力された処理識別子に基づいて処理を選択し、その処理を命じる処理制御を、各データ処理部65に発行する。
一例として、データフロープログラムK1及びデータフロープログラムK2が、それぞれ図5に示したDAG構造を有し、いずれも、Load2、Filter1、Load1、Mining、Load3、Filter2、Statistical、JOINの順に処理が実行されることが決定されたものとする。
第1のデータ割当方法として、データフロープログラムK1、K2のそれぞれの節点ごとに、割当を行うようにしてもよい。すなわち、K1.Load2、K2.Load2、K1.Filter1、K2.Filter1、…、のような順序で割り当てることで、それぞれのデータフロープログラムK1、K2は、並列データ処理システムを均等に利用することができる。
第2のデータ割当方法として、データの入れ替え量を少なくする単位で切り替えを行うようにしてもよい。すなわち、K1.(Load2、Filter1)、K2.(Load2、Filter1)、K1.(Load1、Mining)、K2.(Load1、Mining)、…のような順序で割り当てることができる。このとき、データ入れ替え回数を削減することができる。
第3のデータ割当方法として、データフロープログラムK1とK2とを所定の時間単位で切り替えるようにしてもよい。例えば、5秒経過後に処理が途中であってもK1の処理を排出してK2の処理をロードし、さらに5秒経過後にK2の処理を排出してK1の処理の続きをロードするような処理の切替を繰り返すようにしてもよい。このとき、仮にデータフロープログラムK1が処理に長い時間を要するものであっても、これに影響されることなく、データフロープログラムK2の処理を平行して進めることができる。
なお、これらのデータ割当方法は例示にすぎず、本発明はこれらに限定されない。
本実施形態の並列データ処理システムによると、単一の並列データ処理システムを時分割で利用して、複数のデータフロープログラムを実行することができる。
(実施形態5)
第5の実施形態に係る並列データ処理システムについて、図面を参照して説明する。図12は、本実施形態に係る並列データ処理システムの構成を示すブロック図である。本実施形態では、データ割当部37はプログラム解析部36が決定した処理実行順序を変更することができる。
プログラム解析部36は、第1の処理実行順情報とDAG構造情報をデータ割当部37に出力する。
データ割当部37は、ストレージ装置40のデータの格納方法などの情報から、処理実行順序を変更したほうが良いものと判断した場合には、変更した処理実行順情報を表す処理実行順序変更依頼をプログラム解析部36に出力する。
プログラム解析部36は、処理実行順序変更依頼を受けた場合には、これを精査して、新しい第2の処理実行順序情報を生成する。並列データ処理システムの時分割利用は、第2の処理実行順序情報に基いて行われる。
例えば、処理A及び処理Bが利用するデータセットが同一の場合、又は、処理A及び処理Bが利用するデータを同時に読み出すことが下層データ記憶部45のデバイス特性上効率が良い場合において、処理Aの実行順序と処理Bの実行順序とが離れているときには、処理順序を変更することが好ましい。この場合には、データ割当部37は、処理順序を変更して、処理Aの実行に引き続いて処理Bが実行されるようにし、処理Aと処理Bにおいて利用するデータセットを同時に上層データ記憶部61に配置するようにデータ処理装置50及びストレージ装置40を制御する。これにより、並列データ処理システムの性能を向上させることができる。なお、処理順序が変更される場合は、これに限定されない。
本発明に係る並列データ処理システムは、並列データベースシステム、並列データ処理システム、分散ストレージ、並列ファイルシステム、分散データベース、データグリッド、クラスタコンピュータに適用することができる。特に、本発明に係る並列データ処理システムによると、複数のアプリケーションにまたがる複数の処理又は単一アプリケーション内の複数の処理によって、並列データ処理システムを時分割で効率良く利用することができる。
本発明において、下記の付記に掲げる形態が少なくとも含まれる。
(付記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の節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替えるデータ割当部と、を備えていることを特徴とするスケジューリング装置。
(付記2)前記データ割当部は、前記複数のデータ処理装置に対して、前記第1のDAGの節点に相当する処理に用いられるデータの割り当てと、前記第2のDAGの節点に相当する処理に用いられるデータの割り当てとを、各処理が終了する度に交互に繰り返すことを特徴とする、付記1に記載のスケジューリング装置。
(付記3)前記データ割当部は、前記複数のデータ処理装置に対して、前記第1のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てと、前記第2のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てとを、これらの複数の処理のそれぞれが終了する度に交互に繰り返すことを特徴とする、付記1に記載のスケジューリング装置。
(付記4)前記データ割当部は、前記複数のデータ処理装置に対して割り当てられたデータに対する、前記第1のDAG又は前記第2のDAGのうちの一方のDAGの節点に相当する処理が、所定の期間の経過前に終了しなかった場合には、他方のDAGの節点に相当する処理に用いられるデータを前記複数のデータ処理装置に割り当てることを特徴とする、付記2又は3に記載のスケジューリング装置。
(付記5)前記データ割当部は、前記複数のデータ処理装置に割り当てたデータを対象とする処理を識別する処理識別子を生成し、
前記処理割当部は、前記処理識別子を参照して、前記複数のデータ処理装置に処理を割り当てることを特徴とする、付記1乃至4のいずれか一に記載のスケジューリング装置。
(付記6)前記データ割当部は、第1の処理の後に第2の処理を実行する実行順序が前記第1の処理実行順序情報及び前記第2の処理実行順序情報の少なくともいずれか一方に含まれ、該第2の処理に使用されるデータが前記ストレージ装置の記憶部に記録されている場合において、前記複数のデータ処理装置のうちのいずれかのデータ処理装置から該第1の処理を終了した旨の信号を受信したときには、該第1の処理に使用されるデータを該データ処理装置の記憶部から前記ストレージ装置の記憶部に転送させるとともに、該第2の処理に使用されるデータを前記ストレージ装置の記憶部から該データ処理装置の記憶部に送信させることを特徴とする、付記1乃至5のいずれか一に記載のスケジューリング装置。
(付記7)前記データ割当部は、前記ストレージ装置が複数の記憶部を備えている場合に、前記第1のDAG又は前記第2のDAGの節点に相当する処理に用いられるデータを該複数の記憶部のうちのいずれの記憶部に出力すべきかを、前記複数のデータ処理装置に通知することを特徴とする、付記6に記載のスケジューリング装置。
(付記8)前記データ割当部は、前記第1のDAG又は前記第2のDAGの節点に相当する処理に用いられるデータを出力すべき記憶部を、前記複数の記憶部の中からラウンドロビンアルゴリズムに基いて選択するように、前記複数のデータ処理装置に通知することを特徴とする、付記7に記載のスケジューリング装置。
(付記9)前記プログラム解析部は、前記第1のDAG及び前記第2のDAGの節点に相当する処理を、前記複数のデータ処理装置のうちのいずれのデータ処理装置に割り当てるかを示すデータ処理装置割当リストを出力し、
前記データ割当部は、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、前記ストレージ装置の記憶部と前記データ処理装置割当リストに含まれるデータ処理装置の記憶部との間において入れ替えることを特徴とする、付記1乃至8のいずれか一に記載のスケジューリング装置。
(付記10)前記データ割当部は、前記複数のデータ処理装置のうちの、前記データ処理装置割当リストに含まれていないデータ処理装置に対し、消費電量を削減するように通知することを特徴とする、付記9に記載のスケジューリング装置。
(付記11)前記データ割当部は、さらに前記ストレージ装置の性能を示す情報を参照し、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報に含まれる実行順序を変更すべきか否かを判定し、変更すべきと判定した場合には、変更内容を含む変更依頼を前記プログラム解析部に出力し、
前記プログラム解析部は、前記変更依頼に応じて、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報を変更して、前記処理割当部及び前記データ割当部に出力することを特徴とする、付記1乃至10のいずれか一に記載のスケジューリング装置。
(付記12)付記1乃至11のいずれか一に記載のスケジューリング装置と、
前記複数のデータ処理装置、及び/又は、前記ストレージ装置と、を備えていることを特徴とする、並列データ処理システム。
(付記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の節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替えるデータ割当工程と、を含むことを特徴とするスケジューリング方法。
(付記14)前記データ割当工程において、前記複数のデータ処理装置に対して、前記第1のDAGの節点に相当する処理に用いられるデータの割り当てと、前記第2のDAGの節点に相当する処理に用いられるデータの割り当てとを、各処理が終了する度に交互に繰り返すことを特徴とする、付記13に記載のスケジューリング方法。
(付記15)前記データ割当工程において、前記複数のデータ処理装置に対して、前記第1のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てと、前記第2のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てとを、これらの複数の処理のそれぞれが終了する度に交互に繰り返すことを特徴とする、付記13に記載のスケジューリング方法。
(付記16)前記データ割当工程において、前記複数のデータ処理装置に対して割り当てられたデータに対する、前記第1のDAG又は前記第2のDAGのうちの一方のDAGの節点に相当する処理が、所定の期間の経過前に終了しなかった場合には、他方のDAGの節点に相当する処理に用いられるデータを前記複数のデータ処理装置に割り当てることを特徴とする、付記14又は15に記載のスケジューリング方法。
(付記17)前記データ割当工程において、前記複数のデータ処理装置に割り当てたデータを対象とする処理を識別する処理識別子を生成し、
前記処理割当工程において、前記処理識別子を参照して、前記複数のデータ処理装置に処理を割り当てることを特徴とする、付記13乃至16のいずれか1に記載のスケジューリング方法。
(付記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の節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替える処理と、をコンピュータに実行させることを特徴とするプログラム。
本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
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 ネットワーク

Claims (9)

  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の節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替えるデータ割当部と、を備え、
    前記データ割当部は、前記第1の処理実行順序情報及び前記第2の処理実行順序情報に基いて、前記第1のDAGおよび前記第2のDAG構造にまたがる処理発行順序を決定し、
    前記処理割当部は、前記処理発行順序に基いて、前記第1のDAG及び前記第2のDAGの節点に相当する処理を前記複数のデータ処理装置に割り当て、
    前記データ割当部は、さらに前記ストレージ装置の性能を示す情報を参照し、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報に含まれる実行順序を変更すべきか否かを判定し、変更すべきと判定した場合には、変更内容を含む変更依頼を前記プログラム解析部に出力し、
    前記プログラム解析部は、前記変更依頼に応じて、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報を変更して、前記処理割当部及び前記データ割当部に出力する、
    ことを特徴とするスケジューリング装置。
  2. 前記データ割当部は、前記複数のデータ処理装置に対して、前記第1のDAGの節点に相当する処理に用いられるデータの割り当てと、前記第2のDAGの節点に相当する処理に用いられるデータの割り当てとを、各処理が終了する度に交互に繰り返すことを特徴とする、請求項1に記載のスケジューリング装置。
  3. 前記データ割当部は、前記複数のデータ処理装置に対して、前記第1のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てと、前記第2のDAGの複数の節点に相当する複数の処理に用いられるデータの割り当てとを、これらの複数の処理のそれぞれが終了する度に交互に繰り返すことを特徴とする、請求項1に記載のスケジューリング装置。
  4. 前記データ割当部は、前記複数のデータ処理装置に対して割り当てられたデータに対する、前記第1のDAG又は前記第2のDAGのうちの一方のDAGの節点に相当する処理が、所定の期間の経過前に終了しなかった場合には、他方のDAGの節点に相当する処理に用いられるデータを前記複数のデータ処理装置に割り当てることを特徴とする、請求項2又は3に記載のスケジューリング装置。
  5. 前記データ割当部は、前記複数のデータ処理装置に割り当てたデータを対象とする処理を識別する処理識別子を生成し、
    前記処理割当部は、前記処理識別子を参照して、前記複数のデータ処理装置に処理を割り当てることを特徴とする、請求項1乃至4のいずれか1項に記載のスケジューリング装置。
  6. 前記データ割当部は、第1の処理の後に第2の処理を実行する実行順序が前記第1の処理実行順序情報及び前記第2の処理実行順序情報の少なくともいずれか一方に含まれ、該第2の処理に使用されるデータが前記ストレージ装置の記憶部に記録されている場合において、前記複数のデータ処理装置のうちのいずれかのデータ処理装置から該第1の処理を終了した旨の信号を受信したときには、該第1の処理に使用されるデータを該データ処理装置の記憶部から前記ストレージ装置の記憶部に転送させるとともに、該第2の処理に使用されるデータを前記ストレージ装置の記憶部から該データ処理装置の記憶部に送信させることを特徴とする、請求項1乃至5のいずれか1項に記載のスケジューリング装置。
  7. 前記プログラム解析部は、前記第1のDAG及び前記第2のDAGの節点に相当する処理を、前記複数のデータ処理装置のうちのいずれのデータ処理装置に割り当てるかを示すデータ処理装置割当リストを出力し、
    前記データ割当部は、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、前記ストレージ装置の記憶部と前記データ処理装置割当リストに含まれるデータ処理装置の記憶部との間において入れ替えることを特徴とする、請求項1乃至6のいずれか1項に記載のスケジューリング装置。
  8. コンピュータが、第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のDAG及び前記第2のDAG並びに前記第1の処理実行順序情報及び前記第2の処理実行順序情報を参照して、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替えるデータ割当工程と、
    前記ストレージ装置の性能を示す情報を参照し、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報に含まれる実行順序を変更すべきか否かを判定し、変更すべきと判定した場合には、変更内容を含む変更依頼を生成する工程と、
    前記変更依頼に応じて、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報を変更する工程と、
    を含むことを特徴とするスケジューリング方法。
  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のDAG及び前記第2のDAG並びに前記第1の処理実行順序情報及び前記第2の処理実行順序情報を参照して、前記第1のDAG及び前記第2のDAGの節点に相当する処理に用いられるデータを、ストレージ装置の記憶部と前記複数のデータ処理装置のそれぞれに設けられた記憶部との間で入れ替える処理と、
    前記ストレージ装置の性能を示す情報を参照し、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報に含まれる実行順序を変更すべきか否かを判定し、変更すべきと判定した場合には、変更内容を含む変更依頼を生成する処理と、
    前記変更依頼に応じて、前記第1の処理実行順序情報、及び/又は、前記第2の処理実行順序情報を変更する処理と、
    をコンピュータに実行させることを特徴とするプログラム。
JP2011547562A 2009-12-24 2010-12-21 スケジューリング装置、スケジューリング方法及びプログラム Active JP5810918B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011547562A JP5810918B2 (ja) 2009-12-24 2010-12-21 スケジューリング装置、スケジューリング方法及びプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009293082 2009-12-24
JP2009293082 2009-12-24
JP2011547562A JP5810918B2 (ja) 2009-12-24 2010-12-21 スケジューリング装置、スケジューリング方法及びプログラム
PCT/JP2010/072994 WO2011078162A1 (ja) 2009-12-24 2010-12-21 スケジューリング装置、スケジューリング方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2011078162A1 JPWO2011078162A1 (ja) 2013-05-09
JP5810918B2 true JP5810918B2 (ja) 2015-11-11

Family

ID=44195689

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011547562A Active JP5810918B2 (ja) 2009-12-24 2010-12-21 スケジューリング装置、スケジューリング方法及びプログラム

Country Status (2)

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

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014031540A1 (en) * 2012-08-20 2014-02-27 Cameron Donald Kevin Processing resource allocation
JPWO2016063482A1 (ja) * 2014-10-23 2017-08-17 日本電気株式会社 アクセラレータ制御装置、アクセラレータ制御方法およびコンピュータプログラム
US10606635B2 (en) 2015-05-12 2020-03-31 Nec Corporation Accelerator control apparatus, accelerator control method, and storage medium
US10831547B2 (en) 2016-01-29 2020-11-10 Nec Corporation Accelerator control apparatus for analyzing big data, accelerator control method, and program
JP6798211B2 (ja) * 2016-09-21 2020-12-09 日本電気株式会社 並列計算機システムおよび管理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284950A (ja) * 1999-02-04 2000-10-13 Sun Microsyst Inc データフロープログラムの開発のための方法、データ処理システム及びユーザインターフェイス、データフロープログラムの実行のためのデータ処理システム、データフロープログラムの開発のための方法を実行するための命令を格納したコンピュータ可読媒体、データフロープログラムの実行最適化のための方法及びシステム、並びに、データフロープログラムの実行最適化方法を実行するための命令を格納したコンピュータ可読媒体
JP2003256221A (ja) * 2002-02-28 2003-09-10 Fujitsu Ltd 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ
JP2008217134A (ja) * 2007-02-28 2008-09-18 Univ Waseda メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4404228B2 (ja) * 2008-02-18 2010-01-27 日本電気株式会社 タスクスケジューリングシステム、方法、およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284950A (ja) * 1999-02-04 2000-10-13 Sun Microsyst Inc データフロープログラムの開発のための方法、データ処理システム及びユーザインターフェイス、データフロープログラムの実行のためのデータ処理システム、データフロープログラムの開発のための方法を実行するための命令を格納したコンピュータ可読媒体、データフロープログラムの実行最適化のための方法及びシステム、並びに、データフロープログラムの実行最適化方法を実行するための命令を格納したコンピュータ可読媒体
JP2003256221A (ja) * 2002-02-28 2003-09-10 Fujitsu Ltd 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ
JP2008217134A (ja) * 2007-02-28 2008-09-18 Univ Waseda メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム

Also Published As

Publication number Publication date
WO2011078162A1 (ja) 2011-06-30
JPWO2011078162A1 (ja) 2013-05-09

Similar Documents

Publication Publication Date Title
CN110058932B (zh) 一种用于数据流驱动计算的存储方法和存储系统
US9483187B2 (en) Quality of service implementation in a networked storage system with hierarchical schedulers
KR101502896B1 (ko) 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
JP5400482B2 (ja) 管理計算機、リソース管理方法、リソース管理プログラム、記録媒体および情報処理システム
US8230432B2 (en) Defragmenting blocks in a clustered or distributed computing system
US7613878B2 (en) Management of number of disk groups that can be activated in storage device
KR101827369B1 (ko) 데이터 스트림 분산 병렬 처리 서비스 관리 장치 및 방법
KR101553649B1 (ko) 멀티 코어 장치 및 멀티 코어 장치의 작업 스케줄링 방법
US20130167152A1 (en) Multi-core-based computing apparatus having hierarchical scheduler and hierarchical scheduling method
KR102110812B1 (ko) 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법
JP5810918B2 (ja) スケジューリング装置、スケジューリング方法及びプログラム
US20160034310A1 (en) Job assignment in a multi-core processor
Song et al. Modulo based data placement algorithm for energy consumption optimization of MapReduce system
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN103761146A (zh) 一种MapReduce动态设定slots数量的方法
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 (zh) 存储系统中的数据分析
CN111352735A (zh) 数据加速方法、装置、存储介质及设备
Maleki et al. TMaR: a two-stage MapReduce scheduler for heterogeneous environments
Chen et al. Data prefetching and eviction mechanisms of in-memory storage systems based on scheduling for big data processing
JP5692355B2 (ja) コンピュータシステム、制御システム、制御方法および制御プログラム
CN110308991B (zh) 一种基于随机任务的数据中心节能优化方法及系统
Tandon et al. Minimizing remote accesses in mapreduce clusters
Khan et al. Data locality in Hadoop cluster systems

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150427

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150721

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150728

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150818

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150831

R150 Certificate of patent or registration of utility model

Ref document number: 5810918

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150