JP2014153935A - Parallel distributed processing control device, parallel distributed processing control system, parallel distributed processing control method, and parallel distributed processing control program - Google Patents
Parallel distributed processing control device, parallel distributed processing control system, parallel distributed processing control method, and parallel distributed processing control program Download PDFInfo
- Publication number
- JP2014153935A JP2014153935A JP2013023499A JP2013023499A JP2014153935A JP 2014153935 A JP2014153935 A JP 2014153935A JP 2013023499 A JP2013023499 A JP 2013023499A JP 2013023499 A JP2013023499 A JP 2013023499A JP 2014153935 A JP2014153935 A JP 2014153935A
- Authority
- JP
- Japan
- Prior art keywords
- accelerator
- subtasks
- distributed processing
- subtask
- parallel distributed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、並列分散処理制御装置、並列分散処理制御システム、並列分散処理制御方法および並列分散処理制御プログラムに関する。 The present invention relates to a parallel distributed processing control device, a parallel distributed processing control system, a parallel distributed processing control method, and a parallel distributed processing control program.
従来、大容量のデータを高速に処理するために、データを分散して複数の情報処理装置に割り当て、複数の情報処理装置において並行して処理を実行する技術が知られている。たとえば、大規模分散処理技術の一つとして、Webのクロールデータやアクセスログなどの大量データ(ビッグデータ)を多数のコモディティサーバに分散させることで効率的にデータを処理するための技術が知られている。 Conventionally, in order to process a large amount of data at high speed, a technique is known in which data is distributed and allocated to a plurality of information processing apparatuses, and processing is executed in parallel in the plurality of information processing apparatuses. For example, as one of large-scale distributed processing technologies, a technology for efficiently processing data by distributing a large amount of data (big data) such as Web crawl data and access logs to a large number of commodity servers is known. ing.
中でも、分散化のフレームワークとして広く利用されている技術が、Googleにより提唱されたMapReduceである。MapReduceは、単純なプログラミングモデルを使用してコンピュータクラスタ上に大量のデータを分散させることができるフレームワークを提供する。Hadoop(登録商標)とは、MapReduceのオープンソースソフトウェア実装の一つである。Hadoopの中核をなすのは、大量データを分散して並列処理を可能にするフレームワークであるMapReduceと、高スループットのアプリケーションデータへのアクセスを実現する分散ファイルシステムであるHDFS(Hadoop Distributed File System(登録商標))である。 Among them, a technology widely used as a decentralization framework is MapReduce, proposed by Google. MapReduce provides a framework that allows a large amount of data to be distributed over a computer cluster using a simple programming model. Hadoop (registered trademark) is one of the open source software implementations of MapReduce. At the heart of Hadoop is MapReduce, a framework that distributes large amounts of data and enables parallel processing, and HDFS (Hadoop Distributed File System), a distributed file system that enables access to high-throughput application data. Registered trademark)).
MapReduceでは、MapとReduceと呼ばれる2つの関数を記述することで、並列分散処理を実現する。まず、処理対象のデータを分割し、各Mapタスクに割り当てる。Mapタスクでは、割り当てられたデータを処理し、KeyとValueの組合せであるKey-Valueペアを生成する。そして、KeyごとにまとめられたデータをReduceタスクに渡す。Reduceタスクでは、Keyごとに処理を行い、結果を出力する。 In MapReduce, parallel distributed processing is realized by describing two functions called Map and Reduce. First, the data to be processed is divided and assigned to each Map task. The Map task processes the assigned data and generates a Key-Value pair that is a combination of Key and Value. Then, the data collected for each key is passed to the Reduce task. In the Reduce task, processing is performed for each key and the result is output.
しかしながら、従来は各Mapタスクの処理全体を単一のプロセス、単一のスレッドとして実行していた。各Mapタスクはたとえば、ディスク(記憶装置)からのデータロード、ロードしたデータのデシリアライゼーション、Key-Valueペアの生成、Keyによるソート、という一連の処理を含む。これらを単一のスレッドとして実行する場合、実行するCPU(Central Processing Unit)の性能によって処理速度が制限される。 However, conventionally, the entire processing of each Map task has been executed as a single process and a single thread. Each Map task includes, for example, a series of processes such as data loading from a disk (storage device), deserialization of loaded data, generation of key-value pairs, and sorting by key. When these are executed as a single thread, the processing speed is limited by the performance of the CPU (Central Processing Unit) to be executed.
また、処理を分散し複数のMapタスクを同時に並列して実行させて大量データを短時間で処理しようとした場合、並列して実行するMapタスクの数は、処理を行うサーバ等のCPUのコア数程度までしか並列度を上げることによる性能向上は見込めない。このため、サーバに搭載するCPUの数や性能等によって並列処理による性能向上が制約される。また、従来から、データをロードする際のデータのデシリアライゼーション等によってCPUにかかる負荷が大きいことが知られている。 Also, when processing is distributed and multiple Map tasks are executed simultaneously in parallel to process a large amount of data in a short time, the number of Map tasks executed in parallel is the core of the CPU such as the server that performs the processing. Performance improvement by increasing the degree of parallelism to only a few is expected. For this reason, performance improvement by parallel processing is restricted by the number and performance of CPUs mounted on the server. Conventionally, it is known that the load on the CPU is large due to data deserialization when loading data.
このように、従来の技術では、CPU性能がボトルネックとなって、ディスクのI/O性能を十分に生かすことができない。すなわち、ディスクのI/O性能に余裕がある場合であっても、CPU性能により処理量が制約され、ディスクのI/O性能を十分に生かすことができない。 As described above, in the conventional technology, the CPU performance becomes a bottleneck, and the I / O performance of the disk cannot be fully utilized. In other words, even if there is a margin in the disk I / O performance, the amount of processing is restricted by the CPU performance, and the disk I / O performance cannot be fully utilized.
従来、分散処理に使用していた磁気ハードディスクドライブ(HDD:Hard Disk Drive)のI/O性能は、CPUの処理性能よりも低かったため、上述の問題は顕著ではなかった。しかし、SSD(Solid State Drive)等のI/O性能の高いディスクがHDDに取って代わると、上述の問題が顕著化する。 Conventionally, since the I / O performance of a magnetic hard disk drive (HDD) used for distributed processing is lower than the processing performance of a CPU, the above-mentioned problem is not remarkable. However, when a disk with high I / O performance such as SSD (Solid State Drive) is replaced with HDD, the above-mentioned problem becomes remarkable.
開示の実施の形態は、上記に鑑みてなされたものであって、ディスクのI/O性能を効率的に利用して並列分散処理の高速化を実現することができる並列分散処理制御装置、並列分散処理制御システム、並列分散処理制御方法および並列分散処理制御プログラムを提供することを目的とする。 An embodiment of the disclosure has been made in view of the above, and a parallel distributed processing control apparatus capable of realizing high speed parallel distributed processing by efficiently using disk I / O performance. An object is to provide a distributed processing control system, a parallel distributed processing control method, and a parallel distributed processing control program.
上述した課題を解決し、目的を達成するために、本発明に係る実施の形態は、受け付けたタスクを、演算部の数に応じた数のサブタスクに分割し、サブタスクを演算部に割り当て、サブタスクを割り当てられた演算部において当該サブタスクを並列実行した処理結果を統合することを特徴とする。 In order to solve the above-described problems and achieve the object, the embodiment according to the present invention divides the received task into a number of subtasks corresponding to the number of arithmetic units, assigns the subtasks to the arithmetic units, The processing units obtained by executing the subtasks in parallel in the arithmetic unit to which are assigned are integrated.
本発明の実施の形態に係る並列分散処理制御装置、並列分散処理制御システム、並列分散処理制御方法および並列分散処理制御プログラムは、ディスクのI/O性能を効率的に利用して並列分散処理の高速化を実現することができるという効果を奏する。 A parallel distributed processing control apparatus, a parallel distributed processing control system, a parallel distributed processing control method, and a parallel distributed processing control program according to an embodiment of the present invention efficiently use disk I / O performance. There is an effect that high speed can be realized.
以下に、本発明にかかる並列分散処理制御装置、並列分散処理制御システム、並列分散処理制御方法および並列分散処理制御プログラムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。また、各実施の形態は適宜組み合わせることができる。 Hereinafter, embodiments of a parallel distributed processing control device, a parallel distributed processing control system, a parallel distributed processing control method, and a parallel distributed processing control program according to the present invention will be described in detail with reference to the drawings. Note that the present invention is not limited to the embodiments. Moreover, each embodiment can be combined suitably.
(第1の実施形態)
図1は、第1の実施形態に係る並列分散処理制御装置の構成の一例を示す図である。図1を参照して、第1の実施形態に係る並列分散処理制御装置の構成の一例について説明する。
(First embodiment)
FIG. 1 is a diagram illustrating an example of a configuration of a parallel and distributed processing control apparatus according to the first embodiment. With reference to FIG. 1, an example of the configuration of the parallel distributed processing control apparatus according to the first embodiment will be described.
[並列分散処理制御装置10の構成の一例]
図1に示す並列分散処理制御装置10は、制御部110と、記憶部120と、アクセラレータ130と、記憶装置(ディスク)140と、を備える。
[Example of Configuration of Parallel Distributed Processing Control Device 10]
The parallel distributed
制御部110は、並列分散処理制御装置10内の処理を制御する。制御部110は、タスク分割部111と、サブタスク割当部112と、サブタスク起動部113と、統合部114と、を有する。
The
タスク分割部111は、並列分散処理制御装置10に割り当てられたタスクをサブタスクに分割する。たとえば、タスク分割部111は、アクセラレータ130(後述)が有する演算部(たとえばCPU等のコア)の数に依存した数のサブタスクにタスクを分割する。タスク分割部111は、各サブタスクにおける処理対象データのブロック数が略均等になるようタスクを分割する。
The
サブタスク割当部112は、タスク分割部111での分割により得られたサブタスクを、アクセラレータ130が有する演算部に割り当てる。
The
サブタスク起動部113は、タスク分割部111での分割により得られたサブタスクを、サブタスク割当部112が当該サブタスクを割り当てた演算部において起動する。
The subtask activation unit 113 activates the subtask obtained by the division by the
統合部114は、サブタスク起動部113により起動されたサブタスク全ての実行が完了すると、記憶部120に格納された実行結果を統合して出力データを生成する。
When the execution of all the subtasks activated by the subtask activation unit 113 is completed, the
記憶部120は、アクセラレータ130におけるサブタスクの実行の結果得られる結果データを記憶する。記憶部120に記憶された結果データは、全てのサブタスクが完了すると統合部114によって統合され、出力データが生成される。出力データは、記憶装置140に格納される。なお、記憶部120に記憶される各サブタスクの実行結果は、各演算部において統合処理の一部が実行され、部分的に統合された状態であってもよい。
The
アクセラレータ130は、複数の演算部を有するプロセッサである。アクセラレータ130としてたとえば、多数のCPUを搭載するメニ−コアプロセッサや、再構成可能なFPGA(Field-programmable gate array)等を利用することができる。図1中、アクセラレータ130は、並列分散処理制御装置10の内部に配置されるものとして図示する。実際には、メニ−コアプロセッサを既存のサーバに増設する等、既存のサーバにPCIバスを介してメニ−コアプロセッサのボードを接続すればよい。
The
記憶装置140は、並列分散処理制御装置10における処理の対象となるデータや処理の結果生成されるデータを記憶する。記憶装置140はたとえば、ハードディスクドライブ(HDD:Hard Disk Drive)やSDD(Solid State Drive)等である。
The
[並列分散処理制御装置10における処理の流れ]
図2は、第1の実施形態に係る並列分散処理制御装置10における処理の流れの一例を示すフローチャートである。まず、並列分散処理制御装置10は、タスク実行要求を受け付ける(ステップS201)。すると、タスク分割部111は、当該タスクを複数のサブタスクに分割する(ステップS202)。サブタスク割当部112は、分割された複数のサブタスク各々を、アクセラレータ130の演算部に割り当てる(ステップS203)。そして、サブタスク起動部113は、サブタスクが割り当てられた演算部においてサブタスクを起動させる(ステップS204)。サブタスクが起動した演算部は各々、並列してサブタスクを実行し、処理結果を記憶部120に送り格納させる(ステップS205)。全ての演算部での処理が完了すると、統合部114は、記憶部120に格納された処理結果を統合して出力データを生成する(ステップS206)。統合部114により生成された出力データは、記憶装置140に記憶される(ステップS207)。これによって、並列分散処理制御装置10における処理が終了する。
[Flow of Processing in Parallel Distributed Processing Control Device 10]
FIG. 2 is a flowchart illustrating an example of a processing flow in the parallel distributed
[第1の実施形態の効果]
このように第1の実施形態に係る並列分散処理制御装置10は、受け付けたタスクを演算部の数に応じた数のサブタスクに分割する分割部と、サブタスクを演算部に割り当てる割当部と、サブタスクを割り当てられた演算部においてサブタスクを並列実行した処理結果を統合する統合部と、を備える。このため、一つのタスクによる処理量が多いときや、タスクを割り当てられた演算部の処理能力が低いときでも、処理をサブタスクに分割して複数の演算部において並列実行させることができる。このため、演算部の処理能力の制約に影響されずに記憶装置のI/O性能を効率的に利用して並列分散処理の高速化を実現することができる。また、アクセラレータの演算部を利用して処理を並列実行させるため、必要に応じてアクセラレータをPCIバス等で接続して増設でき、柔軟に処理の高速化を図ることができる。
[Effect of the first embodiment]
As described above, the parallel distributed
並列分散処理制御装置10はたとえば、分散型ファイルシステムを構成するサーバとして適用できる。
The parallel distributed
(第2の実施形態)
次に、第2の実施形態として、Hadoop環境でMapReduceを実行するサーバにおいてMapサブタスクの並列処理を行う例を説明する。
(Second Embodiment)
Next, as a second embodiment, an example of performing parallel processing of Map subtasks in a server that executes MapReduce in a Hadoop environment will be described.
従来のMapReduceでは、各Mapタスクが、「ディスクからのデータロード、Key-Valueペアの生成、出力ファイルのソート」までの処理全体を実行する。 In the conventional MapReduce, each Map task executes the entire process up to “loading data from disk, generating key-value pairs, sorting output files”.
これに対して、第2の実施形態では、まず、MapReduceのMap処理におけるディスクからのデータロード、データのデシリアライゼーション、Key-Valueペアの生成、出力ファイルのソートを二つの処理に分割する。すなわち、「ディスクからのデータロード、データのデシリアライゼーション、Key-Valueペアの生成、ソートの一部」と、出力ファイル(全体)のソートとの二つの処理に分割する。そして、前者の「ディスクからのデータロード、データのデシリアライゼーション、Key-Valueペアの生成、ソートの一部」の処理を並列実行することにより、処理を高速化する。 In contrast, in the second embodiment, data loading from the disk, data deserialization, key-value pair generation, and output file sorting are first divided into two processes in MapReduce Map processing. That is, it is divided into two processes: “data loading from disk, data deserialization, generation of key-value pair, part of sorting” and sorting of the output file (whole). Then, the processing of the former “data loading from disk, data deserialization, generation of key-value pairs, part of sorting” is executed in parallel, thereby speeding up the processing.
[並列分散処理制御システム1の構成の一例]
図3を参照し、第2の実施形態に係る並列分散処理制御システムの一例について説明する。図3は、第2の実施形態に係る並列分散処理制御システム1の構成の一例を示す図である。図3に示すように、並列分散処理制御システム1は、マスタ100と、スレーブ200A〜200G(以下、まとめてスレーブ200とも称する)と、アクセラレータ300A〜300G(以下、まとめてアクセラレータ300とも称する)と、を備える。また、並列分散処理制御システム1は、記憶装置400A〜400H(以下、まとめて記憶装置400とも称する)を備える。
[Example of configuration of parallel distributed processing control system 1]
An example of the parallel distributed processing control system according to the second embodiment will be described with reference to FIG. FIG. 3 is a diagram illustrating an example of a configuration of the parallel distributed processing control system 1 according to the second embodiment. As shown in FIG. 3, the parallel distributed processing control system 1 includes a
マスタ100およびスレーブ200A〜200Gは各々たとえばコモディティサーバ等の情報処理装置である。マスタ100およびスレーブ200A〜200Gは、ネットワークを介して互いに接続され、相互にデータを送受信する。また、スレーブ200A〜200Gは、PCIバス等によって各々アクセラレータ300A〜300Gと接続される。また、マスタ100およびスレーブ200A〜200Gは各々、記憶装置400Hおよび記憶装置400A〜400Gと接続され、配下の記憶装置にデータを記憶する。
Each of
図3には、1つのマスタと7つのスレーブ、7つのアクセラレータを示すが、これらの数はそれぞれ1、7、7に限定されるものではない。10以上のサーバによってマスタおよびスレーブを構成してもよい。さらに、複数のデータセンタにまたがって処理制御システム1を構築し、インタークラウドシステムとしてもよい。 Although FIG. 3 shows one master, seven slaves, and seven accelerators, these numbers are not limited to 1, 7, and 7, respectively. You may comprise a master and a slave by ten or more servers. Furthermore, the process control system 1 may be constructed across a plurality of data centers to form an intercloud system.
並列分散処理制御システム1は、データを複数のノードに分散して記憶する分散型ファイルシステムである。この分散型ファイルシステムでは、書き込みの対象となるデータをブロックに分割してサーバ(マスタ100およびスレーブ200A〜200G)配下の記憶装置400A〜400Hに格納する。また、一つのブロックについて冗長性を確保するために、たとえば3つの同一のブロックを異なる複数のサーバ(マスタ100およびスレーブ200A〜200G)配下の記憶装置400に格納する。データの格納場所についての情報はマスタ100が管理する。そして、MapReduceを実行する際には、当該データを格納した記憶装置400からデータを読み出して、複数のサーバ上でMapタスクを並列実行させる。実行結果はReduceタスクを実行するサーバにおいて統合され、最終的な出力ファイルが生成される。
The parallel distributed processing control system 1 is a distributed file system that stores data distributed to a plurality of nodes. In this distributed file system, data to be written is divided into blocks and stored in
マスタ100はたとえば、ジョブトラッカー(Job Tracker)およびネームノード(Namenode)として動作する。ジョブトラッカーは、ジョブの投入を受け付けて複数のタスクに分割し、分割したタスクをノードに割り当てる。ネームノードは、HDFSの管理を行う。ネームノードは、書き込み対象データを各ノードに分配し、各ノードに格納されるファイル(データブロック)の位置等の情報を管理する。
For example, the
スレーブ200A〜200Gは各々、タスクトラッカー(Task Tracker)およびデータノード(Datanode)として動作する。タスクトラッカーは、ジョブトラッカーに割り当てられたタスクの実行を管理する。データノードは、ネームノードから分配されたデータを、指定された場所から読み出して格納する。
Each of the
[MapReduce処理の流れの一例]
次に、図4を参照してMapReduce処理の流れの一例を説明する。図4は、第2の実施形態に係る並列分散処理制御システム1におけるMapReduce処理の流れの一例を示すフローチャートである。
[Example of MapReduce process flow]
Next, an example of the flow of MapReduce processing will be described with reference to FIG. FIG. 4 is a flowchart showing an example of the flow of MapReduce processing in the parallel distributed processing control system 1 according to the second embodiment.
まず、マスタ100はジョブを受け付ける(ステップS401)。すなわち、マスタ100は、MapReduce処理の対象とするデータの指定を受け付ける。次に、マスタ100は、受け付けたジョブを、並列実行するための複数のMapタスクに分割する(ステップS402)。すなわち、マスタ100は、Mapタスク各々に処理対象データを割り当てる。一つのMapタスクに割り当てられたデータを、以下、入力スプリットともいう。そしてマスタ100は、各Mapタスクを実行するスレーブ200を選択し、選択したスレーブ200にMapタスクを割り当てる(ステップS403)。
First, the
マスタ100は、Mapタスクの割り当てにおいては、各スレーブ200に、当該スレーブ配下の記憶装置400(ローカルディスク)に格納されているデータを処理対象とするMapタスクを割り当てる。ただし、マスタ100は、他のスレーブ配下の記憶装置に格納されているデータを処理対象とするMapタスクを割り当ててもよい。その場合、スレーブは、ネットワークを介して該当する記憶装置から処理対象データを読み出し、処理を実行する。
In assigning a Map task, the
Mapタスクを割り当てられたスレーブ200は、Mapタスクを実行する(ステップS404)。そして、Mapタスクの実行結果を、Reduceタスクを実行するスレーブに渡す。Reduceタスクは、Mapタスクと同様、マスタ100によって所定のスレーブ200に割り当てられる。
The
Reduceタスクを割り当てられたスレーブは、Reduceタスクを実行する(ステップS405)。そして、当該スレーブは、実行結果を出力ファイルとして出力する(ステップS406)。これによってMapReduce処理が終了する。 The slave assigned the Reduce task executes the Reduce task (step S405). Then, the slave outputs the execution result as an output file (step S406). This completes the MapReduce process.
次に、第2の実施形態におけるMapタスクの処理(図4のステップS404)を説明する。第2の実施形態では、スレーブ200に割り当てられたMapタスクをさらに分割して複数のMapサブタスクとする。そして、スレーブ200は、複数のMapサブタスクをアクセラレータ300が備える複数の処理部(後述)に割り当てて並列実行させる。まず、スレーブ200およびアクセラレータ300の構成について説明する。
Next, the Map task process (step S404 in FIG. 4) in the second embodiment will be described. In the second embodiment, the Map task assigned to the
[スレーブ200の構成の一例]
図5は、第2の実施形態に係るスレーブ200Aおよびアクセラレータ300Aの構成の一例を示す図である。図5中、スレーブ200A〜200Gに共通の構成の例としてスレーブ200Aの構成を示す。また、アクセラレータ300A〜300Gに共通の構成の例としてアクセラレータ300Aの構成を示す。図5に示すように、スレーブ200Aは、制御部210と、記憶部220と、通信部230と、を備える。
[Example of configuration of slave 200]
FIG. 5 is a diagram illustrating an example of the configuration of the
制御部210は、スレーブ200Aにおける処理を制御する。制御部210はたとえば、コモディティサーバに搭載されたCPUである。制御部210は、タスク分割部211、サブタスク割当部212、サブタスク起動部213および統合部214を備える。
The
タスク分割部211は、スレーブ200Aにおいて起動されたMapタスクを複数のMapサブタスクに分割する。タスク分割部211は、アクセラレータ300Aのコアの数より少なくとも1少ない数のMapサブタスクを生成する。また、タスク分割部211は、コア各々に割り当てられる処理対象ブロックの数が等しくなるようMapサブタスクを生成する。
The
ここで、サブタスクの数をアクセラレータ300Aのコア数よりも少ない数に設定するのは、少なくとも一つのコアにMapサブタスクの結果を統合するマージソートサブタスクを実行させるためである。
Here, the reason why the number of subtasks is set to be smaller than the number of cores of the
サブタスク割当部212は、タスク分割部211が生成したサブタスクを実行するコアを決定する。すなわち、サブタスク割当部212は、Mapサブタスクおよびマージソートサブタスクを割り当てるコアを決定する。
The
サブタスク起動部213は、タスク分割部211が生成したサブタスクが、サブタスク割当部212が決定したコアにおいて実行されるよう、サブタスクを起動する。
The subtask activation unit 213 activates the subtask so that the subtask generated by the
統合部214は、アクセラレータ300Aにおけるサブタスクの実行により生成され、記憶部220に格納されたKey-Valueペアを読み出してコピーする。さらに、統合部214は、コピーしたKey-ValueペアをKeyごとにソートする。統合部214はソートした結果を、記憶装置400Aに格納する。その後、格納された結果は、Reduceタスクが割り当てられたスレーブにより読み出される。
The
記憶部220は、アクセラレータ300Aでのサブタスクの実行結果を一時的に記憶する。
通信部230は、スレーブ200Aと、マスタ100、スレーブ200B〜200Gとの間でデータ等を送受信するインタフェースである。たとえば、通信部230は、制御部210の処理により生成されるデータをマスタ100に送信する。
The
[アクセラレータ300Aの構成の一例]
アクセラレータ300Aは、スレーブ200Aにおいて起動されたMapタスクを分割したサブタスクを実行する処理部である。アクセラレータ300Aはたとえば、多数のCPU(コア)を備えたメニーコアプロセッサや、再構成可能なFPGAなどを搭載した基板で構成する。図5では、アクセラレータ300Aを、10個のコアC1〜C10を有するメニーコアプロセッサとして示す。
[Example of configuration of
The
また、アクセラレータ300Aは、ローカルバッファLB1〜LB10とグローバルバッファGBとを備える(図5参照)。コアC1〜C10各々に対してローカルバッファLB1〜LB10が割り当てられる。グローバルバッファGBには、複数のコアの処理結果が統合的に格納される。
The
ここでは、アクセラレータ300Aとして、スレーブ200Aが備えるCPU(コア)の数よりも多数のCPU(コア)を備える装置を想定する。たとえば、タイレラ(Tilera)(登録商標)のメニーコアプロセッサやインテル(登録商標)Xeon Phiなどを採用することができる。また、FPGAを用いて、Mapサブタスクをハードウェア化して実行することも可能である。
Here, it is assumed that the
[スレーブ200AにおけるMapタスク実行処理の一例]
図6を参照し、スレーブ200AにおけるMapタスク実行処理(図4のステップS404)について説明する。図6は、第2の実施形態におけるMapタスク実行処理の流れの一例を示す図である。
[Example of Map task execution process in
With reference to FIG. 6, the Map task execution process (step S404 in FIG. 4) in the
まず、スレーブ200AにMapタスクが割り当てられ、Mapタスクが起動される(ステップS601)。スレーブ200Aのタスク分割部211は、MapタスクをMapサブタスクおよびマージソートサブタスクに分割する(ステップS602)。そして、サブタスク割当部212は、Mapサブタスクおよびマージソートサブタスクを割り当てるアクセラレータ300Aのコアを決定する(ステップS603)。そして、サブタスク起動部213は、Mapサブタスクおよびマージソートサブタスクを割り当てられたコアにおいてサブタスクを起動し、サブタスクを実行させる(ステップS604)。統合部214は、サブタスクの処理結果を統合する(ステップS605)。つまり、統合部214は、処理結果をコピーしてKeyごとに処理結果をソートする。ソートした処理結果は記憶装置400に記憶される(ステップS606)。
First, a Map task is assigned to the
[アクセラレータ300Aでのサブタスク実行処理の流れ]
次に、サブタスクを割り当てられたアクセラレータ300Aにおけるサブタスク実行処理(図6のステップS604)の流れを説明する。図7は、第2の実施形態に係るアクセラレータ300Aにおけるサブタスク実行処理を説明するための図である。図8は、第2の実施形態に係るMapサブタスクの処理の流れの一例を示すフローチャートである。図9は、第2の実施形態に係るマージソートサブタスクの処理の流れの一例を示すフローチャートである。図7乃至図9を参照して、アクセラレータ300Aにおけるサブタスク実行処理の一例について説明する。
[Flow of subtask execution process in
Next, the flow of the subtask execution process (step S604 in FIG. 6) in the
まず、アクセラレータ300Aの各コアにおいてサブタスクが起動される(ステップS801)。サブタスクが起動すると、Mapサブタスクが割り当てられたコア(ここではコアC1として説明する)は、Mapサブタスクの対象データを読み込む(ステップS802)。たとえば、図7の例では、一つのMapタスクが4つのMapサブタスクとマージソートサブタスクとに分割され、Mapタスクの処理対象であった4ブロックのデータB1〜B4がそれぞれ1ブロックずつMapサブタスクの処理対象となっている。コアC1は、ブロックB1を読み込む。なお、第2の実施形態では、各コアは、処理対象のブロックをスレーブ200Aを介さず直接記憶装置400Aから読み出す。
First, a subtask is activated in each core of the
そして、コアC1は、読み込んだブロックB1をデシリアライズする(ステップS803、図7の★)。次に、コアC1は、読み込んだブロックB1のデータを1レコードずつ取り出し、Key-Valueペアを生成する(ステップS804)。生成したKey-Valueペアは、コアC1に割り当てられたローカルバッファLB1に格納される。 Then, the core C1 deserializes the read block B1 (step S803, ★ in FIG. 7). Next, the core C1 extracts the data of the read block B1 one record at a time, and generates a key-value pair (step S804). The generated key-value pair is stored in the local buffer LB1 assigned to the core C1.
次にコアC1は、ローカルバッファLB1が一杯になっているか否かを判定する(ステップS805)。ローカルバッファLB1が一杯になっていないと判定した場合(ステップS805、否定)、コアC1は全てのレコードの処理が完了しているか否かを判定する(ステップS806)。全てのレコードの処理が完了していないと判定した場合(ステップS806、否定)、コアC1は、次のレコードを読み出して(ステップS807)、ステップS804に戻る。 Next, the core C1 determines whether or not the local buffer LB1 is full (step S805). When it is determined that the local buffer LB1 is not full (No at Step S805), the core C1 determines whether or not all records have been processed (Step S806). If it is determined that all the records have not been processed (No at Step S806), the core C1 reads the next record (Step S807) and returns to Step S804.
他方、ステップS805においてローカルバッファLB1が一杯になっていると判定した場合(ステップS805、肯定)およびステップS806において全てのレコードの処理が完了していると判定した場合(ステップS806、肯定)、ステップS808に進む。ステップS808において、コアC1は、領域LB1内のKey-ValueペアをKeyに基づいてソートし、結果をグローバルバッファGBに送って格納する(ステップS809)。そして、コアC1は、全てのレコードの処理が完了しているか否かを判定する(ステップS810)。全てのレコードの処理が完了していないと判定した場合(ステップS810、否定)、コアC1はステップS807に戻る。他方、全てのレコードの処理が完了したと判定した場合(ステップS810、肯定)、コアC1は、マージソートサブタスクを割り当てられたコア(ここではコアC10とする)に処理を渡す(ステップS811)。これによってコアC1におけるMapサブタスクの処理は終了する。 On the other hand, if it is determined in step S805 that the local buffer LB1 is full (step S805, affirmative) and if it is determined in step S806 that all the records have been processed (step S806, affirmative), step The process proceeds to S808. In step S808, the core C1 sorts the key-value pairs in the area LB1 based on the key, and sends the result to the global buffer GB for storage (step S809). Then, the core C1 determines whether or not all the records have been processed (step S810). If it is determined that all the records have not been processed (No at Step S810), the core C1 returns to Step S807. On the other hand, if it is determined that all the records have been processed (Yes at step S810), the core C1 passes the processing to the core (here, core C10) to which the merge sort subtask is assigned (step S811). This completes the processing of the Map subtask in the core C1.
コアC1におけるMapサブタスクの実行中、Mapサブタスクが割り当てられた他のコアC2〜C4(図7参照)も並行して上記ステップS801〜ステップS811の処理を実行する。 During the execution of the Map subtask in the core C1, the other cores C2 to C4 (see FIG. 7) to which the Map subtask is assigned also execute the processes of Steps S801 to S811 in parallel.
コアC1〜C4においてMapサブタスクが実行されている間、コアC10はマージソートサブタスクを実行している(図7参照)。すなわち、図9に示すように、コアC10は、所定時間ごとに、グローバルバッファGBが一杯になっているか否かを判定する(ステップS901)。グローバルバッファGBが一杯になっていないと判定した場合(ステップS901、否定)、コアC10は、コアC1〜C4全部からMapサブタスクが完了した旨の通知を受け取ったか否かを判定する(ステップS902)。コアC1〜C4全部から受け取ってはいないと判定した場合(ステップS902、否定)、コアC10は、所定時間待機した(ステップS903)後、ステップS901に戻る。 While the Map subtask is being executed in the cores C1 to C4, the core C10 is executing the merge sort subtask (see FIG. 7). That is, as shown in FIG. 9, the core C10 determines whether or not the global buffer GB is full every predetermined time (step S901). When it is determined that the global buffer GB is not full (No at Step S901), the core C10 determines whether or not a notification that the Map subtask has been completed is received from all the cores C1 to C4 (Step S902). . If it is determined that it has not been received from all the cores C1 to C4 (No at Step S902), the core C10 waits for a predetermined time (Step S903), and then returns to Step S901.
グローバルバッファGBが一杯であると判定した場合(ステップS901、肯定)およびコアC1〜C4全てから完了通知を受け取ったと判定した場合(ステップS902、肯定)、コアC10は、ステップS904に進む。ステップS904では、コアC10は、グローバルバッファGBに蓄積されたKey-Valueペアの情報を統合してKeyをもとにソートする(ステップS904)。コアC10は、ソートした情報を、Mapサブタスクを割り当てたスレーブ200へ送信する(ステップS905)。これによって、処理を終わる。
When it is determined that the global buffer GB is full (Yes at Step S901) and when it is determined that the completion notification is received from all the cores C1 to C4 (Yes at Step S902), the core C10 proceeds to Step S904. In step S904, the core C10 integrates the information of the key-value pairs accumulated in the global buffer GB and sorts based on the key (step S904). The core C10 transmits the sorted information to the
図8および図9に示すサブタスクの処理は、図7に示すようにアクセラレータ300Aにおいて実行される。そして、アクセラレータ300AのコアC10が生成した情報は、スレーブ200Aに送信される。
The subtask processes shown in FIGS. 8 and 9 are executed in the
このように、コアC10からスレーブ200Aには、グローバルバッファGBが一杯になるごとにKey-Valueペアのデータ(出力結果)が送られる。スレーブ200Aの統合部214は、こうして送信され蓄積される複数の出力結果をさらにKeyを基にして統合し、最終的なMapタスクの出力ファイルを生成する(図7参照)。
In this way, key-value pair data (output result) is sent from the core C10 to the
[第2の実施形態の効果]
このように、第2の実施形態に係る並列分散処理制御システム1は、複数の情報処理装置と、複数のコアを有するアクセラレータと、を備える。そして、複数の情報処理装置のうち1の情報処理装置は、Mapタスクを、アクセラレータが有するコアの数に応じた数のサブタスクに分割する分割部を備える。また、1の情報処理装置は、サブタスクをアクセラレータの複数のコアに割り当てる割当部と、サブタスクの処理結果を統合する統合部と、を備える。そして、アクセラレータは、複数のコアにおいてサブタスクを並列実行する。このため、コアの処理能力の制約に影響されずに記憶装置のI/O性能を効率的に利用して並列分散処理の高速化を実現することができる。また、アクセラレータが備えるコアを利用して処理を並列実行させるため、必要に応じてアクセラレータをPCIバス等で接続して増設でき、柔軟に処理の高速化を図ることができる。
[Effects of Second Embodiment]
As described above, the parallel distributed processing control system 1 according to the second embodiment includes a plurality of information processing apparatuses and an accelerator having a plurality of cores. One information processing apparatus among the plurality of information processing apparatuses includes a division unit that divides the Map task into a number of subtasks corresponding to the number of cores included in the accelerator. One information processing apparatus includes an assigning unit that assigns subtasks to a plurality of accelerator cores, and an integration unit that integrates the processing results of the subtasks. The accelerator executes subtasks in parallel in a plurality of cores. For this reason, parallel distributed processing can be speeded up by efficiently using the I / O performance of the storage device without being affected by the restriction of the processing capability of the core. In addition, since the processing is performed in parallel using the core provided in the accelerator, it is possible to connect and increase the accelerator by a PCI bus or the like as necessary, so that the processing speed can be flexibly increased.
(第3の実施形態)
上記第2の実施形態では、アクセラレータ300Aのコアが処理対象データを格納する記憶装置400Aに直接アクセスしてデータを取得する例を説明した。第3の実施形態では、処理対象データを一端、Mapタスクが起動したスレーブ200Aの記憶部220に読み込む。そして、スレーブ200Aの記憶部220からさらに、アクセラレータ300A上のメモリに転送する。その後、サブタスクを実行するコアがアクセラレータ300A上のメモリから必要なデータを読み出して処理を実行する。その他の点では、第3の実施形態の並列分散処理制御システム2の構成および機能は、第2の実施形態の並列分散処理制御システム1と同様である。
(Third embodiment)
In the second embodiment, the example in which the core of the
図10は、第3の実施形態に係る並列分散処理制御システム2におけるMapタスクの処理を説明するための図である。図10を参照して、第3の実施形態におけるMapタスクの処理の一例を説明する。 FIG. 10 is a diagram for explaining map task processing in the parallel distributed processing control system 2 according to the third embodiment. With reference to FIG. 10, an example of the processing of the Map task in the third embodiment will be described.
まず、スレーブ200AにおいてMapタスクが起動される(ステップS1001)。すると、スレーブ200Aは記憶装置300Aから当該Mapタスクの処理対象である入力スプリットを読み出して記憶部220を経由して、アクセラレータ300Aに転送する。すなわち、記憶装置300Aから記憶部220に読み込み、アクセラレータ300Aへの送付を繰り返す(ステップS1002)。このとき、データの転送にはダイレクトメモリアクセス(DMA:Direct Memory Access)を用いる。
First, the Map task is activated in the
次に、スレーブ200Aのタスク分割部211は、Mapタスクを処理内容およびアクセラレータ300A上のコアの数に応じた数のサブタスクに分割する(ステップS1003)。そして、サブタスク割当部212は、サブタスクを割り当てるコアを決定する(ステップS1004)。このとき、サブタスク割当部212は、Mapタスクを分割して得たMapサブタスクの割当先とともに、マージソートサブタスクの割当先を決定する。
Next, the
そして、サブタスク起動部213は、サブタスク割当部212が決定した割当先において該当するサブタスクを起動する(ステップS1005)。サブタスクが起動した各コアは、アクセラレータ300A上のメモリにアクセスしてサブタスクの処理対象データを読み出し、サブタスクを実行する(ステップS1006)。すなわち、データのデシリアライゼーション、Key-Valueペアの生成、Keyに基づくソート等が実行される。その後、全てのサブタスクが完了するとスレーブ200Aは処理結果を統合して結果を記憶装置400Aに格納する(ステップS1007)。
Then, the subtask activation unit 213 activates the corresponding subtask at the allocation destination determined by the subtask allocation unit 212 (step S1005). Each core in which the subtask is activated accesses the memory on the
このように、第3の実施形態では、アクセラレータ300A上のコアは直接スレーブ200A配下の記憶装置400Aから処理対象データを読み出すのではなく、アクセラレータ300A上のメモリからデータを読み出す。図11は、第3の実施形態における処理対象データの転送態様を説明するための図である。図11に示すように、記憶装置400Aに格納された処理対象データは、一端スレーブ200A上の記憶部220に転送される。このとき転送はダイレクトメモリアクセスで行う。さらに、スレーブ200A上の記憶部220からアクセラレータ300A上のメモリに、処理対象データが転送される。やはり転送はダイレクトメモリアクセスで行う。この後、Mapサブタスクを各コアが実行する際には、アクセラレータ300A上のメモリからデータを読み出してロードし、デシリアライゼーション、Key-Valueペアの生成等を実行する。
As described above, in the third embodiment, the core on the
[第3の実施形態の効果]
このように、第3の実施形態では、処理対象データをいったんスレーブ200A上の記憶部220に転送してから、アクセラレータ300Aに転送し、各コアが対象データをアクセラレータ300A上のメモリから読み出して処理を実行する。このため、Mapタスクを割り当てられたスレーブ200Aから、処理対象データを自装置のファイルシステムとして扱えるようになる。したがって、管理者による処理の操作が容易になる。
[Effect of the third embodiment]
As described above, in the third embodiment, the processing target data is once transferred to the
なお、上記第2および第3の実施形態は、Hadoop環境において動作する分散型ファイルシステムを前提として説明したが、MapReduceを利用したシステムであればHadoopに限定されず、他のフレームワークにも適用することができる。 The second and third embodiments have been described on the premise of a distributed file system operating in a Hadoop environment. However, the system is not limited to Hadoop as long as it is a system using MapReduce, and can be applied to other frameworks. can do.
(第4の実施形態)
これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、その他の実施形態にて実施されてもよい。以下に、その他の実施形態を説明する。
(Fourth embodiment)
Although the embodiments of the present invention have been described so far, the present invention may be implemented in other embodiments besides the above-described embodiments. Other embodiments will be described below.
[システム構成]
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[System configuration]
Also, among the processes described in this embodiment, all or part of the processes described as being performed automatically can be performed manually, or the processes described as being performed manually can be performed. All or a part can be automatically performed by a known method. In addition, the processing procedures, control procedures, specific names, and information including various data and parameters shown in the above-described document and drawings can be arbitrarily changed unless otherwise specified.
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、図5に示す例では、タスク分割部211、サブタスク割当部212をスレーブ200A内に配置したが、これを分離して複数のスレーブのタスク分割部とサブタスク割当部とを統合する情報処理装置を配置し、当該情報処理装置がアクセラレータにおける機能の割当を管理するようにしてもよい。
Further, each component of each illustrated apparatus is functionally conceptual, and does not necessarily need to be physically configured as illustrated. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or a part of the distribution / integration may be functionally or physically distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. For example, in the example shown in FIG. 5, the
[プログラム]
図12は、並列分散処理制御システム1,2における一連の処理を実行するプログラムである並列分散処理制御プログラムによる情報処理が、コンピュータを用いて具体的に実現されることを示す図である。図12に例示するように、コンピュータ3000は、たとえば、メモリ3010と、CPU(Central Processing Unit)3020と、ハードディスクドライブ3080と、ネットワークインタフェース3070とを有する。コンピュータ3000の各部はバス5100によって接続される。
[program]
FIG. 12 is a diagram showing that information processing by the parallel distributed processing control program, which is a program for executing a series of processes in the parallel distributed processing control systems 1 and 2, is specifically realized using a computer. As illustrated in FIG. 12, the computer 3000 includes, for example, a
メモリ3010は、図12に例示するように、ROM3011およびRAM3012を含む。ROM3011は、たとえば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。
The
ここで、図12に例示するように、ハードディスクドライブ3080は、たとえば、OS3081、アプリケーションプログラム3082、プログラムモジュール3083、プログラムデータ3084を記憶する。すなわち、開示の技術に係る並列分散処理制御プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール3083として、たとえばハードディスクドライブ3080に記憶される。たとえば、マスタ100が備える制御部、スレーブ200Aが備える制御部210およびコアC1〜C10の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュール3083が、ハードディスクドライブ3080に記憶される。
Here, as illustrated in FIG. 12, the
また、記憶部220、ローカルバッファLBおよびグローバルバッファGBに記憶されるデータのように、並列分散処理制御プログラムによる情報処理に用いられるデータは、プログラムデータ3084として、たとえばハードディスクドライブ3080に記憶される。そして、CPU3020が、ハードディスクドライブ3080に記憶されたプログラムモジュール3083やプログラムデータ3084を必要に応じてRAM3012に読み出し、各種の手順を実行する。
Further, data used for information processing by the parallel distributed processing control program, such as data stored in the
なお、並列分散処理制御プログラムに係るプログラムモジュール3083やプログラムデータ3084は、ハードディスクドライブ3080に記憶される場合に限られない。たとえば、プログラムモジュール3083やプログラムデータ3084は、着脱可能な記憶媒体に記憶されてもよい。この場合、CPU3020は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、プログラムモジュール3083やプログラムデータ3084は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。この場合、CPU3020は、ネットワークインタフェース3070を介して他のコンピュータにアクセスすることで各種データを読み出す。
Note that the
[その他]
なお、本実施例で説明した並列分散処理制御プログラムは、インターネット等のネットワークを介して配布することができる。また、並列分散処理制御プログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
[Others]
The parallel distributed processing control program described in this embodiment can be distributed via a network such as the Internet. The parallel distributed processing control program may be recorded on a computer-readable recording medium such as a hard disk, a flexible disk (FD), a CD-ROM, an MO, or a DVD, and executed by being read from the recording medium by the computer. it can.
1 並列分散処理制御システム
10 並列分散処理制御装置
100 マスタ
110 制御部
111 タスク分割部
112 サブタスク割当部
113 サブタスク起動部
114 統合部
120 記憶部
130 アクセラレータ
140 記憶装置
200A〜200G スレーブ
210 制御部
211 タスク分割部
212 サブタスク割当部
213 サブタスク起動部
214 統合部
220 記憶部
230 通信部
300 アクセラレータ
400 記憶装置
C1〜C10 コア
GB グローバルバッファ
LB1〜LB10 ローカルバッファ
DESCRIPTION OF SYMBOLS 1 Parallel distributed
Claims (8)
前記サブタスクを前記演算部に割り当てる割当部と、
前記サブタスクを割り当てられた演算部において当該サブタスクを並列実行した処理結果を統合する統合部と、
を備える並列分散処理制御装置。 A division unit that divides the received task into a number of subtasks according to the number of arithmetic units;
An assigning unit for assigning the subtask to the computing unit;
An integration unit that integrates processing results obtained by executing the subtasks in parallel in the calculation unit to which the subtasks are assigned;
A parallel distributed processing control device.
前記複数の情報処理装置のうち1の情報処理装置は、
Mapタスクを、前記アクセラレータが有するコアの数に応じた数のサブタスクに分割する分割部と、
前記サブタスクを前記アクセラレータの複数のコアに割り当てる割当部と、
前記コアによる前記サブタスクの処理結果を統合する統合部と、
を備え、
前記アクセラレータは、前記複数のコアにおいて前記サブタスクを並列実行することを特徴とする並列分散処理制御システム。 A parallel distributed processing control system comprising a plurality of information processing devices and an accelerator having a plurality of cores,
One information processing apparatus among the plurality of information processing apparatuses is:
A division unit that divides the Map task into a number of subtasks according to the number of cores included in the accelerator;
An assigning unit that assigns the subtask to a plurality of cores of the accelerator;
An integration unit for integrating the processing results of the subtasks by the core;
With
The parallel distributed processing control system, wherein the accelerator executes the subtasks in parallel in the plurality of cores.
前記割当部は、前記アクセラレータの複数のコア各々に割り当てられるサブタスクの処理対象ブロック数が略均等となるよう割り当てることを特徴とする請求項2から5のいずれか1項に記載の並列分散処理制御システム。 The dividing unit divides a part of processing among loading of data blocks to be processed, deserialization of loaded data, generation of key-value pairs and sorting of key-value pairs into the subtasks,
6. The parallel distributed processing control according to claim 2, wherein the allocating unit allocates the processing target blocks of the subtasks allocated to each of the plurality of cores of the accelerator so as to be substantially equal. 6. system.
前記複数の情報処理装置のうち1の情報処理装置により、Mapタスクを、前記アクセラレータが有するコアの数に応じた数のサブタスクに分割する分割工程と、
前記1の情報処理装置により、前記サブタスクを前記アクセラレータの複数のコアに割り当てる割当工程と、
前記アクセラレータの複数のコアにより、前記サブタスクを並列実行する実行工程と、
前記1の情報処理装置により、前記サブタスクの処理結果を統合する統合工程と、
を含むことを特徴とする並列分散処理制御方法。 A parallel distributed processing control method executed by a parallel distributed processing control system including a plurality of information processing devices and an accelerator including a plurality of cores,
A division step of dividing a Map task into a number of subtasks according to the number of cores included in the accelerator by one information processing device among the plurality of information processing devices;
An assigning step of assigning the subtask to a plurality of cores of the accelerator by the one information processing apparatus;
An execution step of executing the subtasks in parallel by a plurality of cores of the accelerator;
An integration step of integrating the processing results of the subtasks by the one information processing apparatus;
A parallel distributed processing control method comprising:
Mapタスクを、アクセラレータが有するコアの数に応じた数のサブタスクに分割する分割ステップと、
前記サブタスクを前記アクセラレータの複数のコアに割り当てる割当ステップと、
前記アクセラレータの複数のコアに、前記サブタスクを並列実行させる実行ステップと、
前記コアによる前記サブタスクの処理結果を統合する統合ステップと、
を実行させるための並列分散処理制御プログラム。 On the computer,
A division step of dividing the Map task into a number of subtasks according to the number of cores included in the accelerator;
Assigning the subtasks to a plurality of cores of the accelerator;
An execution step of causing the plurality of cores of the accelerator to execute the subtasks in parallel;
An integration step of integrating the processing results of the subtasks by the core;
Parallel distributed processing control program to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013023499A JP2014153935A (en) | 2013-02-08 | 2013-02-08 | Parallel distributed processing control device, parallel distributed processing control system, parallel distributed processing control method, and parallel distributed processing control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013023499A JP2014153935A (en) | 2013-02-08 | 2013-02-08 | Parallel distributed processing control device, parallel distributed processing control system, parallel distributed processing control method, and parallel distributed processing control program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014153935A true JP2014153935A (en) | 2014-08-25 |
Family
ID=51575745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013023499A Pending JP2014153935A (en) | 2013-02-08 | 2013-02-08 | Parallel distributed processing control device, parallel distributed processing control system, parallel distributed processing control method, and parallel distributed processing control program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014153935A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018074444A1 (en) * | 2016-10-19 | 2018-04-26 | 日本電気株式会社 | Distributed processing system |
WO2018142592A1 (en) * | 2017-02-03 | 2018-08-09 | 株式会社日立製作所 | Information processing system and information processing method |
CN116743752A (en) * | 2023-08-11 | 2023-09-12 | 山东恒宇电子有限公司 | System for realizing data processing load balance by distributed network communication |
-
2013
- 2013-02-08 JP JP2013023499A patent/JP2014153935A/en active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018074444A1 (en) * | 2016-10-19 | 2018-04-26 | 日本電気株式会社 | Distributed processing system |
JPWO2018074444A1 (en) * | 2016-10-19 | 2019-08-29 | 日本電気株式会社 | Distributed processing system |
JP7014173B2 (en) | 2016-10-19 | 2022-02-01 | 日本電気株式会社 | Distributed processing system |
WO2018142592A1 (en) * | 2017-02-03 | 2018-08-09 | 株式会社日立製作所 | Information processing system and information processing method |
WO2018143441A1 (en) * | 2017-02-03 | 2018-08-09 | 株式会社日立製作所 | Information processing system and information processing method |
CN116743752A (en) * | 2023-08-11 | 2023-09-12 | 山东恒宇电子有限公司 | System for realizing data processing load balance by distributed network communication |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10664323B2 (en) | Live migration of virtual machines in distributed computing systems | |
Lee et al. | A dynamic data placement strategy for hadoop in heterogeneous environments | |
US10678457B2 (en) | Establishing and maintaining data apportioning for availability domain fault tolerance | |
US10356150B1 (en) | Automated repartitioning of streaming data | |
US20150128150A1 (en) | Data processing method and information processing apparatus | |
US10936356B2 (en) | Virtual machine management | |
KR101656360B1 (en) | Cloud System for supporting auto-scaled Hadoop Distributed Parallel Processing System | |
US9218140B2 (en) | System and method for selectively utilizing memory available in a redundant host in a cluster for virtual machines | |
US11886898B2 (en) | GPU-remoting latency aware virtual machine migration | |
KR20190007043A (en) | Reconfigurable Distributed Processing | |
CN109271376A (en) | Database upgrade method, apparatus, equipment and storage medium | |
JP2019191951A (en) | Information processing system and volume allocation method | |
Chen et al. | Federation in cloud data management: Challenges and opportunities | |
US20150235038A1 (en) | Method and apparatus for access control | |
KR101765725B1 (en) | System and Method for connecting dynamic device on mass broadcasting Big Data Parallel Distributed Processing | |
KR101640231B1 (en) | Cloud Driving Method for supporting auto-scaled Hadoop Distributed Parallel Processing System | |
JP2009087282A (en) | Parallel computation system and parallel computation method | |
US20170337004A1 (en) | Disk assignment for multiple distributed computing clusters in a virtualized computing environment | |
JP2014153935A (en) | Parallel distributed processing control device, parallel distributed processing control system, parallel distributed processing control method, and parallel distributed processing control program | |
Salehian et al. | Comparison of spark resource managers and distributed file systems | |
WO2019091349A1 (en) | Data balancing method, apparatus and computer device | |
WO2017113277A1 (en) | Data processing method, device, and system | |
US10067949B1 (en) | Acquired namespace metadata service for controlling access to distributed file system | |
Hsu et al. | Using independent resource allocation strategies to solve conflicts of Hadoop distributed architecture in virtualization | |
KR101772955B1 (en) | Record processing method using index data structure in distributed processing system based on mapreduce |