JP6555259B2 - 情報処理装置、データ格納方法、及び、プログラム - Google Patents

情報処理装置、データ格納方法、及び、プログラム Download PDF

Info

Publication number
JP6555259B2
JP6555259B2 JP2016529050A JP2016529050A JP6555259B2 JP 6555259 B2 JP6555259 B2 JP 6555259B2 JP 2016529050 A JP2016529050 A JP 2016529050A JP 2016529050 A JP2016529050 A JP 2016529050A JP 6555259 B2 JP6555259 B2 JP 6555259B2
Authority
JP
Japan
Prior art keywords
data
program
matching
order
types
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.)
Active
Application number
JP2016529050A
Other languages
English (en)
Other versions
JPWO2015194172A1 (ja
Inventor
孝道 宮本
孝道 宮本
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2015194172A1 publication Critical patent/JPWO2015194172A1/ja
Application granted granted Critical
Publication of JP6555259B2 publication Critical patent/JP6555259B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Algebra (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Description

本発明は、情報処理装置、データ格納方法、及び、記録媒体に関する。
パターンマッチング処理は、比較元データセットと複数の比較先データセットの各々とを比較することで、比較元データセットと合致する比較先データセットを抽出する処理である。比較元データセット、及び、比較先データセットは、複数種別のデータにより構成される。
このようなパターンマッチング処理は、比較元データセットと比較先データセットが合致しないことを判定する、複数の非マッチング判定と、比較元データセットと比較先データセットが合致することを判定する、マッチング判定と、を含む。
複数の非マッチング判定は、複数の種別にそれぞれ対応し、順番に実行される。各非マッチング判定では、当該非マッチング判定に対応する種別のデータについて、判定が行われる。ある種別までの非マッチング判定の結果、非マッチングと判定された場合、それ以降の種別の非マッチング判定、及び、マッチング判定は行われない。
また、マッチング判定では、データセットに含まれる全ての種別のデータを利用して、判定が行われる。
比較元データセットと複数の比較先データセットのパターンマッチング処理は、各比較先データセットに対するパターンマッチング処理(ループ処理)を繰り返すことにより行われる。各ループ処理内では、比較先データセットに対する、複数の非マッチング判定とマッチング判定とが行われる。
一方、パターンマッチング処理を、コンピュータ上のプログラムにより実行する場合、キャッシュメモリのようなメモリ階層構造とベクトル演算器とを含むプロセッサが利用される。
パターンマッチング処理をこのようなプロセッサで高速化する場合、データセットのロードに係る実行時間を短くすることが重要である。
このような、データセットのロードに係る実行時間を短くするための技術が、例えば、特許文献1に開示されている。特許文献1に記載の技術では、ループ中で順次アクセスされる複数の配列を一つのグループにグループ化し、グループに属する異なる配列のデータが連続するように、各データがメモリ上に配置される。
なお、関連技術として、特許文献2には、プログラム上のループ中に記述されている任意の二つの配列において、一方を他方の配列に置き換えることにより、キャッシュヒット率を向上させる技術が開示されている。また、特許文献3には、プログラム上のループ間の依存関係をもとに、ループにおいて処理されたデータの格納先をメモリまたはキャッシュのいずれかに割り振ることにより、キャッシュを有効的に利用する技術が開示されている。
特開2004−021425号公報 特開2003−228488号公報 特開2010−244204号公報
上述の特許文献1の技術を、非マッチング判定を含むパターンマッチング処理に適用する場合、ループ処理内で順次アクセスされる可能性がある、同じデータセット内の各種別のデータをグループ化し、連続してメモリに配置することが考えられる。しかしながら、上述のように、パターンマッチング処理では、ある種別までの非マッチング判定の結果、非マッチングと判定された場合、それ以降の種別の非マッチング判定は行われない。このため、同じデータセット内のデータを連続してメモリに配置しても、順次アクセスされるとは限らず、キャッシュメモリが有効に利用されない。
本発明の目的は、上述した課題を解決し、複数種別のデータを含むデータセット間のパターンマッチング処理を高速に実行する、情報処理装置、データ格納方法、及び、記録媒体を提供することである。
本発明の一態様における情報処理装置は、複数種別のデータを含むデータセットの各種別のデータに対する所定演算を、順番に、所定の条件を満たす場合に行う一連の処理を、所定数の前記データセットについて繰り返し行うプログラム、が実行されるコンピュータ上のメモリへの、前記複数の前記データセットの配置を行う情報処理装置であって、前記複数種別のデータの内、特定種別のデータについては、異なるデータセットのデータが、前記プログラムで処理される順番で連続して配置され、前記特定種別以外のデータについては、同じデータセットのデータが、前記プログラムで処理される順番で連続して配置されるように、前記メモリ上の配置順序を決定する、配置決定手段と、前記配置順序に従って、前記コンピュータ上の前記メモリへ、前記所定数の前記データセットを配置する、データ配置手段と、を備える。
本発明の一態様におけるデータ格納方法は、複数種別のデータを含むデータセットの各種別のデータに対する所定演算を、順番に、所定の条件を満たす場合に行う一連の処理を、所定数の前記データセットについて繰り返し行うプログラム、が実行されるコンピュータ上のメモリへの、前記複数の前記データセットの配置を行うデータ格納方法であって、前記複数種別のデータの内、特定種別のデータについては、異なるデータセットのデータが、前記プログラムで処理される順番で連続して配置され、前記特定種別以外のデータについては、同じデータセットのデータが、前記プログラムで処理される順番で連続して配置されるように、前記メモリ上の配置順序を決定し、前記配置順序に従って、前記コンピュータ上の前記メモリへ、前記所定数の前記データセットを配置する。
本発明の一態様におけるコンピュータが読み取り可能な記録媒体は、複数種別のデータを含むデータセットの各種別のデータに対する所定演算を、順番に、所定の条件を満たす場合に行う一連の処理を、所定数の前記データセットについて繰り返し行うプログラム、が実行されるコンピュータ上のメモリへの、前記複数の前記データセットの配置を行う情報処理装置のプログラムを格納する記録媒体であって、前記情報処理装置に、前記複数種別のデータの内、特定種別のデータについては、異なるデータセットのデータが、前記プログラムで処理される順番で連続して配置され、前記特定種別以外のデータについては、同じデータセットのデータが、前記プログラムで処理される順番で連続して配置されるように、前記メモリ上の配置順序を決定し、前記配置順序に従って、前記コンピュータ上の前記メモリへ、前記所定数の前記データセットを配置する、処理を実行させるプログラムを格納する。
本発明の効果は、複数種別のデータを含むデータセット間のパターンマッチング処理を高速に実行できることである。
本発明の第1の実施の形態の特徴的な構成を示すブロック図である。 本発明の第1の実施の形態における、パターンマッチングシステムの構成を示すブロック図である。 本発明の第1の実施の形態における、コンピュータにより実現されたデータ格納装置200の構成を示すブロック図である。 本発明の第1の実施の形態における、パターンマッチング処理で用いられるデータセットの例を示す図である。 本発明の第1の実施の形態における、マッチングプログラム900の構成を示す図である。 本発明の第1の実施の形態における、各非マッチング判定処理930−jがアクセスするデータを示す図である。 本発明の第1の実施の形態における、マッチングプログラム900の処理を示すフローチャートである。 本発明の第1の実施の形態における、データ格納処理を示すフローチャートである。 本発明の第1の実施の形態における、メモリ103上でのデータの配置順序を示す図である。 本発明の第2の実施の形態における、パターンマッチングシステムの構成を示すブロック図である。 本発明の第2の実施の形態における、データ格納処理を示すフローチャートである。 本発明の第2の実施の形態における、マッチングプログラム900のプログラムコードの例を示す図である。 本発明の第2の実施の形態における、マッチングプログラム900の変換後のプログラムコードの例を示す図である。 本発明の第2の実施の形態における、マッチングプログラム900の変換例を示す図である。 本発明の第2の実施の形態における、マッチングプログラム900の変換後のプログラムコードの他の例を示す図である。 本発明の第3の実施の形態における、パターンマッチングシステムの構成を示すブロック図である。 本発明の第3の実施の形態における、データ格納処理を示すフローチャートである。 本発明の第3の実施の形態における、非マッチング判定処理930−jの優先度の例を示す図である。 本発明の第3の実施の形態における、非マッチング判定処理930−jの並び替えの例を示す図である。 本発明の第3の実施の形態における、メモリ103上でのデータの配置順序を示す図である。 本発明の第4の実施の形態における、パターンマッチングシステムの構成を示すブロック図である。 本発明の第4の実施の形態における、データ格納処理を示すフローチャートである。 本発明の第4の実施の形態における、ループの分割の例を示す図である。 本発明の第4の実施の形態における、変換後のマッチングプログラム900のプログラムコードの例を示す図である。 本発明の第4の実施の形態における、変換後のマッチングプログラム900のプログラムコードの他の例を示す図である。 本発明の第4の実施の形態における、変換後のマッチングプログラム900のプログラムコードの他の例を示す図である。 本発明の第5の実施の形態における、ループの分割の例を示す図である。 本発明の第6の実施の形態におけるパターンマッチングシステムの構成を示すブロック図である。 本発明の第6の実施の形態における、データ格納処理を示すフローチャートである。
(第1の実施の形態)
本発明の第1の実施の形態について説明する。
はじめに、本発明の第1の実施の形態における、パターンマッチング処理について説明する。
図4は、本発明の第1の実施の形態における、パターンマッチング処理で用いられるデータセットの例を示す図である。
パターンマッチング処理では、図4に示すように、一つの比較元データセット801「S」とM個(Mは1以上の整数)の比較先データセット802「Fi(iは1からMの整数)」が用いられる。比較元データセット801と比較先データセット802とは、それぞれ、N種別(Nは1以上の整数)のデータ「dj(jは1からNの整数)」より構成される。以下、比較元データセット801におけるj番目のデータを「S−dj」と記述する。また、i番目の比較先データセット802におけるj番目のデータを「Fi−dj」と記述する。
次に、本発明の第1の実施の形態のパターンマッチング処理について説明する。
本発明の第1の実施の形態では、コンピュータ上で、パターンマッチングプログラム(マッチングプログラム900)を実行することにより、パターンマッチング処理が行われる。
図5は、本発明の第1の実施の形態における、マッチングプログラム900の構成を示す図である。
マッチングプログラム900は、比較元データセット取得処理910、比較先データセット選択処理920、N個の非マッチング判定処理930−j(jは1からNの整数)、及び、マッチング判定処理940を含む。
比較元データセット取得処理910は、メモリに格納されている、比較元データセット801を取得する。比較先データセット選択処理920は、比較元データセット801とパターンマッチングを行う、比較先データセット802を選択する。非マッチング判定処理930−jは、データ「dj」について、比較元データセット801と比較先データセット802との間で、非マッチング判定を行う。マッチング判定処理940は、比較元データセット801と比較先データセット802との間で、マッチング判定を行う。
図6は、本発明の第1の実施の形態における、各非マッチング判定処理930−jがアクセスするデータを示す図である。
非マッチング判定処理930−jは、図6に示すように、メモリ103に格納されている、データ「dj」(「S−dj」、及び、「Fi−dj」)にアクセスする。
図7は、本発明の第1の実施の形態における、マッチングプログラム900の処理を示すフローチャートである。
比較元データセット取得処理910は、比較元データセット801を取得する(ステップS901)。
比較先データセット選択処理920は、比較先データセット802の中から、処理対象の比較先データセット802を一つ選択する(ステップS902)。
非マッチング判定処理930−jは、比較元データセット801と比較先データセット802との間で、データセットにおけるデータdjに対する非マッチング判定(所定演算)を行う(ステップS903)。各非マッチング判定処理930−jによる、非マッチング判定は、マッチングプログラム900に従った順番で行われる。図7の例では、非マッチング判定処理930−1、930−2、…、930−Nの順番に、非マッチング判定が行われる。
各非マッチング判定処理930−jは、例えば、比較元データセット801と比較先データセット802との間で、データdjの差分の絶対値を算出する。そして、非マッチング判定処理930−jは、例えば、差分の絶対値が所定の閾値以上の場合、非マッチングと判定する。
各非マッチング判定処理930−jで非マッチングと判定された場合、ステップS902の処理に戻る。各非マッチング判定処理930−jで非マッチングと判定されなかった場合(所定条件を満たした場合)は、マッチングプログラム900に従って、次の非マッチング判定処理930−jで非マッチング判定が行われる。
N個の非マッチング判定処理930−jで非マッチングと判定されなかった場合、マッチング判定処理940は、比較元データセット801と比較先データセット802との間で、マッチング判定を行う(ステップS904)。
マッチング判定処理940は、例えば、比較元データセット801と比較先データセット802との間で、各データの差分の絶対値に所定の係数を乗じて加算する等、予め決められた演算を行う。そして、マッチング判定処理940は、例えば、演算の結果得られた値が所定の閾値未満の場合、マッチングと判定する。
比較先データセット選択処理920からマッチング判定処理940までは、ループを構成する。ループは、比較先データセット802の数だけ繰り返される。
次に、本発明の第1の実施の形態の構成を説明する。
図2は、本発明の第1の実施の形態における、パターンマッチングシステムの構成を示すブロック図である。図2を参照すると、パターンマッチングシステムは、マッチングプログラム900によりパターンマッチング処理を実行するコンピュータ100、及び、コンピュータ100のメモリ103に比較先データセット802を格納するデータ格納装置200を含む。データ格納装置200は、本発明の情報処理装置の一実施形態である。
コンピュータ100は、CPU101(Central Processing Unit)、キャッシュメモリ102、及び、メモリ103を含む。
CPU101は、マッチングプログラム900を実行する。
メモリ103は、比較元データセット801、及び、比較先データセット802を記憶する。また、メモリ103は、マッチングプログラム900を格納する。
キャッシュメモリ102は、CPU101上でマッチングプログラム900の処理が実行された時に、メモリ103から読み出されたデータを格納する。キャッシュメモリ102は、メモリ103上で、CPU101により読み出されたデータから連続して所定の範囲に格納されているデータを、同時に格納する。キャッシュメモリ102にさらにデータを格納する容量がなくなった場合、新たなデータを格納するために、古いデータが削除される。CPU101は、メモリ103から読み出すべきデータがキャッシュに存在する場合、当該キャッシュに格納されているデータを読み出す。
データ格納装置200は、データ格納制御部210を含む。データ格納制御部210は、非マッチング判定解析部211、アクセス確率算出部212、配置決定部213、及び、データ配置部214を含む。
非マッチング判定解析部211は、マッチングプログラム900における各非マッチング判定処理930−jが、非マッチング判定を行う順序を解析する。
アクセス確率算出部212は、比較先データセット802のデータdjへのアクセス確率を算出する。
配置決定部213は、アクセス確率算出部212により算出されたデータへのアクセス確率をもとに、比較先データセット802のメモリ103への配置順序を決定する。
データ配置部214は、決定した順序に従って、比較先データセット802をメモリ103へ配置する。
なお、データ格納装置200は、CPUとプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。
図3は、本発明の第1の実施の形態における、コンピュータにより実現されたデータ格納装置200の構成を示すブロック図である。データ格納装置200は、CPU201、ハードディスクやメモリ等の記憶手段(記憶媒体)202、他の装置等とデータ通信を行う通信手段203、キーボード等の入力手段204、及び、ディスプレイ等の出力手段205を含む。
CPU201は、データ格納制御部210の機能を実現するためのコンピュータプログラムを実行する。記憶手段202は、データ格納制御部210の機能を実現するためのコンピュータプログラムやコンピュータ100から取得したマッチングプログラム900を記憶する。通信手段203は、コンピュータ100へ比較先データセット802の格納指示を送信する。また、通信手段203は、コンピュータ100との間でマッチングプログラム900を送受信してもよい。入力手段204は、データ格納の指示の入力を受け付ける。出力手段205は、データ格納の結果を出力する。
また、図2に示したデータ格納装置200の各構成要素は、独立した論理回路でもよい。
また、本発明の第1の実施の形態では、コンピュータ100とデータ格納装置200とを別の装置としたが、データ格納装置200が、コンピュータ100上に実装されていてもよい。
次に、本発明の第1の実施の形態の動作を説明する。
ここでは、図4の比較先データセット802を、コンピュータ100のメモリ103に格納する場合を例に、動作を説明する。
図8は、本発明の第1の実施の形態における、データ格納処理を示すフローチャートである。
はじめに、データ格納装置200は、管理者等から、データ格納の指示を受け付けると、マッチングプログラム900を取得する(ステップS101)。
例えば、データ格納装置200は、コンピュータ100から、図5のマッチングプログラム900を取得する。
非マッチング判定解析部211は、マッチングプログラム900における各非マッチング判定処理930−jが、非マッチング判定を行う順序を解析する(ステップS102)。
例えば、非マッチング判定解析部211は、図5のマッチングプログラム900において、非マッチング判定処理930−1から、930−2、…、930−Nの順番に、非マッチング判定が行われることを検出する。
アクセス確率算出部212は、比較先データセット802のデータdjへのアクセス確率を算出する(ステップS103)。
ここで、データdjへのアクセス確率は、非マッチング判定処理930−jが非マッチング判定を行う確率(非マッチング判定処理930−jによる非マッチング判定までの到達率)に相当する。非マッチング判定処理930−jが非マッチング判定を行う確率は、最初の種別に対する非マッチング判定から直前の種別に対する非マッチング判定の各々で「非マッチング」と判定される確率(非マッチング確率)をもとに算出される。各種別の非マッチング確率は、例えば、管理者等により、予め設定される。また、各種別の非マッチング確率は、パターンマッチング処理の実行時に、コンピュータ100において取得されてもよい。なお、各比較先データセット802で最初に非マッチング判定が行われる種別のアクセス確率は「100%」である。
例えば、各種別のデータの非マッチング確率が「50%」の場合、アクセス確率算出部212は、データd1、d2、d3…へのアクセス確率を、それぞれ、「100%」、「50%」、「25%」…と算出する。
配置決定部213は、アクセス確率算出部212により算出されたアクセス確率をもとに、比較先データセット802のメモリ103への配置順序を決定する(ステップS104)。
ここで、配置決定部213は、アクセス確率が「100%」の種別のデータについては、配置順序を「データセット間方向」に決定する。「データセット間方向」とは、異なる比較先データセット802のデータが、マッチングプログラム900で処理される順番に、連続して配置されることを示す。また、配置決定部213は、アクセス確率が「100%」未満の種別のデータについては、配置順序を「データセット内方向」に決定する。「データセット内方向」とは、同じ比較先データセット802のデータが、非マッチング判定が行われる順番に、連続して配置されることを示す。
図9は、本発明の第1の実施の形態における、メモリ103上でのデータの配置順序を示す図である。例えば、配置決定部213は、アクセス確率が「100%」のデータd1については、図9に示すように、「F1−d1」、「F2−d1」、…、「FM−d1」の順に、配置順序を決定する。また、配置決定部213は、アクセス確率が「100%」未満のデータd2、…、dNについては、「F1−d2」、「F1−d3」、…、「F1−dN」、「F2−d2」、「F2−d3」、…、「F2−dN」、…の順に、配置順序を決定する。
なお、複数の種別のアクセス確率が「100%」の場合、配置決定部213は、それぞれの種別のデータ配置順序を「データセット間方向」に決定する。例えば、データd1、d2のアクセス確率が「100%」の場合、配置決定部213は、データd1、d2について、「F1−d1」、「F2−d1」、…、「FM−d1」、「F1−d2」、「F2−d2」、…、「FM−d2」の順に、配置順序を決定する。
データ配置部214は、決定した配置順序に従って、比較先データセット802をコンピュータ100のメモリ103上へ配置する(ステップS105)。
ここで、データ配置部214は、管理者等から入力された比較先データセット802を、決定した配置順序に従って、コンピュータ100のメモリ103上に配置してもよい。また、データ配置部214は、メモリ103上に既に格納されている比較先データセット802を、決定した配置順序に従って配置し直してもよい。
例えば、データ配置部214は、図9の配置順序に従って、図4の比較先データセット802をメモリ103上に配置する。
このように、本発明の第1の実施の形態では、アクセス確率が「100%」の種別のデータについては、「データセット間方向」に配置される。したがって、ある比較先データセット802のデータと次に処理される比較先データセット802のデータは、同時にキャッシュメモリ102に格納される。そして、次に処理される比較先データセット802のデータは、キャッシュメモリ102から読み出される。これにより、CPU101からメモリ103へのアクセスが低減される。
また、アクセス確率が「100%」未満の種別のデータについては、「データセット内方向」に配置される。したがって、比較先データセット802において、ある非マッチング判定で処理されるデータと次の非マッチング判定で処理されるデータは、同時にキャッシュメモリ102に格納される。そして、次の非マッチング判定で処理されるデータは、キャッシュメモリ102から読み出される。これにより、CPU101からメモリ103へのアクセスが低減される。
最後に、データ格納装置200は、管理者等へ、データ格納の結果を出力する。
以上により、本発明の第1の実施の形態の動作が完了する。
なお、本発明の第1の実施の形態では、配置決定部213が、アクセス確率が「100%」の種別のデータの配置順序を「データセット間方向」に決定し、アクセス確率が「100%」未満の種別のデータの配置順序を「データセット内方向」に決定した。しかしながら、これに限らず、配置決定部213は、アクセス確率が所定値以上の種別のデータの配置順序を「データセット間方向」に決定し、アクセス確率が所定値未満の種別のデータの配置順序を「データセット内方向」に決定してもよい。
また、配置決定部213は、例えば、最初から、管理者等により予め設定された順番までに非マッチング判定が行わる種別のデータの配置順序を「データセット間方向」に決定し、それ以外の種別のデータの配置順序を「データセット内方向」に決定してもよい。
次に、本発明の第1の実施の形態の特徴的な構成を説明する。図1は、本発明の第1の実施の形態の特徴的な構成を示すブロック図である。
データ格納装置200(情報処理装置)は、コンピュータ上のメモリへの、複数のデータセットの配置を行う。コンピュータでは、複数種別のデータを含むデータセットの各種別のデータに対する所定演算を、順番に、所定の条件を満たす場合に行う一連の処理(ループ処理)を、所定数のデータセットについて繰り返し行うプログラム、が実行される。
データ格納装置200は、配置決定部213、及び、データ配置部214を含む。
配置決定部213は、複数種別のデータの内、特定種別のデータについては、異なるデータセットのデータが、プログラムで処理される順番で連続して配置されるように、メモリ上の配置順序を決定する。また、配置決定部213は、特定種別以外のデータについては、同じデータセットのデータが、プログラムで処理される順番で連続して配置されるように、メモリ上の配置順序を決定する。
データ配置部214は、配置順序に従って、コンピュータ上のメモリへ、所定数のデータセットを配置する。
本発明の第1の実施の形態によれば、複数種別のデータを含むデータセット間のパターンマッチング処理を高速に実行できる。その理由は、配置決定部213が、特定種別のデータについては、配置順序を「データセット間方向」に決定し、特定種別以外のデータについては、配置順序を「データセット内方向」に決定するためである。
これにより、例えば、アクセス確率が「100%」の種別のデータは「データセット間方向」で、アクセス確率が「100%」未満の種別のデータは「データセット内方向」で、メモリ103上に配置される。そして、プログラムで連続して処理されるデータが、同時にキャッシュメモリ102に格納される可能性が高くなるため、メモリ103へのアクセスが低減され、プログラムが高速に実行される。
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明する。本発明の第2の実施の形態においては、マッチングプログラム900の記述を、配置順序に対応した記述に変換する点で、本発明の第1の実施の形態と異なる。
はじめに、本発明の第2の実施の形態の構成を説明する。
図10は、本発明の第2の実施の形態における、パターンマッチングシステムの構成を示すブロック図である。
本発明の第2の実施の形態におけるデータ格納装置200は、本発明の第1の実施の形態におけるデータ格納装置200の構成に加えて、プログラム解析部220、及び、プログラム変換部230を含む。プログラム解析部220は、ループ解析部221、及び、非マッチング判定検出部222を含む。
ループ解析部221は、マッチングプログラム900におけるループを検出する。
非マッチング判定検出部222は、検出されたループ内の、非マッチング判定処理930−jを検出する。
プログラム変換部230は、マッチングプログラム900の記述を、決定した配置順序に対応した記述に変換する。
次に、本発明の第2の実施の形態の動作を説明する。
図12は、本発明の第2の実施の形態における、マッチングプログラム900のプログラムコードの例を示す図である。図12の例では、比較先データセット802の数は、100である。ここでは、マッチングプログラム900のプログラムコードが図12の場合を例に動作を説明する。
図11は、本発明の第2の実施の形態における、データ格納処理を示すフローチャートである。
はじめに、データ格納装置200は、マッチングプログラム900を取得する(ステップS201)。
例えば、データ格納装置200は、コンピュータ100から、図12のプログラムコードを取得する。
ループ解析部221は、マッチングプログラム900におけるループを検出する(ステップS202)。非マッチング判定検出部222は、検出されたループ内の、非マッチング判定処理930−jを検出する(ステップS203)。
例えば、データ格納装置200は、コンピュータ100から、図12のプログラムコードにおいて、ループ(行番号23〜28)を検出する。そして、データ格納装置200は、ループ内の、非マッチング判定処理930−1(行番号24)、930−2(行番号25)、930−3(行番号26)、…を検出する。
各非マッチング判定処理930−jによる非マッチング判定の順序の解析から、決定した配置順序に従った比較先データセット802の配置までの処理(ステップS204〜S207)は、本発明の第1の実施形態(ステップS102〜S105)と同様である。
例えば、非マッチング判定解析部211は、図12のプログラムコードにおいて、非マッチング判定処理930−1、930−2、930−3、…の順番に、非マッチング判定が行われることを検出する。そして、配置決定部213は、図9に示すように、配置順序を決定する。
次に、プログラム変換部230は、マッチングプログラム900の記述を、決定した配置順序に対応した記述に変換する(ステップS208)。ここで、プログラム変換部230は、例えば、マッチングプログラム900における、データ宣言、メモリ確保、データアクセス方法等に係る記載を、配置順序に対応した記述に変換する。
図13は、本発明の第2の実施の形態における、マッチングプログラム900の変換後のプログラムコードの例を示す図である。
例えば、プログラム変換部230は、図12のプログラムコードにおける、データ宣言(行番号1〜6)、メモリ確保(行番号20、21)、及び、データアクセス方法(行番号8〜15)を、図13のように変換する。
以上により、本発明の第2の実施の形態の動作が完了する。
なお、連続して非マッチング判定が行われる複数の種別のアクセス確率が「100%」の場合、先に行われる非マッチング判定では、非マッチングと判定されることがないため、当該先の非マッチング判定は不要な判定と考えることができる。この場合、上述のステップS208において、プログラム変換部230が、不要な非マッチング判定に係る非マッチング判定処理930−jをマッチングプログラム900から削除してもよい。
図14は、本発明の第2の実施の形態における、マッチングプログラム900の変換例を示す図である。図15は、本発明の第2の実施の形態における、マッチングプログラム900の変換後のプログラムコードの他の例を示す図である。図15の例では、ループに対応する部分のみが示されている。
例えば、例えば、データd1、d2のアクセス確率が「100%」の場合、プログラム変換部230は、図14、図15のように、先に行われる非マッチング判定に係る非マッチング判定処理930−1を、マッチングプログラム900から削除する。
本発明の第2の実施の形態によれば、パターンマッチング処理を行うためのプログラムを、メモリアクセスが低減されたプログラムに変換できる。その理由は、プログラム変換部230が、マッチングプログラム900の記述を、決定した配置順序に対応した記述に変換するためである。
(第3の実施の形態)
次に、本発明の第3の実施の形態について説明する。本発明の第3の実施の形態においては、非マッチング判定処理930−jの実行順序を並び替える点で、本発明の第2の実施の形態と異なる。
はじめに、本発明の第3の実施の形態の構成を説明する。
図16は、本発明の第3の実施の形態における、パターンマッチングシステムの構成を示すブロック図である。
本発明の第3の実施の形態におけるデータ格納装置200は、本発明の第2の実施の形態におけるデータ格納装置200の構成に加えて、非マッチング判定並び替え部(または、並び替え部)240を含む。
非マッチング判定並び替え部240は、非マッチング判定処理930−jの実行順序を、優先度の高い順に並び替える。
次に、本発明の第3の実施の形態の動作を説明する。
図17は、本発明の第3の実施の形態における、データ格納処理を示すフローチャートである。
はじめに、マッチングプログラム900の取得から、非マッチング判定処理930−jの検出までの処理(ステップS301〜S303)は、本発明の第2の実施の形態(ステップS201〜S203)と同様である。
次に、非マッチング判定並び替え部240は、非マッチング判定処理930−jの実行順序を、優先度の高い順に並び替える(ステップS304)。
図18は、本発明の第3の実施の形態における、非マッチング判定処理930−jの優先度の例を示す図である。図18の例では、優先度の値が小さいほど、優先度が高いことを示す。
優先度は、例えば、各非マッチング判定処理930−jに対応する種別のデータdjの非マッチング確率をもとに、非マッチング確率が大きいほど、優先度が高くなるように付与される。
なお、優先度は、各非マッチング判定処理930−jにおけるロード命令数等、命令数が少ないほど、優先度が高くなるように付与されてもよい。
図19は、本発明の第3の実施の形態における、非マッチング判定処理930−jの並び替えの例を示す図である。
例えば、非マッチング判定並び替え部240は、図18の優先度をもとに、非マッチング判定処理930−jの実行順序を、図19のように並び替える。この場合、並び替え前は、非マッチング判定処理930−1、930−2、930−3、930−4の順番に、非マッチング判定が行われる。並び替え後は、図18の優先度に従って、非マッチング判定処理930−4、930−3、930−2、930−1の順番に、非マッチング判定が行われる。
各非マッチング判定処理930−jによる非マッチング判定の順序の解析から、決定した配置順序に従った比較先データセット802の配置までの処理(ステップS305〜S308)は、本発明の第2の実施形態(ステップS204〜S207)と同様である。
図20は、本発明の第3の実施の形態における、メモリ103上でのデータの配置順序を示す図である。例えば、配置決定部213は、アクセス確率が「100%」のデータd4については、図20に示すように、「F1−d4」、「F2−d4」、…、「FM−d4」の順に、配置順序を決定する。また、配置決定部213は、アクセス確率が「100%」未満のデータd1、d2、d3については、並び替え後の非マッチング判定処理930−jによる非マッチング判定の実行順序に従って、図20に示すように、配置順序を決定する。すなわち、配置決定部213は、「F1−d3」、「F1−d2」、「F1−d1」、…、「FM−d3」、「FM−d2」、「FM−d1」の順に、配置順序を決定する。
次に、プログラム変換部230は、マッチングプログラム900の記述を、決定した配置順序、及び、並び替え後の非マッチング判定処理930−jの実行順序に対応した記述に変換する(ステップS309)。
以上により、本発明の第3の実施の形態の動作が完了する。
本発明の第3の実施の形態によれば、本発明の第1、第2の実施の形態に比べて、パターンマッチング処理をさらに高速に実行できる。その理由は、非マッチング判定並び替え部240が、マッチングプログラム900における、非マッチング判定処理930−jの実行順序を、優先度の高い順に並び替えるためである。
これにより、例えば、非マッチング率の高い順に非マッチング判定処理930−jを実行することで、後段の非マッチング判定処理930−jを実行する回数が削減される。この場合、非マッチング判定処理930−jに伴うロード命令数が低減されるため、マッチングプログラム900がさらに高速に実行される。また、例えば、ロード命令数の少ない順に非マッチング判定処理930−jを実行することで、ロード命令数が多い非マッチング判定処理930−jを実行する回数が削減される。この場合も、非マッチング判定処理930−jに伴うロード命令数が低減されるため、マッチングプログラム900がさらに高速に実行される。
(第4の実施の形態)
次に、本発明の第4の実施の形態について説明する。本発明の第4の実施の形態においては、マッチングプログラム900におけるループを分割してベクトル化する点で、本発明の第2の実施の形態と異なる。
はじめに、本発明の第4の実施の形態の構成を説明する。
図21は、本発明の第4の実施の形態における、パターンマッチングシステムの構成を示すブロック図である。
本発明の第4の実施の形態におけるデータ格納装置200は、本発明の第2の実施の形態におけるデータ格納装置200の構成に加えて、ループ構造変更部(または、構造変更部)250を含む。
ループ構造変更部250は、マッチングプログラム900におけるループを分割する。
次に、本発明の第4の実施の形態の動作を説明する。
図22は、本発明の第4の実施の形態における、データ格納処理を示すフローチャートである。
はじめに、マッチングプログラム900の取得から、決定した配置順序に従った比較先データセット802の配置までの処理(ステップS401〜S407)は、本発明の第2の実施の形態(ステップS201〜S207)と同様である。
次に、ループ構造変更部250は、アクセス確率算出部212により算出されたデータへのアクセス確率をもとに、マッチングプログラム900におけるループを分割する。そして、ループ構造変更部250は、分割されたループの一方をベクトル化する(ステップS408)。ここで、ループ構造変更部250は、アクセス確率が「100%」の種別に対する非マッチング判定処理930−jの内、判定を伴わない処理(演算)を、別ループ(ループ1)として抽出することにより、ループをループ1とループ2とに分割する。そして、ループ構造変更部250は、ループ1をベクトル化する(ループ1を、複数の比較先データセット802に対するベクトル演算で行うように指定する)。
図23は、本発明の第4の実施の形態における、ループの分割の例を示す図である。
例えば、ループ構造変更部250は、図23に示すように、図7のマッチングプログラム900におけるループを、ループ1とループ2に分割する。
ループ1は、比較先データセット選択処理921、非マッチング判定処理931−1、及び、テンポラリデータ生成処理932−1を含む。比較先データセット選択処理921は、比較先データセット選択処理920と同様に、比較先データセット802を選択する。非マッチング判定処理931−1は、非マッチング判定処理930−1内の判定を伴わない処理(演算)を行う。テンポラリデータ生成処理932−1は、非マッチング判定処理931−1の演算結果をテンポラリデータとして生成する。第1のループにより、テンポラリデータは、比較先データセット802の数だけ生成される。
ループ2は、比較先データセット選択処理922、非マッチング判定処理933−1、及び、非マッチング判定処理930−2からマッチング判定処理940までを含む。比較先データセット選択処理922は、比較先データセット選択処理920と同様に、比較先データセット802を選択する。非マッチング判定処理933−1は、テンポラリデータを用いて、非マッチング判定処理930−1の内の判定に係る処理を行う。
そして、ループ構造変更部250は、第1のループをベクトル化する。
プログラム変換部230は、ステップS208と同様に、マッチングプログラム900の記述を、決定した配置順序に対応した記述に変換する(ステップS409)。
図24、図25は、本発明の第4の実施の形態における、変換後のマッチングプログラム900のプログラムコードの例を示す図である。図24、図25の例では、ループに対応する部分のみが示されている。
例えば、ループ構造変更部250は、図12のプログラムコードにおけるループを、図24、または、図25のループ1、ループ2のように分割する。
図24は、非マッチング判定処理931−1が、非マッチング判定処理930−1の内の、差分の算出、及び、閾値との比較を行う場合の例である。この場合、閾値との比較結果がテンポラリデータとして生成される(行番号34、35)。また、図25は、非マッチング判定処理931−1が、非マッチング判定処理930−1の内の、差分の算出を行う場合の例である。この場合、差分の算出結果がテンポラリデータとして生成される(行番号33)。また、図24、図25において、コンパイラによるループ1のベクトル化が、「#pragma vector」(行番号31)により指定されている。
なお、アクセス確率が「100%」の種別が複数存在する場合、ループ構造変更部250は、複数の種別に対する非マッチング判定処理930−jの内、判定を伴わない処理(演算)を、別ループ(ループ1)として抽出する。
図26は、本発明の第4の実施の形態における、変換後のマッチングプログラム900のプログラムコードの他の例を示す図である。例えば、ループ構造変更部250は、図26のように、非マッチング判定処理930−1、930−2の処理の内の、差分の算出、及び、閾値との比較を、一つの別ループ(ループ1)として抽出し、ベクトル化する。
以上により、本発明の第4の実施の形態の動作が完了する。
本発明の第4の実施の形態によれば、第1、第2の実施の形態に比べて、パターンマッチング処理をさらに高速に実行できる。その理由は、ループ構造変更部250が、マッチングプログラム900のループにおける、特定種別の非マッチング判定処理930−jを分割し、複数の比較先データセット802に対するベクトル演算で行うようにベクトル化するためである。
これにより、特定種別のデータの非マッチング判定処理930−jに係るループの繰り返し数(比較先データセット802の数)分のロード命令を、当該繰り返し数より少ないベクトルロード命令に変更でき、ロード命令数が低減される。ロード命令数が低減することで、データのロードに必要な時間が短縮され、マッチングプログラム900がさらに高速に実行される。
(第5の実施の形態)
次に、本発明の第5の実施の形態について説明する。本発明の第5の実施の形態においては、分割された二つのループを含む、新たなループを生成する点で、本発明の第4の実施の形態と異なる。
上述のステップS408において、ループ構造変更部250は、マッチングプログラム900におけるループを分割するとともに、分割された二つのループの繰り返し回数を比較先データセット802の数より少なく設定する。ループ構造変更部250は、さらに、分割された二つのループが、比較先データセット802の数だけ実行されるように、分割された二つのループの繰り返しを含む、新たなループを生成する。
図27は、本発明の第5の実施の形態における、ループの分割の例を示す図である。
例えば、ループ構造変更部250は、マッチングプログラム900におけるループを、図27に示すように、繰り返し回数K(Kは1以上の整数)のループ1とループ2とに分割する。ここで、繰り返し回数Kは、比較先データセット802の数より少ない値であり、かつ、ループ1のK回の繰り返しにより生成されるテンポラリデータのサイズがキャッシュメモリ102のサイズより小さくなるように設定される。
ループ構造変更部250は、さらに、図27に示すように、K回のループ1とK回のループ2とを含む、繰り返し回数M/K回のループ3を生成する。
そして、ループ構造変更部250は、第1のループをベクトル化する。
本発明の第5の実施の形態によれば、本発明の第4の実施の形態に比べて、パターンマッチング処理をさらに高速に実行できる。その理由は、分割された二つのループの繰り返し回数を比較先データセット802の数より少なく設定するためである。これにより、二つのループ間のテンポラリデータがキャッシュメモリ102に存在し、ループ2におけるテンポラリデータのロードに必要な時間が短縮され、マッチングプログラム900がさらに高速に実行される。
(第6の実施の形態)
次に、本発明の第6の実施の形態について説明する。本発明の第6の実施の形態においては、第3の実施の形態と同様に、非マッチング判定処理930−jの実行順序を並び替える点、及び、第4、第5の実施の形態と同様に、マッチングプログラム900におけるループを分割する点で、第2の実施の形態と異なる。
はじめに、本発明の第6の実施の形態の構成を説明する。
図28は、本発明の第6の実施の形態におけるパターンマッチングシステムの構成を示すブロック図である。
本発明の第4の実施の形態におけるデータ格納装置200は、本発明の第2の実施の形態におけるデータ格納装置200の構成に加えて、非マッチング判定並び替え部240、及び、ループ構造変更部250を含む。
次に、本発明の第6の実施の形態の動作を説明する。
図29は、本発明の第6の実施の形態における、データ格納処理を示すフローチャートである。
はじめに、マッチングプログラム900の取得から、非マッチング判定処理930−jの検出までの処理(ステップS601〜S603)は、本発明の第2の実施の形態(ステップS201〜S203)と同様である。
次に、非マッチング判定並び替え部240は、ステップS304と同様に、非マッチング判定処理930−jの実行順序を、優先度の高い順に並び替える(ステップS604)。
各非マッチング判定処理930−jによる非マッチング判定の順序の解析から、決定した配置順序に従った比較先データセット802の配置までの処理(ステップS605〜S608)は、本発明の第2の実施形態(ステップS204〜S207)と同様である。
次に、ループ構造変更部250は、ステップS408と同様に、アクセス確率算出部212により算出されたデータへのアクセス確率をもとに、マッチングプログラム900におけるループを分割する。そして、ループ構造変更部250は、分割されたループの一方をベクトル化する(ステップS609)。
プログラム変換部230は、ステップS309と同様に、マッチングプログラム900の記述を、決定した配置順序、及び、並び替え後の非マッチング判定処理930−jの実行順序に対応した記述に変換する(ステップS610)。
以上により、本発明の第6の実施の形態の動作が完了する。
本発明の第6の実施の形態によれば、本発明の第3、第4、第5の実施の形態に比べて、パターンマッチング処理をさらに高速に実行できる。その理由は、非マッチング判定並び替え部240が、マッチングプログラム900における、非マッチング判定処理930−jの実行順序を、優先度の高い順に並び替え、ループ構造変更部250が、ループの分割、及び、ベクトル化を行うためである。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
例えば、本発明の実施の形態では、配置されるデータセットを用いるプログラムが、パターンマッチングを行うマッチングプログラム900の場合を例に説明を行った。しかしながら、データセットの各種別に対する所定演算を、順番に、所定の条件を満たす場合に行う一連の処理を、所定数のデータセットについて繰り返し行うプログラムであれば、プログラムは、パターンマッチング以外の他のプログラムでもよい。
この出願は、2014年6月19日に出願された日本出願特願2014−125865を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、データベースとの比較によって画像を判別する画像認識処理や画像照合処理、データベースとの比較によって個人を特定する生体認証処理等の用途に適用できる。
100 コンピュータ
101 CPU
102 キャッシュメモリ
103 メモリ
200 データ格納装置
201 CPU
202 記憶手段
203 通信手段
204 入力手段
205 出力手段
210 データ格納制御部
211 非マッチング判定解析部
212 アクセス確率算出部
213 配置決定部
214 データ配置部
220 プログラム解析部
221 ループ解析部
222 非マッチング判定検出部
230 プログラム変換部
240 非マッチング判定並び替え部
250 ループ構造変更部
801 比較元データセット
802 比較先データセット
900 マッチングプログラム
910 比較元データセット取得処理
920 比較先データセット選択処理
921 比較先データセット選択処理
922 比較先データセット選択処理
930 非マッチング判定処理
931 非マッチング判定処理
932 テンポラリデータ生成処理
933 非マッチング判定処理
940 マッチング判定処理

Claims (10)

  1. 複数種別のデータを含むデータセットの各種別のデータに対する所定演算を、順番に、所定の条件を満たす場合に行う一連の処理を、所定数の前記データセットについて繰り返し行うプログラム、が実行されるコンピュータ上のメモリへの、前記複数の前記データセットの配置を行う情報処理装置であって、
    前記複数種別のデータの内、特定種別のデータについては、異なるデータセットのデータが、前記プログラムで処理される順番で連続して配置され、前記特定種別以外のデータについては、同じデータセットのデータが、前記プログラムで処理される順番で連続して配置されるように、前記メモリ上の配置順序を決定する、配置決定手段と、
    前記配置順序に従って、前記コンピュータ上の前記メモリへ、前記所定数の前記データセットを配置する、データ配置手段と、
    を備えた情報処理装置。
  2. 前記特定種別は、前記複数種別の内、前記プログラムにより前記所定演算が行われる確率が、所定値以上の種別である、
    請求項1に記載の情報処理装置。
  3. さらに、前記配置順序に従って、前記プログラムにおける、前記所定数の前記データセットに係る記載を、当該配置順序に応じた記載に書き換える、プログラム変換手段を備える、
    請求項1または2に記載の情報処理装置。
  4. さらに、前記プログラムにおける、前記所定演算が行われる種別の順番を、前記複数種別の各々の優先度に従って並び替える、並び替え手段を備える、
    請求項1乃至3のいずれかに記載の情報処理装置。
  5. さらに、前記プログラムの前記一連の処理から、前記特定種別のデータに対する前記所定演算を分割し、複数の前記データセットに対するベクトル演算により行うように変更する、構造変更手段を備える、
    請求項1乃至4のいずれかに記載の情報処理装置。
  6. 複数種別のデータを含むデータセットの各種別のデータに対する所定演算を、順番に、所定の条件を満たす場合に行う一連の処理を、所定数の前記データセットについて繰り返し行うプログラム、が実行されるコンピュータ上のメモリへの、前記複数の前記データセットの配置を行うデータ格納方法であって、
    前記複数種別のデータの内、特定種別のデータについては、異なるデータセットのデータが、前記プログラムで処理される順番で連続して配置され、前記特定種別以外のデータについては、同じデータセットのデータが、前記プログラムで処理される順番で連続して配置されるように、前記メモリ上の配置順序を決定し、
    前記配置順序に従って、前記コンピュータ上の前記メモリへ、前記所定数の前記データセットを配置する、
    データ格納方法。
  7. 前記特定種別は、前記複数種別の内、前記プログラムにより前記所定演算が行われる確率が、所定値以上の種別である、請求項6に記載のデータ格納方法。
  8. さらに、前記配置順序に従って、前記プログラムにおける、前記所定数の前記データセットに係る記載を、当該配置順序に応じた記載に書き換える、
    請求項6または7に記載のデータ格納方法。
  9. さらに、前記プログラムにおける、前記所定演算が行われる種別の順番を、前記複数種別の各々の優先度に従って並び替える、
    請求項6乃至8のいずれかに記載のデータ格納方法。
  10. 複数種別のデータを含むデータセットの各種別のデータに対する所定演算を、順番に、所定の条件を満たす場合に行う一連の処理を、所定数の前記データセットについて繰り返し行う所定のプログラム、が実行されるコンピュータ上のメモリへの、前記複数の前記データセットの配置を行う情報処理装置のプログラムを格納する記録媒体であって、
    前記情報処理装置に、
    前記複数種別のデータの内、特定種別のデータについては、異なるデータセットのデータが、前記所定のプログラムで処理される順番で連続して配置され、前記特定種別以外のデータについては、同じデータセットのデータが、前記所定のプログラムで処理される順番で連続して配置されるように、前記メモリ上の配置順序を決定し、
    前記配置順序に従って、前記コンピュータ上の前記メモリへ、前記所定数の前記データセットを配置する、
    処理を実行させるプログラ
JP2016529050A 2014-06-19 2015-06-17 情報処理装置、データ格納方法、及び、プログラム Active JP6555259B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014125865 2014-06-19
JP2014125865 2014-06-19
PCT/JP2015/003032 WO2015194172A1 (ja) 2014-06-19 2015-06-17 情報処理装置、データ格納方法、及び、記録媒体

Publications (2)

Publication Number Publication Date
JPWO2015194172A1 JPWO2015194172A1 (ja) 2017-04-27
JP6555259B2 true JP6555259B2 (ja) 2019-08-07

Family

ID=54935177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016529050A Active JP6555259B2 (ja) 2014-06-19 2015-06-17 情報処理装置、データ格納方法、及び、プログラム

Country Status (3)

Country Link
US (1) US20170199816A1 (ja)
JP (1) JP6555259B2 (ja)
WO (1) WO2015194172A1 (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432919A (en) * 1989-07-06 1995-07-11 Digital Equipment Corporation Sequential reference management for cache memories
KR100280285B1 (ko) * 1996-08-19 2001-02-01 윤종용 멀티미디어 신호에 적합한 멀티미디어 프로세서
JP3308481B2 (ja) * 1998-01-09 2002-07-29 沖電気工業株式会社 相関値算出装置
JP3289685B2 (ja) * 1998-08-31 2002-06-10 日本電気株式会社 ベクトル演算方法
KR100706503B1 (ko) * 2000-12-19 2007-04-10 엘지전자 주식회사 메모리 영역 사용 방법
US7343598B2 (en) * 2003-04-25 2008-03-11 Microsoft Corporation Cache-conscious coallocation of hot data streams
WO2012116369A2 (en) * 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9116718B2 (en) * 2012-08-30 2015-08-25 Google Inc. Derive size contribution of features
US8984251B2 (en) * 2012-12-04 2015-03-17 Apple Inc. Hinting of deleted data from host to storage device
US9286201B2 (en) * 2013-09-25 2016-03-15 Globalfoundries Inc. Method and system for automatic space organization in tier2 solid state drive (SSD) cache in databases for multi page support

Also Published As

Publication number Publication date
JPWO2015194172A1 (ja) 2017-04-27
WO2015194172A1 (ja) 2015-12-23
US20170199816A1 (en) 2017-07-13

Similar Documents

Publication Publication Date Title
JP6605573B2 (ja) 並列ディシジョン・ツリー・プロセッサー・アーキテクチャ
US10268454B2 (en) Methods and apparatus to eliminate partial-redundant vector loads
JP4339381B2 (ja) 共有メモリ型マルチプロセッサシステム及びその情報処理方法
Andrzejewski et al. GPU-WAH: Applying GPUs to compressing bitmap indexes with word aligned hybrid
CN103177414A (zh) 一种基于结构的图节点相似度并行计算方法
CN115315688A (zh) 处理数据流修改以减少并行处理期间的功率效应
CN115237920A (zh) 面向负载的数据索引推荐方法及其装置、存储介质
US9685977B1 (en) Time series data compressing apparatus
US11150993B2 (en) Method, apparatus and computer program product for improving inline pattern detection
US20200012250A1 (en) Program editing device, program editing method, and computer readable medium
US10275230B2 (en) Cache aware self-referential structure peeling
CN113111351B (zh) 测试方法、装置和计算机可读存储介质
US20150212804A1 (en) Loop distribution detection program and loop distribution detection method
JP6555259B2 (ja) 情報処理装置、データ格納方法、及び、プログラム
CN104156268B (zh) 一种GPU上MapReduce的负载分配和线程结构优化方法
US20160140016A1 (en) Event sequence construction of event-driven software by combinational computations
JP6869588B1 (ja) 情報処理装置、方法及びプログラム
CN113760380B (zh) 网络模型的运行代码的确定方法、装置、设备及存储介质
CN107506361A (zh) 栅格数据聚合方法和装置、栅格数据解耦方法和装置及系统
CN114625903A (zh) 一种图像检索方法和装置、图像检索设备
KR20210086233A (ko) 완화된 프루닝을 통한 행렬 데이터 처리 방법 및 그 장치
US10572233B2 (en) Vectorization device, vectorization method, and recording medium on which vectorization program is stored
JPWO2014168199A1 (ja) 論理演算方法および情報処理装置
US20190384687A1 (en) Information processing device, information processing method, and computer readable medium
JP4219706B2 (ja) システムlsi設計支援装置及び設計支援方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161122

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180515

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: 20190611

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190624

R150 Certificate of patent or registration of utility model

Ref document number: 6555259

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150