"コプロセッサにデータを転送して処理させるデータ処理スケジュールリング装置であって、処理対象のデータを複数のチャンクに分割する分割手段と、各チャンクのデータ転送時間とデータ処理時間を取得する時間取得手段と、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コプロセッサに処理させる順番を決定する順番決定手段と、を備えることを特徴とするデータ処理スケジュールリング装置。前記順番決定手段は、前記各チャンクを、データ転送時間とデータ処理時間の大小関係に基づいて分別し、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順に処理した後にデータ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順に処理するように、各チャンクの順番を決定する、ことを特徴とする請求項1に記載のデータ処理スケジュールリング装置。前記順番決定手段は、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順にソートし、データ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順にソートし、データ転送時間の方が小さいチャンクのグループが先になるように前記2つのグループのソート結果を結合して、チャンクの処理の順番のスケジュールリストを生成する、ことを特徴とする請求項2に記載のデータ処理スケジュールリング装置。前記時間取得手段は、各チャンクのデータ転送時間とデータ処理時間を計測して取得し、前記順番決定手段は、前記計測された各チャンクのデータ転送時間とデータ処理時間に基づいて、各チャンクを前記コプロセッサに処理させる順番を決定することを特徴とする請求項1から3のいずれか1項に記載のデータ処理スケジュールリング装置。ホストからコプロセッサにデータを転送して処理させるデータ処理スケジュールリング方法あって、処理対象のデータを複数のチャンクに分割し、各チャンクのデータ転送時間とデータ処理時間を取得し、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コプロセッサに処理させる順番を決定する、ことを特徴とするデータ処理スケジュールリング方法。コンピュータに、処理対象のデータを複数のチャンクに分割する分割処理、各チャンクのデータ転送時間とデータ処理時間を取得する時間取得処理、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コプロセッサに処理させる順番を決定する順番決定処理、を実行させることを特徴とするプログラム。コプロセッサを用いてデータを処理するシステムで上述の二つの方法を用いて、処理対象のデータを分割し、分割したデータチャンクを圧縮してコプロセッサに転送して処理させる場合を考える。この場合、圧縮後のチャンクのサイズが異なることでチャンク毎にデータ転送時間とデータ処理時間が異なる状況が発生する場合がある。例えば、不均一なサイズでチャンクを作成した場合や、固定長サイズでチャンクを作成したがチャンク毎に圧縮率が異なる場合等である。このような状況で、ホストコンピュータとコプロセッサの間でパイプライン処理を行う場合、元のままのデータの順番インオーダーで各チャンクを転送処理していくと、データ転送待ちやデータ処理待ちが発生し、処理効率が低下するという問題があった。特許文献1の転送方式においても、データ列を元のままの順番で転送しているため、受信側でデータ転送待ちが発生し、効率が低下するという問題がある。本発明は、上記問題点に鑑みてなされたもので、コプロセッサにデータを転送して処理させるシステムにおいて、データ転送やデータ処理の待ち時間を短縮し、処理効率を向上させることができるデータ処理スケジューリング装置、方法及びプログラムを提供することを目的とする。本発明は、コプロセッサにデータを転送して処理させるデータ処理スケジュールリング装置であって、処理対象のデータを複数のチャンクに分割する分割手段と、各チャンクのデータ転送時間とデータ処理時間を取得する時間取得手段と、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コプロセッサに処理させる順番を決定する順番決定手段と、を備えることを特徴とするデータ処理スケジュールリング装置である。本発明は、ホストからコプロセッサにデータを転送して処理させるデータ処理スケジュールリング方法あって、処理対象のデータを複数のチャンクに分割し、各チャンクのデータ転送時間とデータ処理時間を取得し、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コプロセッサに処理させる順番を決定することを特徴とするデータ処理スケジュールリング方法である。本発明は、コンピュータに、処理対象のデータを複数のチャンクに分割する分割処理、各チャンクのデータ転送時間とデータ処理時間を取得する時間取得処理、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コプロセッサに処理させる順番を決定する順番決定処理、を実行させるためのプログラムである。本発明によれば、コプロセッサにデータを転送して処理させるシステムにおいて、データ転送やデータ処理の待ち時間を短縮し、処理効率を向上させることができる。以下、本発明の実施形態について図面を参照して説明する。本発明は、ホストコンピュータからコプロセッサにデータを転送して処理させるデータ処理スケジュール装置に関する。本発明の装置が処理対象とするデータ処理は、処理対象のデータ列が複数個に分割されたデータ列以下、チャンクについて、その処理順番に影響を受けない処理を含む。例えば、数値配列の総和計算や平均値計算などの集約処理、数値配列から特定の数値だけビットの立ったフラグ配列を作り出すbitmapインデックスの作成処理、数百万から数億件の巨大なデータを扱うDWHDataWareHouse内部で行われる処理等を含む。図1は、本発明の実施形態に係るデータ処理スケジューリング装置を概略的に示すブロック図である。このデータ処理スケジューリング装置は、ホストコンピュータ10と、コプロセッサ20と、ホストコンピュータ10とコプロセッサ20を接続するデータバス7を備える。ホストコンピュータ10は、データ登録部1とデータ蓄積部2と順番決定部3と処理指示部4を備える。データ登録部1は、入力された処理対象のデータに所定の処理を施してデータ蓄積部2に登録する。データ登録部1は、データ分割部11とデータ圧縮部12と時間取得部13を備える。データ分割部11は、入力された処理対象データを複数のチャンクに分割する。データ圧縮部12は、分割されたチャンクを、所定の圧縮アルゴリズムにより圧縮する。時間取得部13は、入力されたデータと入力された処理内容に基づいて、データ転送時間とデータ処理時間を取得する。データ転送時間とデータ処理時間の取得方法は任意であり、例えば、データサイズ等に基づく実測値のデータを予め記憶しておき、その実測値を取得してもよく、また、データサイズ等を引数とする予め設定された関数を用いて取得してもよい。データ登録部1は、データ分割部11とデータ圧縮部12により分割圧縮されたチャンクと、時間取得部13により取得されたデータ転送時間とデータ処理時間と、入力された処理内容と、を対応付けてデータ蓄積部2に登録する。データ蓄積部2は、圧縮されたチャンクと、チャンクに対する処理内容と、チャックについて取得されたデータ転送時間とデータ処理時間と、チャンクに対する処理結果と、を蓄積して記憶する。データ蓄積部2は、DRAMDynamicRandomAccessMemory、SSDSolidStateDrive等を含む。順番決定部3は、データ蓄積部2の蓄積された情報に基づいて、各チャンクを処理する順番を決定する。この処理の順番を決定する処理の詳細については後述する。処理指示部4は、順番決定部3により決定された順番に従って、各チャンクのデータ転送とデータ処理の実行を指示する。コプロセッサ20は、データ蓄積部5と演算実行部6を備える。コプロセッサ20は、例えば、GPU、FPGA等を含む。データ蓄積部5は、ホスト側から転送されたチャンクと、チャンクに対する処理と、チャンクに対する処理結果を蓄積記憶する。データ蓄積部5は、DRAM、SSD等を含む。演算実行部6は、転送が終わったチャンクについてデータ処理を行い、処理結果をデータ蓄積部5に格納する。データバス7はホストコンピュータ10とコプロセッサ20を接続し、データ蓄積部2からデータ蓄積部5へデータを転送する。データバス7は、例えば、PCIExpressやイーサネット登録商標を含む。次に本実施形態に係るデータ処理スケジューリング装置の動作について説明する。本実施形態に係るデータ処理スケジュール装置は、図2に示すように、各種データの登録ステップA21、処理の順番の決定ステップA22、処理の実行ステップA23という処理の流れに従って動作する。以下、これらの各ステップについて説明する。まず、ステップA21のデータの登録処理について図3を参照して説明する。データ登録部1は、処理対象データ、処理内容、転送時間を求めるための関数、処理時間を求めるための関数の入力を受けるステップA31。データ分割部11は、入力された処理対象データを複数のチャンクに分割するステップA32。データ圧縮部12は、各チャンクを圧縮するステップA33。データ登録部1は、圧縮された各チャンクと、入力された処理内容をデータ蓄積部2に記憶するステップA34。次に、ステップA22の処理の順番の決定処理について図4を参照して説明する。順番決定部2は、データ蓄積部2に保存された全チャックについて以下の処理を行うステップA41。順番決定部2は、データ蓄積部2に保存されている一つのチャンクについて、転送時間と処理時間を取得するステップA42。順番決定部2は、転送時間と処理時間を比較し、処理時間が転送時間以上かどうか、それらの大小関係を判定する。転送時間が処理時間よりも大きい場合ステップA43:NO、そのチャンクをリストAに追加するステップA44。また、処理時間が転送時間以上の場合ステップA43:YES、そのチャンクをリストBに追加するステップA45。全チャンクについて、ステップA42~A45の処理が終了するとステップA41:YES、順番決定部2は、リストAに登録したチャンクを転送時間の短い順にソートしステップA46、リストBに登録したチャンクを処理時間の長い順にソートするステップA47。順番決定部2は、リストAの後ろにリストBを連結して、全体の実行スケジュールとして、データ蓄積部2に保存するステップA48。これにより、各チャンクの処理の順番が決定される。先に実行される、転送時間が処理時間よりも小さいチャンクのグループリストAについて転送時間の短い順にソートしたのは、初めの処理開始待ち時間を短縮するためである。また、続いて実行される、処理時間が転送時間以上のチャンクのグループリストBについて処理時間の長い順にソートしたのは、終わりの処理時間を短縮するためである。次に、ステップA23の処理の実行について図5を参照して説明する。処理指示部4は、まず、チャンクの転送をコプロセッサ20に指示し、順番決定部3により決定された順番に従って、チャンクをデータ蓄積部2から読み出し、データバス7を介してコプロセッサ20に転送するステップA51。コプロセッサ20は、転送されたチャンクをデータ蓄積部5に記憶する。処理指示部4は、データ蓄積部2に保存された処理内容を読み出し、コプロセッサ20にチャンクの処理を指示するステップA52。コプロセッサ20の演算実行部6は、転送が終わったチャンクについて、ホストから指示されたデータ処理を行う。処理指示部4は、全チャンクについて処理の指示が終わったかを判定しステップA53、終わっていない場合にはステップA53:NO、ステップA51に戻って次のチャンクについての処理を行う。また、全チャンクについて処理の指示が終わった場合にはステップA53:YES、コプロセッサ20演算実行部6による最後のチャンクの処理の終了を待つステップA54。処理指示部4は、コプロセッサ20において最後のチャンクの処理が終了すると、処理結果の転送をコプロセッサ20に指示するステップA55。コプロセッサ20は、データ蓄積部5に保存された処理結果をホストコンピュータ10に転送する。次に本データ処理スケジューリング装置の動作を具体的に説明する。例えば、DWH等の分野では、データの傾向や関連性を分析するために、数百万~数億件の大量のデータに対する処理を何度も行うことがある。ここでは、1億件の要素を持つ数値データ配列の総和計算を行う場合を例に説明する。まず、データ登録処理が実行されるステップA21。具体的には、データ登録部1に、1億件の数値データ配列と、処理内容圧縮された数値列の総和を計算すると、変数yを引数とし、データ転送時間を返す関数Tyと、変数yを引数とし、データ処理時間を返す関数Xyと、が入力されるステップA31。本実施形態では、関数Tと関数Xにおける引数は、圧縮後のチャンクのデータサイズとし、例えば、Tsize=2αsize、Xsize=αsizeとする。データ分割部11は、入力された1億件の数値データ配列を、2500万件ずつの4個のチャンクチャンクC0~C3に分割するステップA32。チャンクの数は4なので、コプロセッサ20は、チャンク内のデータの和を計算し、その値をデータ蓄積部5に記憶されている結果値に加算する処理を4回繰り返すこととなる。データ圧縮部12は、各チャンクを圧縮するステップA33。この例において、圧縮後の各チャンクのサイズは、chunk0.size=1、chunk1.size=2、chunk2.size=2、chunk3.size=3であったとする。データ登録部1は、圧縮された各チャンクと、圧縮されたチャンクに対する処理内容と、関数Tと、関数Xをデータ蓄積部2に保存するステップA34。次に、処理の順番の決定処理が実行されるステップA22。具体的には、順番決定部2は、図4に示すアルゴリズムに従って、データ蓄積部2に保存されたデータから、各チャンクの処理順番を決定する。各チャンクについて転送時間と処理時間を取得しステップA42、これらの大小関係を判定するステップA43。この例では、全てのチャンクにおいて、Tsize>Xsizeが成り立つ。このため、各チャンクはリストBに登録されることとなるステップA45。全チャンクについて転送時間と処理時間の大小関係の判定が終了するとステップA41:YES、順番決定部2は、データ処理時間Xsizeの大きい順にソートし、ソート結果に基づいてスケジュールのリストを作成する。この例では、チャンク処理順は、C3,C2,C1,C0となる。次に、処理の実行が行われるステップA23。具体的には、処理指示部4は、図5に示すアルゴリズムに従って、チャンクC3,C2,C1,C0の順で処理の実行を指示する。処理指示部4は、コプロセッサ20にデータ転送を指示し、データ蓄積部2からコプロセッサ側のデータ蓄積部5へのデータを転送するステップA51。処理指示部4は、コプロセッサ20にデータ処理を指示する。コプロセッサ20の演算実行部6は、転送が終わったチャンクに対して、演算実行部6が総和の計算を行うステップA52。処理指示部4は、全チャンクについて処理の指示が終わるまでステップA53:NO、ステップA51、A52を繰り返す。そして、全チャンクの処理の指示が終わるとステップA53:YES、コプロセッサ20において最後のチャンクの処理が終了するのを待つステップA54。最後のチャンクの計算が終わったことを検知すると、処理指示部4は、処理結果の転送をコプロセッサ20に指示する。コプロセッサ20は、データ蓄積部5から最終結果のデータを読み出し、ホストコンピュータ10に転送するステップA55。上述した例における各チャンクのデータ転送処理とデータ処理の実行時間を図6に示すoptimized。ここでは、最終結果の転送時間がαであったとする。また、図6では、比較のため、チャンクC0,C1,C2,C3という元の順番のままで処理した場合のデータ転送処理とデータ処理の実行時間も示しているinorder。図6に示すように、順番決定部3で決定した順番で処理を行うことによって、インオーダーで処理を行うよりも、転送待ち、処理待ち時間を短くすることができ、全体の処理を高速化できる。以上のように、本実施の形態によれば、処理データをコプロセッサに転送して処理させる場合に、処理データを複数に分割し、分割した各チャンクについて、その転送時間と処理時間に基づいて処理の順番を決定することにより、データ転送の効率とコプロセッサの利用率を向上させることができ、全体の処理時間を短縮させることができる。なお、上述した処理では、コプロセッサ20において全てのチャンクの処理が終わってからホスト側に結果を渡しているが、これに限定されず、チャンク毎に処理結果をホスト側に渡すようにしてもよい。この場合の処理について図7を参照して説明する。処理指示部4は、チャンクの転送をコプロセッサ20に指示し、順番決定部3により決定された順番に従って、チャンクをデータ蓄積部2から読み出してコプロセッサ20に転送するステップA71。コプロセッサ20は、転送されたチャンクをデータ蓄積部5に記憶する。処理指示部4は、データ蓄積部2に保存された処理内容を読み出し、コプロセッサ20にチャンクの処理を指示するステップA72。コプロセッサ20の演算実行部6は、転送が終わったチャンクについて、ホストから指示されたデータ処理を行う。処理指示部4は、コプロセッサ20にチャンクの処理結果の転送を指示するステップA73。コプロセッサ20は、チャンクの処理結果をホストに転送し、処理指示部4は、転送されてきた処理結果をデータ蓄積部2に蓄積する。処理指示部4は、全チャンクについて処理の指示が終わったかを判定しステップA74、終わっていない場合にはステップA74:NO、ステップA71に戻って次のチャンクについての処理を行う。また、全チャンクについて処理の指示が終わった場合にはステップA73:YES、コプロセッサ20演算実行部6による最後のチャンクの転送処理の終了を待つステップA754。処理指示部4は、コプロセッサ20において最後のチャンクの転送処理が終了すると、データ蓄積部2に保存していたチャンク毎の結果処理をまとめる処理を行うステップA76。なお、図7に示すような処理を行う場合、チャンクの処理の順番の決定は、チャンクの転送時間、チャンクの処理時間に加えて、コプロセッサ側に保持可能な結果のサイズ、結果の転送時間等をパラメータとする最適化問題となる。この場合、順番決定部3は、例えば、総当たりによって最適なスケジュールを得る、ヒューリスティックな解法により、近似最適なスケジュールを作成する。上記実施形態では、ホストコンピュータ10のデータ登録部1によるデータ登録処理図3では、各チャンクのデータ転送時間とデータ処理時間を求めるための各関数が入力されていた。上記実施形態の変形例として、のデータ登録部1の時間取得部13が、各チャンクのデータ転送時間とデータ処理時間の少なくとも一方を実測して取得し、この実測値に基づいて順番決定部3が各チャンクの処理の順番を決定してもよい。この場合のデータ登録部1によるデータ登録処理について図8を参照して説明する。データ登録部1は、処理対象データ、処理内容の入力を受けるステップA81。データ分割部11は、入力された処理対象データを複数のチャンクに分割するステップA82。データ圧縮部12は、各チャンクを圧縮するステップA83。時間取得部13は、圧縮された各チャンクについてデータ転送時間とデータ処理時間を測定するステップA84。具体的には、各チャンクについて、データ転送をコプロセッサ20に指示した時点から、その転送が完了するまでの時間を計測する。また、各チャンクについて、処理を指示した時点から、その処理が完了するまでの時間を計測する。データ登録部1は、圧縮された各チャンクと、入力された処理内容と、測定された各チャンクの転送時間と処理時間をデータ蓄積部2に記憶するステップA85。なお、ここでは、データ転送時間とデータ処理時間の双方を測定しているが、どちらか一方だけ測定し、他方は関数等で求めてもよい。上述した本発明の実施形態に係るデータ登録部1、順番決定部3、処理指示部4、演算実行部6は、CPU等の処理装置が記憶部に格納された動作プログラム等を読み出して実行することにより実現されてもよく、また、ハードウェアで構成されてもよい。上述した実施の形態の一部の機能のみをコンピュータプログラムにより実現することもできる。以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形し実施することが出来る。上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。付記1コプロセッサにデータを転送して処理させるデータ処理スケジュールリング装置であって、処理対象のデータを複数のチャンクに分割する分割手段と、各チャンクのデータ転送時間とデータ処理時間を取得する時間取得手段と、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コプロセッサに処理させる順番を決定する順番決定手段と、を備えることを特徴とするデータ処理スケジュールリング装置。付記2前記順番決定手段は、前記各チャンクを、データ転送時間とデータ処理時間の大小関係に基づいて分別し、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順に処理した後にデータ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順に処理するように、各チャンクの順番を決定する、ことを特徴とする付記1に記載のデータ処理スケジュールリング装置。付記3前記順番決定手段は、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順にソートし、データ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順にソートし、データ転送時間の方が小さいチャンクのグループが先になるように前記2つのグループのソート結果を結合して、チャンクの処理の順番のスケジュールリストを生成する、ことを特徴とする請求項2に記載のデータ処理スケジュールリング装置。付記4前記時間取得手段は、各チャンクのデータ転送時間とデータ処理時間を計測して取得し、前記順番決定手段は、前記計測された各チャンクのデータ転送時間とデータ処理時間に基づいて、各チャンクを前記コプロセッサに処理させる順番を決定することを特徴とする請求項1から3のいずれか1項に記載のデータ処理スケジュールリング装置。付記5ホストからコプロセッサにデータを転送して処理させるデータ処理スケジュールリング方法あって、処理対象のデータを複数のチャンクに分割し、各チャンクのデータ転送時間とデータ処理時間を取得し、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コプロセッサに処理させる順番を決定する、ことを特徴とするデータ処理スケジュールリング方法。付記6各チャンクを前記コプロセッサに処理させる順番を決定するときに、前記各チャンクを、データ転送時間とデータ処理時間の大小関係に基づいて分別し、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順に処理した後にデータ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順に処理するように、各チャンクの順番を決定する、ことを特徴とする請求項5に記載のデータ処理スケジュールリング方法。付記7各チャンクを前記コプロセッサに処理させる順番を決定するときに、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順にソートし、データ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順にソートし、データ転送時間の方が小さいチャンクのグループが先になるように前記2つのグループのソート結果を結合して、チャンクの処理の順番のスケジュールリストを生成する、ことを特徴とする請求項6に記載のデータ処理スケジュールリング方法。付記8各チャンクのデータ転送時間とデータ処理時間を計測して取得し、各チャンクを前記コプロセッサに処理させる順番を決定するときに、前記計測された各チャンクのデータ転送時間とデータ処理時間に基づいて、各チャンクを前記コプロセッサに処理させる順番を決定することを特徴とする請求項5から7のいずれか1項に記載のデータ処理スケジュールリング方法。付記9コンピュータに、処理対象のデータを複数のチャンクに分割する分割処理、各チャンクのデータ転送時間とデータ処理時間を取得する時間取得処理、各チャンクのデータ転送時間とデータ処理時間の大小関係に基づいて、前記各チャンクを前記コプロセッサに処理させる順番を決定する順番決定処理、を実行させることを特徴とするプログラム。付記10前記順番決定処理は、前記各チャンクを、データ転送時間とデータ処理時間の大小関係に基づいて分別し、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順に処理した後にデータ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順に処理するように、各チャンクの順番を決定する、ことを特徴とする請求項9に記載のプログラム。付記11前記順番決定処理は、データ転送時間の方が小さいチャンクのグループをデータ転送時間の小さい順にソートし、データ転送時間の方が大きいチャンクのグループをデータ処理時間の大きい順にソートし、データ転送時間の方が小さいチャンクのグループが先になるように前記2つのグループのソート結果を結合して、チャンクの処理の順番のスケジュールリストを生成する、ことを特徴とする請求項10に記載のプログラム。付記12前記時間取得処理は、各チャンクのデータ転送時間とデータ処理時間を計測して取得し、前記順番決定処理は、前記計測された各チャンクのデータ転送時間とデータ処理時間に基づいて、各チャンクを前記コプロセッサに処理させる順番を決定することを特徴とする請求項9から11のいずれか1項に記載のプログラム。"