JP2012190206A - Data processing scheduling device, method and program - Google Patents
Data processing scheduling device, method and program Download PDFInfo
- Publication number
- JP2012190206A JP2012190206A JP2011052360A JP2011052360A JP2012190206A JP 2012190206 A JP2012190206 A JP 2012190206A JP 2011052360 A JP2011052360 A JP 2011052360A JP 2011052360 A JP2011052360 A JP 2011052360A JP 2012190206 A JP2012190206 A JP 2012190206A
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- chunk
- time
- order
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、コ・プロセッサにデータを転送して処理させるシステムにおけるデータ処理スケジュールリング装置に関する。 The present invention relates to a data processing scheduling apparatus in a system for transferring data to a co-processor for processing.
近年の計算機において、GPU(Graphics Processing Unit)はコモディティ化しており、広く利用可能となっている。GPUは、主にグラフィックス用の処理を行うものであったが、CPU(Central Processing Unit)のコ・プロセッサとして一般的な計算用途に使うGPGPU(General Purpose computing on Graphics Processing Units)と呼ばれる利用形態が注目されている。また、同じくコ・プロセッサとして利用可能なFPGA(Field Programmable Gate Array)などのプログラマブルなデバイスの低廉化も進んできている。これらのデバイスは、ホストの計算機とデータバスを介してデータをやり取りするが、その帯域は限られるため、データの転送時間が処理全体の時間に影響を及ぼす。 In recent computers, GPUs (Graphics Processing Units) have become commoditized and are widely available. The GPU is mainly used for graphics processing, but it is used as a general purpose computing on graphics processing units (GPGPU) for general computing purposes as a co-processor of the CPU (Central Processing Unit). Is attracting attention. In addition, the price of programmable devices such as field programmable gate arrays (FPGAs) that can also be used as co-processors has been reduced. These devices exchange data with a host computer via a data bus. However, since the bandwidth is limited, the data transfer time affects the overall processing time.
一般に、大量のデータをコ・プロセッサを用いて処理するシステムにおけるデータ処理の手順は、1)ホストコンピュータからコ・プロセッサへのデータの転送、2)コ・プロセッサでのデータ処理、3)コ・プロセッサからホストコンピュータへの結果データの転送、となる。一般にデータ転送時間は、データ量に対して単調増加である。ホスト―コ・プロセッサ間はPCIExpressX16などのバスで結ばれるため、データ転送時間がボトルネックになりやすい。 In general, a data processing procedure in a system that processes a large amount of data using a coprocessor is as follows: 1) transfer of data from the host computer to the coprocessor, 2) data processing in the coprocessor, 3) co The result data is transferred from the processor to the host computer. In general, the data transfer time monotonically increases with respect to the amount of data. Data transfer time tends to be a bottleneck because the host-co-processor is connected by a bus such as PCI ExpressX16.
データ転送時間を小さくし、全体の処理を高速化するためには、一般に次の二つの方法がある。一つ目は、データ列を複数に分割し、転送と処理を多重化(パイプライン処理)して、データ転送時間を隠ぺいする方法である。二つ目は、転送データを圧縮する方法である。 In order to reduce the data transfer time and increase the overall processing speed, there are generally the following two methods. The first is a method of concealing the data transfer time by dividing the data string into a plurality of pieces and multiplexing the transfer and processing (pipeline processing). The second is a method of compressing transfer data.
例えば、特許文献1には、転送される各圧縮データのデータサイズと送信順序を受信側Wの機器に送信し、受信側の機器では、これらの情報に基づいて、転送される各圧縮データの解凍処理のスケジューリングを行う技術が開示されている。
For example, in
コ・プロセッサを用いてデータを処理するシステムで上述の二つの方法を用いて、処理対象のデータを分割し、分割したデータ(チャンク)を圧縮してコ・プロセッサに転送して処理させる場合を考える。この場合、圧縮後のチャンクのサイズが異なることでチャンク毎にデータ転送時間とデータ処理時間が異なる状況が発生する場合がある。例えば、不均一なサイズでチャンクを作成した場合や、固定長サイズでチャンクを作成したがチャンク毎に圧縮率が異なる場合等である。このような状況で、ホストコンピュータとコ・プロセッサの間でパイプライン処理を行う場合、元のままのデータの順番(インオーダー)で各チャンクを転送・処理していくと、データ転送待ちやデータ処理待ちが発生し、処理効率が低下するという問題があった。 In a system that processes data using a co-processor, the above-mentioned two methods are used to divide the data to be processed, compress the divided data (chunk), transfer it to the co-processor, and process it. Think. In this case, there may be a situation in which the data transfer time and the data processing time are different for each chunk due to different chunk sizes after compression. For example, when chunks are created with non-uniform sizes, or when chunks are created with a fixed length size, but the compression rate differs for each chunk. In this situation, when pipeline processing is performed between the host computer and the co-processor, if each chunk is transferred and processed in the original data order (in-order), data transfer wait and data There is a problem that processing wait occurs and the processing efficiency decreases.
特許文献1の転送方式においても、データ列を元のままの順番で転送しているため、受信側でデータ転送待ちが発生し、効率が低下するという問題がある。
Even in the transfer method of
本発明は、上記問題点に鑑みてなされたもので、コ・プロセッサにデータを転送して処理させるシステムにおいて、データ転送やデータ処理の待ち時間を短縮し、処理効率を向上させることができるデータ処理スケジューリング装置、方法及びプログラムを提供することを目的とする。 The present invention has been made in view of the above problems, and in a system that transfers data to a co-processor for processing, data that can reduce the waiting time for data transfer and data processing and improve processing efficiency. It is an object to provide a processing scheduling apparatus, method, and program.
本発明は、コ・プロセッサにデータを転送して処理させるデータ処理スケジュールリング装置であって、処理対象のデータを複数のチャンクに分割する分割手段と、各チャンクのデータ転送時間とデータ処理時間を取得する時間取得手段と、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する順番決定手段と、を備えることを特徴とするデータ処理スケジュールリング装置である。 The present invention is a data processing scheduling apparatus for transferring data to a co-processor for processing, dividing means for dividing the data to be processed into a plurality of chunks, and the data transfer time and data processing time for each chunk. A time acquisition means for acquiring; and an order determination means for determining the order in which the co-processor processes the chunks based on the magnitude relationship between the data transfer time and the data processing time of each chunk. This is a data processing scheduling apparatus.
本発明は、ホストからコ・プロセッサにデータを転送して処理させるデータ処理スケジュールリング方法あって、処理対象のデータを複数のチャンクに分割し、各チャンクのデータ転送時間とデータ処理時間を取得し、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定することを特徴とするデータ処理スケジュールリング方法である。 The present invention provides a data processing scheduling method for transferring data from a host to a co-processor for processing, dividing the data to be processed into a plurality of chunks, and acquiring the data transfer time and data processing time of each chunk. The data processing scheduling method is characterized in that the order in which each of the chunks is processed by the co-processor is determined based on the magnitude relationship between the data transfer time and the data processing time of each chunk.
本発明は、コンピュータに、処理対象のデータを複数のチャンクに分割する分割処理、各チャンクのデータ転送時間とデータ処理時間を取得する時間取得処理、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する順番決定処理、を実行させるためのプログラムである。 The present invention provides a computer with a division process for dividing processing target data into a plurality of chunks, a time acquisition process for acquiring the data transfer time and data processing time of each chunk, and a data transfer time and a data processing time of each chunk. A program for executing an order determination process for determining an order in which the co-processor processes each chunk based on a relationship.
本発明によれば、コ・プロセッサにデータを転送して処理させるシステムにおいて、データ転送やデータ処理の待ち時間を短縮し、処理効率を向上させることができる。 According to the present invention, in a system that transfers data to a co-processor for processing, the waiting time for data transfer and data processing can be shortened and the processing efficiency can be improved.
以下、本発明の実施形態について図面を参照して説明する。本発明は、ホストコンピュータからコ・プロセッサにデータを転送して処理させるデータ処理スケジュール装置に関する。本発明の装置が処理対象とするデータ処理は、処理対象のデータ列が複数個に分割されたデータ列(以下、チャンク)について、その処理順番に影響を受けない処理を含む。例えば、数値配列の総和計算や平均値計算などの集約処理、数値配列から特定の数値だけビットの立ったフラグ配列を作り出すbitmapインデックスの作成処理、数百万から数億件の巨大なデータを扱うDWH(Data
Ware House)内部で行われる処理等を含む。
Embodiments of the present invention will be described below with reference to the drawings. The present invention relates to a data processing schedule device for transferring data from a host computer to a co-processor for processing. Data processing to be processed by the apparatus of the present invention includes processing that is not affected by the processing order of a data string (hereinafter referred to as a chunk) obtained by dividing the data string to be processed. For example, aggregation processing such as summation calculation and average value calculation of numeric arrays, creation of bitmap index that creates a flag array with bits of specific numeric values from numeric arrays, handling millions to hundreds of millions of huge data DWH (Data
Ware House) includes internal processing.
図1は、本発明の実施形態に係るデータ処理スケジューリング装置を概略的に示すブロック図である。このデータ処理スケジューリング装置は、ホストコンピュータ10と、コ・プロセッサ20と、ホストコンピュータ10とコ・プロセッサ20を接続するデータバス7を備える。
FIG. 1 is a block diagram schematically showing a data processing scheduling apparatus according to an embodiment of the present invention. The data processing scheduling apparatus includes a
ホストコンピュータ10は、データ登録部1とデータ蓄積部2と順番決定部3と処理指示部4を備える。
The
データ登録部1は、入力された処理対象のデータに所定の処理を施してデータ蓄積部2に登録する。データ登録部1は、データ分割部11とデータ圧縮部12と時間取得部13を備える。
The
データ分割部11は、入力された処理対象データを複数のチャンクに分割する。
The
データ圧縮部12は、分割されたチャンクを、所定の圧縮アルゴリズムにより圧縮する。
The
時間取得部13は、入力されたデータと入力された処理内容に基づいて、データ転送時間とデータ処理時間を取得する。データ転送時間とデータ処理時間の取得方法は任意であり、例えば、データサイズ等に基づく実測値のデータを予め記憶しておき、その実測値を取得してもよく、また、データサイズ等を引数とする予め設定された関数を用いて取得してもよい。
The
データ登録部1は、データ分割部11とデータ圧縮部12により分割・圧縮されたチャンクと、時間取得部13により取得されたデータ転送時間とデータ処理時間と、入力された処理内容と、を対応付けてデータ蓄積部2に登録する。
The
データ蓄積部2は、圧縮されたチャンクと、チャンクに対する処理内容と、チャックについて取得されたデータ転送時間とデータ処理時間と、チャンクに対する処理結果と、を蓄積して記憶する。データ蓄積部2は、DRAM(Dynamic Random Access Memory)、SSD(Solid
State Drive)等を含む。
The
State Drive) etc.
順番決定部3は、データ蓄積部2の蓄積された情報に基づいて、各チャンクを処理する順番を決定する。この処理の順番を決定する処理の詳細については後述する。
The
処理指示部4は、順番決定部3により決定された順番に従って、各チャンクのデータ転送とデータ処理の実行を指示する。
The
コ・プロセッサ20は、データ蓄積部5と演算実行部6を備える。コ・プロセッサ20は、例えば、GPU、FPGA等を含む。
The
データ蓄積部5は、ホスト側から転送されたチャンクと、チャンクに対する処理と、チャンクに対する処理結果を蓄積記憶する。データ蓄積部5は、DRAM、SSD等を含む。
The
演算実行部6は、転送が終わったチャンクについてデータ処理を行い、処理結果をデータ蓄積部5に格納する。
The
データバス7はホストコンピュータ10とコ・プロセッサ20を接続し、データ蓄積部2からデータ蓄積部5へデータを転送する。データバス7は、例えば、PCI Expressやイーサネット(登録商標)を含む。
The
次に本実施形態に係るデータ処理スケジューリング装置の動作について説明する。本実施形態に係るデータ処理スケジュール装置は、図2に示すように、各種データの登録(ステップA21)、処理の順番の決定(ステップA22)、処理の実行(ステップA23)という処理の流れに従って動作する。以下、これらの各ステップについて説明する。 Next, the operation of the data processing scheduling apparatus according to this embodiment will be described. As shown in FIG. 2, the data processing schedule device according to the present embodiment operates in accordance with the processing flow of registration of various data (step A21), determination of processing order (step A22), and execution of processing (step A23). To do. Hereinafter, each of these steps will be described.
まず、ステップA21のデータの登録処理について図3を参照して説明する。データ登録部1は、処理対象データ、処理内容、転送時間を求めるための関数、処理時間を求めるための関数の入力を受ける(ステップA31)。データ分割部11は、入力された処理対象データを複数のチャンクに分割する(ステップA32)。データ圧縮部12は、各チャンクを圧縮する(ステップA33)。データ登録部1は、圧縮された各チャンクと、入力された処理内容をデータ蓄積部2に記憶する(ステップA34)。
First, the data registration process in step A21 will be described with reference to FIG. The
次に、ステップA22の処理の順番の決定処理について図4を参照して説明する。順番決定部2は、データ蓄積部2に保存された全チャックについて以下の処理を行う(ステップA41)。順番決定部2は、データ蓄積部2に保存されている一つのチャンクについて、転送時間と処理時間を取得する(ステップA42)。順番決定部2は、転送時間と処理時間を比較し、処理時間が転送時間以上かどうか、それらの大小関係を判定する。転送時間が処理時間よりも大きい場合(ステップA43:NO)、そのチャンクをリストAに追加する(ステップA44)。また、処理時間が転送時間以上の場合(ステップA43:YES)、そのチャンクをリストBに追加する(ステップA45)。
Next, the processing order determination processing in step A22 will be described with reference to FIG. The
全チャンクについて、ステップA42〜A45の処理が終了すると(ステップA41:YES)、順番決定部2は、リストAに登録したチャンクを転送時間の短い順にソートし(ステップA46)、リストBに登録したチャンクを処理時間の長い順にソートする(ステップA47)。順番決定部2は、リストAの後ろにリストBを連結して、全体の実行スケジュールとして、データ蓄積部2に保存する(ステップA48)。
When the processing of steps A42 to A45 is completed for all the chunks (step A41: YES), the
これにより、各チャンクの処理の順番が決定される。先に実行される、転送時間が処理時間よりも小さいチャンクのグループ(リストA)について転送時間の短い順にソートしたのは、初めの処理開始待ち時間を短縮するためである。また、続いて実行される、処理時間が転送時間以上のチャンクのグループ(リストB)について処理時間の長い順にソートしたのは、終わりの処理時間を短縮するためである。 Thereby, the processing order of each chunk is determined. The reason why the group of chunks (list A) that is executed first and whose transfer time is shorter than the processing time is sorted in the order of short transfer time is to reduce the initial processing start waiting time. The reason why the group of chunks (list B), which are executed subsequently and whose processing time is equal to or longer than the transfer time, is sorted in descending order of processing time is to shorten the end processing time.
次に、ステップA23の処理の実行について図5を参照して説明する。 Next, execution of the process of step A23 will be described with reference to FIG.
処理指示部4は、まず、チャンクの転送をコ・プロセッサ20に指示し、順番決定部3により決定された順番に従って、チャンクをデータ蓄積部2から読み出し、データバス7を介してコ・プロセッサ20に転送する(ステップA51)。コ・プロセッサ20は、転送されたチャンクをデータ蓄積部5に記憶する。
The
処理指示部4は、データ蓄積部2に保存された処理内容を読み出し、コ・プロセッサ20にチャンクの処理を指示する(ステップA52)。コ・プロセッサ20の演算実行部6は、転送が終わったチャンクについて、ホストから指示されたデータ処理を行う。
The
処理指示部4は、全チャンクについて処理の指示が終わったかを判定し(ステップA53)、終わっていない場合には(ステップA53:NO)、ステップA51に戻って次のチャンクについての処理を行う。また、全チャンクについて処理の指示が終わった場合には(ステップA53:YES)、コ・プロセッサ20演算実行部6による最後のチャンクの処理の終了を待つ(ステップA54)。
The
処理指示部4は、コ・プロセッサ20において最後のチャンクの処理が終了すると、処理結果の転送をコ・プロセッサ20に指示する(ステップA55)。コ・プロセッサ20は、データ蓄積部5に保存された処理結果をホストコンピュータ10に転送する。
When the processing of the last chunk is completed in the
次に本データ処理スケジューリング装置の動作を具体的に説明する。例えば、DWH等の分野では、データの傾向や関連性を分析するために、数百万〜数億件の大量のデータに対する処理を何度も行うことがある。ここでは、1億件の要素を持つ数値データ配列の総和計算を行う場合を例に説明する。 Next, the operation of the data processing scheduling apparatus will be specifically described. For example, in a field such as DWH, processing of a large amount of data of millions to hundreds of millions of times may be performed many times in order to analyze data trends and relationships. Here, a case where the sum calculation of a numerical data array having 100 million elements is performed will be described as an example.
まず、データ登録処理が実行される(ステップA21)。具体的には、データ登録部1に、1億件の数値データ配列と、処理内容(圧縮された数値列の総和を計算する)と、変数yを引数とし、データ転送時間を返す関数T(y)と、変数yを引数とし、データ処理時間を返す関数X(y)と、が入力される(ステップA31)。本実施形態では、関数Tと関数Xにおける引数は、圧縮後のチャンクのデータサイズとし、例えば、T(size)=2α*size、X(size)=α*sizeとする。
First, a data registration process is executed (step A21). Specifically, in the
データ分割部11は、入力された1億件の数値データ配列を、2500万件ずつの4個のチャンク(チャンクC0〜C3)に分割する(ステップA32)。チャンクの数は4なので、コ・プロセッサ20は、チャンク内のデータの和を計算し、その値をデータ蓄積部5に記憶されている結果値に加算する処理を4回繰り返すこととなる。
The
データ圧縮部12は、各チャンクを圧縮する(ステップA33)。この例において、圧縮後の各チャンクのサイズは、chunk[0].size=1、chunk[1].size=2、chunk[2].size=2、chunk[3].size=3であったとする。
The
データ登録部1は、圧縮された各チャンクと、圧縮されたチャンクに対する処理内容と、関数Tと、関数Xをデータ蓄積部2に保存する(ステップA34)。
The
次に、処理の順番の決定処理が実行される(ステップA22)。具体的には、順番決定部2は、図4に示すアルゴリズムに従って、データ蓄積部2に保存されたデータから、各チャンクの処理順番を決定する。各チャンクについて転送時間と処理時間を取得し(ステップA42)、これらの大小関係を判定する(ステップA43)。この例では、全てのチャンクにおいて、T(size)>X(size)が成り立つ。このため、各チャンクはリストBに登録されることとなる(ステップA45)。全チャンクについて転送時間と処理時間の大小関係の判定が終了すると(ステップA41:YES)、順番決定部2は、データ処理時間X(size)の大きい順にソートし、ソート結果に基づいてスケジュールのリストを作成する。この例では、チャンク処理順は、C3,C2,C1,C0となる。
Next, processing order determination processing is executed (step A22). Specifically, the
次に、処理の実行が行われる(ステップA23)。具体的には、処理指示部4は、図5に示すアルゴリズムに従って、チャンクC3,C2,C1,C0の順で処理の実行を指示する。
Next, processing is executed (step A23). Specifically, the
処理指示部4は、コ・プロセッサ20にデータ転送を指示し、データ蓄積部2からコ・プロセッサ側のデータ蓄積部5へのデータを転送する(ステップA51)。
The
処理指示部4は、コ・プロセッサ20にデータ処理を指示する。コ・プロセッサ20の演算実行部6は、転送が終わったチャンクに対して、演算実行部6が総和の計算を行う(ステップA52)。
The
処理指示部4は、全チャンクについて処理の指示が終わるまで(ステップA53:NO)、ステップA51、A52を繰り返す。そして、全チャンクの処理の指示が終わると(ステップA53:YES)、コ・プロセッサ20において最後のチャンクの処理が終了するのを待つ(ステップA54)。最後のチャンクの計算が終わったことを検知すると、処理指示部4は、処理結果の転送をコ・プロセッサ20に指示する。コ・プロセッサ20は、データ蓄積部5から最終結果のデータを読み出し、ホストコンピュータ10に転送する(ステップA55)。
The
上述した例における各チャンクのデータ転送処理とデータ処理の実行時間を図6に示す(optimized)。ここでは、最終結果の転送時間がαであったとする。また、図6では、比較のため、チャンクC0,C1,C2,C3という元の順番のままで処理した場合のデータ転送処理とデータ処理の実行時間も示している(in-order)。図6に示すように、順番決定部3で決定した順番で処理を行うことによって、インオーダーで処理を行うよりも、転送待ち、処理待ち時間を短くすることができ、全体の処理を高速化できる。
FIG. 6 shows the data transfer processing and data processing execution time of each chunk in the above example (optimized). Here, it is assumed that the final transfer time is α. FIG. 6 also shows data transfer processing and data processing execution time when processing is performed in the original order of chunks C0, C1, C2, and C3 for comparison (in-order). As shown in FIG. 6, by performing the processing in the order determined by the
以上のように、本実施の形態によれば、処理データをコ・プロセッサに転送して処理させる場合に、処理データを複数に分割し、分割した各チャンクについて、その転送時間と処理時間に基づいて処理の順番を決定することにより、データ転送の効率とコ・プロセッサの利用率を向上させることができ、全体の処理時間を短縮させることができる。 As described above, according to the present embodiment, when processing data is transferred to a co-processor for processing, the processing data is divided into a plurality of chunks, and each divided chunk is based on the transfer time and processing time. By determining the processing order, it is possible to improve the efficiency of data transfer and the utilization rate of the coprocessor, and to shorten the overall processing time.
なお、上述した処理では、コ・プロセッサ20において全てのチャンクの処理が終わってからホスト側に結果を渡しているが、これに限定されず、チャンク毎に処理結果をホスト側に渡すようにしてもよい。この場合の処理について図7を参照して説明する。 In the above-described processing, the co-processor 20 passes the result to the host side after all chunks have been processed. However, the present invention is not limited to this, and the processing result is passed to the host side for each chunk. Also good. Processing in this case will be described with reference to FIG.
処理指示部4は、チャンクの転送をコ・プロセッサ20に指示し、順番決定部3により決定された順番に従って、チャンクをデータ蓄積部2から読み出してコ・プロセッサ20に転送する(ステップA71)。コ・プロセッサ20は、転送されたチャンクをデータ蓄積部5に記憶する。
The
処理指示部4は、データ蓄積部2に保存された処理内容を読み出し、コ・プロセッサ20にチャンクの処理を指示する(ステップA72)。コ・プロセッサ20の演算実行部6は、転送が終わったチャンクについて、ホストから指示されたデータ処理を行う。
The
処理指示部4は、コ・プロセッサ20にチャンクの処理結果の転送を指示する(ステップA73)。コ・プロセッサ20は、チャンクの処理結果をホストに転送し、処理指示部4は、転送されてきた処理結果をデータ蓄積部2に蓄積する。
The
処理指示部4は、全チャンクについて処理の指示が終わったかを判定し(ステップA74)、終わっていない場合には(ステップA74:NO)、ステップA71に戻って次のチャンクについての処理を行う。また、全チャンクについて処理の指示が終わった場合には(ステップA73:YES)、コ・プロセッサ20演算実行部6による最後のチャンクの転送処理の終了を待つ(ステップA754)。
The
処理指示部4は、コ・プロセッサ20において最後のチャンクの転送処理が終了すると、データ蓄積部2に保存していたチャンク毎の結果処理をまとめる処理を行う(ステップA76)。
When the co-processor 20 finishes transferring the last chunk in the
なお、図7に示すような処理を行う場合、チャンクの処理の順番の決定は、チャンクの転送時間、チャンクの処理時間に加えて、コ・プロセッサ側に保持可能な結果のサイズ、結果の転送時間等をパラメータとする最適化問題となる。この場合、順番決定部3は、例えば、総当たりによって最適なスケジュールを得る、ヒューリスティックな解法により、近似最適なスケジュールを作成する。
When processing as shown in FIG. 7 is performed, the chunk processing order is determined in addition to the chunk transfer time and chunk processing time, the size of the result that can be held on the co-processor side, and the transfer of the result. This is an optimization problem with time as a parameter. In this case, the
上記実施形態では、ホストコンピュータ10のデータ登録部1によるデータ登録処理(図3)では、各チャンクのデータ転送時間とデータ処理時間を求めるための各関数が入力されていた。上記実施形態の変形例として、のデータ登録部1の時間取得部13が、各チャンクのデータ転送時間とデータ処理時間の少なくとも一方を実測して取得し、この実測値に基づいて順番決定部3が各チャンクの処理の順番を決定してもよい。この場合のデータ登録部1によるデータ登録処理について図8を参照して説明する。
In the above embodiment, in the data registration process (FIG. 3) by the
データ登録部1は、処理対象データ、処理内容の入力を受ける(ステップA81)。データ分割部11は、入力された処理対象データを複数のチャンクに分割する(ステップA82)。データ圧縮部12は、各チャンクを圧縮する(ステップA83)。時間取得部13は、圧縮された各チャンクについてデータ転送時間とデータ処理時間を測定する(ステップA84)。具体的には、各チャンクについて、データ転送をコ・プロセッサ20に指示した時点から、その転送が完了するまでの時間を計測する。また、各チャンクについて、処理を指示した時点から、その処理が完了するまでの時間を計測する。データ登録部1は、圧縮された各チャンクと、入力された処理内容と、測定された各チャンクの転送時間と処理時間をデータ蓄積部2に記憶する(ステップA85)。
The
なお、ここでは、データ転送時間とデータ処理時間の双方を測定しているが、どちらか一方だけ測定し、他方は関数等で求めてもよい。 Here, both the data transfer time and the data processing time are measured, but only one of them may be measured, and the other may be obtained by a function or the like.
上述した本発明の実施形態に係るデータ登録部1、順番決定部3、処理指示部4、演算実行部6は、CPU等の処理装置が記憶部に格納された動作プログラム等を読み出して実行することにより実現されてもよく、また、ハードウェアで構成されてもよい。上述した実施の形態の一部の機能のみをコンピュータプログラムにより実現することもできる。
The
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形し実施することが出来る。 Although the present invention has been described with reference to the preferred embodiments, the present invention is not necessarily limited to the above-described embodiments, and various modifications can be made within the scope of the technical idea.
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。 A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.
(付記1)
コ・プロセッサにデータを転送して処理させるデータ処理スケジュールリング装置であって、
処理対象のデータを複数のチャンクに分割する分割手段と、
各チャンクのデータ転送時間とデータ処理時間を取得する時間取得手段と、
各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する順番決定手段と、
を備えることを特徴とするデータ処理スケジュールリング装置。
(Appendix 1)
A data processing scheduling device for transferring data to a co-processor for processing;
A dividing means for dividing the data to be processed into a plurality of chunks;
Time acquisition means for acquiring the data transfer time and data processing time of each chunk;
Order determining means for determining the order in which each of the chunks is processed by the co-processor based on the magnitude relationship between the data transfer time and the data processing time of each chunk;
A data processing scheduling apparatus comprising:
(付記2)
前記順番決定手段は、前記各チャンクを、データ転送時間とデータ処理時間の大小関係に基づいて分別し、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順に処理した後にデータ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順に処理するように、各チャンクの順番を決定する、
ことを特徴とする付記1に記載のデータ処理スケジュールリング装置。
(Appendix 2)
The order determining means classifies each chunk based on the magnitude relationship between the data transfer time and the data processing time, and processes the group of chunks having the smaller data transfer time in the order of the smaller data transfer time. Determine the order of each chunk so that the larger chunk group is processed in order of the data processing time,
The data processing scheduling apparatus according to
(付記3)
前記順番決定手段は、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順にソートし、データ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順にソートし、データ転送時間の方が小さいチャンクのグループが先になるように前記2つのグループのソート結果を結合して、チャンクの処理の順番のスケジュールリストを生成する、
ことを特徴とする請求項2に記載のデータ処理スケジュールリング装置。
(Appendix 3)
The order determination means sorts groups of chunks having a smaller data transfer time in ascending order of data transfer time, sorts groups of chunks having a larger data transfer time in order of increasing data processing time, Combine the sorting results of the two groups so that the smaller chunk group comes first, and generate a schedule list of the chunk processing order.
The data processing scheduling apparatus according to
(付記4)
前記時間取得手段は、各チャンクのデータ転送時間とデータ処理時間を計測して取得し、
前記順番決定手段は、前記計測された各チャンクのデータ転送時間とデータ処理時間に基づいて、各チャンクを前記コ・プロセッサに処理させる順番を決定する
ことを特徴とする請求項1から3のいずれか1項に記載のデータ処理スケジュールリング装置。
(Appendix 4)
The time acquisition means measures and acquires the data transfer time and data processing time of each chunk,
The said order determination means determines the order which makes a said co-processor process each chunk based on the measured data transfer time and data processing time of each chunk. The any one of
(付記5)
ホストからコ・プロセッサにデータを転送して処理させるデータ処理スケジュールリング方法あって、
処理対象のデータを複数のチャンクに分割し、
各チャンクのデータ転送時間とデータ処理時間を取得し、
各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する、
ことを特徴とするデータ処理スケジュールリング方法。
(Appendix 5)
There is a data processing scheduling method for transferring data from a host to a co-processor and processing it.
Divide the data to be processed into multiple chunks,
Get the data transfer time and data processing time for each chunk,
Based on the magnitude relationship between the data transfer time and the data processing time of each chunk, the order in which each of the chunks is processed by the co-processor is determined.
A data processing scheduling method characterized by the above.
(付記6)
各チャンクを前記コ・プロセッサに処理させる順番を決定するときに、前記各チャンクを、データ転送時間とデータ処理時間の大小関係に基づいて分別し、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順に処理した後にデータ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順に処理するように、各チャンクの順番を決定する、
ことを特徴とする請求項5に記載のデータ処理スケジュールリング方法。
(Appendix 6)
When determining the order in which each of the chunks is processed by the co-processor, the chunks are separated based on the magnitude relationship between the data transfer time and the data processing time, and a group of chunks having a smaller data transfer time is determined as data. Determine the order of each chunk so that the group of chunks with the larger data transfer time after processing in ascending order of the transfer time is processed in the order of the larger data processing time.
The data processing scheduling method according to
(付記7)
各チャンクを前記コ・プロセッサに処理させる順番を決定するときに、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順にソートし、データ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順にソートし、データ転送時間の方が小さいチャンクのグループが先になるように前記2つのグループのソート結果を結合して、チャンクの処理の順番のスケジュールリストを生成する、
ことを特徴とする請求項6に記載のデータ処理スケジュールリング方法。
(Appendix 7)
When determining the order in which the co-processor processes each chunk, the group of chunks with the smaller data transfer time is sorted in ascending order of the data transfer time, and the group of chunks with the longer data transfer time is processed with data. Sorting in descending order of time, combining the sorting results of the two groups so that the group of chunks with the smaller data transfer time comes first, and generating a schedule list of chunk processing order,
The data processing scheduling method according to
(付記8)
各チャンクのデータ転送時間とデータ処理時間を計測して取得し、
各チャンクを前記コ・プロセッサに処理させる順番を決定するときに、前記計測された各チャンクのデータ転送時間とデータ処理時間に基づいて、各チャンクを前記コ・プロセッサに処理させる順番を決定する
ことを特徴とする請求項5から7のいずれか1項に記載のデータ処理スケジュールリング方法。
(Appendix 8)
Measure and acquire the data transfer time and data processing time of each chunk,
Determining the order in which each chunk is processed by the co-processor based on the measured data transfer time and data processing time of each chunk when determining the order in which each co-processor is processed by the co-processor. The data processing scheduling method according to any one of
(付記9)
コンピュータに、
処理対象のデータを複数のチャンクに分割する分割処理、
各チャンクのデータ転送時間とデータ処理時間を取得する時間取得処理、
各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する順番決定処理、
を実行させることを特徴とするプログラム。
(Appendix 9)
On the computer,
Split processing to divide the data to be processed into multiple chunks,
Time acquisition processing to acquire the data transfer time and data processing time of each chunk,
An order determination process for determining the order in which each of the chunks is processed by the co-processor based on the magnitude relationship between the data transfer time and the data processing time of each chunk;
A program characterized by having executed.
(付記10)
前記順番決定処理は、前記各チャンクを、データ転送時間とデータ処理時間の大小関係に基づいて分別し、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順に処理した後にデータ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順に処理するように、各チャンクの順番を決定する、
ことを特徴とする請求項9に記載のプログラム。
(Appendix 10)
In the order determination process, the chunks are classified based on the magnitude relationship between the data transfer time and the data processing time, and the group of chunks having the smaller data transfer time is processed in the order of the data transfer time, and then the data transfer time Determine the order of each chunk so that the larger chunk group is processed in order of the data processing time,
The program according to
(付記11)
前記順番決定処理は、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順にソートし、データ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順にソートし、データ転送時間の方が小さいチャンクのグループが先になるように前記2つのグループのソート結果を結合して、チャンクの処理の順番のスケジュールリストを生成する、
ことを特徴とする請求項10に記載のプログラム。
(Appendix 11)
The order determination process sorts groups of chunks with a smaller data transfer time in ascending order of data transfer time, sorts groups of chunks with a larger data transfer time in order of increasing data processing time, Combine the sorting results of the two groups so that the smaller chunk group comes first, and generate a schedule list of the chunk processing order.
The program according to
(付記12)
前記時間取得処理は、各チャンクのデータ転送時間とデータ処理時間を計測して取得し、
前記順番決定処理は、前記計測された各チャンクのデータ転送時間とデータ処理時間に基づいて、各チャンクを前記コ・プロセッサに処理させる順番を決定する
ことを特徴とする請求項9から11のいずれか1項に記載のプログラム。
(Appendix 12)
The time acquisition process measures and acquires the data transfer time and data processing time of each chunk,
The order determination process determines an order in which the co-processor processes each chunk based on the measured data transfer time and data processing time of each chunk. The program according to
1 データ登録部
2 データ蓄積部
3 順番決定部
4 処理指示部
5 データ蓄積部
6 演算実行部
7 データバス
10 ホストコンピュータ
11 データ分割部
12 データ圧縮部
13 時間取得部
20 コ・プロセッサ
DESCRIPTION OF
Claims (6)
処理対象のデータを複数のチャンクに分割する分割手段と、
各チャンクのデータ転送時間とデータ処理時間を取得する時間取得手段と、
各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する順番決定手段と、
を備えることを特徴とするデータ処理スケジュールリング装置。 A data processing scheduling device for transferring data to a co-processor for processing;
A dividing means for dividing the data to be processed into a plurality of chunks;
Time acquisition means for acquiring the data transfer time and data processing time of each chunk;
Order determining means for determining the order in which each of the chunks is processed by the co-processor based on the magnitude relationship between the data transfer time and the data processing time of each chunk;
A data processing scheduling apparatus comprising:
ことを特徴とする請求項1に記載のデータ処理スケジュールリング装置。 The order determining means classifies each chunk based on the magnitude relationship between the data transfer time and the data processing time, and processes the group of chunks having the smaller data transfer time in the order of the smaller data transfer time. Determine the order of each chunk so that the larger chunk group is processed in order of the data processing time,
The data processing scheduling apparatus according to claim 1, wherein:
ことを特徴とする請求項2に記載のデータ処理スケジュールリング装置。 The order determination means sorts groups of chunks having a smaller data transfer time in ascending order of data transfer time, sorts groups of chunks having a larger data transfer time in order of increasing data processing time, Combine the sorting results of the two groups so that the smaller chunk group comes first, and generate a schedule list of the chunk processing order.
The data processing scheduling apparatus according to claim 2, wherein:
前記順番決定手段は、前記計測された各チャンクのデータ転送時間とデータ処理時間に基づいて、各チャンクを前記コ・プロセッサに処理させる順番を決定する
ことを特徴とする請求項1から3のいずれか1項に記載のデータ処理スケジュールリング装置。 The time acquisition means measures and acquires the data transfer time and data processing time of each chunk,
The said order determination means determines the order which makes a said co-processor process each chunk based on the measured data transfer time and data processing time of each chunk. The any one of Claim 1 to 3 characterized by the above-mentioned. A data processing scheduling apparatus according to claim 1.
処理対象のデータを複数のチャンクに分割し、
各チャンクのデータ転送時間とデータ処理時間を取得し、
各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する、
ことを特徴とするデータ処理スケジュールリング方法。 There is a data processing scheduling method for transferring data from a host to a co-processor and processing it.
Divide the data to be processed into multiple chunks,
Get the data transfer time and data processing time for each chunk,
Based on the magnitude relationship between the data transfer time and the data processing time of each chunk, the order in which each of the chunks is processed by the co-processor is determined.
A data processing scheduling method characterized by the above.
処理対象のデータを複数のチャンクに分割する分割処理、
各チャンクのデータ転送時間とデータ処理時間を取得する時間取得処理、
各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する順番決定処理、
を実行させることを特徴とするプログラム。 On the computer,
Split processing to divide the data to be processed into multiple chunks,
Time acquisition processing to acquire the data transfer time and data processing time of each chunk,
An order determination process for determining the order in which each of the chunks is processed by the co-processor based on the magnitude relationship between the data transfer time and the data processing time of each chunk;
A program characterized by having executed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011052360A JP5831679B2 (en) | 2011-03-10 | 2011-03-10 | Data processing scheduling apparatus, method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011052360A JP5831679B2 (en) | 2011-03-10 | 2011-03-10 | Data processing scheduling apparatus, method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012190206A true JP2012190206A (en) | 2012-10-04 |
JP5831679B2 JP5831679B2 (en) | 2015-12-09 |
Family
ID=47083299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011052360A Expired - Fee Related JP5831679B2 (en) | 2011-03-10 | 2011-03-10 | Data processing scheduling apparatus, method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5831679B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1043352A (en) * | 1996-07-31 | 1998-02-17 | K S K Kk | Glove for baseball |
JP2015176337A (en) * | 2014-03-14 | 2015-10-05 | 富士通株式会社 | Data transfer method, device, and system |
JP2019117536A (en) * | 2017-12-27 | 2019-07-18 | 富士通株式会社 | Data transmitting program, data transmitting device, and data transmitting method |
JPWO2020255239A1 (en) * | 2019-06-18 | 2020-12-24 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591287B1 (en) * | 1999-09-08 | 2003-07-08 | Lucent Technologies Inc. | Method to increase the efficiency of job sequencing from sequential storage |
JP2003208414A (en) * | 2002-01-11 | 2003-07-25 | Hitachi Ltd | Server with load distribution function and client |
-
2011
- 2011-03-10 JP JP2011052360A patent/JP5831679B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591287B1 (en) * | 1999-09-08 | 2003-07-08 | Lucent Technologies Inc. | Method to increase the efficiency of job sequencing from sequential storage |
JP2003208414A (en) * | 2002-01-11 | 2003-07-25 | Hitachi Ltd | Server with load distribution function and client |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1043352A (en) * | 1996-07-31 | 1998-02-17 | K S K Kk | Glove for baseball |
JP2015176337A (en) * | 2014-03-14 | 2015-10-05 | 富士通株式会社 | Data transfer method, device, and system |
JP2019117536A (en) * | 2017-12-27 | 2019-07-18 | 富士通株式会社 | Data transmitting program, data transmitting device, and data transmitting method |
JPWO2020255239A1 (en) * | 2019-06-18 | 2020-12-24 | ||
WO2020255239A1 (en) * | 2019-06-18 | 2020-12-24 | 日本電信電話株式会社 | Data processing device, data processing method, and program |
JP7277824B2 (en) | 2019-06-18 | 2023-05-19 | 日本電信電話株式会社 | Data processing device, data processing method and program |
US11880611B2 (en) | 2019-06-18 | 2024-01-23 | Nippon Telegraph And Telephone Corporation | Data processing apparatus, data processing method and program |
Also Published As
Publication number | Publication date |
---|---|
JP5831679B2 (en) | 2015-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11429852B2 (en) | Convolution acceleration and computing processing method and apparatus, electronic device, and storage medium | |
Tang et al. | Accelerating millions of short reads mapping on a heterogeneous architecture with FPGA accelerator | |
US9529590B2 (en) | Processor for large graph algorithm computations and matrix operations | |
JP5831679B2 (en) | Data processing scheduling apparatus, method, and program | |
Hu et al. | Fast and accurate streaming CNN inference via communication compression on the edge | |
WO2023236365A1 (en) | Data processing method and apparatus, and ai chip, electronic device and storage medium | |
Li et al. | BLASTP-ACC: Parallel architecture and hardware accelerator design for BLAST-based protein sequence alignment | |
CN105573843B (en) | A kind of data processing method and system | |
CN106575220A (en) | Multiple clustered very long instruction word processing core | |
CN103699442A (en) | Iterable data processing method under MapReduce calculation framework | |
Fan et al. | A heterogeneity-aware data distribution and rebalance method in Hadoop cluster | |
US20150149746A1 (en) | Arithmetic processing device, information processing device, and a method of controlling the information processing device | |
Soto et al. | JACC-FPGA: A hardware accelerator for Jaccard similarity estimation using FPGAs in the cloud | |
Soto et al. | Hardware acceleration of k-mer clustering using locality-sensitive hashing | |
CN113238711B (en) | Efficient hash calculation method in field of electronic data evidence obtaining | |
TWI775151B (en) | Graphics processing unit and acceleration method for matrix calculation thereof | |
WO2015143708A1 (en) | Method and apparatus for constructing suffix array | |
WO2020082224A1 (en) | Fpga-based resequencing analysis method and device | |
Cheng | Fast virus signature matching based on the high performance computing of GPU | |
TWI752068B (en) | Computing device and method for operation of computing device | |
Honbo et al. | Efficient Pairwise Statistical Significance Estimation using FPGAs. | |
CN113822003B (en) | FPGA-based static timing analysis delay calculation acceleration system and method | |
Wirawan et al. | High performance protein sequence database scanning on the Cell Broadband Engine | |
JP5713973B2 (en) | Information processing apparatus and parallel processing method | |
US20230195536A1 (en) | Data offloading processes and systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140213 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141017 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141022 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150218 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150417 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150930 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151013 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5831679 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |