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 PDF

Info

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
Application number
JP2013023499A
Other languages
Japanese (ja)
Inventor
Toshimori Honjo
利守 本庄
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013023499A priority Critical patent/JP2014153935A/en
Publication of JP2014153935A publication Critical patent/JP2014153935A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To accelerate parallel distributed processing efficiently using I/O performance of a disk.SOLUTION: A parallel distributed processing control device includes a division unit, an allocation unit, and an integration unit. The division unit divides a received task into the number of subtasks according to the number of operation parts. The allocation unit assigns the subtasks to the operation parts. The integration unit integrates a processing result of parallel execution of the subtasks in the operation parts in which the subtasks are assigned.

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.

Jeffrey Dean and Sanjay Ghemawat, MapReduce: Simplified Data Processing on Large Clusters, Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI ’04)、2004年12月6日−8日Jeffrey Dean and Sanjay Ghemawat, MapReduce: Simplified Data Processing on Large Clusters, Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI '04), December 6-8, 2004 山田浩之、合田和生、喜連川優、「並列データインテンシブ処理基盤のI/O性能評価に関する実験的考察」、第4回データ工学と情報マネジメントに関するフォーラム(DEIM 2012)、D6-4, 2012年3月Hiroyuki Yamada, Kazuo Aida, Yuu Kitsuregawa, “Experimental Study on I / O Performance Evaluation of Parallel Data Intensive Processing Platform”, 4th Forum on Data Engineering and Information Management (DEIM 2012), D6-4, 2012 3 Moon Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael J. Franklin, Scott Shenker, Ion Stoica, Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing, Technical Report No. UCB/EECS-2011-82, July 19, 2011Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael J. Franklin, Scott Shenker, Ion Stoica, Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing, Technical Report No. UCB / EECS-2011-82, July 19, 2011

しかしながら、従来は各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.

図1は、第1の実施形態に係る並列分散処理制御装置の構成の一例を示す図である。FIG. 1 is a diagram illustrating an example of a configuration of a parallel and distributed processing control apparatus according to the first embodiment. 図2は、第1の実施形態に係る並列分散処理制御装置における処理の流れの一例を示すフローチャートである。FIG. 2 is a flowchart illustrating an example of a processing flow in the parallel and distributed processing control apparatus according to the first embodiment. 図3は、第2の実施形態に係る並列分散処理制御システムの構成の一例を示す図である。FIG. 3 is a diagram illustrating an example of a configuration of a parallel distributed processing control system according to the second embodiment. 図4は、第2の実施形態に係る並列分散処理制御システムにおけるMapReduce処理の流れの一例を示すフローチャートである。FIG. 4 is a flowchart showing an example of the flow of MapReduce processing in the parallel distributed processing control system according to the second embodiment. 図5は、第2の実施形態に係るスレーブおよびアクセラレータの構成の一例を示す図である。FIG. 5 is a diagram illustrating an example of the configuration of the slave and the accelerator according to the second embodiment. 図6は、第2の実施形態におけるMapタスク実行処理の流れの一例を示す図である。FIG. 6 is a diagram illustrating an example of the flow of a Map task execution process in the second embodiment. 図7は、第2の実施形態に係るアクセラレータにおけるサブタスク実行処理を説明するための図である。FIG. 7 is a diagram for explaining subtask execution processing in the accelerator according to the second embodiment. 図8は、第2の実施形態に係るMapサブタスクの処理の流れの一例を示すフローチャートである。FIG. 8 is a flowchart illustrating an example of the processing flow of the Map subtask according to the second embodiment. 図9は、第2の実施形態に係るマージソートサブタスクの処理の流れの一例を示すフローチャートである。FIG. 9 is a flowchart illustrating an example of a process flow of the merge sort subtask according to the second embodiment. 図10は、第3の実施形態に係る並列分散処理制御システムにおけるMapタスクの処理を説明するための図である。FIG. 10 is a diagram for explaining the processing of the Map task in the parallel and distributed processing control system according to the third embodiment. 図11は、第3の実施形態における処理対象データの転送態様を説明するための図である。FIG. 11 is a diagram for explaining a transfer mode of data to be processed in the third embodiment. 図12は、並列分散処理制御システムにおける一連の処理を実行するプログラムである並列分散処理制御プログラムによる情報処理が、コンピュータを用いて具体的に実現されることを示す図である。FIG. 12 is a diagram illustrating 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 system, is specifically realized using a computer.

以下に、本発明にかかる並列分散処理制御装置、並列分散処理制御システム、並列分散処理制御方法および並列分散処理制御プログラムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。また、各実施の形態は適宜組み合わせることができる。   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 processing control device 10 illustrated in FIG. 1 includes a control unit 110, a storage unit 120, an accelerator 130, and a storage device (disk) 140.

制御部110は、並列分散処理制御装置10内の処理を制御する。制御部110は、タスク分割部111と、サブタスク割当部112と、サブタスク起動部113と、統合部114と、を有する。   The control unit 110 controls processing in the parallel distributed processing control device 10. The control unit 110 includes a task division unit 111, a subtask assignment unit 112, a subtask activation unit 113, and an integration unit 114.

タスク分割部111は、並列分散処理制御装置10に割り当てられたタスクをサブタスクに分割する。たとえば、タスク分割部111は、アクセラレータ130(後述)が有する演算部(たとえばCPU等のコア)の数に依存した数のサブタスクにタスクを分割する。タスク分割部111は、各サブタスクにおける処理対象データのブロック数が略均等になるようタスクを分割する。   The task dividing unit 111 divides a task assigned to the parallel distributed processing control device 10 into subtasks. For example, the task dividing unit 111 divides a task into a number of subtasks depending on the number of arithmetic units (for example, a core such as a CPU) included in an accelerator 130 (described later). The task division unit 111 divides the task so that the number of blocks of processing target data in each subtask is substantially equal.

サブタスク割当部112は、タスク分割部111での分割により得られたサブタスクを、アクセラレータ130が有する演算部に割り当てる。   The subtask assignment unit 112 assigns the subtask obtained by the division in the task division unit 111 to the arithmetic unit included in the accelerator 130.

サブタスク起動部113は、タスク分割部111での分割により得られたサブタスクを、サブタスク割当部112が当該サブタスクを割り当てた演算部において起動する。   The subtask activation unit 113 activates the subtask obtained by the division by the task division unit 111 in the arithmetic unit to which the subtask allocation unit 112 has assigned the subtask.

統合部114は、サブタスク起動部113により起動されたサブタスク全ての実行が完了すると、記憶部120に格納された実行結果を統合して出力データを生成する。   When the execution of all the subtasks activated by the subtask activation unit 113 is completed, the integration unit 114 integrates the execution results stored in the storage unit 120 and generates output data.

記憶部120は、アクセラレータ130におけるサブタスクの実行の結果得られる結果データを記憶する。記憶部120に記憶された結果データは、全てのサブタスクが完了すると統合部114によって統合され、出力データが生成される。出力データは、記憶装置140に格納される。なお、記憶部120に記憶される各サブタスクの実行結果は、各演算部において統合処理の一部が実行され、部分的に統合された状態であってもよい。   The storage unit 120 stores result data obtained as a result of the execution of the subtask in the accelerator 130. The result data stored in the storage unit 120 is integrated by the integration unit 114 when all the subtasks are completed, and output data is generated. The output data is stored in the storage device 140. The execution result of each subtask stored in the storage unit 120 may be in a partially integrated state in which a part of the integration process is executed in each arithmetic unit.

アクセラレータ130は、複数の演算部を有するプロセッサである。アクセラレータ130としてたとえば、多数のCPUを搭載するメニ−コアプロセッサや、再構成可能なFPGA(Field-programmable gate array)等を利用することができる。図1中、アクセラレータ130は、並列分散処理制御装置10の内部に配置されるものとして図示する。実際には、メニ−コアプロセッサを既存のサーバに増設する等、既存のサーバにPCIバスを介してメニ−コアプロセッサのボードを接続すればよい。   The accelerator 130 is a processor having a plurality of arithmetic units. As the accelerator 130, for example, a many-core processor on which a large number of CPUs are mounted, a reconfigurable FPGA (Field-programmable gate array), or the like can be used. In FIG. 1, the accelerator 130 is illustrated as being disposed inside the parallel distributed processing control device 10. In practice, a many-core processor board may be connected to an existing server via a PCI bus, such as adding a many-core processor to an existing server.

記憶装置140は、並列分散処理制御装置10における処理の対象となるデータや処理の結果生成されるデータを記憶する。記憶装置140はたとえば、ハードディスクドライブ(HDD:Hard Disk Drive)やSDD(Solid State Drive)等である。   The storage device 140 stores data to be processed by the parallel distributed processing control device 10 and data generated as a result of the processing. The storage device 140 is, for example, a hard disk drive (HDD) or a solid state drive (SDD).

[並列分散処理制御装置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 processing control apparatus 10 according to the first embodiment. First, the parallel distributed processing control device 10 receives a task execution request (step S201). Then, the task dividing unit 111 divides the task into a plurality of subtasks (step S202). The subtask assignment unit 112 assigns each of the divided subtasks to the calculation unit of the accelerator 130 (step S203). And the subtask starting part 113 starts a subtask in the calculating part to which the subtask was allocated (step S204). The arithmetic units that have started up the subtask each execute the subtask in parallel, and send the processing result to the storage unit 120 for storage (step S205). When the processing in all the arithmetic units is completed, the integration unit 114 integrates the processing results stored in the storage unit 120 to generate output data (step S206). The output data generated by the integration unit 114 is stored in the storage device 140 (step S207). Thereby, the process in the parallel distributed processing control device 10 is completed.

[第1の実施形態の効果]
このように第1の実施形態に係る並列分散処理制御装置10は、受け付けたタスクを演算部の数に応じた数のサブタスクに分割する分割部と、サブタスクを演算部に割り当てる割当部と、サブタスクを割り当てられた演算部においてサブタスクを並列実行した処理結果を統合する統合部と、を備える。このため、一つのタスクによる処理量が多いときや、タスクを割り当てられた演算部の処理能力が低いときでも、処理をサブタスクに分割して複数の演算部において並列実行させることができる。このため、演算部の処理能力の制約に影響されずに記憶装置のI/O性能を効率的に利用して並列分散処理の高速化を実現することができる。また、アクセラレータの演算部を利用して処理を並列実行させるため、必要に応じてアクセラレータをPCIバス等で接続して増設でき、柔軟に処理の高速化を図ることができる。
[Effect of the first embodiment]
As described above, the parallel distributed processing control device 10 according to the first embodiment includes a dividing unit that divides an accepted task into a number of subtasks corresponding to the number of arithmetic units, an assigning unit that allocates subtasks to arithmetic units, and a subtask. And an integration unit that integrates the processing results obtained by executing the subtasks in parallel in the operation unit to which is assigned. For this reason, even when the amount of processing by one task is large or when the processing capability of the arithmetic unit to which the task is assigned is low, the processing can be divided into subtasks and executed in parallel by a plurality of arithmetic units. For this reason, it is possible to increase the speed of parallel distributed processing by efficiently using the I / O performance of the storage device without being affected by the restriction of the processing capability of the arithmetic unit. In addition, since the processing is executed in parallel using the operation unit of the accelerator, the accelerator can be connected and expanded by a PCI bus or the like as necessary, and the processing speed can be flexibly increased.

並列分散処理制御装置10はたとえば、分散型ファイルシステムを構成するサーバとして適用できる。   The parallel distributed processing control device 10 can be applied as a server constituting a distributed file system, for example.

(第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 master 100, slaves 200A to 200G (hereinafter collectively referred to as slave 200), and accelerators 300A to 300G (hereinafter also collectively referred to as accelerator 300). . The parallel distributed processing control system 1 includes storage devices 400A to 400H (hereinafter, collectively referred to as a storage device 400).

マスタ100およびスレーブ200A〜200Gは各々たとえばコモディティサーバ等の情報処理装置である。マスタ100およびスレーブ200A〜200Gは、ネットワークを介して互いに接続され、相互にデータを送受信する。また、スレーブ200A〜200Gは、PCIバス等によって各々アクセラレータ300A〜300Gと接続される。また、マスタ100およびスレーブ200A〜200Gは各々、記憶装置400Hおよび記憶装置400A〜400Gと接続され、配下の記憶装置にデータを記憶する。   Each of master 100 and slaves 200A to 200G is an information processing apparatus such as a commodity server. The master 100 and slaves 200A to 200G are connected to each other via a network and transmit / receive data to / from each other. The slaves 200A to 200G are connected to the accelerators 300A to 300G, respectively, by a PCI bus or the like. The master 100 and the slaves 200A to 200G are connected to the storage device 400H and the storage devices 400A to 400G, respectively, and store data in the subordinate storage devices.

図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 storage devices 400A to 400H under the servers (master 100 and slaves 200A to 200G). Further, in order to ensure redundancy for one block, for example, three identical blocks are stored in the storage device 400 under a plurality of different servers (master 100 and slaves 200A to 200G). Information on the data storage location is managed by the master 100. When executing MapReduce, data is read from the storage device 400 storing the data, and Map tasks are executed in parallel on a plurality of servers. The execution results are integrated in the server that executes the Reduce task, and a final output file is generated.

マスタ100はたとえば、ジョブトラッカー(Job Tracker)およびネームノード(Namenode)として動作する。ジョブトラッカーは、ジョブの投入を受け付けて複数のタスクに分割し、分割したタスクをノードに割り当てる。ネームノードは、HDFSの管理を行う。ネームノードは、書き込み対象データを各ノードに分配し、各ノードに格納されるファイル(データブロック)の位置等の情報を管理する。   For example, the master 100 operates as a job tracker and a name node. The job tracker accepts job input and divides it into a plurality of tasks, and assigns the divided tasks to nodes. The name node manages HDFS. The name node distributes write target data to each node and manages information such as the position of a file (data block) stored in each node.

スレーブ200A〜200Gは各々、タスクトラッカー(Task Tracker)およびデータノード(Datanode)として動作する。タスクトラッカーは、ジョブトラッカーに割り当てられたタスクの実行を管理する。データノードは、ネームノードから分配されたデータを、指定された場所から読み出して格納する。   Each of the slaves 200A to 200G operates as a task tracker and a data node. The task tracker manages the execution of tasks assigned to the job tracker. The data node reads the data distributed from the name node from the designated location and stores it.

[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 master 100 receives a job (step S401). That is, the master 100 accepts designation of data to be subjected to MapReduce processing. Next, the master 100 divides the received job into a plurality of Map tasks for parallel execution (step S402). That is, the master 100 assigns processing target data to each Map task. The data assigned to one Map task is also called input split below. Then, the master 100 selects the slave 200 that executes each Map task, and assigns the Map task to the selected slave 200 (step S403).

マスタ100は、Mapタスクの割り当てにおいては、各スレーブ200に、当該スレーブ配下の記憶装置400(ローカルディスク)に格納されているデータを処理対象とするMapタスクを割り当てる。ただし、マスタ100は、他のスレーブ配下の記憶装置に格納されているデータを処理対象とするMapタスクを割り当ててもよい。その場合、スレーブは、ネットワークを介して該当する記憶装置から処理対象データを読み出し、処理を実行する。   In assigning a Map task, the master 100 assigns to each slave 200 a Map task whose processing target is data stored in the storage device 400 (local disk) under the slave. However, the master 100 may assign a Map task for processing data stored in a storage device under another slave. In that case, the slave reads the processing target data from the corresponding storage device via the network, and executes the processing.

Mapタスクを割り当てられたスレーブ200は、Mapタスクを実行する(ステップS404)。そして、Mapタスクの実行結果を、Reduceタスクを実行するスレーブに渡す。Reduceタスクは、Mapタスクと同様、マスタ100によって所定のスレーブ200に割り当てられる。   The slave 200 to which the Map task is assigned executes the Map task (Step S404). Then, the execution result of the Map task is passed to the slave that executes the Reduce task. Like the Map task, the Reduce task is assigned to a predetermined slave 200 by the master 100.

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 slave 200 is further divided into a plurality of Map subtasks. Then, the slave 200 assigns a plurality of Map subtasks to a plurality of processing units (described later) provided in the accelerator 300 and executes them in parallel. First, the configuration of the slave 200 and the accelerator 300 will be described.

[スレーブ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 slave 200A and the accelerator 300A according to the second embodiment. In FIG. 5, a configuration of the slave 200A is shown as an example of a configuration common to the slaves 200A to 200G. Further, the configuration of the accelerator 300A is shown as an example of a configuration common to the accelerators 300A to 300G. As illustrated in FIG. 5, the slave 200 </ b> A includes a control unit 210, a storage unit 220, and a communication unit 230.

制御部210は、スレーブ200Aにおける処理を制御する。制御部210はたとえば、コモディティサーバに搭載されたCPUである。制御部210は、タスク分割部211、サブタスク割当部212、サブタスク起動部213および統合部214を備える。   The control unit 210 controls processing in the slave 200A. The control unit 210 is, for example, a CPU mounted on a commodity server. The control unit 210 includes a task division unit 211, a subtask assignment unit 212, a subtask activation unit 213, and an integration unit 214.

タスク分割部211は、スレーブ200Aにおいて起動されたMapタスクを複数のMapサブタスクに分割する。タスク分割部211は、アクセラレータ300Aのコアの数より少なくとも1少ない数のMapサブタスクを生成する。また、タスク分割部211は、コア各々に割り当てられる処理対象ブロックの数が等しくなるようMapサブタスクを生成する。   The task division unit 211 divides the Map task activated in the slave 200A into a plurality of Map subtasks. The task division unit 211 generates a number of Map subtasks that is at least one less than the number of cores of the accelerator 300A. In addition, the task division unit 211 generates a Map subtask so that the number of processing target blocks allocated to each core is equal.

ここで、サブタスクの数をアクセラレータ300Aのコア数よりも少ない数に設定するのは、少なくとも一つのコアにMapサブタスクの結果を統合するマージソートサブタスクを実行させるためである。   Here, the reason why the number of subtasks is set to be smaller than the number of cores of the accelerator 300A is to cause at least one core to execute a merge sort subtask that integrates the results of the Map subtask.

サブタスク割当部212は、タスク分割部211が生成したサブタスクを実行するコアを決定する。すなわち、サブタスク割当部212は、Mapサブタスクおよびマージソートサブタスクを割り当てるコアを決定する。   The subtask assignment unit 212 determines a core that executes the subtask generated by the task division unit 211. That is, the subtask assignment unit 212 determines the core to which the Map subtask and the merge sort subtask are assigned.

サブタスク起動部213は、タスク分割部211が生成したサブタスクが、サブタスク割当部212が決定したコアにおいて実行されるよう、サブタスクを起動する。   The subtask activation unit 213 activates the subtask so that the subtask generated by the task division unit 211 is executed in the core determined by the subtask allocation unit 212.

統合部214は、アクセラレータ300Aにおけるサブタスクの実行により生成され、記憶部220に格納されたKey-Valueペアを読み出してコピーする。さらに、統合部214は、コピーしたKey-ValueペアをKeyごとにソートする。統合部214はソートした結果を、記憶装置400Aに格納する。その後、格納された結果は、Reduceタスクが割り当てられたスレーブにより読み出される。   The integration unit 214 reads and copies the key-value pair generated by the execution of the subtask in the accelerator 300A and stored in the storage unit 220. Furthermore, the integration unit 214 sorts the copied key-value pairs for each key. The integration unit 214 stores the sorted result in the storage device 400A. Thereafter, the stored result is read by the slave to which the Reduce task is assigned.

記憶部220は、アクセラレータ300Aでのサブタスクの実行結果を一時的に記憶する。   Storage unit 220 temporarily stores the execution result of the subtask in accelerator 300A.

通信部230は、スレーブ200Aと、マスタ100、スレーブ200B〜200Gとの間でデータ等を送受信するインタフェースである。たとえば、通信部230は、制御部210の処理により生成されるデータをマスタ100に送信する。   The communication unit 230 is an interface that transmits and receives data and the like between the slave 200A, the master 100, and the slaves 200B to 200G. For example, the communication unit 230 transmits data generated by the processing of the control unit 210 to the master 100.

[アクセラレータ300Aの構成の一例]
アクセラレータ300Aは、スレーブ200Aにおいて起動されたMapタスクを分割したサブタスクを実行する処理部である。アクセラレータ300Aはたとえば、多数のCPU(コア)を備えたメニーコアプロセッサや、再構成可能なFPGAなどを搭載した基板で構成する。図5では、アクセラレータ300Aを、10個のコアC1〜C10を有するメニーコアプロセッサとして示す。
[Example of configuration of accelerator 300A]
The accelerator 300A is a processing unit that executes a subtask obtained by dividing the Map task activated in the slave 200A. The accelerator 300A is configured by, for example, a substrate on which a many-core processor including a large number of CPUs (cores), a reconfigurable FPGA, and the like are mounted. In FIG. 5, the accelerator 300A is shown as a many-core processor having ten cores C1 to C10.

また、アクセラレータ300Aは、ローカルバッファLB1〜LB10とグローバルバッファGBとを備える(図5参照)。コアC1〜C10各々に対してローカルバッファLB1〜LB10が割り当てられる。グローバルバッファGBには、複数のコアの処理結果が統合的に格納される。   The accelerator 300A includes local buffers LB1 to LB10 and a global buffer GB (see FIG. 5). Local buffers LB1 to LB10 are allocated to the cores C1 to C10, respectively. The global buffer GB stores the processing results of a plurality of cores in an integrated manner.

ここでは、アクセラレータ300Aとして、スレーブ200Aが備えるCPU(コア)の数よりも多数のCPU(コア)を備える装置を想定する。たとえば、タイレラ(Tilera)(登録商標)のメニーコアプロセッサやインテル(登録商標)Xeon Phiなどを採用することができる。また、FPGAを用いて、Mapサブタスクをハードウェア化して実行することも可能である。   Here, it is assumed that the accelerator 300A is an apparatus including a larger number of CPUs (cores) than the number of CPUs (cores) included in the slave 200A. For example, a many-core processor of Tilera (registered trademark) or Intel (registered trademark) Xeon Phi can be employed. Also, it is possible to implement the Map subtask by using FPGA as hardware.

[スレーブ200AにおけるMapタスク実行処理の一例]
図6を参照し、スレーブ200AにおけるMapタスク実行処理(図4のステップS404)について説明する。図6は、第2の実施形態におけるMapタスク実行処理の流れの一例を示す図である。
[Example of Map task execution process in slave 200A]
With reference to FIG. 6, the Map task execution process (step S404 in FIG. 4) in the slave 200A will be described. FIG. 6 is a diagram illustrating an example of the flow of a Map task execution process in the second embodiment.

まず、スレーブ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 slave 200A, and the Map task is activated (step S601). The task dividing unit 211 of the slave 200A divides the Map task into a Map subtask and a merge sort subtask (Step S602). Then, the subtask assignment unit 212 determines the core of the accelerator 300A to which the Map subtask and the merge sort subtask are assigned (Step S603). Then, the subtask activation unit 213 activates the subtask in the core to which the Map subtask and the merge sort subtask are assigned, and causes the subtask to be executed (step S604). The integration unit 214 integrates the processing results of the subtasks (Step S605). That is, the integration unit 214 copies the processing results and sorts the processing results for each key. The sorted processing results are stored in the storage device 400 (step S606).

[アクセラレータ300Aでのサブタスク実行処理の流れ]
次に、サブタスクを割り当てられたアクセラレータ300Aにおけるサブタスク実行処理(図6のステップS604)の流れを説明する。図7は、第2の実施形態に係るアクセラレータ300Aにおけるサブタスク実行処理を説明するための図である。図8は、第2の実施形態に係るMapサブタスクの処理の流れの一例を示すフローチャートである。図9は、第2の実施形態に係るマージソートサブタスクの処理の流れの一例を示すフローチャートである。図7乃至図9を参照して、アクセラレータ300Aにおけるサブタスク実行処理の一例について説明する。
[Flow of subtask execution process in accelerator 300A]
Next, the flow of the subtask execution process (step S604 in FIG. 6) in the accelerator 300A to which the subtask is assigned will be described. FIG. 7 is a diagram for explaining subtask execution processing in the accelerator 300A according to the second embodiment. FIG. 8 is a flowchart illustrating an example of the processing flow of the Map subtask according to the second embodiment. FIG. 9 is a flowchart illustrating an example of a process flow of the merge sort subtask according to the second embodiment. An example of subtask execution processing in the accelerator 300A will be described with reference to FIGS.

まず、アクセラレータ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 accelerator 300A (step S801). When the subtask is activated, the core to which the Map subtask is assigned (described here as the core C1) reads the target data of the Map subtask (step S802). For example, in the example of FIG. 7, one Map task is divided into four Map subtasks and a merge sort subtask, and the four blocks of data B1 to B4 that have been processed by the Map task are each processed by the Map subtask. It is targeted. The core C1 reads the block B1. In the second embodiment, each core reads the processing target block directly from the storage device 400A without using the slave 200A.

そして、コア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 slave 200 to which the Map subtask is assigned (Step S905). This completes the process.

図8および図9に示すサブタスクの処理は、図7に示すようにアクセラレータ300Aにおいて実行される。そして、アクセラレータ300AのコアC10が生成した情報は、スレーブ200Aに送信される。   The subtask processes shown in FIGS. 8 and 9 are executed in the accelerator 300A as shown in FIG. The information generated by the core C10 of the accelerator 300A is transmitted to the slave 200A.

このように、コア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 slave 200A each time the global buffer GB becomes full. The integration unit 214 of the slave 200A further integrates the plurality of output results transmitted and accumulated in this manner based on the key, and generates a final map task output file (see FIG. 7).

[第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 accelerator 300A directly accesses the storage device 400A that stores the processing target data and acquires the data has been described. In the third embodiment, the processing target data is once read into the storage unit 220 of the slave 200A in which the Map task is activated. Then, the data is further transferred from the storage unit 220 of the slave 200A to the memory on the accelerator 300A. Thereafter, the core executing the subtask reads out necessary data from the memory on the accelerator 300A and executes the processing. In other respects, the configuration and function of the parallel distributed processing control system 2 of the third embodiment are the same as those of the parallel distributed processing control system 1 of the second embodiment.

図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 slave 200A (step S1001). Then, the slave 200A reads the input split that is the processing target of the Map task from the storage device 300A, and transfers it to the accelerator 300A via the storage unit 220. That is, reading from the storage device 300A to the storage unit 220 and sending to the accelerator 300A are repeated (step S1002). At this time, direct memory access (DMA) is used for data transfer.

次に、スレーブ200Aのタスク分割部211は、Mapタスクを処理内容およびアクセラレータ300A上のコアの数に応じた数のサブタスクに分割する(ステップS1003)。そして、サブタスク割当部212は、サブタスクを割り当てるコアを決定する(ステップS1004)。このとき、サブタスク割当部212は、Mapタスクを分割して得たMapサブタスクの割当先とともに、マージソートサブタスクの割当先を決定する。   Next, the task dividing unit 211 of the slave 200A divides the Map task into a number of subtasks according to the processing content and the number of cores on the accelerator 300A (step S1003). Then, the subtask assignment unit 212 determines the core to which the subtask is assigned (Step S1004). At this time, the subtask assignment unit 212 determines the assignment destination of the merge sort subtask together with the assignment destination of the Map subtask obtained by dividing the Map task.

そして、サブタスク起動部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 accelerator 300A, reads the processing data for the subtask, and executes the subtask (step S1006). That is, data deserialization, generation of key-value pairs, sorting based on keys, and the like are executed. Thereafter, when all subtasks are completed, the slave 200A integrates the processing results and stores the results in the storage device 400A (step S1007).

このように、第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 accelerator 300A does not directly read the processing target data from the storage device 400A under the slave 200A, but reads the data from the memory on the accelerator 300A. FIG. 11 is a diagram for explaining a transfer mode of data to be processed in the third embodiment. As shown in FIG. 11, the processing target data stored in the storage device 400A is transferred to the storage unit 220 on the slave 200A. At this time, transfer is performed by direct memory access. Further, the processing target data is transferred from the storage unit 220 on the slave 200A to the memory on the accelerator 300A. Transfer is also performed by direct memory access. Thereafter, when each core executes the Map subtask, data is read from the memory on the accelerator 300A and loaded to execute deserialization, generation of a key-value pair, and the like.

[第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 storage unit 220 on the slave 200A and then transferred to the accelerator 300A, and each core reads the target data from the memory on the accelerator 300A for processing. Execute. Therefore, the processing target data can be handled as the file system of the own device from the slave 200A to which the Map task is assigned. Therefore, the processing operation by the administrator is facilitated.

なお、上記第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 task division unit 211 and the subtask allocation unit 212 are arranged in the slave 200A. However, the information processing apparatus integrates a plurality of slave task division units and subtask allocation units by separating them. May be arranged so that the information processing apparatus manages allocation of functions in the accelerator.

[プログラム]
図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 memory 3010, a CPU (Central Processing Unit) 3020, a hard disk drive 3080, and a network interface 3070. Each part of the computer 3000 is connected by a bus 5100.

メモリ3010は、図12に例示するように、ROM3011およびRAM3012を含む。ROM3011は、たとえば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。   The memory 3010 includes a ROM 3011 and a RAM 3012 as illustrated in FIG. The ROM 3011 stores a boot program such as BIOS (Basic Input Output System).

ここで、図12に例示するように、ハードディスクドライブ3080は、たとえば、OS3081、アプリケーションプログラム3082、プログラムモジュール3083、プログラムデータ3084を記憶する。すなわち、開示の技術に係る並列分散処理制御プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール3083として、たとえばハードディスクドライブ3080に記憶される。たとえば、マスタ100が備える制御部、スレーブ200Aが備える制御部210およびコアC1〜C10の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュール3083が、ハードディスクドライブ3080に記憶される。   Here, as illustrated in FIG. 12, the hard disk drive 3080 stores, for example, an OS 3081, an application program 3082, a program module 3083, and program data 3084. In other words, the parallel distributed processing control program according to the disclosed technique is stored in, for example, the hard disk drive 3080 as the program module 3083 in which instructions executed by the computer are described. For example, the hard disk drive 3080 stores a program module 3083 in which the control unit included in the master 100, the control unit 210 included in the slave 200A, and the procedures for executing the same information processing as each unit of the cores C1 to C10 are described.

また、記憶部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 storage unit 220, the local buffer LB, and the global buffer GB, is stored as program data 3084, for example, in the hard disk drive 3080. The CPU 3020 reads the program module 3083 and program data 3084 stored in the hard disk drive 3080 to the RAM 3012 as necessary, and executes various procedures.

なお、並列分散処理制御プログラムに係るプログラムモジュール3083やプログラムデータ3084は、ハードディスクドライブ3080に記憶される場合に限られない。たとえば、プログラムモジュール3083やプログラムデータ3084は、着脱可能な記憶媒体に記憶されてもよい。この場合、CPU3020は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、プログラムモジュール3083やプログラムデータ3084は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。この場合、CPU3020は、ネットワークインタフェース3070を介して他のコンピュータにアクセスすることで各種データを読み出す。   Note that the program module 3083 and the program data 3084 related to the parallel distributed processing control program are not limited to being stored in the hard disk drive 3080. For example, the program module 3083 and the program data 3084 may be stored in a removable storage medium. In this case, the CPU 3020 reads data via a removable storage medium such as a disk drive. Similarly, the program module 3083 and the program data 3084 may be stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.). In this case, the CPU 3020 reads various data by accessing another computer via the network interface 3070.

[その他]
なお、本実施例で説明した並列分散処理制御プログラムは、インターネット等のネットワークを介して配布することができる。また、並列分散処理制御プログラムは、ハードディスク、フレキシブルディスク(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 processing control system 10 Parallel distributed processing control apparatus 100 Master 110 Control part 111 Task division part 112 Subtask allocation part 113 Subtask starting part 114 Integration part 120 Storage part 130 Accelerator 140 Storage apparatus 200A-200G Slave 210 Control part 211 Task division Unit 212 Subtask allocation unit 213 Subtask activation unit 214 Integration unit 220 Storage unit 230 Communication unit 300 Accelerator 400 Storage device C1 to C10 Core GB Global buffer LB1 to LB10 Local buffer

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に記載の並列分散処理制御システム。   The plurality of cores of the accelerator each read a data block that is a processing target of an assigned subtask directly from a storage device that stores the data block under an information processing device. Parallel distributed processing control system. 前記アクセラレータの複数のコアは各々、割り当てられたサブタスクの処理対象であるデータブロックを、当該データブロックを格納する情報処理装置配下の記憶装置から当該情報処理装置のメモリを介して前記アクセラレータ上のメモリに転送された後に、前記アクセラレータ上のメモリから読み出して当該サブタスクを実行することを特徴とする請求項2に記載の並列分散処理制御システム。   Each of the plurality of cores of the accelerator sends a data block to be processed by the assigned subtask from a storage device under the information processing apparatus that stores the data block to a memory on the accelerator via the memory of the information processing apparatus. The parallel distributed processing control system according to claim 2, wherein the subtask is executed by reading from the memory on the accelerator after being transferred to the accelerator. 前記アクセラレータの複数のコアは、当該アクセラレータ上に各々に割り当てられる記憶領域を有し、前記サブタスクの実行により生成されたKey-Valueペアで当該記憶領域が満たされると、当該記憶領域に格納されたKey-Valueペアを、Keyをもとにソートして、ソート結果を、前記アクセラレータ上のグローバルバッファに記憶することを特徴とする請求項2から4のいずれか1項に記載の並列分散処理制御システム。   The plurality of cores of the accelerator have a storage area allocated to each of the accelerators, and when the storage area is filled with a key-value pair generated by execution of the subtask, the accelerator is stored in the storage area. 5. The parallel distributed processing control according to claim 2, wherein the key-value pairs are sorted based on the key, and the sorting result is stored in a global buffer on the accelerator. 6. system. 前記分割部は、処理対象であるデータブロックのロード、ロードしたデータのデシリアライゼーション、Key-Valueペアの生成およびKey-Valueペアのソートのうち一部の処理を前記サブタスクに分割し、
前記割当部は、前記アクセラレータの複数のコア各々に割り当てられるサブタスクの処理対象ブロック数が略均等となるよう割り当てることを特徴とする請求項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.
JP2013023499A 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 Pending JP2014153935A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (6)

* Cited by examiner, † Cited by third party
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