説明

データ処理スケジューリング装置、方法及びプログラム

【課題】コ・プロセッサにデータを転送して処理させるシステムにおいて、データ転送やデータ処理の待ち時間を短縮し、処理効率を向上させる。
【解決手段】ホストは、処理対象のデータを複数のチャンクに分割し、各チャンクのデータ転送時間とデータ処理時間を取得し、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、各チャンクをコ・プロセッサに処理させる順番を決定し、決定した順番に従って、各チャンクをコ・プロセッサに転送して処理させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コ・プロセッサにデータを転送して処理させるシステムにおけるデータ処理スケジュールリング装置に関する。
【背景技術】
【0002】
近年の計算機において、GPU(Graphics Processing Unit)はコモディティ化しており、広く利用可能となっている。GPUは、主にグラフィックス用の処理を行うものであったが、CPU(Central Processing Unit)のコ・プロセッサとして一般的な計算用途に使うGPGPU(General Purpose computing on Graphics Processing Units)と呼ばれる利用形態が注目されている。また、同じくコ・プロセッサとして利用可能なFPGA(Field Programmable Gate Array)などのプログラマブルなデバイスの低廉化も進んできている。これらのデバイスは、ホストの計算機とデータバスを介してデータをやり取りするが、その帯域は限られるため、データの転送時間が処理全体の時間に影響を及ぼす。
【0003】
一般に、大量のデータをコ・プロセッサを用いて処理するシステムにおけるデータ処理の手順は、1)ホストコンピュータからコ・プロセッサへのデータの転送、2)コ・プロセッサでのデータ処理、3)コ・プロセッサからホストコンピュータへの結果データの転送、となる。一般にデータ転送時間は、データ量に対して単調増加である。ホスト―コ・プロセッサ間はPCIExpressX16などのバスで結ばれるため、データ転送時間がボトルネックになりやすい。
【0004】
データ転送時間を小さくし、全体の処理を高速化するためには、一般に次の二つの方法がある。一つ目は、データ列を複数に分割し、転送と処理を多重化(パイプライン処理)して、データ転送時間を隠ぺいする方法である。二つ目は、転送データを圧縮する方法である。
【0005】
例えば、特許文献1には、転送される各圧縮データのデータサイズと送信順序を受信側Wの機器に送信し、受信側の機器では、これらの情報に基づいて、転送される各圧縮データの解凍処理のスケジューリングを行う技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−338409号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
コ・プロセッサを用いてデータを処理するシステムで上述の二つの方法を用いて、処理対象のデータを分割し、分割したデータ(チャンク)を圧縮してコ・プロセッサに転送して処理させる場合を考える。この場合、圧縮後のチャンクのサイズが異なることでチャンク毎にデータ転送時間とデータ処理時間が異なる状況が発生する場合がある。例えば、不均一なサイズでチャンクを作成した場合や、固定長サイズでチャンクを作成したがチャンク毎に圧縮率が異なる場合等である。このような状況で、ホストコンピュータとコ・プロセッサの間でパイプライン処理を行う場合、元のままのデータの順番(インオーダー)で各チャンクを転送・処理していくと、データ転送待ちやデータ処理待ちが発生し、処理効率が低下するという問題があった。
【0008】
特許文献1の転送方式においても、データ列を元のままの順番で転送しているため、受信側でデータ転送待ちが発生し、効率が低下するという問題がある。
【0009】
本発明は、上記問題点に鑑みてなされたもので、コ・プロセッサにデータを転送して処理させるシステムにおいて、データ転送やデータ処理の待ち時間を短縮し、処理効率を向上させることができるデータ処理スケジューリング装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明は、コ・プロセッサにデータを転送して処理させるデータ処理スケジュールリング装置であって、処理対象のデータを複数のチャンクに分割する分割手段と、各チャンクのデータ転送時間とデータ処理時間を取得する時間取得手段と、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する順番決定手段と、を備えることを特徴とするデータ処理スケジュールリング装置である。
【0011】
本発明は、ホストからコ・プロセッサにデータを転送して処理させるデータ処理スケジュールリング方法あって、処理対象のデータを複数のチャンクに分割し、各チャンクのデータ転送時間とデータ処理時間を取得し、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定することを特徴とするデータ処理スケジュールリング方法である。
【0012】
本発明は、コンピュータに、処理対象のデータを複数のチャンクに分割する分割処理、各チャンクのデータ転送時間とデータ処理時間を取得する時間取得処理、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する順番決定処理、を実行させるためのプログラムである。
【発明の効果】
【0013】
本発明によれば、コ・プロセッサにデータを転送して処理させるシステムにおいて、データ転送やデータ処理の待ち時間を短縮し、処理効率を向上させることができる。
【図面の簡単な説明】
【0014】
【図1】図1は本発明の実施形態に係るデータ処理スケジューリング装置を概略的に示すブロック図である。
【図2】図2は本実施形態に係るデータ処理スケジュール装置の動作を説明するための図である。
【図3】図3はデータの登録処理を説明するためのフローチャートである。
【図4】図4は処理の順番の決定処理を説明するためのフローチャートである。
【図5】図5は順番が決定された処理の実行を説明するためのフローチャートである。
【図6】図6は各チャンクのデータ転送処理とデータ処理の実行時間の具体例を示す図である。
【図7】図7はチャンク毎に処理結果をホスト側に渡す場合の処理を説明するためのフローチャートである。
【図8】図8はデータ転送時間とデータ処理時間を計測して取得する場合のデータ登録処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態について図面を参照して説明する。本発明は、ホストコンピュータからコ・プロセッサにデータを転送して処理させるデータ処理スケジュール装置に関する。本発明の装置が処理対象とするデータ処理は、処理対象のデータ列が複数個に分割されたデータ列(以下、チャンク)について、その処理順番に影響を受けない処理を含む。例えば、数値配列の総和計算や平均値計算などの集約処理、数値配列から特定の数値だけビットの立ったフラグ配列を作り出すbitmapインデックスの作成処理、数百万から数億件の巨大なデータを扱うDWH(Data
Ware House)内部で行われる処理等を含む。
【0016】
図1は、本発明の実施形態に係るデータ処理スケジューリング装置を概略的に示すブロック図である。このデータ処理スケジューリング装置は、ホストコンピュータ10と、コ・プロセッサ20と、ホストコンピュータ10とコ・プロセッサ20を接続するデータバス7を備える。
【0017】
ホストコンピュータ10は、データ登録部1とデータ蓄積部2と順番決定部3と処理指示部4を備える。
【0018】
データ登録部1は、入力された処理対象のデータに所定の処理を施してデータ蓄積部2に登録する。データ登録部1は、データ分割部11とデータ圧縮部12と時間取得部13を備える。
【0019】
データ分割部11は、入力された処理対象データを複数のチャンクに分割する。
【0020】
データ圧縮部12は、分割されたチャンクを、所定の圧縮アルゴリズムにより圧縮する。
【0021】
時間取得部13は、入力されたデータと入力された処理内容に基づいて、データ転送時間とデータ処理時間を取得する。データ転送時間とデータ処理時間の取得方法は任意であり、例えば、データサイズ等に基づく実測値のデータを予め記憶しておき、その実測値を取得してもよく、また、データサイズ等を引数とする予め設定された関数を用いて取得してもよい。
【0022】
データ登録部1は、データ分割部11とデータ圧縮部12により分割・圧縮されたチャンクと、時間取得部13により取得されたデータ転送時間とデータ処理時間と、入力された処理内容と、を対応付けてデータ蓄積部2に登録する。
【0023】
データ蓄積部2は、圧縮されたチャンクと、チャンクに対する処理内容と、チャックについて取得されたデータ転送時間とデータ処理時間と、チャンクに対する処理結果と、を蓄積して記憶する。データ蓄積部2は、DRAM(Dynamic Random Access Memory)、SSD(Solid
State Drive)等を含む。
【0024】
順番決定部3は、データ蓄積部2の蓄積された情報に基づいて、各チャンクを処理する順番を決定する。この処理の順番を決定する処理の詳細については後述する。
【0025】
処理指示部4は、順番決定部3により決定された順番に従って、各チャンクのデータ転送とデータ処理の実行を指示する。
【0026】
コ・プロセッサ20は、データ蓄積部5と演算実行部6を備える。コ・プロセッサ20は、例えば、GPU、FPGA等を含む。
【0027】
データ蓄積部5は、ホスト側から転送されたチャンクと、チャンクに対する処理と、チャンクに対する処理結果を蓄積記憶する。データ蓄積部5は、DRAM、SSD等を含む。
【0028】
演算実行部6は、転送が終わったチャンクについてデータ処理を行い、処理結果をデータ蓄積部5に格納する。
【0029】
データバス7はホストコンピュータ10とコ・プロセッサ20を接続し、データ蓄積部2からデータ蓄積部5へデータを転送する。データバス7は、例えば、PCI Expressやイーサネット(登録商標)を含む。
【0030】
次に本実施形態に係るデータ処理スケジューリング装置の動作について説明する。本実施形態に係るデータ処理スケジュール装置は、図2に示すように、各種データの登録(ステップA21)、処理の順番の決定(ステップA22)、処理の実行(ステップA23)という処理の流れに従って動作する。以下、これらの各ステップについて説明する。
【0031】
まず、ステップA21のデータの登録処理について図3を参照して説明する。データ登録部1は、処理対象データ、処理内容、転送時間を求めるための関数、処理時間を求めるための関数の入力を受ける(ステップA31)。データ分割部11は、入力された処理対象データを複数のチャンクに分割する(ステップA32)。データ圧縮部12は、各チャンクを圧縮する(ステップA33)。データ登録部1は、圧縮された各チャンクと、入力された処理内容をデータ蓄積部2に記憶する(ステップA34)。
【0032】
次に、ステップA22の処理の順番の決定処理について図4を参照して説明する。順番決定部2は、データ蓄積部2に保存された全チャックについて以下の処理を行う(ステップA41)。順番決定部2は、データ蓄積部2に保存されている一つのチャンクについて、転送時間と処理時間を取得する(ステップA42)。順番決定部2は、転送時間と処理時間を比較し、処理時間が転送時間以上かどうか、それらの大小関係を判定する。転送時間が処理時間よりも大きい場合(ステップA43:NO)、そのチャンクをリストAに追加する(ステップA44)。また、処理時間が転送時間以上の場合(ステップA43:YES)、そのチャンクをリストBに追加する(ステップA45)。
【0033】
全チャンクについて、ステップA42〜A45の処理が終了すると(ステップA41:YES)、順番決定部2は、リストAに登録したチャンクを転送時間の短い順にソートし(ステップA46)、リストBに登録したチャンクを処理時間の長い順にソートする(ステップA47)。順番決定部2は、リストAの後ろにリストBを連結して、全体の実行スケジュールとして、データ蓄積部2に保存する(ステップA48)。
【0034】
これにより、各チャンクの処理の順番が決定される。先に実行される、転送時間が処理時間よりも小さいチャンクのグループ(リストA)について転送時間の短い順にソートしたのは、初めの処理開始待ち時間を短縮するためである。また、続いて実行される、処理時間が転送時間以上のチャンクのグループ(リストB)について処理時間の長い順にソートしたのは、終わりの処理時間を短縮するためである。
【0035】
次に、ステップA23の処理の実行について図5を参照して説明する。
【0036】
処理指示部4は、まず、チャンクの転送をコ・プロセッサ20に指示し、順番決定部3により決定された順番に従って、チャンクをデータ蓄積部2から読み出し、データバス7を介してコ・プロセッサ20に転送する(ステップA51)。コ・プロセッサ20は、転送されたチャンクをデータ蓄積部5に記憶する。
【0037】
処理指示部4は、データ蓄積部2に保存された処理内容を読み出し、コ・プロセッサ20にチャンクの処理を指示する(ステップA52)。コ・プロセッサ20の演算実行部6は、転送が終わったチャンクについて、ホストから指示されたデータ処理を行う。
【0038】
処理指示部4は、全チャンクについて処理の指示が終わったかを判定し(ステップA53)、終わっていない場合には(ステップA53:NO)、ステップA51に戻って次のチャンクについての処理を行う。また、全チャンクについて処理の指示が終わった場合には(ステップA53:YES)、コ・プロセッサ20演算実行部6による最後のチャンクの処理の終了を待つ(ステップA54)。
【0039】
処理指示部4は、コ・プロセッサ20において最後のチャンクの処理が終了すると、処理結果の転送をコ・プロセッサ20に指示する(ステップA55)。コ・プロセッサ20は、データ蓄積部5に保存された処理結果をホストコンピュータ10に転送する。
【0040】
次に本データ処理スケジューリング装置の動作を具体的に説明する。例えば、DWH等の分野では、データの傾向や関連性を分析するために、数百万〜数億件の大量のデータに対する処理を何度も行うことがある。ここでは、1億件の要素を持つ数値データ配列の総和計算を行う場合を例に説明する。
【0041】
まず、データ登録処理が実行される(ステップA21)。具体的には、データ登録部1に、1億件の数値データ配列と、処理内容(圧縮された数値列の総和を計算する)と、変数yを引数とし、データ転送時間を返す関数T(y)と、変数yを引数とし、データ処理時間を返す関数X(y)と、が入力される(ステップA31)。本実施形態では、関数Tと関数Xにおける引数は、圧縮後のチャンクのデータサイズとし、例えば、T(size)=2α*size、X(size)=α*sizeとする。
【0042】
データ分割部11は、入力された1億件の数値データ配列を、2500万件ずつの4個のチャンク(チャンクC0〜C3)に分割する(ステップA32)。チャンクの数は4なので、コ・プロセッサ20は、チャンク内のデータの和を計算し、その値をデータ蓄積部5に記憶されている結果値に加算する処理を4回繰り返すこととなる。
【0043】
データ圧縮部12は、各チャンクを圧縮する(ステップA33)。この例において、圧縮後の各チャンクのサイズは、chunk[0].size=1、chunk[1].size=2、chunk[2].size=2、chunk[3].size=3であったとする。
【0044】
データ登録部1は、圧縮された各チャンクと、圧縮されたチャンクに対する処理内容と、関数Tと、関数Xをデータ蓄積部2に保存する(ステップA34)。
【0045】
次に、処理の順番の決定処理が実行される(ステップA22)。具体的には、順番決定部2は、図4に示すアルゴリズムに従って、データ蓄積部2に保存されたデータから、各チャンクの処理順番を決定する。各チャンクについて転送時間と処理時間を取得し(ステップA42)、これらの大小関係を判定する(ステップA43)。この例では、全てのチャンクにおいて、T(size)>X(size)が成り立つ。このため、各チャンクはリストBに登録されることとなる(ステップA45)。全チャンクについて転送時間と処理時間の大小関係の判定が終了すると(ステップA41:YES)、順番決定部2は、データ処理時間X(size)の大きい順にソートし、ソート結果に基づいてスケジュールのリストを作成する。この例では、チャンク処理順は、C3,C2,C1,C0となる。
【0046】
次に、処理の実行が行われる(ステップA23)。具体的には、処理指示部4は、図5に示すアルゴリズムに従って、チャンクC3,C2,C1,C0の順で処理の実行を指示する。
【0047】
処理指示部4は、コ・プロセッサ20にデータ転送を指示し、データ蓄積部2からコ・プロセッサ側のデータ蓄積部5へのデータを転送する(ステップA51)。
【0048】
処理指示部4は、コ・プロセッサ20にデータ処理を指示する。コ・プロセッサ20の演算実行部6は、転送が終わったチャンクに対して、演算実行部6が総和の計算を行う(ステップA52)。
【0049】
処理指示部4は、全チャンクについて処理の指示が終わるまで(ステップA53:NO)、ステップA51、A52を繰り返す。そして、全チャンクの処理の指示が終わると(ステップA53:YES)、コ・プロセッサ20において最後のチャンクの処理が終了するのを待つ(ステップA54)。最後のチャンクの計算が終わったことを検知すると、処理指示部4は、処理結果の転送をコ・プロセッサ20に指示する。コ・プロセッサ20は、データ蓄積部5から最終結果のデータを読み出し、ホストコンピュータ10に転送する(ステップA55)。
【0050】
上述した例における各チャンクのデータ転送処理とデータ処理の実行時間を図6に示す(optimized)。ここでは、最終結果の転送時間がαであったとする。また、図6では、比較のため、チャンクC0,C1,C2,C3という元の順番のままで処理した場合のデータ転送処理とデータ処理の実行時間も示している(in-order)。図6に示すように、順番決定部3で決定した順番で処理を行うことによって、インオーダーで処理を行うよりも、転送待ち、処理待ち時間を短くすることができ、全体の処理を高速化できる。
【0051】
以上のように、本実施の形態によれば、処理データをコ・プロセッサに転送して処理させる場合に、処理データを複数に分割し、分割した各チャンクについて、その転送時間と処理時間に基づいて処理の順番を決定することにより、データ転送の効率とコ・プロセッサの利用率を向上させることができ、全体の処理時間を短縮させることができる。
【0052】
なお、上述した処理では、コ・プロセッサ20において全てのチャンクの処理が終わってからホスト側に結果を渡しているが、これに限定されず、チャンク毎に処理結果をホスト側に渡すようにしてもよい。この場合の処理について図7を参照して説明する。
【0053】
処理指示部4は、チャンクの転送をコ・プロセッサ20に指示し、順番決定部3により決定された順番に従って、チャンクをデータ蓄積部2から読み出してコ・プロセッサ20に転送する(ステップA71)。コ・プロセッサ20は、転送されたチャンクをデータ蓄積部5に記憶する。
【0054】
処理指示部4は、データ蓄積部2に保存された処理内容を読み出し、コ・プロセッサ20にチャンクの処理を指示する(ステップA72)。コ・プロセッサ20の演算実行部6は、転送が終わったチャンクについて、ホストから指示されたデータ処理を行う。
【0055】
処理指示部4は、コ・プロセッサ20にチャンクの処理結果の転送を指示する(ステップA73)。コ・プロセッサ20は、チャンクの処理結果をホストに転送し、処理指示部4は、転送されてきた処理結果をデータ蓄積部2に蓄積する。
【0056】
処理指示部4は、全チャンクについて処理の指示が終わったかを判定し(ステップA74)、終わっていない場合には(ステップA74:NO)、ステップA71に戻って次のチャンクについての処理を行う。また、全チャンクについて処理の指示が終わった場合には(ステップA73:YES)、コ・プロセッサ20演算実行部6による最後のチャンクの転送処理の終了を待つ(ステップA754)。
【0057】
処理指示部4は、コ・プロセッサ20において最後のチャンクの転送処理が終了すると、データ蓄積部2に保存していたチャンク毎の結果処理をまとめる処理を行う(ステップA76)。
【0058】
なお、図7に示すような処理を行う場合、チャンクの処理の順番の決定は、チャンクの転送時間、チャンクの処理時間に加えて、コ・プロセッサ側に保持可能な結果のサイズ、結果の転送時間等をパラメータとする最適化問題となる。この場合、順番決定部3は、例えば、総当たりによって最適なスケジュールを得る、ヒューリスティックな解法により、近似最適なスケジュールを作成する。
【0059】
上記実施形態では、ホストコンピュータ10のデータ登録部1によるデータ登録処理(図3)では、各チャンクのデータ転送時間とデータ処理時間を求めるための各関数が入力されていた。上記実施形態の変形例として、のデータ登録部1の時間取得部13が、各チャンクのデータ転送時間とデータ処理時間の少なくとも一方を実測して取得し、この実測値に基づいて順番決定部3が各チャンクの処理の順番を決定してもよい。この場合のデータ登録部1によるデータ登録処理について図8を参照して説明する。
【0060】
データ登録部1は、処理対象データ、処理内容の入力を受ける(ステップA81)。データ分割部11は、入力された処理対象データを複数のチャンクに分割する(ステップA82)。データ圧縮部12は、各チャンクを圧縮する(ステップA83)。時間取得部13は、圧縮された各チャンクについてデータ転送時間とデータ処理時間を測定する(ステップA84)。具体的には、各チャンクについて、データ転送をコ・プロセッサ20に指示した時点から、その転送が完了するまでの時間を計測する。また、各チャンクについて、処理を指示した時点から、その処理が完了するまでの時間を計測する。データ登録部1は、圧縮された各チャンクと、入力された処理内容と、測定された各チャンクの転送時間と処理時間をデータ蓄積部2に記憶する(ステップA85)。
【0061】
なお、ここでは、データ転送時間とデータ処理時間の双方を測定しているが、どちらか一方だけ測定し、他方は関数等で求めてもよい。
【0062】
上述した本発明の実施形態に係るデータ登録部1、順番決定部3、処理指示部4、演算実行部6は、CPU等の処理装置が記憶部に格納された動作プログラム等を読み出して実行することにより実現されてもよく、また、ハードウェアで構成されてもよい。上述した実施の形態の一部の機能のみをコンピュータプログラムにより実現することもできる。
【0063】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形し実施することが出来る。
【0064】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0065】
(付記1)
コ・プロセッサにデータを転送して処理させるデータ処理スケジュールリング装置であって、
処理対象のデータを複数のチャンクに分割する分割手段と、
各チャンクのデータ転送時間とデータ処理時間を取得する時間取得手段と、
各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する順番決定手段と、
を備えることを特徴とするデータ処理スケジュールリング装置。
【0066】
(付記2)
前記順番決定手段は、前記各チャンクを、データ転送時間とデータ処理時間の大小関係に基づいて分別し、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順に処理した後にデータ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順に処理するように、各チャンクの順番を決定する、
ことを特徴とする付記1に記載のデータ処理スケジュールリング装置。
【0067】
(付記3)
前記順番決定手段は、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順にソートし、データ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順にソートし、データ転送時間の方が小さいチャンクのグループが先になるように前記2つのグループのソート結果を結合して、チャンクの処理の順番のスケジュールリストを生成する、
ことを特徴とする請求項2に記載のデータ処理スケジュールリング装置。
【0068】
(付記4)
前記時間取得手段は、各チャンクのデータ転送時間とデータ処理時間を計測して取得し、
前記順番決定手段は、前記計測された各チャンクのデータ転送時間とデータ処理時間に基づいて、各チャンクを前記コ・プロセッサに処理させる順番を決定する
ことを特徴とする請求項1から3のいずれか1項に記載のデータ処理スケジュールリング装置。
【0069】
(付記5)
ホストからコ・プロセッサにデータを転送して処理させるデータ処理スケジュールリング方法あって、
処理対象のデータを複数のチャンクに分割し、
各チャンクのデータ転送時間とデータ処理時間を取得し、
各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する、
ことを特徴とするデータ処理スケジュールリング方法。
【0070】
(付記6)
各チャンクを前記コ・プロセッサに処理させる順番を決定するときに、前記各チャンクを、データ転送時間とデータ処理時間の大小関係に基づいて分別し、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順に処理した後にデータ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順に処理するように、各チャンクの順番を決定する、
ことを特徴とする請求項5に記載のデータ処理スケジュールリング方法。
【0071】
(付記7)
各チャンクを前記コ・プロセッサに処理させる順番を決定するときに、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順にソートし、データ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順にソートし、データ転送時間の方が小さいチャンクのグループが先になるように前記2つのグループのソート結果を結合して、チャンクの処理の順番のスケジュールリストを生成する、
ことを特徴とする請求項6に記載のデータ処理スケジュールリング方法。
【0072】
(付記8)
各チャンクのデータ転送時間とデータ処理時間を計測して取得し、
各チャンクを前記コ・プロセッサに処理させる順番を決定するときに、前記計測された各チャンクのデータ転送時間とデータ処理時間に基づいて、各チャンクを前記コ・プロセッサに処理させる順番を決定する
ことを特徴とする請求項5から7のいずれか1項に記載のデータ処理スケジュールリング方法。
【0073】
(付記9)
コンピュータに、
処理対象のデータを複数のチャンクに分割する分割処理、
各チャンクのデータ転送時間とデータ処理時間を取得する時間取得処理、
各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する順番決定処理、
を実行させることを特徴とするプログラム。
【0074】
(付記10)
前記順番決定処理は、前記各チャンクを、データ転送時間とデータ処理時間の大小関係に基づいて分別し、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順に処理した後にデータ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順に処理するように、各チャンクの順番を決定する、
ことを特徴とする請求項9に記載のプログラム。
【0075】
(付記11)
前記順番決定処理は、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順にソートし、データ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順にソートし、データ転送時間の方が小さいチャンクのグループが先になるように前記2つのグループのソート結果を結合して、チャンクの処理の順番のスケジュールリストを生成する、
ことを特徴とする請求項10に記載のプログラム。
【0076】
(付記12)
前記時間取得処理は、各チャンクのデータ転送時間とデータ処理時間を計測して取得し、
前記順番決定処理は、前記計測された各チャンクのデータ転送時間とデータ処理時間に基づいて、各チャンクを前記コ・プロセッサに処理させる順番を決定する
ことを特徴とする請求項9から11のいずれか1項に記載のプログラム。
【符号の説明】
【0077】
1 データ登録部
2 データ蓄積部
3 順番決定部
4 処理指示部
5 データ蓄積部
6 演算実行部
7 データバス
10 ホストコンピュータ
11 データ分割部
12 データ圧縮部
13 時間取得部
20 コ・プロセッサ

【特許請求の範囲】
【請求項1】
コ・プロセッサにデータを転送して処理させるデータ処理スケジュールリング装置であって、
処理対象のデータを複数のチャンクに分割する分割手段と、
各チャンクのデータ転送時間とデータ処理時間を取得する時間取得手段と、
各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する順番決定手段と、
を備えることを特徴とするデータ処理スケジュールリング装置。
【請求項2】
前記順番決定手段は、前記各チャンクを、データ転送時間とデータ処理時間の大小関係に基づいて分別し、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順に処理した後にデータ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順に処理するように、各チャンクの順番を決定する、
ことを特徴とする請求項1に記載のデータ処理スケジュールリング装置。
【請求項3】
前記順番決定手段は、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順にソートし、データ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順にソートし、データ転送時間の方が小さいチャンクのグループが先になるように前記2つのグループのソート結果を結合して、チャンクの処理の順番のスケジュールリストを生成する、
ことを特徴とする請求項2に記載のデータ処理スケジュールリング装置。
【請求項4】
前記時間取得手段は、各チャンクのデータ転送時間とデータ処理時間を計測して取得し、
前記順番決定手段は、前記計測された各チャンクのデータ転送時間とデータ処理時間に基づいて、各チャンクを前記コ・プロセッサに処理させる順番を決定する
ことを特徴とする請求項1から3のいずれか1項に記載のデータ処理スケジュールリング装置。
【請求項5】
ホストからコ・プロセッサにデータを転送して処理させるデータ処理スケジュールリング方法あって、
処理対象のデータを複数のチャンクに分割し、
各チャンクのデータ転送時間とデータ処理時間を取得し、
各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する、
ことを特徴とするデータ処理スケジュールリング方法。
【請求項6】
コンピュータに、
処理対象のデータを複数のチャンクに分割する分割処理、
各チャンクのデータ転送時間とデータ処理時間を取得する時間取得処理、
各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コ・プロセッサに処理させる順番を決定する順番決定処理、
を実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−190206(P2012−190206A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−52360(P2011−52360)
【出願日】平成23年3月10日(2011.3.10)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成21年度 独立行政法人新エネルギー・産業技術総合開発機構 「グリーンネットワーク・システム技術研究開発プロジェクト(グリーンITプロジェクト)」委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000004237)日本電気株式会社 (19,353)